/* FD Dotacje – widok front */
.fddot,.fddot *,.fddot *::before,.fddot *::after{box-sizing:border-box}
.fddot{
	--fddot-accent:#012f63;--fddot-accent-text:#fff;--fddot-card-bg:#fff;--fddot-card-border:#e2e8f0;
	--fddot-title:#16202c;--fddot-text:#4a5563;--fddot-year:#012f63;--fddot-font:'Poppins',sans-serif;
	--fddot-cols:3;--fddot-cols-tab:2;--fddot-cols-mob:1;--fddot-gap:22px;--fddot-max:1200px;--fddot-mv:32px;
	--fddot-radius:16px;--fddot-ratio:1 / 1.414;
	font-family:var(--fddot-font);color:var(--fddot-text);
	max-width:var(--fddot-max);margin-left:auto;margin-right:auto;
	margin-top:var(--fddot-mv);margin-bottom:var(--fddot-mv);
	-webkit-font-smoothing:antialiased;
}
.fddot-empty{margin:0;padding:24px;text-align:center;color:var(--fddot-text);background:var(--fddot-card-bg);border:1px solid var(--fddot-card-border);border-radius:var(--fddot-radius)}

/* pasek lat */
.fddot-years{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 22px}
.fddot-year{
	appearance:none;cursor:pointer;font:inherit;font-size:14px;font-weight:500;line-height:1;
	padding:9px 16px;border-radius:999px;border:1px solid var(--fddot-card-border);
	background:#fff;color:var(--fddot-title);transition:background .2s,border-color .2s,color .2s
}
.fddot-year:hover{border-color:var(--fddot-accent)}
.fddot-year.is-active{background:var(--fddot-accent);border-color:var(--fddot-accent);color:var(--fddot-accent-text)}

/* grupy lat */
.fddot-group{margin:0 0 34px}
.fddot-group[hidden]{display:none}
.fddot-year-h{
	margin:0 0 16px;padding:0 0 8px;font-family:inherit;font-size:24px;font-weight:700;line-height:1.2;
	color:var(--fddot-year);border-bottom:2px solid var(--fddot-card-border)
}

/* siatka */
.fddot-grid{display:grid;grid-template-columns:repeat(var(--fddot-cols),minmax(0,1fr));gap:var(--fddot-gap)}

/* karta */
.fddot-card{
	display:flex;flex-direction:column;overflow:hidden;background:var(--fddot-card-bg);
	border:1px solid var(--fddot-card-border);border-radius:var(--fddot-radius);
	transition:transform .2s ease,box-shadow .2s ease
}
.fddot-card:hover{transform:translateY(-3px);box-shadow:0 10px 26px rgba(16,32,48,.12)}
.fddot-card[hidden]{display:none}

.fddot-poster{
	position:relative;display:block;width:100%;margin:0;padding:0;border:0;cursor:default;
	background:#f1f4f8;aspect-ratio:var(--fddot-ratio);overflow:hidden
}
button.fddot-poster{cursor:zoom-in}
.fddot-poster img{width:100%;height:100%;object-fit:cover;display:block}
.fddot--ratio-auto .fddot-poster{aspect-ratio:auto}
.fddot--ratio-auto .fddot-poster img{height:auto}
.fddot-poster--logo{background:#fff;padding:12%}
.fddot-poster--logo img{object-fit:contain}
.fddot-noimg{display:block;width:100%;height:100%;background:
	linear-gradient(135deg,#eef2f7,#e3e9f1)}
.fddot-zoom{position:absolute;inset:0;background:rgba(1,47,99,.28);opacity:0;transition:opacity .2s}
.fddot-zoom::after{content:"";position:absolute;top:50%;left:50%;width:34px;height:34px;transform:translate(-50%,-50%);
	border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 2px rgba(1,47,99,.25)}
.fddot-zoom::before{content:"";position:absolute;top:calc(50% + 11px);left:calc(50% + 11px);width:12px;height:2px;background:#fff;transform:rotate(45deg);transform-origin:left;z-index:1}
button.fddot-poster:hover .fddot-zoom{opacity:1}

.fddot-body{display:flex;flex-direction:column;gap:6px;padding:16px 16px 18px}
.fddot-program{margin:0;font-size:12.5px;font-weight:600;letter-spacing:.01em;color:var(--fddot-accent)}
.fddot-title{margin:0;font-family:inherit;font-size:17px;font-weight:600;line-height:1.3;color:var(--fddot-title)}
.fddot-kwota{margin:0;font-size:14px;font-weight:600;color:var(--fddot-title)}
.fddot-date{margin:0;font-size:13px;color:var(--fddot-text)}
.fddot-excerpt{margin:4px 0 0;font-size:14px;line-height:1.6;color:var(--fddot-text)}

.fddot-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.fddot-btn{
	appearance:none;cursor:pointer;font:inherit;font-size:13.5px;font-weight:600;line-height:1;text-decoration:none;
	padding:9px 14px;border-radius:8px;border:1px solid var(--fddot-accent);
	background:var(--fddot-accent);color:var(--fddot-accent-text);transition:opacity .2s
}
.fddot-btn:hover{opacity:.9}
.fddot-btn--ghost{background:#fff;color:var(--fddot-accent)}

/* powiększenie (lightbox) */
.fddot-modal{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;
	padding:24px;background:rgba(10,16,24,.9)}
.fddot-modal[hidden]{display:none}
.fddot-modal-box{display:flex;gap:0;max-width:1100px;width:100%;max-height:88vh;background:#fff;border-radius:14px;overflow:hidden}
.fddot-modal-media{flex:1 1 55%;min-width:0;background:#0c1420;display:flex;align-items:center;justify-content:center}
.fddot-modal-media img{max-width:100%;max-height:88vh;object-fit:contain;display:block}
.fddot-modal-info{flex:1 1 45%;min-width:0;padding:26px 26px 30px;overflow:auto;color:var(--fddot-text);font-family:var(--fddot-font)}
.fddot-modal-title{margin:0 0 6px;font-size:22px;font-weight:700;color:var(--fddot-title)}
.fddot-modal-program{margin:0 0 4px;font-size:13px;font-weight:600;color:var(--fddot-accent)}
.fddot-modal-kwota{margin:0 0 4px;font-size:15px;font-weight:600;color:var(--fddot-title)}
.fddot-modal-date{margin:0 0 10px;font-size:14px;color:var(--fddot-text)}
.fddot-modal-text{font-size:15px;line-height:1.7}
.fddot-modal-text img{max-width:100%;height:auto;border-radius:8px}
.fddot-modal-text a{color:var(--fddot-accent)}
.fddot-modal-close{position:absolute;top:16px;right:20px;width:44px;height:44px;border:0;border-radius:50%;
	background:rgba(255,255,255,.15);color:#fff;font-size:26px;line-height:1;cursor:pointer}
.fddot-modal-close:hover{background:rgba(255,255,255,.3)}
.fddot-modal-nav{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border:0;border-radius:50%;
	background:rgba(255,255,255,.15);color:#fff;font-size:20px;cursor:pointer}
.fddot-modal-nav:hover{background:rgba(255,255,255,.3)}
.fddot-modal-prev{left:18px}
.fddot-modal-next{right:18px}

@media(max-width:900px){
	.fddot-grid{grid-template-columns:repeat(var(--fddot-cols-tab),minmax(0,1fr))}
	.fddot-modal-box{flex-direction:column;max-height:92vh}
	.fddot-modal-media{flex:0 0 auto;max-height:46vh}
	.fddot-modal-media img{max-height:46vh}
}
@media(max-width:600px){
	.fddot-grid{grid-template-columns:repeat(var(--fddot-cols-mob),minmax(0,1fr))}
	.fddot-year-h{font-size:20px}
	.fddot-modal{padding:12px}
	.fddot-modal-nav{display:none}
}

/* =========================================================================
 * Moduł na stronę główną: slider „Zadania realizowane z publicznych środków”
 * ====================================================================== */
.fddot-sl{
	--sl-bg:#2a6299;--sl-ink:#fff;--sl-accent:#012f63;--sl-per:1;--sl-gap:18px;--sl-radius:16px;--sl-max:1200px;
	box-sizing:border-box;max-width:var(--sl-max);margin:0 auto;padding:clamp(22px,3.5vw,44px);
	border-radius:28px;background-color:var(--sl-bg);color:var(--sl-ink);
	font-family:var(--fddot-font,'Poppins',sans-serif);-webkit-font-smoothing:antialiased
}
.fddot-sl *,.fddot-sl *::before,.fddot-sl *::after{box-sizing:border-box}
.fddot-sl--dots{background-image:radial-gradient(rgba(255,255,255,.14) 1.6px,transparent 1.6px);background-size:22px 22px}

/* układ pionowy: nagłówek u góry, slider w środku, strzałki, przycisk na dole */
.fddot-sl-inner{display:flex;flex-direction:column;gap:clamp(18px,2.4vw,28px)}

/* nagłówek */
.fddot-sl-head{text-align:center;max-width:720px;margin:0 auto}
.fddot-sl-title{margin:0;font-family:inherit;font-size:clamp(24px,3vw,36px);font-weight:700;line-height:1.15;color:var(--sl-ink)}
.fddot-sl-lead{margin:10px 0 0;font-size:16px;line-height:1.6;color:var(--sl-ink);opacity:.92}

/* slider */
.fddot-sl-slider{min-width:0}
.fddot-sl-track{
	display:flex;gap:var(--sl-gap);align-items:stretch;overflow-x:auto;scroll-snap-type:x mandatory;
	scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:2px 2px 6px
}
.fddot-sl-track::-webkit-scrollbar{display:none}
.fddot-sl-card{
	flex:0 0 calc((100% - (var(--sl-per) - 1) * var(--sl-gap)) / var(--sl-per));
	min-width:0;scroll-snap-align:start;display:flex;flex-direction:column;
	background:#fff;border-radius:var(--sl-radius);overflow:hidden;box-shadow:0 8px 22px rgba(0,0,0,.18)
}
.fddot-sl-poster{width:100%;aspect-ratio:1 / 1.414;background:#eef2f7}
.fddot-sl-poster img{width:100%;height:100%;object-fit:cover;display:block}
.fddot-sl-label{flex:1;display:flex;align-items:flex-start;padding:15px 17px;background:#fff}
.fddot-sl-label h3{margin:0;font-family:inherit;font-size:16px;font-weight:600;line-height:1.4;color:#111}

/* logo zamiast plakatu: w całości, wyśrodkowane, z marginesem */
.fddot-sl-poster--logo{background:#fff;padding:12%}
.fddot-sl-poster--logo img{object-fit:contain}

/* strzałki – pod sliderem, zaokrąglone, widoczne też na telefonie */
.fddot-sl-controls{display:flex;justify-content:center;gap:12px}
.fddot-sl-arrow{
	flex:0 0 auto;width:48px;height:48px;padding:0;margin:0;border:0;border-radius:14px;
	background:#fff;color:var(--sl-bg);line-height:0;cursor:pointer;
	display:inline-flex;align-items:center;justify-content:center;
	box-shadow:0 6px 16px rgba(0,0,0,.22);transition:background .2s,color .2s,transform .15s
}
.fddot-sl-arrow:hover{background:var(--sl-bg);color:#fff}
.fddot-sl-arrow:active{transform:scale(.94)}
.fddot-sl-arrow svg{display:block}
.fddot-sl-arrow[hidden]{display:none}

/* przycisk na dole */
.fddot-sl-foot{display:flex;justify-content:center}
.fddot-sl-btn,.fddot-sl-btn:link,.fddot-sl-btn:visited,.fddot-sl-btn:hover,.fddot-sl-btn:focus,.fddot-sl-btn:active{text-decoration:none !important}
.fddot-sl-btn{
	display:inline-flex;align-items:center;gap:8px;font-family:inherit;font-size:15px;font-weight:600;
	padding:13px 26px;border-radius:999px;border:2px solid #fff;background:#fff;color:var(--sl-bg);
	box-shadow:0 6px 18px rgba(0,0,0,.18);transition:background .2s,color .2s
}
.fddot-sl-btn svg{transition:transform .2s}
.fddot-sl-btn:hover,.fddot-sl-btn:focus{background:transparent;color:#fff}
.fddot-sl-btn:hover svg{transform:translateX(3px)}

/* responsywność liczby widocznych plakatów */
@media(max-width:1024px){
	.fddot-sl-card{flex-basis:calc((100% - var(--sl-gap)) / 2)}
}
@media(max-width:620px){
	.fddot-sl{border-radius:20px;padding:22px 16px 26px}
	.fddot-sl-card{flex-basis:100%}
	.fddot-sl-title{font-size:23px}
}
