/*
Theme Name: CP Czyste Powietrze
Theme URI: https://example.org/cp-czyste-powietrze
Description: Child theme Blocksy — punkt Czyste Powietrze (Rybnik). Wymaga zainstalowanego motywu Blocksy (folder blocksy). Tylko CSS landingu (.cp-rybnik) + integracja z treścią strony; header/footer/layout = Blocksy. Rezerwacje: wtyczka CP Konsultacje. Nie dodawaj tutaj własnych header.php/footer.php/front-page.php — zablokują builder Blocksy.
Author: FEIO / Projekt
Template: blocksy
Version: 1.0.2
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
Text Domain: cp-czyste-powietrze
*/

/* ------------------------------------------------------------------
   Tylko strona ustawiona jako statyczna strona główna: .cp-landing-page
   (body_class w functions.php — bez listy slugów).
------------------------------------------------------------------- */

body.cp-landing-page .entry-header {
	display: none;
}

/* Landing siedzi w normalnym kontenerze treści Blocksy — bez „full bleed”. */
body.cp-landing-page .entry-content .cp-rybnik {
	margin-top: 0;
	margin-bottom: 0;
}

/* Formularze / harmonogram wtyczki: czytelna szerokość wewnątrz karty (tylko landing). */
body.cp-landing-page .entry-content .cp-k-booking,
body.cp-landing-page .entry-content .cp-k-contact,
body.cp-landing-page .entry-content .cp-k-schedule {
	max-width: 42rem;
}

body.cp-landing-page .entry-content .cp-rybnik .cp-schedule-embed .cp-k-schedule,
body.cp-landing-page .entry-content .cp-rybnik .cp-booking .cp-k-booking {
	max-width: none;
}

/* ========== Landing „Czyste Powietrze — Rybnik” (.cp-rybnik) ========== */

.cp-rybnik {
	--cp-text: #1a1f24;
	--cp-muted: #4a5560;
	--cp-line: #d5dbe3;
	--cp-bg: #f4f6f9;
	--cp-card: #fff;
	--cp-accent: #1e4d7a;
	--cp-accent-soft: #e8eef5;
	--cp-focus: #0b5cab;
	font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	color: var(--cp-text);
	line-height: 1.55;
	font-size: 1rem;
}

.cp-rybnik * {
	box-sizing: border-box;
}

.cp-rybnik a {
	color: var(--cp-accent);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
}

.cp-rybnik a:hover {
	text-decoration-thickness: 2px;
}

.cp-rybnik a:focus-visible {
	outline: 3px solid var(--cp-focus);
	outline-offset: 2px;
}

.cp-rybnik-inner {
	width: 100%;
	max-width: 68rem;
	margin: 0 auto;
	padding: 0 1.25rem;
}

.cp-rybnik section {
	padding: 2.75rem 0;
	scroll-margin-top: 1.25rem;
}

.cp-rybnik .cp-landing-main section {
	border-bottom: 1px solid var(--cp-line);
}

.cp-rybnik .cp-landing-main section:last-child {
	border-bottom: none;
}

.cp-rybnik h1 {
	font-size: clamp(1.75rem, 4vw, 2.35rem);
	line-height: 1.2;
	margin: 0 0 0.75rem;
	font-weight: 700;
	letter-spacing: -0.02em;
}

.cp-rybnik h2 {
	font-size: clamp(1.35rem, 2.8vw, 1.65rem);
	margin: 0 0 1rem;
	font-weight: 700;
	color: var(--cp-text);
}

.cp-rybnik h3 {
	font-size: 1.05rem;
	margin: 0 0 0.35rem;
	font-weight: 600;
}

.cp-rybnik p {
	margin: 0 0 1rem;
	color: var(--cp-text);
	max-width: 52rem;
}

.cp-rybnik .cp-lead {
	font-size: 1.08rem;
	color: var(--cp-muted);
	max-width: 40rem;
}

.cp-rybnik .cp-hero {
	background: linear-gradient(180deg, var(--cp-bg) 0%, #fff 100%);
	padding: clamp(2rem, 5vw, 3.25rem) 0 clamp(2rem, 4vw, 2.75rem);
	border-bottom: 1px solid var(--cp-line);
	box-shadow: 0 1px 0 rgba(255, 255, 255, 0.8) inset;
}

.cp-rybnik .cp-hero + .cp-landing-main {
	margin: 0;
}

.cp-rybnik .cp-hero-narrow {
	max-width: 40rem;
}

.cp-rybnik .cp-cta-row {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: 1.35rem;
}

.cp-rybnik .cp-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.65rem 1.15rem;
	font-size: 1rem;
	font-weight: 600;
	border-radius: 4px;
	border: 2px solid transparent;
	text-decoration: none;
	cursor: pointer;
	transition: background 0.15s, border-color 0.15s, color 0.15s;
}

.cp-rybnik .cp-btn-primary {
	background: var(--cp-accent);
	color: #fff;
	border-color: var(--cp-accent);
}

.cp-rybnik .cp-btn-primary:hover {
	background: #163c61;
	border-color: #163c61;
	color: #fff;
}

.cp-rybnik .cp-btn-secondary {
	background: #fff;
	color: var(--cp-accent);
	border-color: var(--cp-accent);
}

.cp-rybnik .cp-btn-secondary:hover {
	background: var(--cp-accent-soft);
}

/* Karta rezerwacji: wyraźne tło, harmonogram → potem formularz */
.cp-rybnik .cp-booking {
	background: var(--cp-card);
	border: 1px solid var(--cp-line);
	border-radius: 10px;
	padding: 1.75rem 1.5rem 2rem;
	margin-top: 1rem;
	box-shadow: 0 2px 12px rgba(30, 77, 122, 0.08), 0 0 0 1px rgba(30, 77, 122, 0.04);
}

.cp-rybnik .cp-booking::before {
	content: "";
	display: block;
	height: 4px;
	margin: -1.75rem -1.5rem 1.25rem;
	border-radius: 10px 10px 0 0;
	background: linear-gradient(90deg, var(--cp-accent) 0%, #3d7ab5 100%);
}

.cp-rybnik .cp-micro {
	font-size: 0.95rem;
	color: var(--cp-muted);
	margin-bottom: 1.25rem;
	max-width: 48rem;
}

.cp-rybnik .cp-booking .cp-micro {
	margin-bottom: 0;
}

.cp-rybnik .cp-booking-afternote {
	margin-top: 1rem;
	margin-bottom: 0;
}

.cp-rybnik .cp-schedule-embed {
	margin-bottom: 1.25rem;
	padding-bottom: 1.25rem;
	border-bottom: 1px solid var(--cp-line);
}

.cp-rybnik .cp-schedule-embed .cp-k-schedule {
	max-width: none;
	margin-left: 0;
	margin-right: 0;
}

.cp-rybnik .cp-booking-slot {
	background: var(--cp-accent-soft);
	border: 1px solid #c9d6e8;
	border-radius: 8px;
	padding: 1.15rem 1.15rem 1.35rem;
	margin-top: 0;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}

.cp-rybnik .cp-note {
	font-size: 0.92rem;
	color: var(--cp-muted);
	margin-top: 1rem;
	padding: 0.75rem 1rem;
	background: #fafbfc;
	border-left: 4px solid var(--cp-accent);
	border-radius: 0 4px 4px 0;
}

.cp-rybnik .cp-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(15.5rem, 1fr));
	gap: 1rem;
	margin-top: 1.25rem;
}

.cp-rybnik .cp-card {
	background: var(--cp-card);
	border: 1px solid var(--cp-line);
	border-radius: 4px;
	padding: 1.1rem 1.15rem;
	height: 100%;
}

.cp-rybnik .cp-card p {
	font-size: 0.95rem;
	color: var(--cp-muted);
	margin: 0;
	max-width: none;
}

.cp-rybnik ul.cp-check {
	margin: 0.5rem 0 0;
	padding: 0;
	list-style: none;
	max-width: 48rem;
}

.cp-rybnik ul.cp-check li {
	position: relative;
	padding: 0.55rem 0 0.55rem 1.75rem;
	border-bottom: 1px solid #e8ecf1;
	color: var(--cp-text);
}

.cp-rybnik ul.cp-check li:last-child {
	border-bottom: none;
}

.cp-rybnik ul.cp-check li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.85rem;
	width: 0.65rem;
	height: 0.65rem;
	border-radius: 2px;
	background: var(--cp-accent);
	opacity: 0.85;
}

.cp-rybnik ul.cp-links {
	margin: 0.75rem 0 0;
	padding-left: 1.2rem;
	max-width: 42rem;
}

.cp-rybnik ul.cp-links li {
	margin-bottom: 0.5rem;
}

.cp-rybnik .cp-contact-block {
	display: grid;
	gap: 0.35rem;
	margin: 1rem 0;
	font-size: 1rem;
	max-width: 32rem;
}

.cp-rybnik .cp-contact-optional {
	margin: 0 0 1rem;
}

.cp-rybnik .cp-map-ph {
	margin-top: 1.25rem;
	min-height: 12rem;
	background: var(--cp-bg);
	border: 1px dashed var(--cp-line);
	border-radius: 4px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--cp-muted);
	font-size: 0.95rem;
	padding: 1rem;
	text-align: center;
}

@media (max-width: 40rem) {
	.cp-rybnik section {
		padding: 2rem 0;
	}

	.cp-rybnik .cp-booking {
		padding: 1.35rem 1.1rem 1.6rem;
	}

	.cp-rybnik .cp-booking::before {
		margin: -1.35rem -1.1rem 1rem;
	}
}
