.spera-oh { font-size: 1rem; line-height: 1.5; }
.spera-oh__title { margin: 0 0 .5em; }
.spera-oh__status { display: flex; align-items: center; gap: .5em; margin: 0 0 .75em; }
.spera-oh__dot { width: .6em; height: .6em; border-radius: 50%; background: #c62828; display: inline-block; }
.spera-oh__status--open .spera-oh__dot { background: #2e7d32; }
.spera-oh__meta { opacity: .75; font-size: .9em; }
.spera-oh__week { border-collapse: collapse; margin: 0 0 .75em; }
.spera-oh__week th { text-align: left; font-weight: 500; padding: .2em 1em .2em 0; }
.spera-oh__week td { padding: .2em 0; }
.spera-oh__exceptions { list-style: none; margin: 0; padding: 0; font-size: .95em; }
.spera-oh__exceptions li { padding: .15em 0; }

/* Przycisk po godzinach pracy */
.spera-oh__cta { margin: 1em 0 0; }
.spera-oh__cta-note { margin: 0 0 .5em; font-size: .95em; opacity: .8; }
.spera-oh__button {
	display: inline-block; padding: .7em 1.4em; font-weight: 600;
	text-decoration: none; line-height: 1.2; border: 0; cursor: pointer;
	transition: opacity .15s ease, transform .15s ease;
}
.spera-oh__button:hover, .spera-oh__button:focus { opacity: .88; transform: translateY(-1px); text-decoration: none; }

/* Kalendarz */
.spera-cal { margin: 1em 0; max-width: 30em; }
.spera-cal.is-loading { opacity: .55; }
.spera-cal__head { display: flex; align-items: center; justify-content: space-between; gap: .5em; margin-bottom: .5em; }
.spera-cal__month { text-transform: capitalize; }
.spera-cal__nav {
	background: transparent; border: 1px solid currentColor; border-radius: 6px;
	width: 2em; height: 2em; line-height: 1; cursor: pointer; font-size: 1em;
}
.spera-cal__grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.spera-cal__weekday { text-align: center; font-size: .75em; text-transform: uppercase; opacity: .65; padding: .25em 0; }
.spera-cal__empty { display: block; }
.spera-cal__day {
	appearance: none; border: 1px solid rgba(0, 0, 0, .12); border-radius: 8px;
	padding: .55em 0; cursor: pointer; font: inherit; text-align: center; width: 100%;
	background: #eef7ee; color: #1b3a1b;
}
.spera-cal__day.is-closed { background: #fbeaea; color: #6b1f1f; }
.spera-cal__day.is-exception { box-shadow: inset 0 0 0 2px #b8860b; }
.spera-cal__day.is-today { outline: 2px solid currentColor; outline-offset: 1px; }
.spera-cal__day.is-past { opacity: .5; }
.spera-cal__day.is-selected { transform: scale(1.04); }
.spera-cal__day:focus-visible { outline: 2px solid #1d4ed8; outline-offset: 2px; }
.spera-cal__num { font-size: .95em; }
.spera-cal__legend { display: flex; flex-wrap: wrap; gap: .75em; margin-top: .6em; font-size: .8em; opacity: .8; }
.spera-cal__key::before { content: ''; display: inline-block; width: .7em; height: .7em; border-radius: 3px; margin-right: .35em; }
.spera-cal__key--open::before { background: #2e7d32; }
.spera-cal__key--closed::before { background: #c62828; }
.spera-cal__key--exception::before { background: #b8860b; }
.spera-cal__detail { margin-top: .75em; padding: .6em .8em; border-radius: 8px; background: rgba(0, 0, 0, .05); }
.spera-cal__detail-hours { margin-left: .4em; }
.spera-cal__detail-note { display: block; font-size: .9em; opacity: .8; }

@media (max-width: 480px) {
	.spera-cal__day { padding: .45em 0; font-size: .9em; }
}

/* Pilny kontakt — przycisk */
html.spera-oh-live-status-pending [data-spera-conditional="closed"]:not(.spera-oh-live-status--visible),
[data-spera-conditional="closed"][hidden] { display: none !important; }
.spera-urgent { margin: 1em 0; }
.spera-urgent--center { text-align: center; }
.spera-urgent--right { text-align: right; }
.spera-urgent__note { margin: 0 0 .5em; font-size: .95em; opacity: .85; }
.spera-urgent__button {
	display: inline-block;
	padding: var(--spera-btn-pad-y, 12px) var(--spera-btn-pad-x, 20px);
	font-family: var(--spera-font-family, inherit);
	font-size: var(--spera-btn-font-size, 16px);
	font-weight: var(--spera-btn-font-weight, 600);
	line-height: var(--spera-btn-line-height, 1.2);
	text-decoration: none;
	background: var(--spera-btn-bg, #b91c1c);
	color: var(--spera-btn-color, #ffffff);
	border: var(--spera-btn-border-width, 0) solid var(--spera-btn-border-color, transparent);
	border-radius: var(--spera-btn-radius, 8px);
	transition: opacity .15s ease, transform .15s ease;
}
.spera-urgent--width-full .spera-urgent__button { display: block; width: 100%; box-sizing: border-box; text-align: center; }
.spera-shadow--soft .spera-urgent__button, .spera-urgent-bar.spera-shadow--soft { box-shadow: 0 8px 24px rgba(17, 24, 39, .14); }
.spera-shadow--strong .spera-urgent__button, .spera-urgent-bar.spera-shadow--strong { box-shadow: 0 10px 0 rgba(17, 24, 39, .22); }
.spera-hover--lift .spera-urgent__button:hover, .spera-hover--lift .spera-urgent__button:focus { transform: translateY(-2px); }
.spera-hover--darken .spera-urgent__button:hover, .spera-hover--darken .spera-urgent__button:focus { filter: brightness(.88); }
.spera-hover--none .spera-urgent__button:hover, .spera-hover--none .spera-urgent__button:focus { transform: none; }
.spera-urgent__button:hover, .spera-urgent__button:focus { opacity: .94; text-decoration: none; color: var(--spera-btn-color, #ffffff); }

/* Pilny kontakt — pasek na całej witrynie */
.spera-urgent-bar {
	position: relative;
	width: 100%;
	z-index: 99999;
	background: var(--spera-bar-bg, #111827);
	color: var(--spera-bar-color, #ffffff);
	padding: var(--spera-bar-pad-y, 10px) var(--spera-bar-pad-x, 16px);
	font-family: var(--spera-font-family, inherit);
	font-size: var(--spera-bar-font-size, 15px);
	font-weight: var(--spera-bar-font-weight, 500);
	line-height: var(--spera-bar-line-height, 1.4);
	border-style: solid;
	border-color: var(--spera-bar-border-color, transparent);
	border-width: var(--spera-bar-border-width, 0) 0;
	box-sizing: border-box;
	border-radius: var(--spera-bar-radius, 0);
}
.spera-urgent-bar--flow { position: relative; }
.spera-urgent-bar--sticky { position: sticky; left: 0; right: 0; }
.spera-urgent-bar--sticky.spera-urgent-bar--top { top: 0; }
.spera-urgent-bar--sticky.spera-urgent-bar--bottom { bottom: 0; }
.spera-urgent-bar--overlay { position: fixed; left: 0; right: 0; }
.spera-urgent-bar--overlay.spera-urgent-bar--top { top: 0; }
.spera-urgent-bar--overlay.spera-urgent-bar--bottom { bottom: 0; }
.spera-urgent-bar--static { position: static; margin-top: 1em; border-radius: 8px; }

.spera-urgent-bar__inner {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--spera-bar-gap, 14px);
	max-width: var(--spera-bar-max-width, 1200px);
	margin: 0 auto;
	flex-wrap: wrap;
}
.spera-urgent-bar__text { flex: 0 1 auto; }
.spera-urgent-bar--layout-stack .spera-urgent-bar__inner { flex-direction: column; text-align: center; }
.spera-urgent-bar--align-left .spera-urgent-bar__inner { justify-content: flex-start; text-align: left; }
.spera-urgent-bar--align-center .spera-urgent-bar__inner { justify-content: center; text-align: center; }
.spera-urgent-bar--align-right .spera-urgent-bar__inner { justify-content: flex-end; text-align: right; }
.spera-urgent-bar .spera-urgent__button {
	padding: var(--spera-btn-pad-y, 7px) var(--spera-btn-pad-x, 17px);
	font-size: var(--spera-btn-font-size, 15px);
	font-weight: var(--spera-btn-font-weight, 600);
}
.spera-urgent-bar--layout-stack.spera-urgent-bar--button-width-full .spera-urgent__button { display: block; width: 100%; box-sizing: border-box; text-align: center; }
.spera-bar-button-shadow--soft .spera-urgent__button { box-shadow: 0 5px 14px rgba(17, 24, 39, .18); }
.spera-bar-button-shadow--strong .spera-urgent__button { box-shadow: 0 5px 0 rgba(17, 24, 39, .28); }
.spera-bar-button-hover--lift .spera-urgent__button:hover, .spera-bar-button-hover--lift .spera-urgent__button:focus { transform: translateY(-2px); }
.spera-bar-button-hover--darken .spera-urgent__button:hover, .spera-bar-button-hover--darken .spera-urgent__button:focus { filter: brightness(.88); }
.spera-bar-button-hover--none .spera-urgent__button:hover, .spera-bar-button-hover--none .spera-urgent__button:focus { transform: none; filter: none; }
.spera-urgent-bar__close {
	background: none;
	border: 0;
	color: inherit;
	font-size: 1.4em;
	line-height: 1;
	cursor: pointer;
	padding: 0 .2em;
	opacity: .8;
}
.spera-urgent-bar__close:hover { opacity: 1; }

@media (max-width: 600px) {
	.spera-urgent-bar--layout-inline .spera-urgent-bar__inner { flex-direction: column; text-align: center; }
	.spera-urgent-bar--button-width-full .spera-urgent__button { display: block; width: 100%; box-sizing: border-box; text-align: center; }
}
