/*
 * WCRM plan table ([wcrm_plan_table] / Elementor „Planų lentelė“, PLANS-47 §7–§10).
 *
 * One semantic table for every width: ≥ 640 px of container a real table with a sticky header; below that the same
 * DOM becomes shopera's phone layout (plans side by side in a sticky header, each feature = a full-width name band +
 * a row of values) through a container query. Theme-proof: every rule is scoped (≥ 0,2,1), table parts are reset
 * (Astra / Blocksy borders, stripes, flex cells), links and buttons define every state.
 * Colours: the widget's variables (--wcrm-pt-*) win over the settings layer (--wcrm-pt-s-*, inline on the wrapper).
 */

.wcrm-pt {
	--_hb: var(--wcrm-pt-head-bg, var(--wcrm-pt-s-head-bg, #000));
	--_hf: var(--wcrm-pt-head-fg, var(--wcrm-pt-s-head-fg, #fff));
	--_sb: var(--wcrm-pt-section-bg, var(--wcrm-pt-s-section-bg, #ecf3f6));
	--_st: var(--wcrm-pt-stripe, var(--wcrm-pt-s-stripe, #f9f9f9));
	--_ac: var(--wcrm-pt-accent, var(--wcrm-pt-s-accent, var(--ast-global-color-0, var(--theme-palette-color-1, #1e73be))));
	--_cb: var(--wcrm-pt-cta-bg, var(--wcrm-pt-s-cta-bg, var(--_hf)));
	--_cf: var(--wcrm-pt-cta-fg, var(--wcrm-pt-s-cta-fg, var(--_hb)));
	--_top: var(--wcrm-pt-sticky-top, var(--wcrm-pt-s-top, 0px));
	--_ln: rgba(0, 0, 0, .08);
	--_mu: #5f656b;
	container: wcrm-pt / inline-size;
	position: relative;
	box-sizing: border-box;
	width: 100%;
	margin: 0 0 1.5em;
	overflow-x: clip;
	overflow-anchor: none;
	clear: both;
	font-size: 15px;
	line-height: 1.5;
	text-align: left;
}

.wcrm-pt.is-edge {
	padding-inline: max(16px, env(safe-area-inset-left)) max(16px, env(safe-area-inset-right));
}

.elementor-widget-wcrm_plan_table .elementor-widget-container {
	overflow: visible;
}

.e-con > .elementor-widget-wcrm_plan_table {
	width: var(--container-widget-width, 100%);
}

.wcrm-pt .wcrm-pt__sr {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

/* Above and below the table. */
.wcrm-pt .wcrm-pt__intro {
	margin: 0 0 14px;
}

.wcrm-pt .wcrm-pt__intro p,
.wcrm-pt p.wcrm-pt__legend,
.wcrm-pt p.wcrm-pt__footnote {
	margin: 0;
	padding: 0;
	color: var(--_mu);
	font-size: 13px;
	line-height: 1.6;
}

.wcrm-pt p.wcrm-pt__legend {
	display: flex;
	flex-wrap: wrap;
	gap: 2px 18px;
	margin: 0 0 12px;
	line-height: 1.9;
}

.wcrm-pt p.wcrm-pt__footnote {
	margin: 10px 0 0;
}

.wcrm-pt p.wcrm-pt__banner,
.wcrm-pt p.wcrm-pt__warn {
	margin: 0 0 12px;
	padding: 8px 12px;
	border-left: 4px solid #dba617;
	background: #fcf9e8;
	color: #1d2327;
	font-size: 14px;
}

.wcrm-pt p.wcrm-pt__warn {
	border-color: #d63638;
	background: #fcf0f1;
}

/* Reset of the table parts (themes style bare table / th / td). */
.wcrm-pt table.wcrm-pt__table {
	display: table;
	table-layout: fixed;
	width: 100%;
	max-width: none;
	margin: 0;
	border: 0;
	border-collapse: separate;
	border-spacing: 0;
	background: #fff;
	color: inherit;
	font: inherit;
}

.wcrm-pt .wcrm-pt__table :is(caption, thead, tbody, tfoot, tr, th, td) {
	width: auto;
	height: auto;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	box-shadow: none;
	color: inherit;
	font: inherit;
	text-align: inherit;
	vertical-align: middle;
	white-space: normal;
}

.wcrm-pt .wcrm-pt__table thead { display: table-header-group; }
.wcrm-pt .wcrm-pt__table tbody { display: table-row-group; }
.wcrm-pt .wcrm-pt__table tfoot { display: table-footer-group; }
.wcrm-pt .wcrm-pt__table tr { display: table-row; }
.wcrm-pt .wcrm-pt__table :is(th, td) { display: table-cell; }

/* Header and footer: plans, prices, the period switch, CTAs. */
.wcrm-pt .wcrm-pt__table thead th {
	position: sticky;
	top: var(--_top);
	z-index: 3;
	padding: 14px 8px;
	background: var(--_hb);
	color: var(--_hf);
}

.wcrm-pt .wcrm-pt__table tfoot td {
	padding: 16px 8px;
	background: var(--_hb);
	color: var(--_hf);
	vertical-align: top;
}

.wcrm-pt .wcrm-pt__table thead th.wcrm-pt__plan {
	width: clamp(144px, 18cqi, 220px);
}

.wcrm-pt:is([data-cols="1"], [data-cols="2"]) .wcrm-pt__table thead th.wcrm-pt__plan {
	width: clamp(192px, 24cqi, 256px);
}

.wcrm-pt .wcrm-pt__table .wcrm-pt__plan {
	padding-inline: 6px;
	text-align: center;
	vertical-align: bottom;
}

.wcrm-pt :is(.wcrm-pt__main, .wcrm-pt__nw),
.wcrm-pt .wcrm-pt__table .wcrm-pt__lw {
	white-space: nowrap;
}

.wcrm-pt .wcrm-pt__table .wcrm-pt__corner {
	padding-left: 12px;
	text-align: left;
}

.wcrm-pt .wcrm-pt__clabel,
.wcrm-pt .wcrm-pt__pname {
	display: block;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.3;
}

.wcrm-pt .wcrm-pt__clabel {
	font-size: 15px;
}

.wcrm-pt .wcrm-pt__badge {
	display: inline-block;
	margin: 0 0 6px;
	padding: 2px 10px;
	border-radius: 999px;
	background: var(--_ac);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .03em;
	text-transform: uppercase;
}

.wcrm-pt .wcrm-pt__tagline,
.wcrm-pt .wcrm-pt__bill,
.wcrm-pt .wcrm-pt__fee,
.wcrm-pt .wcrm-pt__only {
	display: block;
	font-size: 12px;
	font-weight: 400;
	line-height: 1.4;
	opacity: .8;
}

.wcrm-pt .wcrm-pt__price {
	display: none;
	margin: 6px 0 0;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.3;
}

.wcrm-pt .wcrm-pt__price.is-on {
	display: block;
}

/* No-JS period switching; the script keeps .is-on in step. */
.wcrm-pt:has(.wcrm-pt__periods :checked) .wcrm-pt__price {
	display: none;
}

.wcrm-pt:has([data-i="0"]:checked) .wcrm-pt__price[data-i="0"],
.wcrm-pt:has([data-i="1"]:checked) .wcrm-pt__price[data-i="1"],
.wcrm-pt:has([data-i="2"]:checked) .wcrm-pt__price[data-i="2"],
.wcrm-pt:has([data-i="3"]:checked) .wcrm-pt__price[data-i="3"] {
	display: block;
}

.wcrm-pt .wcrm-pt__table a.wcrm-pt__cta,
.wcrm-pt .wcrm-pt__table a.wcrm-pt__cta:link,
.wcrm-pt .wcrm-pt__table a.wcrm-pt__cta:visited,
.wcrm-pt .wcrm-pt__table a.wcrm-pt__cta:hover,
.wcrm-pt .wcrm-pt__table a.wcrm-pt__cta:focus,
.wcrm-pt .wcrm-pt__table a.wcrm-pt__cta:active {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-height: 40px;
	margin: 10px 0 0;
	padding: 6px 20px;
	border: 0;
	border-radius: 999px;
	background: var(--_cb);
	box-shadow: none;
	color: var(--_cf);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	transition: opacity .15s ease;
}

.wcrm-pt .wcrm-pt__table .is-hl a.wcrm-pt__cta:is(:link, :visited, :hover, :focus, :active) {
	background: var(--_ac);
	color: #fff;
}

.wcrm-pt .wcrm-pt__table a.wcrm-pt__cta:is(:hover, :active) {
	opacity: .85;
}

.wcrm-pt .wcrm-pt__table a.wcrm-pt__cta::after {
	content: "";
	position: absolute;
	inset: -6px -2px;
}

.wcrm-pt a:focus-visible,
.wcrm-pt button:focus-visible {
	outline: 2px solid var(--_ac);
	outline-offset: 2px;
}

.wcrm-pt .wcrm-pt__table :is(thead, tfoot) a:focus-visible {
	outline-color: var(--_hf);
}

/* The period switch (a segmented control of native radios). */
.wcrm-pt fieldset.wcrm-pt__periods {
	display: inline-flex;
	flex-wrap: wrap;
	gap: 2px;
	min-width: 0;
	margin: 10px 0 0;
	padding: 3px;
	border: 0;
	border-radius: 16px;
	background: rgba(255, 255, 255, .16);
}

.wcrm-pt .wcrm-pt__periods label {
	position: relative;
	display: block;
	margin: 0;
	padding: 0;
	color: var(--_hf);
	cursor: pointer;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.2;
}

.wcrm-pt .wcrm-pt__periods input {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	opacity: 0;
	cursor: pointer;
	appearance: none;
}

.wcrm-pt .wcrm-pt__pt {
	display: block;
	padding: 7px 12px;
	border-radius: 999px;
	white-space: nowrap;
}

.wcrm-pt .wcrm-pt__periods input:checked + .wcrm-pt__pt {
	background: var(--_hf);
	color: var(--_hb);
}

.wcrm-pt .wcrm-pt__periods input:focus-visible + .wcrm-pt__pt {
	outline: 2px solid var(--_hf);
	outline-offset: 1px;
}

.wcrm-pt .wcrm-pt__save {
	display: inline-block;
	margin-left: 4px;
	padding: 0 6px;
	border-radius: 999px;
	background: #d7f5dd;
	color: #135e2b;
	font-size: 11px;
	font-weight: 700;
}

/* Stuck header: compact (badge, tagline, sub-lines out; a 32 px CTA with a 44 px hit area). */
.wcrm-pt.is-stuck .wcrm-pt__table thead :is(.wcrm-pt__badge, .wcrm-pt__tagline, .wcrm-pt__bill, .wcrm-pt__fee) {
	display: none;
}

.wcrm-pt.is-stuck .wcrm-pt__table thead th {
	padding-top: 8px;
	padding-bottom: 8px;
}

.wcrm-pt.is-stuck .wcrm-pt__table thead .wcrm-pt__price {
	margin-top: 2px;
	font-size: 15px;
}

.wcrm-pt.is-stuck .wcrm-pt__table thead a.wcrm-pt__cta:is(:link, :visited, :hover, :focus, :active) {
	min-height: 32px;
	margin-top: 6px;
	padding: 4px 16px;
	font-size: 13px;
}

/* Body: sections, stripes, values. */
.wcrm-pt .wcrm-pt__table .wcrm-pt__sec > th {
	padding: 10px 12px;
	border-bottom: 1px solid var(--_ln);
	background: var(--_sb);
	font-weight: 700;
	text-align: left;
}

.wcrm-pt .wcrm-pt__table .wcrm-pt__sub > th {
	padding: 14px 12px 6px;
	border-bottom: 1px solid var(--_ln);
	background: #fff;
	color: var(--_mu);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.wcrm-pt .wcrm-pt__table .wcrm-pt__row > :is(th, td) {
	padding: 8px 12px;
	border-bottom: 1px solid var(--_ln);
	background: #fff;
}

.wcrm-pt .wcrm-pt__table .wcrm-pt__row.is-alt > :is(th, td) {
	background: var(--_st);
}

.wcrm-pt .wcrm-pt__table .wcrm-pt__row > th {
	position: relative;
	font-weight: 400;
	text-align: left;
	overflow-wrap: anywhere;
}

.wcrm-pt .wcrm-pt__table .wcrm-pt__row > td {
	text-align: center;
}

/* The blank spacer the script puts under a stuck (compacted) header: the rows keep their place (no layout shift). */
.wcrm-pt .wcrm-pt__table tbody.wcrm-pt__gap td {
	padding: 0;
	border: 0;
	background: #fff;
}

.wcrm-pt .wcrm-pt__table .wcrm-pt__row[data-tip] > th {
	cursor: pointer;
}

@media (hover: hover) {
	.wcrm-pt .wcrm-pt__table .wcrm-pt__row:hover > :is(th, td) {
		background-image: linear-gradient(rgba(0, 0, 0, .035), rgba(0, 0, 0, .035));
	}
}

.wcrm-pt .wcrm-pt__table .is-hl {
	box-shadow: inset 2px 0 0 var(--_ac), inset -2px 0 0 var(--_ac);
}

.wcrm-pt .wcrm-pt__table thead .is-hl {
	box-shadow: inset 0 4px 0 var(--_ac), inset 2px 0 0 var(--_ac), inset -2px 0 0 var(--_ac);
}

.wcrm-pt .wcrm-pt__y {
	display: inline-block;
	width: 16px;
	height: 16px;
	vertical-align: -3px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M6.1 13.6 1.2 8.7l1.9-1.9 3 3 6.8-6.9 1.9 1.9z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M6.1 13.6 1.2 8.7l1.9-1.9 3 3 6.8-6.9 1.9 1.9z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.wcrm-pt .wcrm-pt__n {
	display: inline-block;
	width: 16px;
	height: 2px;
	vertical-align: middle;
	border-radius: 1px;
	background: #8a8f94;
}

.wcrm-pt .wcrm-pt__add {
	display: inline-block;
	padding: 1px 9px;
	border-radius: 999px;
	background: rgba(0, 0, 0, .065);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.5;
}

.wcrm-pt .wcrm-pt__ask {
	color: var(--_mu);
}

.wcrm-pt a.wcrm-pt__buy:is(:link, :visited, :hover, :focus, :active) {
	color: inherit;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* „?“ – created by the script; its ::after makes the whole name cell the tap target. */
.wcrm-pt .wcrm-pt__table button.wcrm-pt__tip {
	all: unset;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 20px;
	height: 20px;
	margin: 0 0 0 6px;
	border: 1px solid currentColor;
	border-radius: 50%;
	color: var(--_mu);
	cursor: pointer;
	font-family: inherit;
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
	vertical-align: 1px;
}

/* The „?“ is decoration (the button is named „Plačiau apie …“): no „klaustukas“ read out where alt text is supported. */
.wcrm-pt .wcrm-pt__table button.wcrm-pt__tip::before {
	content: "?";
	content: "?" / "";
}

/* Until the script adds the „?“ its place is kept, so rows do not grow when it appears (no load shift). */
.wcrm-pt:not(.is-ready) .wcrm-pt__table .wcrm-pt__row[data-tip] > th::after {
	content: "";
	display: inline-block;
	width: 26px;
	height: 1px;
}

.wcrm-pt .wcrm-pt__table button.wcrm-pt__tip::after {
	content: "";
	position: absolute;
	inset: 0;
}

.wcrm-pt .wcrm-pt__table .wcrm-pt__row > th:hover .wcrm-pt__tip,
.wcrm-pt .wcrm-pt__table button.wcrm-pt__tip:focus-visible {
	background: var(--_ac);
	border-color: var(--_ac);
	color: #fff;
}

.wcrm-pt .wcrm-pt__table button.wcrm-pt__tip:focus-visible {
	outline: 2px solid var(--_ac);
	outline-offset: 2px;
}

/* Tablet (container 640–900 px): narrower plan columns and a compact period switch, so the switch stays on one line
   and names keep their width. */
@container wcrm-pt (min-width: 640px) and (max-width: 899.98px) {
	.wcrm-pt .wcrm-pt__table thead th.wcrm-pt__plan { width: clamp(128px, 17cqi, 220px); }
	.wcrm-pt:is([data-cols="1"], [data-cols="2"]) .wcrm-pt__table thead th.wcrm-pt__plan { width: clamp(150px, 21cqi, 256px); }
	.wcrm-pt .wcrm-pt__price { font-size: 15px; }
	.wcrm-pt .wcrm-pt__periods label { font-size: 12px; }
	.wcrm-pt .wcrm-pt__pt { padding: 6px 9px; }
	.wcrm-pt .wcrm-pt__save { margin-left: 3px; padding: 0 5px; font-size: 10.5px; }
}

/* Phone layout (§7.4). Keep in step with the @supports fallback at the end. */
@container wcrm-pt (max-width: 639.98px) {
	.wcrm-pt table.wcrm-pt__table,
	.wcrm-pt .wcrm-pt__table > :is(thead, tbody, tfoot) { display: block; width: 100%; }
	.wcrm-pt .wcrm-pt__table > thead { position: sticky; top: var(--_top); z-index: 3; background: var(--_hb); }
	.wcrm-pt .wcrm-pt__table tr { display: grid; grid-template-columns: repeat(var(--wcrm-pt-cols), minmax(0, 1fr)); }
	.wcrm-pt .wcrm-pt__table :is(th, td) { display: block; min-width: 0; }
	.wcrm-pt .wcrm-pt__table thead th { position: static; padding: 10px 4px; }
	.wcrm-pt[data-cols] .wcrm-pt__table thead th.wcrm-pt__plan { width: auto; }
	.wcrm-pt .wcrm-pt__table :is(.wcrm-pt__corner, .wcrm-pt__row > th, .wcrm-pt__sec > th, .wcrm-pt__sub > th) { grid-column: 1 / -1; }
	.wcrm-pt .wcrm-pt__table thead .wcrm-pt__corner { padding: 10px 12px 2px; text-align: center; }
	.wcrm-pt .wcrm-pt__table :is(tfoot .wcrm-pt__corner, .wcrm-pt__corner.is-empty), .wcrm-pt .wcrm-pt__clabel { display: none; }
	.wcrm-pt fieldset.wcrm-pt__periods { display: flex; margin: 0; }
	.wcrm-pt .wcrm-pt__periods label { flex: 1 1 0; }
	.wcrm-pt .wcrm-pt__pt { padding: 8px 6px; text-align: center; white-space: normal; }
	.wcrm-pt .wcrm-pt__pname { font-size: 14px; }
	.wcrm-pt .wcrm-pt__price { margin: 2px 0 6px; font-size: clamp(11px, 3.4cqi, 13px); }
	.wcrm-pt .wcrm-pt__main { white-space: normal; }
	.wcrm-pt .wcrm-pt__nw { display: block; white-space: normal; }
	.wcrm-pt :is(.wcrm-pt__bill, .wcrm-pt__fee, .wcrm-pt__only, .wcrm-pt__tagline) { font-size: 11px; }
	/* Plan cells: name and price on top, the button at the bottom – buttons line up whatever the price wraps to. */
	.wcrm-pt .wcrm-pt__table :is(thead th, tfoot td).wcrm-pt__plan { display: flex; flex-direction: column; align-items: center; }
	.wcrm-pt .wcrm-pt__table a.wcrm-pt__cta:is(:link, :visited, :hover, :focus, :active) { max-width: 100%; min-height: 32px; margin-top: auto; padding: 4px 8px; font-size: clamp(11px, 3.6cqi, 13px); }
	.wcrm-pt.is-stuck .wcrm-pt__table thead .wcrm-pt__corner { display: none; }
	.wcrm-pt.is-stuck .wcrm-pt__table thead th { padding-top: 6px; padding-bottom: 6px; }
	.wcrm-pt.is-stuck .wcrm-pt__table thead .wcrm-pt__price { margin: 1px 0 4px; font-size: clamp(11px, 3.4cqi, 12px); }
	.wcrm-pt .wcrm-pt__table .wcrm-pt__row > th,
	.wcrm-pt .wcrm-pt__table .wcrm-pt__row.is-alt > th { padding: 8px 12px; border: 0; background: var(--_st); }
	.wcrm-pt .wcrm-pt__table .wcrm-pt__row > td,
	.wcrm-pt .wcrm-pt__table .wcrm-pt__row.is-alt > td { padding: 8px 4px; background: #fff; }
	.wcrm-pt .wcrm-pt__add { padding: 1px 6px; font-size: 13px; }
	.wcrm-pt .wcrm-pt__table .wcrm-pt__gap td { grid-column: 1 / -1; }
}

@supports not (container-type: inline-size) {
	@media (max-width: 767px) {
		.wcrm-pt table.wcrm-pt__table,
		.wcrm-pt .wcrm-pt__table > :is(thead, tbody, tfoot) { display: block; width: 100%; }
		.wcrm-pt .wcrm-pt__table > thead { position: sticky; top: var(--_top); z-index: 3; background: var(--_hb); }
		.wcrm-pt .wcrm-pt__table tr { display: grid; grid-template-columns: repeat(var(--wcrm-pt-cols), minmax(0, 1fr)); }
		.wcrm-pt .wcrm-pt__table :is(th, td) { display: block; min-width: 0; }
		.wcrm-pt .wcrm-pt__table thead th { position: static; padding: 10px 4px; }
		.wcrm-pt[data-cols] .wcrm-pt__table thead th.wcrm-pt__plan { width: auto; }
		.wcrm-pt .wcrm-pt__table :is(.wcrm-pt__corner, .wcrm-pt__row > th, .wcrm-pt__sec > th, .wcrm-pt__sub > th) { grid-column: 1 / -1; }
		.wcrm-pt .wcrm-pt__table thead .wcrm-pt__corner { padding: 10px 12px 2px; text-align: center; }
		.wcrm-pt .wcrm-pt__table :is(tfoot .wcrm-pt__corner, .wcrm-pt__corner.is-empty), .wcrm-pt .wcrm-pt__clabel { display: none; }
		.wcrm-pt fieldset.wcrm-pt__periods { display: flex; margin: 0; }
		.wcrm-pt .wcrm-pt__periods label { flex: 1 1 0; }
		.wcrm-pt .wcrm-pt__pt { padding: 8px 6px; text-align: center; white-space: normal; }
		.wcrm-pt .wcrm-pt__pname { font-size: 14px; }
		.wcrm-pt .wcrm-pt__price { margin: 2px 0 6px; font-size: 12px; }
		.wcrm-pt .wcrm-pt__main { white-space: normal; }
		.wcrm-pt .wcrm-pt__nw { display: block; white-space: normal; }
		.wcrm-pt .wcrm-pt__table :is(thead th, tfoot td).wcrm-pt__plan { display: flex; flex-direction: column; align-items: center; }
		.wcrm-pt .wcrm-pt__table a.wcrm-pt__cta:is(:link, :visited, :hover, :focus, :active) { max-width: 100%; min-height: 32px; margin-top: auto; padding: 4px 8px; font-size: 12px; }
		.wcrm-pt.is-stuck .wcrm-pt__table thead .wcrm-pt__corner { display: none; }
		.wcrm-pt.is-stuck .wcrm-pt__table thead th { padding-top: 6px; padding-bottom: 6px; }
		.wcrm-pt .wcrm-pt__table .wcrm-pt__row > th,
		.wcrm-pt .wcrm-pt__table .wcrm-pt__row.is-alt > th { padding: 8px 12px; border: 0; background: var(--_st); }
		.wcrm-pt .wcrm-pt__table .wcrm-pt__row > td,
		.wcrm-pt .wcrm-pt__table .wcrm-pt__row.is-alt > td { padding: 8px 4px; background: #fff; }
		.wcrm-pt .wcrm-pt__table .wcrm-pt__gap td { grid-column: 1 / -1; }
	}
}

/* Tooltip dialog (§8): a centred white card, the Blocksy popup look. */
html.wcrm-pt-lock {
	overflow: hidden;
	scrollbar-gutter: stable;
}

/* Astra and Blocksy set `body { overflow-x: hidden }`: with `html` hidden it no longer goes to the viewport, the body
   would become the scroll box and the sticky header would drop back into the flow behind the dialog. */
html.wcrm-pt-lock body {
	overflow: visible;
}

.wcrm-pt dialog.wcrm-pt__dialog {
	box-sizing: border-box;
	width: min(600px, calc(100vw - 32px));
	max-width: none;
	max-height: min(850px, 85vh);
	margin: auto;
	padding: 0;
	overflow: hidden;
	border: 0;
	border-radius: 7px;
	background: #fff;
	box-shadow: 0 12px 48px rgba(0, 0, 0, .2);
	color: #1d2327;
	font-size: 15px;
	line-height: 1.6;
}

.wcrm-pt dialog.wcrm-pt__dialog[open] {
	animation: wcrm-pt-in .12s ease-out;
}

.wcrm-pt dialog.wcrm-pt__dialog::backdrop {
	background: rgba(0, 0, 0, .25);
}

@keyframes wcrm-pt-in {
	from { opacity: 0; transform: translateY(6px); }
}

.wcrm-pt .wcrm-pt__dcard {
	box-sizing: border-box;
	max-height: min(850px, 85vh);
	padding: 26px 28px 24px;
	overflow: auto;
	overscroll-behavior: contain;
}

.wcrm-pt .wcrm-pt__dialog button.wcrm-pt__close {
	all: unset;
	position: absolute;
	top: 8px;
	right: 8px;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: #f0f0f1;
	color: #1d2327;
	cursor: pointer;
	font: 400 26px/1 sans-serif;
}

.wcrm-pt .wcrm-pt__dialog button.wcrm-pt__close:hover {
	background: #dcdcde;
}

.wcrm-pt .wcrm-pt__dialog button.wcrm-pt__close:focus-visible {
	outline: 2px solid var(--_ac);
	outline-offset: 2px;
}

.wcrm-pt .wcrm-pt__dialog h2.wcrm-pt__dtitle {
	margin: 0 44px 6px 0;
	padding: 0;
	color: inherit;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.3;
	text-transform: none;
}

.wcrm-pt .wcrm-pt__dialog p.wcrm-pt__avail {
	margin: 0 0 14px;
	color: var(--_mu);
	font-size: 13px;
}

.wcrm-pt .wcrm-pt__dbody :is(p, ul, ol) {
	margin: 0 0 .8em;
	padding: 0;
}

.wcrm-pt .wcrm-pt__dbody :is(ul, ol) {
	padding-left: 1.4em;
}

.wcrm-pt .wcrm-pt__dbody ul { list-style: disc outside; }
.wcrm-pt .wcrm-pt__dbody ol { list-style: decimal outside; }

.wcrm-pt .wcrm-pt__dbody li {
	display: list-item;
	margin: 0 0 .3em;
	padding: 0;
}

.wcrm-pt .wcrm-pt__dbody li::before {
	content: none;
}

.wcrm-pt .wcrm-pt__dialog p.wcrm-pt__dfoot {
	margin: 16px 0 0;
	padding: 10px 14px;
	border-radius: 6px;
	background: #f0f6fc;
	font-size: 14px;
	/* DISC-50 §5: plain text, one block per line (plan-table.js; pre-line keeps the lines without it). */
	white-space: pre-line;
	overflow-wrap: anywhere;
}

.wcrm-pt .wcrm-pt__dialog .wcrm-pt__dfoot .wcrm-pt__dline {
	display: block;
	margin: 0;
	padding: 0;
}

.wcrm-pt .wcrm-pt__dialog .wcrm-pt__dfoot .wcrm-pt__dline + .wcrm-pt__dline {
	margin-top: .45em;
}

/* The never-fatal fallback (§6.4) and the admin notices. */
ul.wcrm-pt-fallback {
	margin: 0 0 1.5em;
	padding: 0;
	list-style: none;
}

ul.wcrm-pt-fallback li {
	margin: 0 0 .5em;
}

p.wcrm-pt-notice {
	padding: 8px 12px;
	border-left: 4px solid #d63638;
	background: #fcf0f1;
}

@media (forced-colors: active) {
	.wcrm-pt :is(.wcrm-pt__y, .wcrm-pt__n) { forced-color-adjust: none; background: CanvasText; }
	.wcrm-pt .wcrm-pt__table :is(thead th, tfoot td) { border-bottom: 1px solid CanvasText; }
	.wcrm-pt .wcrm-pt__table .is-hl { outline: 2px solid Highlight; outline-offset: -2px; }
	.wcrm-pt .wcrm-pt__table a.wcrm-pt__cta:is(:link, :visited) { border: 1px solid LinkText; }
	.wcrm-pt .wcrm-pt__periods input:checked + .wcrm-pt__pt { outline: 2px solid Highlight; }
}

@media (prefers-reduced-motion: reduce) {
	.wcrm-pt dialog.wcrm-pt__dialog[open] { animation: none; }
	.wcrm-pt .wcrm-pt__table a.wcrm-pt__cta { transition: none; }
}
