/* Księga świętych – wygląd zgodny z kolorystyką strony (burgund, brąz, złoto, krem) */
.ks-slider {
	--ks-brown: #5d493d;
	--ks-burgundy: #952a46;
	--ks-gold: #cba347;
	--ks-beige: #ddccae;
	--ks-cream: #fff4e2;
	--ks-text: #363535;
	--ks-radius: 4px;
	position: relative;
	box-sizing: border-box;
	width: 100%;
	max-width: 1080px;
	margin: 0 auto;
	color: var(--ks-text);
	font-family: Montserrat, Helvetica, Arial, sans-serif;
	line-height: 1.7;
}
.ks-slider *, .ks-slider *::before, .ks-slider *::after { box-sizing: border-box; }

/* ---- tor slajdów (przesuwanie palcem działa dzięki scroll-snap) ---- */
.ks-frame { overflow: hidden; border-radius: var(--ks-radius); }
.ks-track {
	display: flex;
	margin: 0;
	padding: 0;
	list-style: none;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}
.ks-track::-webkit-scrollbar { display: none; }
.ks-slide { flex: 0 0 100%; min-width: 0; margin: 0; padding: 0; list-style: none; scroll-snap-align: start; scroll-snap-stop: always; }

/* ---- karta świętego ---- */
.ks-card {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	height: 100%;
	background: #fff;
	border-left: 8px solid var(--ks-gold);
	box-shadow: 0 6px 24px rgba(93, 73, 61, 0.14);
}
.ks-card--bez-zdjecia { grid-template-columns: 1fr; }
.ks-photo { margin: 0; background: var(--ks-beige); min-height: 100%; }
.ks-photo .ks-img { display: block; width: 100%; height: 100%; min-height: 320px; max-height: 560px; object-fit: cover; object-position: center top; }
.ks-body { padding: clamp(20px, 3.2vw, 40px); display: flex; flex-direction: column; justify-content: center; gap: 12px; }

.ks-day {
	align-self: flex-start;
	margin: 0;
	padding: 6px 14px;
	background: var(--ks-burgundy);
	color: #fff;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	line-height: 1.4;
}
.ks-name {
	margin: 0;
	padding: 0;
	color: var(--ks-brown);
	font-family: Merriweather, Georgia, "Times New Roman", serif;
	font-size: clamp(24px, 3.4vw, 36px);
	font-weight: 600;
	line-height: 1.3;
	text-transform: none;
	letter-spacing: 0;
}
.ks-desc { font-size: 17px; font-weight: 400; }
.ks-desc p { margin: 0 0 0.9em; padding: 0; }
.ks-desc p:last-child { margin-bottom: 0; }
.ks-patron { margin: 4px 0 0; padding-top: 12px; border-top: 1px solid var(--ks-beige); font-size: 15px; }
.ks-patron span { color: var(--ks-burgundy); font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; font-size: 13px; }

/* ---- sterowanie ---- */
.ks-controls { display: flex; align-items: center; justify-content: center; gap: 10px; margin-top: 14px; }
.ks-btn {
	display: inline-flex; align-items: center; justify-content: center;
	width: 44px; height: 44px; padding: 0; margin: 0;
	border: 2px solid var(--ks-brown); border-radius: 50%;
	background: #fff; color: var(--ks-brown);
	font-size: 26px; line-height: 1; cursor: pointer;
	transition: background-color 0.2s, color 0.2s;
}
.ks-btn:hover, .ks-btn:focus-visible { background: var(--ks-brown); color: #fff; }
.ks-pause { font-size: 13px; }
.ks-dots { display: flex; align-items: center; gap: 0; }
.ks-dot {
	position: relative; width: 44px; height: 44px; padding: 0; margin: 0;
	border: 0; background: transparent; cursor: pointer;
}
.ks-dot::before {
	content: ""; position: absolute; top: 50%; left: 50%;
	width: 12px; height: 12px; margin: -6px 0 0 -6px; border-radius: 50%;
	background: var(--ks-beige); border: 2px solid var(--ks-brown);
	transition: background-color 0.2s, transform 0.2s;
}
.ks-dot[aria-current="true"]::before { background: var(--ks-burgundy); border-color: var(--ks-burgundy); transform: scale(1.2); }
.ks-slider button:focus-visible { outline: 3px solid var(--ks-burgundy); outline-offset: 2px; }

/* ---- cytat, gdy nie ma świętego na dany dzień ---- */
.ks-quote {
	margin: 0;
	padding: clamp(28px, 5vw, 56px) clamp(22px, 5vw, 64px);
	background: var(--ks-cream);
	border-left: 8px solid var(--ks-gold);
	text-align: center;
	box-shadow: 0 6px 24px rgba(93, 73, 61, 0.1);
}
.ks-quote-label { margin: 0 0 14px; color: var(--ks-burgundy); font-size: 13px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; }
.ks-quote-text { margin: 0; padding: 0; border: 0; background: none; }
.ks-quote-text p {
	margin: 0; padding: 0;
	color: var(--ks-brown);
	font-family: Merriweather, Georgia, "Times New Roman", serif;
	font-size: clamp(21px, 3vw, 32px);
	font-style: italic; font-weight: 400; line-height: 1.5;
}
.ks-quote-author { margin: 18px 0 0; color: var(--ks-text); font-size: 16px; font-weight: 600; }

/* ---- tablet ---- */
@media (max-width: 900px) {
	.ks-card { grid-template-columns: minmax(0, 4fr) minmax(0, 6fr); }
	.ks-photo .ks-img { min-height: 280px; }
	.ks-desc { font-size: 16px; }
}

/* ---- telefon: zdjęcie nad tekstem ---- */
@media (max-width: 640px) {
	.ks-card { grid-template-columns: 1fr; border-left-width: 6px; }
	.ks-photo .ks-img { min-height: 0; height: auto; max-height: 300px; aspect-ratio: 4 / 3; }
	.ks-body { padding: 20px 18px 24px; gap: 10px; }
	.ks-desc { font-size: 16px; line-height: 1.65; }
	.ks-quote { border-left-width: 6px; }
}

@media (prefers-reduced-motion: reduce) {
	.ks-track { scroll-behavior: auto; }
	.ks-btn, .ks-dot::before { transition: none; }
}
