/**
 * Pikuseru Review – frontend-styles.
 * Alle regler er scopet til .pikuseru-review-wrap for at undgå tema-konflikter.
 */

.pikuseru-review-wrap {
	--pkr-brand: #0a5c36;
	--pkr-star: #00b67a;
	--pkr-star-empty: #dcdce6;
	--pkr-text: #191919;
	--pkr-muted: #6b6b83;
	--pkr-surface: #ffffff;
	--pkr-border: #e3e3ea;
	--pkr-radius: 8px;

	box-sizing: border-box;
	color: var(--pkr-text);

	/* Arv temaets broedtekststoerrelse. Bricks og flere sidebyggere saetter
	   html { font-size: 62.5% } og kompenserer paa body. Tvang vi 1em her,
	   ville hele widgetten skrumpe til 10px-basis paa de temaer. Alle maal
	   indenfor er derfor em, ikke rem. */
	font-size: inherit;
	line-height: 1.5;
}

.pikuseru-review-wrap *,
.pikuseru-review-wrap *::before,
.pikuseru-review-wrap *::after {
	box-sizing: inherit;
}

/* -------------------------------------------------------------------------
   Defensiv nulstilling

   Temaer og sidebyggere (Elementor, WPBakery, blok-temaer) har globale regler
   for tabeller, lister, figure og blockquote. De slår igennem inde i vores
   widgets, fordi vi ikke selv sætter egenskaberne. Nulstil dem her – én gang,
   scopet til vores wrapper – i stedet for at jagte hver enkelt bygger.
   ------------------------------------------------------------------------- */

.pikuseru-review-wrap table,
.pikuseru-review-wrap thead,
.pikuseru-review-wrap tbody,
.pikuseru-review-wrap tr,
.pikuseru-review-wrap th,
.pikuseru-review-wrap td,
.pikuseru-review-wrap ul,
.pikuseru-review-wrap ol,
.pikuseru-review-wrap li,
.pikuseru-review-wrap figure,
.pikuseru-review-wrap blockquote,
.pikuseru-review-wrap details,
.pikuseru-review-wrap summary {
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	box-shadow: none;
	list-style: none;
	text-align: inherit;
	font-weight: inherit;
	color: inherit;
	width: auto;
}

.pikuseru-review-wrap table {
	border-collapse: collapse;
	border-spacing: 0;
}

/* SVG kom ind i widgets med de valgfri vurderingsikoner. Temaer saetter tit
   globale regler paa svg - max-width, hoejde, margin - og de ville ellers
   slaa igennem paa ikonerne. Formen selv saettes af .pikuseru-review-icon
   laengere nede, som vejer tungere end denne. */
.pikuseru-review-wrap svg {
	max-width: none;
	max-height: none;
	margin: 0;
	vertical-align: middle;
}

/* Knapper og links er det andet sted temaer og sidebyggere blander sig: de
   saetter polstring, minimumshoejder, versaler og egne skygger. Pluginnets
   egne knapper definerer selv deres udseende laengere nede i filen. */
.pikuseru-review-wrap button,
.pikuseru-review-wrap a {
	margin: 0;
	text-transform: none;
	letter-spacing: normal;
	box-shadow: none;
	min-width: 0;
	min-height: 0;
	font-family: inherit;
	text-decoration: none;
}

.pikuseru-review-wrap button {
	-webkit-appearance: none;
	appearance: none;
	background: none;
	border: 0;
	padding: 0;
	color: inherit;
	font-size: inherit;
	text-align: center;
}

/* Temaer sætter tit line-height på generiske elementer. Uden dette bliver
   rækkehøjder uforudsigelige fra tema til tema. Komponenter der har brug for
   en anden linjehøjde – stjerner, knapper – sætter den selv med højere
   specificitet. */
.pikuseru-review-wrap span,
.pikuseru-review-wrap p,
.pikuseru-review-wrap div,
.pikuseru-review-wrap time,
.pikuseru-review-wrap strong,
.pikuseru-review-wrap label {
	line-height: inherit;
}

.pikuseru-review-wrap tr:nth-child(odd),
.pikuseru-review-wrap tr:nth-child(even),
.pikuseru-review-wrap li:nth-child(odd),
.pikuseru-review-wrap li:nth-child(even) {
	background: none;
}

.pikuseru-review-wrap li::before,
.pikuseru-review-wrap li::marker {
	content: none;
}

/* Punkttegn skal stadig virke i fejlbeskeder med flere linjer. */
.pikuseru-review-wrap .pikuseru-review-notice ul {
	margin: 0.3em 0 0 1.1em;
	list-style: disc;
}

.pikuseru-review-wrap .pikuseru-review-notice li::marker {
	content: initial;
}

.pikuseru-review-wrap--dark {
	--pkr-text: #f4f4f7;
	--pkr-muted: #a9a9bd;
	--pkr-surface: #1b1b23;
	--pkr-border: #33333f;
	--pkr-star-empty: #45454f;
}

/* -------------------------------------------------------------------------
   Skærmlæser-tekst
   ------------------------------------------------------------------------- */

.pikuseru-review-wrap .pikuseru-review-sr {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

/* -------------------------------------------------------------------------
   Vurderingsikoner

   Ikonet er inline SVG der fyldes med currentColor, saa farveindstillingerne
   virker uanset hvilket ikon der er valgt. Stoerrelsen styres af font-size
   paa wrapperen, fordi ikonet maaler 1em - saa foelger det tekststoerrelsen
   omkring sig ligesom resten af widgetten.
   ------------------------------------------------------------------------- */

.pikuseru-review-wrap .pikuseru-review-icon {
	display: block;
	width: 1em;
	height: 1em;
	fill: currentColor;

	/* Det farvede lag er smallere end det tomme. Uden dette ville flexboksen
	   klemme ikonerne sammen i stedet for at klippe raekken. */
	flex: none;
}

.pikuseru-review-wrap .pikuseru-review-stars {
	position: relative;
	display: inline-block;
	line-height: 1;
	white-space: nowrap;
	vertical-align: middle;
}

.pikuseru-review-wrap .pikuseru-review-stars__empty,
.pikuseru-review-wrap .pikuseru-review-stars__full {
	display: flex;

	/* Afstanden mellem ikonerne skal vaere identisk i de to lag, ellers
	   rammer klipningen af det farvede lag ved siden af. Én vaerdi, to
	   selektorer - aldrig to tal der kan komme fra hinanden. */
	gap: 0.12em;
}

.pikuseru-review-wrap .pikuseru-review-stars__empty {
	color: var(--pkr-star-empty);
}

.pikuseru-review-wrap .pikuseru-review-stars__full {
	position: absolute;
	top: 0;
	left: 0;
	overflow: hidden;
	color: var(--pkr-star);
}

.pikuseru-review-wrap .pikuseru-review-stars--small {
	font-size: 0.95em;
}

.pikuseru-review-wrap .pikuseru-review-stars--medium {
	font-size: 1.35em;
}

.pikuseru-review-wrap .pikuseru-review-stars--large {
	font-size: 2em;
}

/* -------------------------------------------------------------------------
   Knap
   ------------------------------------------------------------------------- */

.pikuseru-review-wrap .pikuseru-review-button {
	display: inline-block;
	background: var(--pkr-brand);
	color: #fff;
	border: 0;
	border-radius: var(--pkr-radius);
	padding: 0.7em 1.4em;
	font: inherit;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: filter 0.15s ease-in-out;
}

.pikuseru-review-wrap .pikuseru-review-button:hover,
.pikuseru-review-wrap .pikuseru-review-button:focus-visible {
	filter: brightness(1.12);
	color: #fff;
}

.pikuseru-review-wrap .pikuseru-review-button[disabled] {
	opacity: 0.6;
	cursor: progress;
}

/* -------------------------------------------------------------------------
   Beskeder
   ------------------------------------------------------------------------- */

.pikuseru-review-wrap .pikuseru-review-notice {
	border-left: 4px solid var(--pkr-brand);
	border-radius: var(--pkr-radius);
	background: color-mix(in srgb, var(--pkr-brand) 8%, var(--pkr-surface));
	padding: 0.9em 1.1em;
	margin: 0 0 1.2em;
}

.pikuseru-review-wrap .pikuseru-review-notice--success {
	border-left-color: #00875a;
	background: color-mix(in srgb, #00875a 8%, var(--pkr-surface));
}

.pikuseru-review-wrap .pikuseru-review-notice--error {
	border-left-color: #c9252d;
	background: color-mix(in srgb, #c9252d 8%, var(--pkr-surface));
}

.pikuseru-review-wrap .pikuseru-review-notice ul {
	margin: 0.3em 0 0 1.1em;
	padding: 0;
}

/* -------------------------------------------------------------------------
   Formular
   ------------------------------------------------------------------------- */

.pikuseru-review-form__heading {
	margin: 0 0 1.2em;
	font-size: 1.5em;
}

.pikuseru-review-wrap .pikuseru-review-field {
	margin: 0 0 1.2em;
	border: 0;
	padding: 0;
}

.pikuseru-review-wrap .pikuseru-review-field > label,
.pikuseru-review-wrap .pikuseru-review-field > legend {
	display: block;
	margin-bottom: 0.35em;
	font-weight: 600;
}

.pikuseru-review-wrap .pikuseru-review-field input[type="text"],
.pikuseru-review-wrap .pikuseru-review-field input[type="email"],
.pikuseru-review-wrap .pikuseru-review-field input[type="date"],
.pikuseru-review-wrap .pikuseru-review-field textarea {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	background: var(--pkr-surface);
	color: var(--pkr-text);
	border: 1px solid var(--pkr-border);
	border-radius: var(--pkr-radius);
	padding: 0.6em 0.75em;
	font: inherit;
}

.pikuseru-review-wrap .pikuseru-review-field textarea {
	resize: vertical;
}

.pikuseru-review-wrap .pikuseru-review-field input:focus-visible,
.pikuseru-review-wrap .pikuseru-review-field textarea:focus-visible {
	outline: 2px solid var(--pkr-brand);
	outline-offset: 1px;
}

.pikuseru-review-wrap .pikuseru-review-field--date input[type="date"] {
	max-width: 14em;
}

.pikuseru-review-wrap .pikuseru-review-field__hint {
	margin: 0.3em 0 0;
	font-size: 0.85em;
	color: var(--pkr-muted);
}

.pikuseru-review-wrap .pikuseru-review-field__error {
	margin: 0.3em 0 0;
	font-size: 0.85em;
	color: #c9252d;
	display: none;
}

.pikuseru-review-wrap .pikuseru-review-field__error.is-visible {
	display: block;
}

.pikuseru-review-wrap .pikuseru-review-field--invalid input,
.pikuseru-review-wrap .pikuseru-review-field--invalid textarea {
	border-color: #c9252d;
}

.pikuseru-review-wrap .pikuseru-review-required {
	color: #c9252d;
}

.pikuseru-review-field-row {
	display: flex;
	flex-wrap: wrap;
	gap: 1.2em;
}

.pikuseru-review-field-row > .pikuseru-review-field {
	flex: 1 1 14em;
}

.pikuseru-review-wrap .pikuseru-review-field--consent label {
	display: flex;
	align-items: flex-start;
	gap: 0.6em;
	font-weight: 400;
}

.pikuseru-review-wrap .pikuseru-review-field--consent input {
	margin-top: 0.25em;
	flex: 0 0 auto;
}

/* Stjernevalg. Rækkefølgen i HTML er 5 til 1, så CSS kan farve
   den valgte stjerne og alle til venstre for den. */
.pikuseru-review-rating {
	display: flex;
	flex-direction: row-reverse;
	justify-content: flex-end;
	gap: 0.15em;
	font-size: 2.1em;
	line-height: 1;
}

.pikuseru-review-rating input {
	position: absolute;
	width: 1px;
	height: 1px;
	opacity: 0;
}

.pikuseru-review-rating label {
	color: var(--pkr-star-empty);
	cursor: pointer;
	transition: color 0.1s ease-in-out;

	/* Ikonet er det eneste synlige i etiketten - den skjulte tekst til
	   skaermlaesere ligger absolut. Uden display: flex ville etiketten faa
	   linjehoejdens ekstra hoejde omkring ikonet. */
	display: flex;
}

.pikuseru-review-rating input:checked ~ label,
.pikuseru-review-rating label:hover,
.pikuseru-review-rating label:hover ~ label {
	color: var(--pkr-star);
}

.pikuseru-review-rating input:focus-visible + label {
	outline: 2px solid var(--pkr-brand);
	outline-offset: 2px;
}

/* -------------------------------------------------------------------------
   Produktanmeldelser i formularen

   Valgfrit afsnit der kun vises når kunden kommer fra en invitation knyttet
   til en WooCommerce-ordre.
   ------------------------------------------------------------------------- */

.pikuseru-review-wrap .pikuseru-review-products {
	border: 1px solid var(--pkr-border);
	border-radius: var(--pkr-radius);
	padding: 1.1em 1.2em;
	margin: 0 0 1.2em;
}

.pikuseru-review-wrap .pikuseru-review-products > legend {
	padding: 0 0.4em;
	font-weight: 600;
}

.pikuseru-review-products__intro,
.pikuseru-review-products__note {
	margin: 0 0 0.9em;
	color: var(--pkr-muted);
	font-size: 0.9em;
}

.pikuseru-review-products__note {
	margin: 0.4em 0 0;
}

.pikuseru-review-products__item + .pikuseru-review-products__item {
	border-top: 1px solid var(--pkr-border);
	margin-top: 1em;
	padding-top: 1em;
}

.pikuseru-review-products__head {
	display: flex;
	align-items: center;
	gap: 0.7em;
	margin-bottom: 0.5em;
}

.pikuseru-review-wrap .pikuseru-review-products__head img {
	width: 3em;
	height: 3em;
	border-radius: var(--pkr-radius);
	object-fit: cover;

	/* Billedet er det ene sted i widgets hvor vi faktisk vil have temaets
	   max-width-regel overstyret, uden at det rammer ikonerne. */
	max-width: 3em;
	flex: none;
}

.pikuseru-review-products__name {
	font-weight: 600;
}

/* Produktvalget er mindre end hovedvurderingen – den er stadig det primære. */
.pikuseru-review-wrap .pikuseru-review-rating--product {
	font-size: 1.5em;
	margin-bottom: 0.5em;
}

/* -------------------------------------------------------------------------
   Produktanmeldelseskort
   ------------------------------------------------------------------------- */

.pikuseru-review-wrap .pikuseru-review-card__product {
	color: inherit;
	text-decoration: none;
}

.pikuseru-review-wrap .pikuseru-review-card__product:hover {
	color: var(--pkr-brand);
	text-decoration: underline;
}

.pikuseru-review-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.pikuseru-review-form__actions {
	margin: 1.4em 0 0;
}

.pikuseru-review-form__feedback:not(:empty) {
	margin-top: 1em;
}

/* -------------------------------------------------------------------------
   Collector
   ------------------------------------------------------------------------- */

.pikuseru-review-collector {
	background: var(--pkr-surface);
	border: 1px solid var(--pkr-border);
	border-radius: var(--pkr-radius);
	padding: 1.4em 1.6em;
}

.pikuseru-review-collector__heading {
	margin: 0 0 0.5em;
	font-size: 1.25em;
}

.pikuseru-review-collector__text {
	margin: 0 0 0.8em;
	color: var(--pkr-muted);
}

.pikuseru-review-collector__score {
	display: flex;
	align-items: center;
	gap: 0.6em;
	flex-wrap: wrap;
	margin: 0 0 1em;
}

.pikuseru-review-collector__meta {
	color: var(--pkr-muted);
	font-size: 0.9em;
}

.pikuseru-review-collector__actions {
	margin: 0;
}

@media (max-width: 480px) {
	.pikuseru-review-rating {
		font-size: 1.8em;
	}
}

/* -------------------------------------------------------------------------
   Mikro-widgets
   ------------------------------------------------------------------------- */

.pikuseru-review-micro {
	display: inline-block;
}

.pikuseru-review-wrap .pikuseru-review-score {
	display: inline-flex;
	align-items: center;
	gap: 0.45em;
	flex-wrap: wrap;
	text-decoration: none;
	color: inherit;
}

.pikuseru-review-wrap .pikuseru-review-score__value {
	font-weight: 700;
}

.pikuseru-review-wrap .pikuseru-review-score__count,
.pikuseru-review-wrap .pikuseru-review-count {
	color: var(--pkr-muted);
	font-size: 0.9em;
}

/* -------------------------------------------------------------------------
   Mini
   ------------------------------------------------------------------------- */

.pikuseru-review-mini {
	display: inline-block;
	max-width: 15em;
}

.pikuseru-review-mini__inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.3em;
	text-align: center;
	background: var(--pkr-surface);
	border: 1px solid var(--pkr-border);
	border-radius: var(--pkr-radius);
	padding: 1em 1.1em;
}

.pikuseru-review-mini__label {
	font-size: 1.05em;
}

.pikuseru-review-mini__score {
	font-weight: 600;
}

.pikuseru-review-mini__count {
	color: var(--pkr-muted);
	font-size: 0.85em;
}

.pikuseru-review-wrap .pikuseru-review-mini__link {
	margin-top: 0.3em;
	font-size: 0.9em;
	color: var(--pkr-brand);
}

/* -------------------------------------------------------------------------
   Horisontal
   ------------------------------------------------------------------------- */

.pikuseru-review-horizontal__inner {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 0.4em 0.9em;
	background: var(--pkr-surface);
	border: 1px solid var(--pkr-border);
	border-radius: var(--pkr-radius);
	padding: 0.8em 1.2em;
}

.pikuseru-review-horizontal__name {
	font-weight: 700;
}

.pikuseru-review-horizontal__meta {
	color: var(--pkr-muted);
	font-size: 0.9em;
}

.pikuseru-review-horizontal__meta strong {
	color: var(--pkr-text);
	font-size: 1em;
}

.pikuseru-review-wrap .pikuseru-review-horizontal__link {
	color: var(--pkr-brand);
	font-size: 0.9em;
}

/* -------------------------------------------------------------------------
   Dropdown
   ------------------------------------------------------------------------- */

.pikuseru-review-dropdown__details {
	background: var(--pkr-surface);
	border: 1px solid var(--pkr-border);
	border-radius: var(--pkr-radius);
}

.pikuseru-review-dropdown__summary {
	cursor: pointer;
	padding: 0.7em 1em;
	list-style: none;
}

.pikuseru-review-dropdown__summary::-webkit-details-marker {
	display: none;
}

.pikuseru-review-dropdown__head {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
	flex-wrap: wrap;
}

.pikuseru-review-dropdown__summary::after {
	content: "▾";
	float: right;
	color: var(--pkr-muted);
}

.pikuseru-review-dropdown__details[open] .pikuseru-review-dropdown__summary::after {
	content: "▴";
}

.pikuseru-review-dropdown__count {
	color: var(--pkr-muted);
	font-size: 0.9em;
}

.pikuseru-review-dropdown__body {
	border-top: 1px solid var(--pkr-border);
	padding: 0.4em 1em 1em;
	max-height: 24em;
	overflow-y: auto;
}

.pikuseru-review-dropdown__body .pikuseru-review-card {
	border: 0;
	border-bottom: 1px solid var(--pkr-border);
	border-radius: 0;
	padding: 0.9em 0;
}

.pikuseru-review-dropdown__body .pikuseru-review-card:last-child {
	border-bottom: 0;
}

/* -------------------------------------------------------------------------
   Summary
   ------------------------------------------------------------------------- */

.pikuseru-review-summary {
	background: var(--pkr-surface);
	border: 1px solid var(--pkr-border);
	border-radius: var(--pkr-radius);
	padding: 1.4em 1.6em;
}

.pikuseru-review-summary__grid {
	display: flex;
	flex-wrap: wrap;
	gap: 1.6em;
	align-items: center;
}

.pikuseru-review-summary__overall {
	display: flex;
	flex-direction: column;
	gap: 0.25em;
	flex: 0 0 auto;
	min-width: 9em;
}

.pikuseru-review-summary__value {
	font-size: 3em;
	font-weight: 700;
	line-height: 1;
}

.pikuseru-review-summary__count {
	color: var(--pkr-muted);
	font-size: 0.9em;
}

.pikuseru-review-summary__distribution {
	flex: 1 1 16em;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 0.35em;
}

.pikuseru-review-wrap .pikuseru-review-summary__row {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 0.7em;
}

.pikuseru-review-wrap .pikuseru-review-summary__stars {
	color: var(--pkr-muted);
	white-space: nowrap;
	font-size: 0.9em;
}

.pikuseru-review-wrap .pikuseru-review-bar {
	display: block;
	background: var(--pkr-star-empty);
	border-radius: 3px;
	height: 0.7em;
	overflow: hidden;
}

.pikuseru-review-wrap .pikuseru-review-bar__fill {
	display: block;
	background: var(--pkr-star);
	height: 100%;
}

.pikuseru-review-wrap .pikuseru-review-summary__percent {
	color: var(--pkr-muted);
	font-size: 0.85em;
	white-space: nowrap;
	text-align: right;
	min-width: 2.5em;
}

.pikuseru-review-summary__actions {
	margin: 1.2em 0 0;
}

/* -------------------------------------------------------------------------
   Anmeldelseskort
   ------------------------------------------------------------------------- */

.pikuseru-review-card {
	background: var(--pkr-surface);
	border: 1px solid var(--pkr-border);
	border-radius: var(--pkr-radius);
	padding: 1.1em 1.2em;
	display: flex;
	flex-direction: column;
	gap: 0.5em;
}

.pikuseru-review-card__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.8em;
}

.pikuseru-review-card__date {
	color: var(--pkr-muted);
	font-size: 0.85em;
}

.pikuseru-review-card__title {
	margin: 0;
	font-size: 1.05em;
	line-height: 1.35;
}

.pikuseru-review-card__body {
	margin: 0;
}

.pikuseru-review-card__body p {
	margin: 0 0 0.6em;
}

.pikuseru-review-card__body p:last-child {
	margin-bottom: 0;
}

.pikuseru-review-card__footer {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.3em 0.8em;
	font-size: 0.85em;
	color: var(--pkr-muted);
	margin-top: auto;
}

.pikuseru-review-card__author {
	font-weight: 600;
	color: var(--pkr-text);
}

.pikuseru-review-card__verified {
	color: #00875a;
	font-weight: 400;
}

/* Verificeret køb. Mere fremtrædende end det almindelige bekræftet-flueben,
   fordi den siger noget stærkere: der ligger en rigtig ordre bag. */
.pikuseru-review-card__purchase {
	display: inline-flex;
	align-items: center;
	gap: 0.3em;
	color: #00875a;
	background: color-mix(in srgb, #00875a 10%, var(--pkr-surface));
	border-radius: 999px;
	padding: 0.15em 0.6em;
	font-size: 0.85em;
	font-weight: 600;
	white-space: nowrap;
}

.pikuseru-review-wrap .pikuseru-review-card__report {
	margin-left: auto;
	background: none;
	border: 0;
	padding: 0;
	font: inherit;
	color: var(--pkr-muted);
	text-decoration: underline;
	cursor: pointer;
}

.pikuseru-review-wrap .pikuseru-review-card__report:hover {
	color: var(--pkr-text);
}

.pikuseru-review-wrap .pikuseru-review-card__report[disabled] {
	text-decoration: none;
	cursor: default;
}

.pikuseru-review-card__reply {
	background: color-mix(in srgb, var(--pkr-brand) 6%, var(--pkr-surface));
	border-left: 3px solid var(--pkr-brand);
	border-radius: 0 var(--pkr-radius) var(--pkr-radius) 0;
	padding: 0.7em 0.9em;
	font-size: 0.92em;
}

.pikuseru-review-card__reply-author {
	display: block;
	margin-bottom: 0.25em;
}

.pikuseru-review-card__reply p {
	margin: 0 0 0.5em;
}

.pikuseru-review-card__reply p:last-child {
	margin-bottom: 0;
}

/* -------------------------------------------------------------------------
   Liste og grid
   ------------------------------------------------------------------------- */

.pikuseru-review-collection__items {
	display: grid;
	gap: 1em;
}

.pikuseru-review-collection--grid .pikuseru-review-collection__items {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 17em), 1fr));
}

@media (min-width: 900px) {
	.pikuseru-review-collection--grid .pikuseru-review-collection__items {
		grid-template-columns: repeat(var(--pkr-columns, 3), minmax(0, 1fr));
	}
}

.pikuseru-review-collection__actions {
	margin: 1.2em 0 0;
	text-align: center;
}

/* -------------------------------------------------------------------------
   Carousel
   ------------------------------------------------------------------------- */

.pikuseru-review-carousel {
	position: relative;
}

.pikuseru-review-carousel__viewport {
	position: relative;
}

/* Blød kant der viser at der er mere indhold i den retning. Den erstatter
   den signalvaerdi scrollbaren havde, nu hvor den er skjult. Attributten
   saettes af sync() i public-scriptet. Uden mask-understoettelse sker der
   ingenting - kanten er bare skarp. */
@supports (mask-image: linear-gradient(to right, black, transparent)) or (-webkit-mask-image: linear-gradient(to right, black, transparent)) {
	.pikuseru-review-carousel__viewport[data-pkr-overflow="start"] {
		-webkit-mask-image: linear-gradient(to right, transparent 0, black 2em);
		mask-image: linear-gradient(to right, transparent 0, black 2em);
	}

	.pikuseru-review-carousel__viewport[data-pkr-overflow="end"] {
		-webkit-mask-image: linear-gradient(to right, black calc(100% - 2em), transparent 100%);
		mask-image: linear-gradient(to right, black calc(100% - 2em), transparent 100%);
	}

	.pikuseru-review-carousel__viewport[data-pkr-overflow="both"] {
		-webkit-mask-image: linear-gradient(to right, transparent 0, black 2em, black calc(100% - 2em), transparent 100%);
		mask-image: linear-gradient(to right, transparent 0, black 2em, black calc(100% - 2em), transparent 100%);
	}
}

.pikuseru-review-carousel__track {
	display: flex;
	gap: 1em;

	/* Begge akser saettes eksplicit. Saetter man kun overflow-x, bliver den
	   anden akse automatisk til auto: saa snart et tema laegger en enkelt
	   pixel til hoejden, dukker der en lodret scrollbar op inde i baandet. */
	overflow-x: auto;
	overflow-y: hidden;

	/* Scrollbaren skjules helt. Baandet betjenes med pilene, med swipe og med
	   piletaster paa det fokuserbare spor, saa ingen betjening gaar tabt - og
	   en scrollbar der dukker op midt i en animation ser forkert ud. Alle tre
	   linjer er noedvendige: scrollbar-width dækker Firefox og Chrome 121+,
	   ::-webkit-scrollbar dækker aeldre WebKit, -ms-overflow-style dækker
	   gammel Edge. */
	scrollbar-width: none;
	-ms-overflow-style: none;

	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;

	/* En swipe der naar enden af baandet maa ikke fortsaette ned i siden bagved. */
	overscroll-behavior-x: contain;

	/* Plads nok til at et fokusomrids paa knapperne inde i kortene ikke bliver
	   klippet af paint-containment. Ikke plads til en scrollbar - den er skjult. */
	padding-bottom: 0.25em;

	/* Uden paint-containment lader nogle temaer kortene uden for båndet tælle
	   med i sidens bredde, så hele siden kan rulles vandret. Båndet ruller
	   fortsat indvendigt. */
	contain: paint;
}

.pikuseru-review-carousel__track::-webkit-scrollbar {
	width: 0;
	height: 0;
	display: none;
}

/* Samme tre egenskaber igen, med hoejere specificitet. En tema- eller
   byggerregel som ".entry-content div { overflow: auto }" vejer (0,1,1) og
   ville ellers slaa reglen ovenfor paa (0,1,0) - og give baandet baade en
   lodret scrollbar og en synlig vandret en. Her vejer vi (0,2,0). */
.pikuseru-review-wrap .pikuseru-review-carousel__track {
	overflow-x: auto;
	overflow-y: hidden;
	scrollbar-width: none;
}

.pikuseru-review-carousel__track > .pikuseru-review-card {
	flex: 0 0 min(100%, 20em);
	scroll-snap-align: start;
}

.pikuseru-review-carousel__nav {
	display: flex;
	justify-content: flex-end;
	gap: 0.4em;
	margin-top: 0.6em;
}

.pikuseru-review-wrap .pikuseru-review-carousel__button {
	/* Centreringen pinnes eksplicit. Temaer og sidebyggere aendrer display og
	   text-align paa knapper, og saa sidder pilen skaevt i cirklen. */
	display: inline-flex;
	align-items: center;
	justify-content: center;

	background: var(--pkr-surface);
	color: var(--pkr-text);
	border: 1px solid var(--pkr-border);
	border-radius: 50%;

	/* width og height er relative til knappens EGEN font-size, ikke forael-
	   drens: 1.9 x 1.2 giver cirka 2.2 gange widgettens broedtekst. */
	font-size: 1.2em;
	width: 1.9em;
	height: 1.9em;
	padding: 0;
	line-height: 1;
	cursor: pointer;
}

.pikuseru-review-wrap .pikuseru-review-carousel__button:hover {
	border-color: var(--pkr-brand);
	color: var(--pkr-brand);
}

.pikuseru-review-wrap .pikuseru-review-carousel__button[disabled] {
	opacity: 0.4;
	cursor: default;
}

/* -------------------------------------------------------------------------
   Citat
   ------------------------------------------------------------------------- */

.pikuseru-review-quote {
	margin: 0;
	background: var(--pkr-surface);
	border: 1px solid var(--pkr-border);
	border-radius: var(--pkr-radius);
	padding: 1.6em 1.8em;
	text-align: center;
}

.pikuseru-review-quote__text {
	margin: 0.7em 0 0.9em;
	padding: 0;
	border: 0;
	font-size: 1.15em;
	line-height: 1.55;
}

.pikuseru-review-quote__title {
	display: block;
	margin-bottom: 0.4em;
}

.pikuseru-review-quote__text p {
	margin: 0 0 0.6em;
}

.pikuseru-review-quote__text p:last-child {
	margin-bottom: 0;
}

.pikuseru-review-quote__author {
	color: var(--pkr-muted);
	font-size: 0.9em;
}

.pikuseru-review-quote__date::before {
	content: " · ";
}

@media (prefers-reduced-motion: reduce) {
	.pikuseru-review-carousel__track {
		scroll-behavior: auto;
	}
}
