/*
 * Printar Pricing Table — wygląd tabeli cenowej (tier i fixed_packages).
 *
 * Wszystkie selektory są zawężone do .printar-pricing-table-wrapper
 * (kontener renderowany przez PricingTableDisplay), żeby nie ingerować
 * w globalne style motywu. Kolory i wymiary odwzorowują referencyjny JPG.
 * Kolor akcentu zmienia się w jednym miejscu: --printar-pricing-accent.
 */

.printar-pricing-table-wrapper {
	--printar-pricing-accent: #f5b2b1;
	--printar-pricing-accent-soft: #f9d3d0;
	--printar-pricing-grid: #a2a3a6;
	--printar-pricing-group-border: #e3e3e5;
	--printar-pricing-text: #231f20;
	--printar-pricing-muted: #8a8a8d;
	--printar-pricing-background: #fff;

	margin: 0 0 1.5em;
	color: var(--printar-pricing-text);
}

/* Tło aktywnej kolumny wyprowadzone z akcentu (przeglądarki bez color-mix
   zostają przy wartości powyżej, dobranej do JPG). */
@supports (color: color-mix(in srgb, red 50%, white)) {
	.printar-pricing-table-wrapper {
		--printar-pricing-accent-soft: color-mix(in srgb, var(--printar-pricing-accent) 60%, #fff);
	}
}

/* Mobile: poziome przewijanie zamiast osobnego układu. */
.printar-pricing-table-wrapper .printar-pricing-table__scroll {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	margin: 0;
	padding: 0;
}

.printar-pricing-table-wrapper .printar-pricing-table {
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: separate;
	border-spacing: 0;
	background: transparent;
	color: var(--printar-pricing-text);
	font-size: 15px;
	line-height: 1.3;
}

.printar-pricing-table-wrapper .printar-pricing-table th,
.printar-pricing-table-wrapper .printar-pricing-table td {
	min-width: 6em;
	padding: 14px 10px;
	border: 0;
	border-right: 1px solid var(--printar-pricing-grid);
	border-bottom: 1px solid var(--printar-pricing-grid);
	background: var(--printar-pricing-background);
	color: inherit;
	font-size: inherit;
	font-weight: 700;
	text-align: center;
	vertical-align: middle;
	white-space: nowrap;
}

/* Górna krawędź tabeli (wiersz przedziałów). */
.printar-pricing-table-wrapper .printar-pricing-table thead tr:last-child > * {
	border-top: 1px solid var(--printar-pricing-grid);
}

/* Pierwsza kolumna: nagłówki wierszy, przyklejone przy przewijaniu. */
.printar-pricing-table-wrapper .printar-pricing-table .printar-pricing-table__row-header {
	position: sticky;
	left: 0;
	z-index: 2;
	border-left: 1px solid var(--printar-pricing-grid);
	text-align: left;
	padding-left: 16px;
}

.printar-pricing-table-wrapper .printar-pricing-table__row-subheader {
	display: block;
	margin-top: 4px;
	color: var(--printar-pricing-muted);
	font-size: 12px;
	font-weight: 400;
}

/* Wiersz cen — wyraźnie wyższy niż wiersz przedziałów. */
.printar-pricing-table-wrapper .printar-pricing-table tbody th,
.printar-pricing-table-wrapper .printar-pricing-table tbody td {
	padding-top: 22px;
	padding-bottom: 22px;
}

.printar-pricing-table-wrapper .printar-pricing-table__price-net {
	display: block;
	font-size: 16px;
	font-weight: 700;
}

.printar-pricing-table-wrapper .printar-pricing-table__price-gross {
	display: block;
	margin-top: 4px;
	color: var(--printar-pricing-muted);
	font-size: 12px;
	font-weight: 400;
}

/* wc_price() — neutralizacja kolorów/rozmiarów cen z motywu. */
.printar-pricing-table-wrapper .printar-pricing-table .amount,
.printar-pricing-table-wrapper .printar-pricing-table bdi {
	color: inherit;
	font: inherit;
}

/* Grupa "Więcej zamówisz mniej zapłacisz". */
.printar-pricing-table-wrapper .printar-pricing-table .printar-pricing-table__group-spacer {
	padding: 0;
	border: 0;
	background: transparent;
}

.printar-pricing-table-wrapper .printar-pricing-table .printar-pricing-table__group-banner {
	padding: 8px 12px;
	border: 0;
	border-radius: 14px 14px 0 0;
	background: var(--printar-pricing-accent);
	font-weight: 700;
}

.printar-pricing-table-wrapper .printar-pricing-table thead tr:last-child > .printar-pricing-table__cell--grouped {
	border-top-color: var(--printar-pricing-group-border);
}

.printar-pricing-table-wrapper .printar-pricing-table .printar-pricing-table__cell--group-start {
	border-left: 4px solid var(--printar-pricing-group-border);
}

.printar-pricing-table-wrapper .printar-pricing-table .printar-pricing-table__cell--group-end {
	border-right: 4px solid var(--printar-pricing-group-border);
}

.printar-pricing-table-wrapper .printar-pricing-table tbody .printar-pricing-table__cell--grouped {
	border-bottom: 4px solid var(--printar-pricing-group-border);
}

/* Kolumna tuż przed grupą — bez własnej linii, ramkę grupy daje group-start. */
.printar-pricing-table-wrapper .printar-pricing-table :is(th, td):has(+ .printar-pricing-table__cell--group-start) {
	border-right: 0;
}

/* Aktywny przedział (tier) / zaznaczony pakiet — klasa z PricingTableView. */
.printar-pricing-table-wrapper .printar-pricing-table .is-active {
	background: var(--printar-pricing-accent-soft);
}

/* fixed_packages: cała kolumna klikalna (etykiety wypełniają komórki). */
.printar-pricing-table-wrapper .printar-pricing-table .printar-pricing-table__option {
	padding: 0;
}

.printar-pricing-table-wrapper .printar-pricing-table__option-label {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 4px;
	margin: 0;
	padding: 14px 10px;
	cursor: pointer;
	font: inherit;
	color: inherit;
}

.printar-pricing-table-wrapper .printar-pricing-table thead .printar-pricing-table__option-label {
	flex-direction: row;
	gap: 8px;
}

.printar-pricing-table-wrapper .printar-pricing-table tbody .printar-pricing-table__option-label {
	padding-top: 22px;
	padding-bottom: 22px;
}

.printar-pricing-table-wrapper .printar-pricing-table__option-label .printar-pricing-table__price-gross {
	margin-top: 0;
}

.printar-pricing-table-wrapper .printar-pricing-table__radio {
	width: 16px;
	height: 16px;
	margin: 0;
	accent-color: var(--printar-pricing-text);
	cursor: pointer;
}

.printar-pricing-table-wrapper .printar-pricing-table .printar-pricing-table__option:has(.printar-pricing-table__radio:focus-visible) {
	outline: 2px solid var(--printar-pricing-text);
	outline-offset: -3px;
}

/* Przypis pod tabelą. */
.printar-pricing-table-wrapper .printar-pricing-table__note {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 12px 0 0;
	color: var(--printar-pricing-text);
	font-size: 13px;
	line-height: 1.4;
}

.printar-pricing-table-wrapper .printar-pricing-table__note-icon {
	flex: none;
	color: var(--printar-pricing-muted);
}

/* Pole ilości (tier) — poza tabelą, jak dotąd. */
.printar-pricing-table-wrapper .printar-quantity-field--tier {
	margin-top: 16px;
}

.printar-pricing-table-wrapper .printar-quantity-field--tier .printar-quantity-field__label {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	font-weight: 700;
}

.printar-pricing-table-wrapper .printar-quantity-field--tier .printar-quantity-field__input {
	width: 8em;
	margin: 0;
	padding: 8px 10px;
	border: 1px solid var(--printar-pricing-grid);
	border-radius: 4px;
	background: var(--printar-pricing-background);
	color: var(--printar-pricing-text);
	font: inherit;
}

@media (max-width: 480px) {
	.printar-pricing-table-wrapper .printar-pricing-table {
		font-size: 14px;
	}

	.printar-pricing-table-wrapper .printar-pricing-table th,
	.printar-pricing-table-wrapper .printar-pricing-table td {
		min-width: 6.5em;
		padding-left: 10px;
		padding-right: 10px;
	}
}

/* tier: cała kolumna progu klikalna — wybór najniższej ilości zakresu.
   W nagłówku zwykły przycisk (klawiatura), wyglądający jak tekst etykiety. */
.printar-pricing-table-wrapper .printar-pricing-table [data-printar-select-quantity] {
	cursor: pointer;
}

.printar-pricing-table-wrapper .printar-pricing-table__tier-select {
	-webkit-appearance: none;
	appearance: none;
	display: block;
	width: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
	color: inherit;
	font: inherit;
	letter-spacing: inherit;
	line-height: inherit;
	text-align: inherit;
	text-transform: inherit;
	cursor: pointer;
}

.printar-pricing-table-wrapper .printar-pricing-table__tier-select:focus-visible {
	outline: 2px solid var(--printar-pricing-text);
	outline-offset: 2px;
}

/* Skeleton loader — kontener dynamiczny (init.js) w czasie pobierania tabeli
   wariantu (PricingTableView). Bez animacji przy prefers-reduced-motion. */
.printar-pricing-table-dynamic .printar-pricing-skeleton {
	--printar-pricing-skeleton-base: #ececec;
	--printar-pricing-skeleton-shine: #f7f7f7;

	margin: 0 0 1.5em;
}

.printar-pricing-skeleton__banner,
.printar-pricing-skeleton__cell,
.printar-pricing-skeleton__note {
	display: block;
	border-radius: 3px;
	background: linear-gradient(90deg, var(--printar-pricing-skeleton-base) 25%, var(--printar-pricing-skeleton-shine) 50%, var(--printar-pricing-skeleton-base) 75%);
	background-size: 200% 100%;
	animation: printar-pricing-skeleton 1.2s ease-in-out infinite;
}

.printar-pricing-skeleton__banner {
	width: 55%;
	height: 22px;
	margin: 0 0 8px auto;
}

.printar-pricing-skeleton__row {
	display: grid;
	grid-template-columns: 1.4fr repeat(5, 1fr);
	gap: 6px;
	margin: 0 0 6px;
}

.printar-pricing-skeleton__cell {
	height: 34px;
}

.printar-pricing-skeleton__cell--header {
	opacity: 0.8;
}

.printar-pricing-skeleton__note {
	width: 70%;
	height: 14px;
	margin: 10px 0 0;
}

.printar-pricing-skeleton__status {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

@keyframes printar-pricing-skeleton {
	0% {
		background-position: 100% 0;
	}

	100% {
		background-position: -100% 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	.printar-pricing-skeleton__banner,
	.printar-pricing-skeleton__cell,
	.printar-pricing-skeleton__note {
		animation: none;
	}
}
