@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,500;0,600;0,700;1,500;1,600&family=Inter:wght@400;500;600;700&display=swap');

:root{
  --ink:#2a231e;
  --ink-soft:#3a322b;
  --cream:#faf6ee;
  --paper:#ffffff;
  --oxblood:#8f2130;
  --oxblood-dark:#6c1a26;
  --gold:#b8912f;
  --gold-soft:#e4c976;
  --stone:#6b6259;
  --line:#e6ddc9;
  --shadow: 0 18px 40px -20px rgba(43,31,20,0.35);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth; height:100%; overflow-x:hidden; overscroll-behavior-x:none; touch-action:pan-y;}
html.nav-locked{overflow:hidden;}
body{font-family:'Inter',sans-serif; color:var(--ink); background:var(--cream); line-height:1.6; -webkit-font-smoothing:antialiased; display:flex; flex-direction:column; min-height:100vh; min-height:100dvh; font-variant-numeric:lining-nums tabular-nums; overflow-x:hidden; touch-action:pan-y;}
footer{margin-top:auto;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
ul{list-style:none;}
.container{max-width:1180px; margin:0 auto; padding:0 32px;}
.eyebrow{font-family:'Inter',sans-serif; font-size:12px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--oxblood); display:flex; align-items:center; gap:10px; margin-bottom:14px;}
.eyebrow::before{content:""; width:22px; height:1px; background:var(--oxblood);}
h1,h2,h3,h4{font-family:'Cormorant Garamond',serif; font-weight:600; color:var(--ink); line-height:1.15;}
h1{font-size:56px; font-weight:700;}
h2{font-size:38px;}
h3{font-size:24px;}
p{color:var(--ink-soft);}
.muted{color:var(--stone);}

header{position:sticky; top:0; z-index:50; background:rgba(250,246,238,.92); backdrop-filter:blur(10px); border-bottom:1px solid var(--line);}
.nav-wrap{display:flex; align-items:center; justify-content:space-between; padding:18px 32px; max-width:1180px; margin:0 auto;}
.logo{display:flex; align-items:center; gap:12px;}
.logo .name{font-family:'Cormorant Garamond',serif; font-style:italic; font-weight:600; font-size:21px; line-height:1.15; color:var(--ink);}
.logo .name span{display:block; font-size:15px; font-style:italic; color:var(--stone);}
nav.primary{display:flex; align-items:center; gap:6px;}
.nav-item{position:relative;}
.nav-link{display:flex; align-items:center; gap:5px; padding:10px 16px; font-size:15px; font-weight:600; color:var(--ink-soft); border-radius:6px; cursor:pointer; white-space:nowrap;}
.nav-link:hover, .nav-link.active{color:var(--oxblood);}
.nav-item.has-dropdown .nav-link::after{content:"▾"; font-size:10px; margin-left:2px; color:var(--stone);}
.dropdown{position:absolute; top:calc(100% + 12px); left:0; min-width:230px; background:var(--paper); border-top:3px solid var(--oxblood); box-shadow:var(--shadow); border-radius:2px 2px 10px 10px; opacity:0; visibility:hidden; transform:translateY(6px); transition:opacity .18s ease, transform .18s ease, visibility .18s; padding:8px 0;}
.nav-item.has-dropdown:hover .dropdown, .nav-item.has-dropdown.open .dropdown{opacity:1; visibility:visible; transform:translateY(0);}
.dropdown a{display:block; padding:12px 22px; font-size:15px; color:var(--ink-soft); font-weight:500;}
.dropdown a:hover{color:var(--oxblood); background:var(--cream);}
.burger{display:none; flex-direction:column; gap:5px; cursor:pointer; padding:6px;}
.burger span{width:24px; height:2px; background:var(--ink);}

.hero{position:relative; background:var(--ink); color:#fff; overflow:hidden; padding:60px 32px 0;}
.hero-inner{max-width:1180px; margin:0 auto; display:grid; grid-template-columns:1.05fr .95fr; gap:40px; align-items:center;}
.hero-copy .eyebrow{color:var(--gold-soft);}
.hero-copy .eyebrow::before{background:var(--gold-soft);}
.hero-copy h1{color:#fdf9ef; font-size:52px; font-style:italic;}
.hero-copy p.lead{color:#d9cfbd; font-size:18px; max-width:460px; margin-top:18px;}
.hero-cta{display:flex; gap:14px; margin-top:30px; flex-wrap:wrap;}
.hero-cta .btn{flex:1 1 190px; justify-content:center; text-align:center;}
.btn{display:inline-flex; align-items:center; gap:8px; padding:13px 26px; border-radius:3px; font-weight:700; font-size:14px; letter-spacing:.03em; cursor:pointer; border:1px solid transparent;}
.btn-primary{background:var(--oxblood); color:#fff;}
.btn-primary:hover{background:var(--oxblood-dark);}
.btn-ghost{border-color:rgba(255,255,255,.35); color:#fff;}
.btn-ghost:hover{border-color:#fff;}
.btn-dark{background:var(--ink); color:#fff; border-color:var(--ink);}
.btn-dark:hover{background:var(--ink-soft);}
.hero-window{position:relative; height:420px; display:flex; align-items:center; justify-content:center;}
.hero-photo-frame{background:#fff; padding:10px; border-radius:4px; box-shadow:0 24px 54px -18px rgba(0,0,0,.55); border:1px solid rgba(228,201,118,.45); max-height:420px; max-width:100%;}
.hero-photo-frame img{display:block; max-height:400px; width:auto; max-width:100%; border-radius:2px; object-fit:contain;}
.hero-rotator{position:relative; width:495px; max-width:100%; aspect-ratio:1400/1131; border-radius:2px; overflow:hidden;}
.hero-rotator img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity 1.4s ease; border-radius:2px;}
.hero-rotator img.is-active{opacity:1;}
.hero-strip{max-width:1180px; margin:56px auto 0; border-top:1px solid rgba(255,255,255,.14); display:grid; grid-template-columns:repeat(4,1fr);}
.hero-strip .cell{padding:22px 18px; border-right:1px solid rgba(255,255,255,.12);}
.hero-strip .cell:last-child{border-right:none;}
.hero-strip .cell .k{font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-soft); font-weight:700;}
.hero-strip .cell .v{font-family:'Cormorant Garamond',serif; font-size:22px; margin-top:6px; color:#fff; font-variant-numeric:lining-nums tabular-nums;}

section.block{padding:96px 0;}
section.block.tight{padding:72px 0;}
.section-head{max-width:640px; margin-bottom:52px;}
.section-head.center{margin-left:auto; margin-right:auto; text-align:center;}
.section-head.center .eyebrow{display:inline-flex;}
.grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
.grid-2{display:grid; grid-template-columns:repeat(2,1fr); gap:40px; align-items:center;}
.card{background:var(--paper); border:1px solid var(--line); padding:30px 26px; border-radius:2px; box-shadow:var(--shadow);}
.card h3{margin-bottom:10px;}
.card p{font-size:15px;}

.info-strip{background:var(--paper); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.info-strip .grid-3{gap:0;}
.info-strip .cell{padding:34px 30px; border-right:1px solid var(--line); display:flex; gap:16px; align-items:flex-start;}
.info-strip .cell:last-child{border-right:none;}
.info-strip .cell .ic{color:var(--oxblood); flex-shrink:0;}
.info-strip .cell h4{font-family:'Cormorant Garamond',serif; font-size:19px; font-weight:700; margin-bottom:4px;}
.info-strip .cell p{font-size:14.5px;}

.news-card{border-top:3px solid var(--oxblood); background:var(--paper); padding:26px; box-shadow:var(--shadow); display:flex; flex-direction:column; height:100%;}
.news-card .date{font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--oxblood); margin-bottom:10px;}
.news-card h3{font-size:21px; margin-bottom:10px;}
.news-card p{font-size:14.5px;}
.news-card p:last-of-type{flex:1 0 auto;}

/* "Czytaj więcej" — bez JS treść jest po prostu w całości widoczna (nic nie
   trzeba klikać); z JS chowa się i przycisk (zawsze na końcu, po treści)
   przełącza widoczność, zamieniając się w "Zwiń" — dzięki temu po rozwinięciu
   przycisk ląduje na dole całej treści, a nie w jej środku. */
.js .read-more-body{display:none;}
.js .read-more-body.is-open{display:block;}
.read-more-toggle{display:none;}
.js .read-more-toggle{
  display:inline-block; margin-top:10px; background:none; border:none; padding:0;
  color:var(--oxblood); font-weight:700; font-size:13px; font-family:'Inter',sans-serif;
  cursor:pointer; user-select:none;
}
.js .read-more-toggle:hover{text-decoration:underline;}

.news-card .more{margin-top:14px; display:inline-block; font-size:13px; font-weight:700; color:var(--ink);}

.cta-band{background:var(--oxblood); color:#fff; padding:64px 0; text-align:center;}
.cta-band h2{color:#fff;}
.cta-band p{color:#f0dede; max-width:520px; margin:14px auto 28px;}

.timeline{border-left:2px solid var(--line); padding-left:28px; display:flex; flex-direction:column; gap:34px;}
.timeline .item{position:relative;}
.timeline .item::before{content:""; position:absolute; left:-34px; top:6px; width:11px; height:11px; border-radius:50%; background:var(--oxblood); border:3px solid var(--cream); box-shadow:0 0 0 2px var(--oxblood);}
.timeline .year{font-family:'Cormorant Garamond',serif; font-style:italic; font-weight:700; color:var(--oxblood); font-size:20px; font-variant-numeric:lining-nums tabular-nums;}

.quote-block{background:var(--ink); color:#f4ecd9; padding:56px 50px; position:relative; font-family:'Cormorant Garamond',serif; font-style:italic; font-size:26px; line-height:1.5;}
.quote-block cite{display:block; margin-top:20px; font-style:normal; font-size:14px; letter-spacing:.08em; text-transform:uppercase; color:var(--gold-soft);}
.quote-decorated{border-left:3px solid var(--gold); overflow:hidden;}
.quote-decorated::after{content:""; position:absolute; right:-40px; bottom:-60px; width:200px; height:200px; background:radial-gradient(circle,rgba(184,145,47,.18),transparent 70%); pointer-events:none;}
.quote-mark{display:block; font-family:Georgia,serif; font-style:normal; font-size:64px; line-height:1; color:var(--gold); opacity:.55; margin-bottom:-14px;}

table.simple{width:100%; border-collapse:collapse;}
table.simple th, table.simple td{padding:14px 16px; text-align:left; border-bottom:1px solid var(--line); font-size:15px; overflow-wrap:anywhere;}
table.simple th{font-family:'Cormorant Garamond',serif; font-size:17px; color:var(--oxblood);}
.table-scroll{overflow-x:auto; -webkit-overflow-scrolling:touch; touch-action:pan-x pan-y;}
.table-scroll table.simple{min-width:480px;}

.staff-card{display:flex; gap:20px; background:var(--paper); border:1px solid var(--line); padding:26px; align-items:flex-start;}
.staff-avatar{width:64px; height:64px; border-radius:50%; background:linear-gradient(160deg,var(--oxblood),var(--gold)); flex-shrink:0; object-fit:cover;}
.staff-card h3{margin-bottom:4px; font-size:20px;}
.staff-role{font-size:12px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--gold); margin-bottom:10px;}

.gallery-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:14px;}
.gallery-grid .tile{aspect-ratio:1; border-radius:2px; background:linear-gradient(160deg,var(--ink),var(--oxblood-dark)); position:relative; overflow:hidden; display:flex; align-items:flex-end; padding:14px; opacity:.95;}
.gallery-grid .tile img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.85;}
.gallery-grid .tile span{position:relative; color:#f4ecd9; font-family:'Cormorant Garamond',serif; font-style:italic; font-size:14px;}
.gallery-grid .tile:nth-child(3n+1){background:linear-gradient(160deg,var(--oxblood),#3a1116);}
.gallery-grid .tile:nth-child(3n+2){background:linear-gradient(160deg,#3a3227,var(--ink));}
.gallery-grid .tile:nth-child(4n){background:linear-gradient(160deg,var(--gold),#7a5c15);}

label{font-size:13px; font-weight:700; letter-spacing:.03em; color:var(--ink); display:block; margin-bottom:7px;}
input, textarea, select{width:100%; padding:12px 14px; border:1px solid var(--line); border-radius:3px; background:var(--paper); font-family:'Inter',sans-serif; font-size:14.5px; color:var(--ink);}
input:focus, textarea:focus, select:focus{outline:2px solid var(--oxblood); outline-offset:1px; border-color:var(--oxblood);}

.map-box{height:100%; min-height:320px; background:var(--ink); border-radius:2px; display:flex; align-items:center; justify-content:center; color:var(--gold-soft); font-family:'Cormorant Garamond',serif; font-style:italic; font-size:18px; text-align:center; padding:30px;}

footer{background:var(--ink); color:#cfc6b6; padding-top:72px;}
.footer-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:48px; padding-bottom:56px;}
.footer-col h4{font-family:'Cormorant Garamond',serif; font-weight:700; color:#fff; font-size:21px; margin-bottom:16px; position:relative; padding-bottom:12px;}
.footer-col h4::after{content:""; position:absolute; left:0; bottom:0; width:44px; height:2px; background:var(--oxblood);}
.footer-col p, .footer-col li{font-size:14.5px; color:#b9b0a0; margin-bottom:8px;}
.footer-col.center{text-align:center;}
.footer-col.center h4::after{left:50%; transform:translateX(-50%);}
.footer-contact li{display:flex; gap:10px; align-items:flex-start; margin-bottom:14px; overflow-wrap:anywhere;}
.footer-contact .ic{color:var(--oxblood); flex-shrink:0; margin-top:2px;}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1); padding:22px 0; text-align:center; font-size:13px; color:#8a8172;}
.footer-bottom a{color:#b9b0a0; border-bottom:1px solid rgba(185,176,160,.4);}

.subpage-hero{background:var(--ink); color:#fff; padding:56px 0 46px; position:relative; overflow:hidden;}
.subpage-hero .container{text-align:center;}
.subpage-hero::after{content:""; position:absolute; left:50%; top:-80px; width:360px; height:280px; transform:translateX(-50%); background:radial-gradient(circle,rgba(184,145,47,.22),transparent 70%); pointer-events:none;}
.subpage-hero .eyebrow{color:var(--gold-soft); justify-content:center;}
.subpage-hero .eyebrow::before{background:var(--gold-soft);}
.subpage-hero h1{color:#fff; font-size:42px; font-style:italic; position:relative;}

@media (max-width: 980px){
  .hero-inner{grid-template-columns:1fr;}
  .hero-window{height:280px; order:-1;}
  .hero-photo-frame img{max-height:258px;}
  .hero-rotator{width:346px;}
  .hero-copy h1{font-size:38px;}
  .grid-3, .grid-2{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr; gap:36px;}
  .info-strip .cell{border-right:none; border-bottom:1px solid var(--line);}
  .hero-strip{grid-template-columns:repeat(2,1fr);}
  .gallery-grid{grid-template-columns:repeat(2,1fr);}
  nav.primary{position:fixed; top:0; right:0; height:100vh; width:78%; max-width:320px; background:var(--paper); flex-direction:column; align-items:stretch; padding:90px 0 20px; transform:translateX(100%); transition:transform .25s ease; box-shadow:-10px 0 40px rgba(0,0,0,.15); overflow-y:auto; overflow-x:hidden; z-index:110;}
  nav.primary.open{transform:translateX(0);}
  .nav-close{display:block; position:absolute; top:18px; right:18px; width:38px; height:38px; border:1px solid var(--line); border-radius:50%; background:var(--paper); font-size:16px; line-height:1; cursor:pointer; color:var(--ink);}
  .nav-backdrop{position:fixed; inset:0; background:rgba(20,15,10,.4); opacity:0; visibility:hidden; transition:opacity .25s ease, visibility .25s; z-index:105;}
  .nav-backdrop.open{opacity:1; visibility:visible;}
  .nav-link{padding:16px 28px; border-bottom:1px solid var(--line);}
  .dropdown{position:static; box-shadow:none; opacity:1; visibility:visible; transform:none; display:none; border-top:none; background:var(--cream);}
  .nav-item.open .dropdown{display:block;}
  .burger{display:flex; position:relative; z-index:60;}
}

@media (min-width: 981px){
  .nav-close, .nav-backdrop{display:none;}
}

@media (max-width: 560px){
  .container{padding:0 18px;}
  .nav-wrap{padding:14px 18px;}
  .logo .name{font-size:17px;}
  .logo .name span{font-size:12.5px;}
  .hero{padding:40px 18px 0;}
  .hero-copy h1{font-size:30px;}
  .hero-copy p.lead{font-size:15.5px;}
  .hero-cta .btn{flex:1 1 100%; justify-content:center;}
  .hero-strip{grid-template-columns:1fr; margin-top:34px;}
  .hero-strip .cell{border-right:none; border-bottom:1px solid rgba(255,255,255,.12); padding:16px 4px;}
  .hero-strip .cell:last-child{border-bottom:none;}
  section.block{padding:56px 0;}
  section.block.tight{padding:40px 0;}
  h1{font-size:32px;}
  h2{font-size:28px;}
  .subpage-hero{padding:40px 0 32px;}
  .subpage-hero h1{font-size:30px;}
  .card{padding:22px 18px;}
  .gallery-grid{grid-template-columns:repeat(2,1fr); gap:10px;}
  .info-strip .cell{padding:24px 18px;}
  .cta-band{padding:44px 0;}
}

/* ---------- ANIMATIONS & INTERACTIONS ---------- */

/* Progressive enhancement: only hide-then-reveal when JS has confirmed it can
   run the reveal script (html.js). Without JS, everything is simply visible. */
.js .card, .js .news-card, .js .staff-card, .js .timeline .item, .js .gallery-grid .tile, .js .gallery-grid .folder-tile, .js .reveal{
  opacity:0; transform:translateY(22px);
  transition:opacity .6s cubic-bezier(.2,.7,.3,1), transform .6s cubic-bezier(.2,.7,.3,1);
}
.js .timeline .item{transform:translateX(-18px);}
.is-visible{opacity:1 !important; transform:none !important;}

/* staggered cascade for grid children */
.grid-3 > *:nth-child(1), .gallery-grid > *:nth-child(4n+1){transition-delay:0s;}
.grid-3 > *:nth-child(2), .gallery-grid > *:nth-child(4n+2){transition-delay:.08s;}
.grid-3 > *:nth-child(3), .gallery-grid > *:nth-child(4n+3){transition-delay:.16s;}
.gallery-grid > *:nth-child(4n+4){transition-delay:.24s;}
.grid-2 > *:nth-child(2){transition-delay:.1s;}
.timeline .item:nth-child(2){transition-delay:.08s;}
.timeline .item:nth-child(3){transition-delay:.16s;}
.timeline .item:nth-child(4){transition-delay:.24s;}
.timeline .item:nth-child(5){transition-delay:.32s;}
.timeline .item:nth-child(6){transition-delay:.4s;}
.timeline .item:nth-child(7){transition-delay:.48s;}
.timeline .item:nth-child(8){transition-delay:.56s;}
.timeline .item:nth-child(9){transition-delay:.64s;}
.timeline .item:nth-child(10){transition-delay:.72s;}

/* hover interactions */
.card, .news-card, .staff-card{transition:transform .28s ease, box-shadow .28s ease;}
.card:hover, .news-card:hover, .staff-card:hover{transform:translateY(-5px); box-shadow:0 26px 48px -22px rgba(43,31,20,.42);}
.hover-lift{transition:transform .28s ease, box-shadow .28s ease;}
.hover-lift:hover{transform:translateY(-5px); box-shadow:0 26px 48px -22px rgba(43,31,20,.42);}

.btn{transition:transform .18s ease, background .2s ease, box-shadow .25s ease, border-color .2s ease;}
.btn:hover{transform:translateY(-2px);}
.btn-primary:hover{box-shadow:0 14px 28px -10px rgba(143,33,48,.55);}
.btn-dark:hover{box-shadow:0 14px 28px -10px rgba(0,0,0,.35);}

.nav-link{transition:color .2s ease;}
.more{transition:letter-spacing .2s ease, color .2s ease;}
.more:hover{letter-spacing:.02em; color:var(--oxblood);}

.gallery-grid .tile{transition:transform .4s ease, box-shadow .4s ease;}
.gallery-grid .tile:hover{transform:translateY(-4px) scale(1.02); box-shadow:0 20px 40px -18px rgba(0,0,0,.5);}
.gallery-grid .tile img{transition:transform .6s ease;}
.gallery-grid .tile:hover img{transform:scale(1.08);}

.timeline .item{transition:opacity .5s ease, transform .5s ease;}

.stat-tile{background:var(--cream); border:1px solid var(--line); border-radius:3px; padding:20px 18px; text-align:center; transition:transform .25s ease, box-shadow .25s ease, background .25s ease;}
.stat-tile:hover{transform:translateY(-4px); background:var(--paper); box-shadow:0 18px 36px -18px rgba(43,31,20,.35);}
.stat-tile .num{font-family:'Cormorant Garamond',serif; font-weight:700; font-style:italic; font-size:26px; color:var(--oxblood); display:block; font-variant-numeric:lining-nums tabular-nums;}
.stat-tile .lbl{font-size:12.5px; color:var(--stone); margin-top:4px; display:block;}
.stat-tile.alt .num{color:var(--gold);}
.card-kicker{display:flex; align-items:center; gap:10px; margin-bottom:18px;}
.card-kicker h3{margin:0;}
.site-link-name{font-size:19px; color:var(--oxblood);}

@media (prefers-reduced-motion: reduce){
  .js .card, .js .news-card, .js .staff-card, .js .timeline .item, .js .gallery-grid .tile, .js .gallery-grid .folder-tile, .js .reveal{
    opacity:1 !important; transform:none !important; transition:none !important;
  }
  .card:hover, .news-card:hover, .staff-card:hover, .hover-lift:hover, .gallery-grid .tile:hover, .gallery-grid .folder-tile:hover{transform:none;}
  .js .emergency-banner{animation:none; color:#7a5b00;}
}

/* ---------- KAFELKI FOLDERÓW GALERII (okładka + czytelny podpis pod spodem) ---------- */
.folder-tile{display:block; text-decoration:none; border-radius:2px; overflow:hidden; background:var(--paper); border:1px solid var(--line); box-shadow:var(--shadow); transition:transform .28s ease, box-shadow .28s ease;}
.folder-tile:hover{transform:translateY(-5px); box-shadow:0 26px 48px -22px rgba(43,31,20,.42);}
.folder-cover{aspect-ratio:1; position:relative; overflow:hidden; background:linear-gradient(160deg,var(--ink),var(--oxblood-dark));}
.folder-cover img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease;}
.folder-tile:hover .folder-cover img{transform:scale(1.08);}
.folder-badge{position:absolute; top:10px; left:10px; background:rgba(0,0,0,.55); backdrop-filter:blur(2px); border-radius:3px; padding:5px 9px; display:flex; align-items:center; gap:6px; color:#e4c976; font-size:11px; font-weight:700; font-family:'Inter',sans-serif;}
.folder-caption{padding:14px 16px; font-family:'Cormorant Garamond',serif; font-style:italic; font-size:16.5px; color:var(--ink); background:var(--paper); border-top:1px solid var(--line);}

/* ---------- PODŚWIETLENIE SEKCJI PO PRZEJŚCIU Z LINKU (np. #zwiedzanie) ---------- */
:target .target-highlight{
  animation: target-pulse 2.5s ease-out;
}
@keyframes target-pulse{
  0%   { box-shadow: 0 0 0 4px rgba(143,33,48,.55); }
  100% { box-shadow: var(--shadow); }
}

/* ---------- KALENDARIUM PRAC (pełnoszerokie, ze zdjęciami) ---------- */
.calendar-timeline{max-width:820px; margin:0 auto; border-left:2px solid var(--line); padding-left:32px;}
.cal-entry{position:relative; padding-bottom:48px;}
.cal-entry:last-child{padding-bottom:0;}
.cal-marker{position:absolute; left:-39px; top:6px; width:14px; height:14px; border-radius:50%; background:var(--oxblood); border:4px solid var(--paper); box-shadow:0 0 0 2px var(--oxblood);}
.js .cal-extra{display:none;}
.js .cal-extra.show{display:block;}
.cal-showmore-wrap{display:none;}
.js .cal-showmore-wrap{display:block;}

.btn-outline{background:transparent; color:var(--oxblood); border-color:var(--oxblood);}
.btn-outline:hover{background:var(--oxblood); color:#fff;}
.cal-date{font-family:'Cormorant Garamond',serif; font-style:italic; font-weight:700; color:var(--oxblood); font-size:20px; margin-bottom:4px; font-variant-numeric:lining-nums tabular-nums;}
.cal-title{font-size:22px; margin-bottom:8px;}
.cal-photos{display:flex; flex-wrap:wrap; gap:10px; margin-top:16px;}
.cal-photo{width:104px; height:104px; border-radius:3px; overflow:hidden; cursor:pointer; position:relative; flex-shrink:0; box-shadow:var(--shadow);}
.cal-photo img{width:100%; height:100%; object-fit:cover; transition:transform .4s ease; display:block;}
.cal-photo:hover img{transform:scale(1.1);}
@media (max-width:560px){
  .calendar-timeline{padding-left:22px;}
  .cal-marker{left:-29px; width:11px; height:11px;}
  .cal-photo{width:76px; height:76px;}
}

/* ---------- LIGHTBOX / CARUZELA GALERII ---------- */
.gallery-grid .tile[data-lightbox-index]{cursor:pointer;}
.lightbox{position:fixed; inset:0; background:rgba(20,15,12,.94); z-index:1000; display:none; align-items:center; justify-content:center; padding:24px;}
.lightbox.open{display:flex;}
.lb-stage{max-width:92vw; max-height:82vh; display:flex; flex-direction:column; align-items:center; gap:14px;}
.lb-stage img{max-width:92vw; max-height:70vh; object-fit:contain; border-radius:2px; box-shadow:0 30px 80px -20px rgba(0,0,0,.6); transition:opacity .25s ease;}
.lb-caption{color:#f4ecd9; font-family:'Cormorant Garamond',serif; font-style:italic; font-size:18px; text-align:center; max-width:640px; min-height:1.4em;}
.lb-counter{color:var(--gold-soft); font-size:12px; letter-spacing:.08em; text-transform:uppercase; font-weight:700;}
.lb-close, .lb-prev, .lb-next, .lb-play{position:absolute; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.25); color:#fff; cursor:pointer; transition:background .2s ease, transform .2s ease;}
.lb-close:hover, .lb-prev:hover, .lb-next:hover, .lb-play:hover{background:rgba(255,255,255,.2);}
.lb-close{top:20px; right:20px; width:42px; height:42px; border-radius:50%; font-size:18px; line-height:1;}
.lb-prev, .lb-next{top:50%; transform:translateY(-50%); width:52px; height:52px; border-radius:50%; font-size:24px; line-height:1;}
.lb-prev{left:20px;}
.lb-next{right:20px;}
.lb-prev:hover, .lb-next:hover{transform:translateY(-50%) scale(1.08);}
.lb-play{bottom:24px; left:50%; transform:translateX(-50%); border-radius:20px; padding:10px 22px; font-size:13px; font-weight:700; letter-spacing:.04em; white-space:nowrap;}
.lb-play.active{background:var(--oxblood); border-color:var(--oxblood);}
@media (max-width:600px){
  .lb-prev, .lb-next{width:40px; height:40px; font-size:18px;}
  .lb-prev{left:8px;}
  .lb-next{right:8px;}
  .lb-close{top:10px; right:10px;}
  .lb-play{bottom:14px; padding:8px 16px; font-size:12px;}
}

/* ---------- WAŻNY KOMUNIKAT (pasek na górze strony) ---------- */
.emergency-banner{
  background:#fff4d6; color:#7a5b00; border-bottom:1px solid #e8c766;
  text-align:center; font-size:14px; font-weight:600; padding:10px 20px;
}
.js .emergency-banner{animation:banner-pulse 3s ease-in-out infinite;}
@keyframes banner-pulse{
  0%, 100%{color:#7a5b00;}
  50%{color:#c0392b;}
}

/* ---------- PRZYPIĘTE WPISY (delikatne wyróżnienie) ---------- */
.news-card.pinned{border-left:3px solid var(--oxblood); background:#fffaf3;}
.pin-badge{display:inline-flex; align-items:center; gap:4px; font-size:11px; font-weight:700; letter-spacing:.03em; text-transform:uppercase; color:var(--oxblood); margin-bottom:6px;}

/* ---------- DATY PUBLIKACJI / AKTUALIZACJI ---------- */
.entry-dates{font-size:12px; color:var(--stone); margin-top:10px;}
