/* SP2 Kontakt — spójny z „SP2 Rozkład lekcji”: Lato, bordo, karty z ramką 2 px, tło #F5F3F0.
   Kontrasty WCAG 2.1 AA: tekst #2b1f1f / #5f5757 na białym ≥ 6.6:1; biały na #802a29 = 8.5:1;
   status „otwarte” #14532d na #e3f1e7 = 8.9:1. */

.sp2k-wrap {
	container-type: inline-size;
	width: 100%;
}

.elementor-widget-sp2_kontakt {
	width: 100%;
}

.sp2k {
	--sp2k-accent: var(--sp2k-accent-base, #802a29);
	--sp2k-text: #2b1f1f;
	--sp2k-muted: #5f5757;
	--sp2k-line: #e8e3df;
	--sp2k-soft: #f5f3f0;
	--sp2k-card: #fff;
	--sp2k-radius: 1.125rem;
	--sp2k-font: Lato, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;

	display: grid;
	gap: 2.5rem;
	color: var(--sp2k-text);
	font-family: var(--sp2k-font);
	font-size: 1.0625rem;
	line-height: 1.5;
}

.sp2k,
.sp2k *,
.sp2k *::before,
.sp2k *::after {
	box-sizing: border-box;
}

.sp2k p {
	margin: 0;
}

.sp2k-ico {
	flex: none;
	width: 1.15em;
	height: 1.15em;
}

/* ---------- karty ---------- */
.sp2k-card {
	padding: 1.75rem;
	border: 2px solid var(--sp2k-line);
	border-radius: var(--sp2k-radius);
	background: var(--sp2k-card);
}

.sp2k .sp2k-eyebrow {
	margin: 0 0 .9rem;
	color: var(--sp2k-accent);
	font-family: var(--sp2k-font);
	font-size: .9375rem;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: .16em;
	text-transform: uppercase;
}

/* ---------- układ góry ---------- */
.sp2k__top {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	gap: 1.25rem;
	align-items: start;
}

.sp2k__side {
	display: grid;
	gap: 1.25rem;
}

/* ---------- sekretariat ---------- */
.sp2k-card--main {
	padding: 2.25rem;
}

.sp2k-card__head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: .5rem 1rem;
	margin-bottom: .5rem;
}

.sp2k-card__head .sp2k-eyebrow {
	margin: 0;
}

.sp2k-status {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	min-height: 2rem;
	padding: .25rem .85rem;
	border-radius: 999px;
	background: var(--sp2k-soft);
	color: var(--sp2k-muted);
	font-size: .9375rem;
	font-weight: 700;
	line-height: 1.3;
	visibility: hidden;          /* do czasu wyliczenia stanu — miejsce zarezerwowane, zero CLS */
}

.sp2k-status::before {
	content: "";
	width: .55rem;
	height: .55rem;
	border-radius: 50%;
	background: currentColor;
}

.sp2k-status.is-ready {
	visibility: visible;
}

.sp2k-status.is-open {
	background: #e3f1e7;
	color: #14532d;
}

.sp2k .sp2k-phone {
	display: inline-block;
	margin: .25rem 0 .35rem;
	color: var(--sp2k-text);
	font-family: var(--sp2k-font);
	font-size: clamp(2rem, 1.3rem + 2.4vw, 3rem);
	font-weight: 900;
	line-height: 1.1;
	letter-spacing: -.02em;
	text-decoration: none !important; /* Astra: .ast-single-post .entry-content a { underline } */
	font-variant-numeric: tabular-nums;
}

.sp2k .sp2k-phone:hover {
	color: var(--sp2k-accent);
}

.sp2k-mailline {
	font-size: 1.1875rem;
}

.sp2k a {
	color: var(--sp2k-text);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: .2em;
}

.sp2k a:hover {
	color: var(--sp2k-accent);
}

/* ---------- przyciski (jak w rozkładzie) ---------- */
.sp2k-actions {
	display: flex;
	flex-wrap: wrap;
	gap: .75rem;
	margin-top: 1.5rem;
}

.sp2k-actions--center {
	justify-content: center;
}

.sp2k .sp2k-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .55rem;
	min-height: 3.25rem;
	padding: .7rem 1.5rem;
	border: 2px solid var(--sp2k-text);
	border-radius: 999px;
	background: transparent;
	color: var(--sp2k-text);
	font-family: var(--sp2k-font);
	font-size: 1.0625rem;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none !important;
	cursor: pointer;
	transition: background-color .15s, color .15s;
}

.sp2k .sp2k-btn:hover {
	background: var(--sp2k-text);
	color: #fff;
}

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

.sp2k .sp2k-btn--primary:hover {
	background: var(--sp2k-text);
}

.sp2k :is(.sp2k-btn, a, button):focus-visible {
	outline: 3px solid #ffdd00;
	outline-offset: 0;
	box-shadow: 0 0 0 6px #0b0c0c;
}

.sp2k-note {
	margin-top: 1.25rem !important;
	color: var(--sp2k-muted);
	font-size: 1rem;
}

/* ---------- godziny ---------- */
.sp2k-hours {
	margin-top: 2rem;
	padding-top: 1.5rem;
	border-top: 2px solid var(--sp2k-line);
}

.sp2k .sp2k-hours__title {
	margin: 0 0 .75rem;
	color: var(--sp2k-text);
	font-family: var(--sp2k-font);
	font-size: 1.0625rem;
	font-weight: 700;
	text-transform: none;
	letter-spacing: 0;
}

.sp2k-hours__list {
	margin: 0;
}

.sp2k-hours__row {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	padding: .6rem .75rem;
	border-radius: .625rem;
}

.sp2k-hours__row dt,
.sp2k-hours__row dd {
	margin: 0;
}

.sp2k-hours__row dd {
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.sp2k-hours__row.is-closed dd {
	color: var(--sp2k-muted);
	font-weight: 400;
}

.sp2k-hours__row.is-today {
	background: var(--sp2k-soft);
	box-shadow: inset 4px 0 0 var(--sp2k-accent);
}

.sp2k-today {
	margin-left: .35rem;
	padding: .05rem .5rem;
	border-radius: 999px;
	background: var(--sp2k-accent);
	color: #fff;
	font-size: .75rem;
	font-weight: 700;
	vertical-align: .1em;
}

/* ---------- adres, ePUAP ---------- */
.sp2k-address {
	display: grid;
	gap: .1rem;
	margin: 0 0 1.25rem;
	font-style: normal;
}

.sp2k-address__name {
	margin-bottom: .35rem;
	color: var(--sp2k-muted);
	font-size: 1rem;
}

.sp2k-address__line {
	font-size: 1.25rem;
	font-weight: 700;
}

.sp2k .sp2k-link {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	min-height: 2.75rem;
	font-weight: 700;
}

.sp2k-copy {
	display: flex;
	align-items: stretch;
	border: 2px solid var(--sp2k-line);
	border-radius: .75rem;
	overflow: hidden;
}

.sp2k-code {
	flex: 1;
	min-width: 0;
	padding: .7rem .9rem;
	background: var(--sp2k-soft);
	color: var(--sp2k-text);
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: .9375rem;
	overflow-wrap: anywhere;
}

.sp2k .sp2k-copy__btn {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	min-height: 2.75rem;
	padding: 0 1rem;
	border: 0;
	border-left: 2px solid var(--sp2k-line);
	background: #fff;
	color: var(--sp2k-text);
	font-family: var(--sp2k-font);
	font-size: .9375rem;
	font-weight: 700;
	cursor: pointer;
}

.sp2k .sp2k-copy__btn:hover {
	background: var(--sp2k-text);
	color: #fff;
}

.sp2k .sp2k-copy__btn.is-done {
	background: #e3f1e7;
	color: #14532d;
}

.sp2k-small {
	margin-top: .85rem !important;
	color: var(--sp2k-muted);
	font-size: .9375rem;
}

/* ---------- dyrekcja ---------- */
.sp2k-block__title.sp2k-eyebrow {
	margin-bottom: 1rem;
}

.sp2k .sp2k-people {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr));
	gap: 1.25rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.sp2k-person {
	display: flex;
	align-items: flex-start;
	gap: 1.1rem;
	margin: 0;
	padding: 1.5rem;
}

.sp2k-avatar {
	display: grid;
	flex: none;
	place-items: center;
	width: 3.5rem;
	height: 3.5rem;
	border-radius: 50%;
	background: var(--sp2k-accent);
	color: #fff;
	font-size: 1.125rem;
	font-weight: 900;
	letter-spacing: .02em;
}

.sp2k-person__body {
	display: grid;
	gap: .2rem;
	min-width: 0;
}

.sp2k .sp2k-person__name {
	margin: 0;
	color: var(--sp2k-text);
	font-family: var(--sp2k-font);
	font-size: 1.25rem;
	font-weight: 900;
	line-height: 1.25;
	text-transform: none;
	letter-spacing: 0;
}

.sp2k-person__role {
	color: var(--sp2k-muted);
}

.sp2k .sp2k-person__link {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	min-height: 2.75rem;
	overflow-wrap: anywhere;
}

/* ---------- mapa (ładowana po kliknięciu) ---------- */
.sp2k-map {
	position: relative;
	overflow: hidden;
	min-height: 22rem;
	border: 2px solid var(--sp2k-line);
	border-radius: var(--sp2k-radius);
	background-color: var(--sp2k-card);
	background-image:
		linear-gradient(var(--sp2k-soft) 2px, transparent 2px),
		linear-gradient(90deg, var(--sp2k-soft) 2px, transparent 2px);
	background-size: 2.5rem 2.5rem;
}

.sp2k-map__placeholder {
	display: grid;
	justify-items: center;
	align-content: center;
	gap: .35rem;
	min-height: 22rem;
	padding: 2rem 1.25rem;
	text-align: center;
}

.sp2k-map__pin {
	display: grid;
	place-items: center;
	width: 3.5rem;
	height: 3.5rem;
	margin-bottom: .5rem;
	border-radius: 50%;
	background: var(--sp2k-accent);
	color: #fff;
}

.sp2k-map__pin .sp2k-ico {
	width: 1.6rem;
	height: 1.6rem;
}

.sp2k-map__addr {
	font-size: 1.25rem;
	font-weight: 700;
}

.sp2k-map .sp2k-small {
	max-width: 32rem;
}

.sp2k-map iframe {
	display: block;
	width: 100%;
	height: 26rem;
	border: 0;
}

.sp2k-map.is-loaded {
	background-image: none;
}

/* ---------- średnie: jedna kolumna na górze ---------- */
@container (max-width: 52rem) {
	.sp2k__top {
		grid-template-columns: 1fr;
	}

	.sp2k__side {
		grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
	}
}

/* ---------- mobile ---------- */
@container (max-width: 34rem) {
	.sp2k {
		gap: 2rem;
		font-size: 1rem;
	}

	.sp2k-card,
	.sp2k-card--main {
		padding: 1.25rem;
	}

	.sp2k-actions {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: .5rem;
	}

	.sp2k .sp2k-btn {
		min-height: 3rem;
		padding: .6rem .5rem;
		font-size: 1rem;
	}

	.sp2k-actions--center {
		grid-template-columns: 1fr;
	}

	.sp2k-hours__row {
		padding: .55rem .6rem;
	}

	.sp2k-person {
		padding: 1.1rem;
	}

	.sp2k-code {
		padding: .6rem .7rem;
		font-size: .8125rem;
		overflow-wrap: normal;
		white-space: nowrap;
		overflow-x: auto;
	}

	.sp2k .sp2k-copy__btn {
		padding: 0 .75rem;
	}

	.sp2k-avatar {
		width: 3rem;
		height: 3rem;
		font-size: 1rem;
	}

	.sp2k-map,
	.sp2k-map__placeholder {
		min-height: 18rem;
	}

	.sp2k-map iframe {
		height: 20rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.sp2k .sp2k-btn {
		transition: none;
	}
}

@media print {
	.sp2k-actions,
	.sp2k-map,
	.sp2k-copy__btn,
	.sp2k-status {
		display: none !important;
	}
}
