/* ══════════════════════════════════════════════════════════════
   K360 Shop  ·  assets/k360-shop-produkt.css  ·  v1.17.0

   Produktsiden. Hentes kun der, oven på k360-shop.css, så farver,
   Poppins, prisen, mærkatet og kurvknappen kommer derfra.

   Galleriet til venstre står stille mens man ruller. Til højre et hvidt
   panel med alt man skal bruge for at beslutte sig, og nederst i det
   beskrivelsen og databladet som folder. Under det andre produkter fra
   samme kategori.
   ══════════════════════════════════════════════════════════════ */

.k3--produkt { --pp-luft: 36px; }

/* ── De to spalter i toppen ──────────────────────────────── */
/* Lige store spalter. Produktbillederne er kvadratiske, og i en bredere
   spalte ville et kvadrat blive højere end panelet ved siden af. */
.k3-pp-top {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: var(--pp-luft);
	align-items: start;
}

/* ── Galleri ─────────────────────────────────────────────── */
/* Følger med når man ruller, så billedet står stille mens man
   læser i panelet. Afstanden til toppen er en indstilling, og galleriet
   bliver aldrig højere end det der er tilbage af skærmen under den,
   ellers kan det ikke klæbe. */
.k3-pp-galleri {
	--pp-hoejde: min(72vh, 640px, calc(100vh - var(--k3-klaeb, 150px) - 32px));
	position: sticky;
	top: var(--k3-klaeb, 150px);
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 12px;
	align-items: start;
}

/* Med flere billeder står miniaturerne i en spalte til venstre, og
   hovedbilledet bliver tilsvarende mindre. Et kvadrat på 1:1 ender så
   omkring 560 px højt i stedet for 790. */
.k3-pp-galleri--thumbs { grid-template-columns: 76px minmax(0, 1fr); }

.k3-pp-scene {
	position: relative;
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	/* Og aldrig højere end skærmen kan vise. Bliver rammen lavere end
	   kvadratet, står billedet helt midt i med luft i siderne. */
	max-height: var(--pp-hoejde);
	overflow: hidden;
	padding: 28px;
	border-radius: var(--radius);
	background-color: var(--flade);
}

.k3-pp-bill {
	display: block;
	width: 100%;
	height: 100%;
}

.k3-pp-bill > img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: contain;
	border-radius: 10px !important;
	opacity: var(--pp-o, 1);
	transition: opacity .3s var(--e);
}

.k3-pp-bill.er-ved-at-skifte { --pp-o: 0; }

.k3-pp-bill > .k3-ph {
	width: 100%;
	height: 100%;
	display: block;
	padding: 30%;
	color: var(--teal);
	opacity: .35;
}

.k3-pp-scene .k3-maerkat { top: 16px; left: 16px; }

/* Slået fra i indstillingerne: galleriet ruller med. */
.k3-pp--uden-klaeb .k3-pp-galleri { position: static; }

/* Zoom: hele billedet er knappen, og en lille cirkel i hjørnet siger det.
   Scriptet viser den, så den ikke lover noget uden JavaScript. */
.k3-pp-zoom {
	position: absolute;
	inset: 0;
	z-index: 2;
	display: block;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: var(--radius);
	background-color: transparent;
	color: var(--ink);
	font-family: inherit;
	cursor: zoom-in;
	touch-action: pan-y;
}

.k3-pp-zoom svg {
	position: absolute;
	right: 16px;
	bottom: 16px;
	width: 40px;
	height: 40px;
	padding: 12px;
	border-radius: 50%;
	background-color: var(--side);
	color: var(--ink);
	transition: background-color .3s var(--e), color .3s var(--e), transform .3s var(--e), opacity .3s var(--e);
}

/* Miniaturerne står tæt som ét bånd, ligesom swatches og genveje.
   Lodret på pc, i spalten til venstre. */
.k3-pp-thumbs {
	order: -1;
	display: flex;
	flex-direction: column;
	gap: 1px;
	max-height: var(--pp-hoejde);
	margin: 0;
	overflow-y: auto;
	overscroll-behavior: contain;
	scrollbar-width: none;
}

.k3-pp-thumbs::-webkit-scrollbar { display: none; }

.k3-pp-thumb {
	position: relative;
	flex: 0 0 auto;
	width: 76px;
	height: 76px;
	padding: 8px;
	border: 0;
	border-radius: 0;
	background-color: var(--flade);
	cursor: pointer;
	opacity: .55;
	transition: opacity .25s var(--e);
}

.k3-pp-thumbs > .k3-pp-thumb:first-child { border-radius: 8px 8px 0 0; }
.k3-pp-thumbs > .k3-pp-thumb:last-child { border-radius: 0 0 8px 8px; }

.k3-pp-thumb > img {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: contain;
	border-radius: 4px;
}

/* Den man ser lige nu: fuld styrke og en teal streg i kanten ind mod
   hovedbilledet. */
.k3-pp-thumb.er-nu { opacity: 1; cursor: default; }

.k3-pp-thumb.er-nu::after {
	content: "";
	position: absolute;
	top: 8px;
	right: 0;
	bottom: 8px;
	width: 2px;
	border-radius: 2px 0 0 2px;
	background-color: var(--teal);
}

/* ── Panelet ─────────────────────────────────────────────── */
.k3-pp-panel {
	display: flex;
	flex-direction: column;
	gap: 22px;
	min-width: 0;
	padding: 34px 36px 36px;
	border-radius: var(--radius);
	background-color: var(--flade);
}

.k3-pp-hoved {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.k3-pp-titel {
	margin: 0;
	font-family: inherit;
	font-size: clamp(26px, 2.6vw, 34px);
	font-weight: 500;
	line-height: 1.14;
	letter-spacing: -.02em;
	color: var(--ink);
	text-wrap: balance;
	overflow-wrap: anywhere;
}

.k3-pp-intro { max-width: 60ch; }

.k3-pp-intro p {
	margin: 0 0 8px;
	font-family: inherit;
	font-size: 15.5px;
	font-weight: 400;
	line-height: 1.6;
	color: var(--dim);
}

.k3-pp-intro p:last-child { margin-bottom: 0; }

/* ── Fordele ─────────────────────────────────────────────── */
/* Samme teal prik som foran Få et tilbud, så det er ét sprog. */
.k3-pp-usp {
	display: flex;
	flex-direction: column;
	gap: 7px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.k3-pp-usp-punkt {
	display: flex;
	align-items: baseline;
	gap: 10px;
	margin: 0;
	padding: 0;
	font-family: inherit;
	font-size: 14.5px;
	font-weight: 500;
	line-height: 1.45;
	color: var(--ink);
}

.k3-pp-usp-punkt::before,
.k3-pp-usp-punkt::marker { content: none; }

.k3-pp-usp-punkt::before {
	content: "";
	flex: 0 0 auto;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background-color: var(--teal);
	transform: translateY(-3px);
}

/* ── Prisen og købet ─────────────────────────────────────── */
/* En tynd streg over, så prisen står som sit eget afsnit. */
.k3-pp-koeb {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 18px;
	padding-top: 22px;
}

.k3-pp-koeb::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	height: 1px;
	background-color: var(--linje);
}

.k3-pp-pris {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.k3-pp-pris .k3-pris {
	font-size: 28px;
	line-height: 1.15;
	letter-spacing: -.02em;
}

.k3-pp-pris .k3-pris del { font-size: 18px; }

.k3-pp-pris .k3-enhed {
	margin-left: 7px;
	font-size: 14px;
	letter-spacing: 0;
}

/* WooCommerce hænger "inkl. moms" på. Det skal stå småt. */
.k3-pp-pris .woocommerce-price-suffix,
.k3-pp-pris small {
	margin-left: 6px;
	font-size: 13px;
	font-weight: 400;
	letter-spacing: 0;
	color: var(--dim);
}

.k3-pp-pris .k3-pris--tilbud {
	font-size: 22px;
	gap: 10px;
}

.k3-pp-pris .k3-pris--tilbud::before {
	width: 7px;
	height: 7px;
}

.k3-pp-pris-note {
	font-family: inherit;
	font-size: 13.5px;
	font-weight: 400;
	line-height: 1.5;
	color: var(--dim);
}

/* Tilbud: knappen, og ved siden af den et lille "eller ring". */
.k3-pp-handling {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px 18px;
}

.k3-pp-knap { width: auto; padding: 13px 22px; }

.k3-pp-ring {
	font-family: inherit;
	font-size: 14px;
	font-weight: 500;
	color: var(--ink);
	text-decoration: none;
	transition: color .25s var(--e);
}

/* ── Tilbudsformularen ───────────────────────────────────── */
/* Navn og kontakt side om side, et par ord under, og den samme sorte
   knap. Felterne er grå som variantfelterne, uden ramme. */
.k3-pp-tilbud {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin: 0;
	padding: 0;
	border: 0;
	background-color: transparent;
}

.k3-pp-tilbud-felter {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 12px;
}

.k3-pp-felt {
	display: flex;
	flex-direction: column;
	gap: 6px;
	min-width: 0;
}

.k3-pp-etiket {
	margin: 0;
	font-family: inherit;
	font-size: 13.5px;
	font-weight: 500;
	line-height: 1.3;
	color: var(--dim);
}

.k3-pp-valgfri {
	font-weight: 400;
	color: rgba(20, 20, 20, .38);
}

.k3-pp-input {
	width: 100%;
	height: 48px;
	margin: 0;
	padding: 0 14px;
	border: 0;
	border-radius: 10px;
	box-shadow: none;
	background-color: var(--side);
	color: var(--ink);
	font-family: inherit;
	font-size: 14.5px;
	font-weight: 500;
	line-height: 1.3;
	-webkit-appearance: none;
	appearance: none;
	transition: box-shadow .25s var(--e);
}

.k3-pp-input::placeholder { color: rgba(20, 20, 20, .38); font-weight: 400; }

.k3-pp-input--areal {
	height: auto;
	min-height: 72px;
	padding: 12px 14px;
	line-height: 1.5;
	resize: vertical;
}

.k3-pp-input:focus { outline: none; box-shadow: 0 0 0 2px var(--teal); }

.k3-pp-felt.har-fejl .k3-pp-input { box-shadow: 0 0 0 2px #A23B2B; }

.k3-pp-felt-fejl,
.k3-pp-tilbud-fejl {
	margin: 0;
	font-family: inherit;
	font-size: 13px;
	font-weight: 500;
	line-height: 1.4;
	color: #A23B2B;
}

.k3-pp-tilbud .k3-pp-knap { border: 0; }

.k3-pp-tilbud.er-ved-at-sende .k3-pp-knap { opacity: .6; pointer-events: none; }

/* Honningkrukken må ikke kunne ses, men må heller ikke være display: none,
   for så udfylder robotterne den ikke. */
.k3-pp-tilbud-web {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
	opacity: 0;
}

/* Kvitteringen: et flueben og en linje, ikke en boks. */
.k3-pp-tilbud-tak {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 0;
	font-family: inherit;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.5;
	color: var(--ink);
}

.k3-pp-tilbud-tak svg {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	margin-top: 2px;
	color: var(--teal);
}

/* ── WooCommerces formular ───────────────────────────────── */
/* Formularen er WooCommerces egen. Her får den bare vores mål,
   vores knap og vores felter. Alt inde i den arver Poppins.

   Temaet og Elementor har egne regler for knappen og felterne, fx
   .woocommerce div.product form.cart .button, som er stærkere end
   en almindelig klasse. :not(#k360) giver vores regler id-styrke, så
   de vinder uden !important. */
.k3-pp-form:not(#k360) * { box-sizing: border-box; }

.k3-pp-form:not(#k360) form.cart {
	display: flex;
	flex-direction: column;
	gap: 0;
	margin: 0;
	padding: 0;
	border: 0;
	box-shadow: none;
	background-color: transparent;
}

/* Luften ligger som margin på det enkelte element, ikke som gap på
   formularen. Temaer og plugins hænger gerne tomme elementer ind
   gennem WooCommerces hooks, og et gap ville give luft omkring dem,
   også i siderne. Tomme elementer skjules helt. */
.k3-pp-form:not(#k360) form.cart > * + * { margin-top: 14px; }
.k3-pp-form:not(#k360) form.cart > :empty,
.k3-pp-form:not(#k360) form.cart > input[type="hidden"] { display: none; }

/* Simple produkter: antal og knap på samme række, knappen strakt. */
.k3-pp-form:not(#k360) form.cart:not(.variations_form):not(.grouped_form) {
	flex-direction: row;
	flex-wrap: wrap;
	align-items: stretch;
}

.k3-pp-form:not(#k360) form.cart:not(.variations_form):not(.grouped_form) > * { margin: 10px 0 0; flex: 0 0 100%; }
.k3-pp-form:not(#k360) form.cart:not(.variations_form):not(.grouped_form) > .quantity { flex: 0 0 auto; margin: 0 10px 0 0; }
.k3-pp-form:not(#k360) form.cart:not(.variations_form):not(.grouped_form) > .single_add_to_cart_button { flex: 1 1 200px; margin: 0; }
.k3-pp-form:not(#k360) form.cart:not(.variations_form):not(.grouped_form) > .stock { order: 3; }

/* ── Wild Konfiguration ──────────────────────────────────── */
/* Konfiguratoren står inde i formularen, over antal og knap, i sin egen
   Shadow DOM med sit eget ark i samme sprog. Den store pris øverst følger
   med live, så prisen i knappen er overflødig her. */
.k3-pp-form:not(#k360) form.cart > .wild-config-host { flex: 0 0 100%; margin: 0 0 4px; }
.k3-pp--konfig .k3-pp-form:not(#k360) .wild-cart-price { display: none; }
.k3-pp--konfig .k3-pp-pris .k3-pris { transition: opacity .25s var(--e); }
.k3-pp--konfig .k3-pp-pris .k3-pris.er-ved-at-skifte { opacity: .5; }

/* Grupperede produkter har deres egen tabel. Den får plads til at stå selv. */
.k3-pp-form:not(#k360) form.cart.grouped_form { flex-direction: column; }

/* Antal: et lille felt med minus og plus, som scriptet lægger til. */
.k3-pp-form:not(#k360) .quantity {
	position: relative;
	display: inline-flex;
	align-items: stretch;
	height: 48px;
	margin: 0;
	padding: 0;
	overflow: hidden;
	border: 0;
	float: none;
	border-radius: 10px;
	background-color: var(--side);
}

.k3-pp-form:not(#k360) .quantity .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

.k3-pp-form:not(#k360) .quantity input.qty {
	width: 52px;
	min-width: 0;
	height: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	background-color: transparent;
	color: var(--ink);
	font-family: inherit;
	font-size: 15px;
	font-weight: 600;
	text-align: center;
	-moz-appearance: textfield;
	appearance: textfield;
}

.k3-pp-form:not(#k360) .quantity input.qty::-webkit-outer-spin-button,
.k3-pp-form:not(#k360) .quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.k3-pp-form:not(#k360) .quantity input.qty:focus { outline: none; }

.k3-pp-antal-knap {
	display: grid;
	place-items: center;
	width: 40px;
	height: 100%;
	padding: 0;
	border: 0;
	border-radius: 0;
	background-color: transparent;
	color: var(--ink);
	font-family: inherit;
	cursor: pointer;
	transition: background-color .25s var(--e), color .25s var(--e);
}

.k3-pp-antal-knap svg { width: 12px; height: 12px; }

/* Temaer der selv har lagt plus og minus ind, skal ikke få dem to gange. */
.k3-pp-form:not(#k360) .quantity .plus,
.k3-pp-form:not(#k360) .quantity .minus,
.k3-pp-form:not(#k360) .quantity .qty-btn,
.k3-pp-form:not(#k360) .quantity .ast-qty-btn { display: none; }
.k3-pp-antal-knap[disabled] { color: var(--linje); cursor: default; }

/* Wild Konfiguration: Start konfiguration står i stedet for Læg i kurv,
   indtil kunden har valgt variant, så den får samme farve. Variablerne
   arves ind i konfiguratorens Shadow DOM. */
.k3-pp-form { --wild-knap: var(--ink); --wild-knap-tekst: #ffffff; }

/* Læg i kurv er den samme sorte knap som Se mere på kortene. */
.k3-pp-form:not(#k360) .single_add_to_cart_button,
.k3-pp-form:not(#k360) .single_add_to_cart_button.button,
.k3-pp-form:not(#k360) .single_add_to_cart_button.alt {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 48px;
	margin: 0;
	padding: 12px 20px;
	border: 0;
	border-radius: 10px;
	/* Knappens farve er det eneste sted vi bruger !important: temaer og
	   Elementors globale knapfarve sætter den gerne med !important selv. */
	background-color: var(--ink) !important;
	color: #ffffff !important;
	font-family: inherit;
	font-size: 14.5px;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: -.01em;
	text-decoration: none;
	text-transform: none;
	cursor: pointer;
	transform: translateY(var(--ky, 0px));
	transition: background-color .3s var(--e), transform .3s var(--e), box-shadow .3s var(--e);
}

.k3-pp-form:not(#k360) .single_add_to_cart_button:active { --ky: 1px; }
.k3-pp-form:not(#k360) .single_add_to_cart_button[disabled],
.k3-pp-form:not(#k360) .single_add_to_cart_button.disabled,
.k3-pp-form:not(#k360) .single_add_to_cart_button.wc-variation-selection-needed,
.k3-pp-form:not(#k360) .single_add_to_cart_button.wc-variation-is-unavailable {
	opacity: .45;
	cursor: default;
}

/* Varianter: etiketten over feltet, feltet i fuld bredde. */
.k3-pp-form:not(#k360) table.variations {
	width: 100%;
	margin: 0;
	border-collapse: collapse;
	border: 0;
}

.k3-pp-form:not(#k360) table.variations th,
.k3-pp-form:not(#k360) table.variations td {
	display: block;
	width: 100%;
	padding: 0;
	border: 0;
	background-color: transparent;
	text-align: left;
}

.k3-pp-form:not(#k360) table.variations tr {
	display: block;
	margin-bottom: 12px;
}

.k3-pp-form:not(#k360) table.variations tr:last-child { margin-bottom: 0; }

.k3-pp-form:not(#k360) table.variations th label,
.k3-pp-form:not(#k360) table.variations th {
	font-family: inherit;
	font-size: 13.5px;
	font-weight: 500;
	line-height: 1.3;
	color: var(--dim);
}

.k3-pp-form:not(#k360) table.variations th { padding-bottom: 6px; }

.k3-pp-form:not(#k360) table.variations select {
	width: 100%;
	height: 48px;
	margin: 0;
	padding: 0 40px 0 14px;
	border: 0;
	border-radius: 10px;
	background-color: var(--side);
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%23141414' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='m2.5 4.5 3.5 3.5 3.5-3.5'/></svg>");
	background-repeat: no-repeat;
	background-position: right 14px center;
	background-size: 12px 12px;
	box-shadow: none;
	color: var(--ink);
	font-family: inherit;
	font-size: 14.5px;
	font-weight: 500;
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
}

.k3-pp-form:not(#k360) .reset_variations {
	display: inline-block;
	margin-top: 8px;
	font-family: inherit;
	font-size: 13px;
	font-weight: 500;
	color: var(--dim);
	text-decoration: none;
}

.k3-pp-form:not(#k360) .single_variation_wrap { display: flex; flex-direction: column; gap: 0; }
.k3-pp-form:not(#k360) .single_variation_wrap > * + * { margin-top: 14px; }
.k3-pp-form:not(#k360) .single_variation_wrap > :empty { display: none; }

/* Den valgte variants pris og lager. Prisen står allerede stort ovenfor,
   så her står den som en rolig linje. */
.k3-pp-form:not(#k360) .woocommerce-variation {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.k3-pp-form:not(#k360) .woocommerce-variation-price .price {
	font-family: inherit;
	font-size: 17px;
	font-weight: 600;
	color: var(--ink);
}

.k3-pp-form:not(#k360) .woocommerce-variation-price .price .woocommerce-price-suffix,
.k3-pp-form:not(#k360) .woocommerce-variation-price .price small {
	margin-left: 6px;
	font-size: 13px;
	font-weight: 400;
	color: var(--dim);
}

.k3-pp-form:not(#k360) .woocommerce-variation-price .price del { opacity: .45; font-weight: 400; }
.k3-pp-form:not(#k360) .woocommerce-variation-price .price ins { text-decoration: none; }

.k3-pp-form:not(#k360) .woocommerce-variation-description p {
	margin: 0;
	font-family: inherit;
	font-size: 14px;
	line-height: 1.55;
	color: var(--dim);
}

.k3-pp-form:not(#k360) .woocommerce-variation-add-to-cart {
	display: flex;
	flex-wrap: wrap;
	gap: 0;
}

.k3-pp-form:not(#k360) .woocommerce-variation-add-to-cart > * { flex: 0 0 100%; margin: 10px 0 0; }
.k3-pp-form:not(#k360) .woocommerce-variation-add-to-cart > :empty { display: none; }
.k3-pp-form:not(#k360) .woocommerce-variation-add-to-cart .quantity { flex: 0 0 auto; margin: 0 10px 0 0; }
.k3-pp-form:not(#k360) .woocommerce-variation-add-to-cart .single_add_to_cart_button { flex: 1 1 200px; margin: 0; }

.k3-pp-form:not(#k360) .stock,
.k3-pp-form:not(#k360) .woocommerce-variation-availability .stock {
	margin: 0;
	font-family: inherit;
	font-size: 13.5px;
	font-weight: 500;
	line-height: 1.4;
	color: var(--dim);
}

.k3-pp-form:not(#k360) .stock.out-of-stock { color: #A23B2B; }

/* Grupperede produkter: en række pr. vare. */
.k3-pp-form:not(#k360) table.group_table {
	width: 100%;
	border-collapse: collapse;
	border: 0;
}

.k3-pp-form:not(#k360) table.group_table td {
	padding: 10px 0;
	border: 0;
	vertical-align: middle;
	font-family: inherit;
	font-size: 14px;
}

.k3-pp-form:not(#k360) table.group_table tr + tr td { box-shadow: inset 0 1px 0 var(--linje); }

.k3-pp-form:not(#k360) table.group_table .woocommerce-grouped-product-list-item__label a {
	color: var(--ink);
	font-weight: 500;
	text-decoration: none;
}

.k3-pp-form:not(#k360) table.group_table .woocommerce-grouped-product-list-item__price {
	font-weight: 600;
	white-space: nowrap;
}

/* ── Fakta ───────────────────────────────────────────────── */
/* Produktionstid, varenummer, lager, telefon. Etiket dæmpet til
   venstre, værdien til højre, en tynd streg mellem linjerne. */
.k3-pp-fakta {
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 0;
}

.k3-pp-fakta-linje {
	position: relative;
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	margin: 0;
	padding: 10px 0;
}

.k3-pp-fakta-linje + .k3-pp-fakta-linje::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	height: 1px;
	background-color: var(--linje);
}

.k3-pp-fakta dt {
	flex: 0 0 auto;
	margin: 0;
	font-family: inherit;
	font-size: 13.5px;
	font-weight: 400;
	line-height: 1.4;
	color: var(--dim);
}

.k3-pp-fakta dd {
	flex: 1 1 auto;
	min-width: 0;
	margin: 0;
	font-family: inherit;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.4;
	text-align: right;
	overflow-wrap: anywhere;
	color: var(--ink);
}

.k3-pp-fakta dd a {
	color: var(--ink);
	text-decoration: none;
	transition: color .25s var(--e);
}

.k3-pp-fakta .k3-tid {
	justify-content: flex-end;
	font-size: 14px;
	font-weight: 500;
	color: var(--ink);
}

.k3-pp-fakta--lager.er-udsolgt dd { color: #A23B2B; }

/* ── Små afsnit i panelet: mængderabat og tilkøb ─────────── */
/* Samme greb som stregen over produkterne i kategorien: streg,
   navn til venstre, noget småt til højre. */
.k3-pp-afsnit-hoved {
	position: relative;
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	margin: 0 0 16px;
	padding-top: 20px;
}

.k3-pp-afsnit-hoved::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	height: 1px;
	background-color: var(--linje);
}

.k3-pp-afsnit-hoved--lille { margin-bottom: 12px; }

.k3-pp-afsnit-navn {
	margin: 0;
	font-family: inherit;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: -.01em;
	color: var(--ink);
}

.k3-pp-afsnit-meta {
	font-family: inherit;
	font-size: 13px;
	font-weight: 400;
	line-height: 1.3;
	font-variant-numeric: tabular-nums;
	color: var(--dim);
}

/* Mængderabat: en lille tabel. */
.k3-pp-rabat-tabel {
	width: 100%;
	margin: 0;
	border-collapse: collapse;
	border: 0;
}

.k3-pp-rabat-tabel th,
.k3-pp-rabat-tabel td {
	padding: 8px 0;
	border: 0;
	background-color: transparent;
	font-family: inherit;
	font-size: 14px;
	line-height: 1.4;
	text-align: left;
	vertical-align: baseline;
}

.k3-pp-rabat-tabel tr + tr th,
.k3-pp-rabat-tabel tr + tr td { box-shadow: inset 0 1px 0 var(--linje); }

.k3-pp-rabat-tabel th { font-weight: 400; color: var(--dim); }
.k3-pp-rabat-tabel td { font-weight: 600; color: var(--ink); font-variant-numeric: tabular-nums; text-align: right; }
.k3-pp-rabat-tabel td .woocommerce-Price-currencySymbol { font-weight: 500; }

.k3-pp-rabat-spar {
	width: 1%;
	padding-left: 18px !important;
	text-align: right !important;
	font-weight: 500 !important;
	color: var(--teal) !important;
	white-space: nowrap;
}

/* Tilkøb: en åben liste, ikke et panel. */
.k3-pp-tk-liste {
	display: flex;
	flex-direction: column;
	gap: 4px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.k3-pp-tk-punkt {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 0;
	padding: 0;
}

.k3-pp-tk-punkt::before,
.k3-pp-tk-punkt::marker { content: none; }

.k3-pp-tk-link {
	flex: 1 1 auto;
	display: flex;
	align-items: center;
	gap: 12px;
	min-width: 0;
	margin: 0 0 0 -8px;
	padding: 8px;
	border-radius: 10px;
	background-color: transparent;
	color: var(--ink);
	text-decoration: none;
	transition: background-color .25s var(--e);
}

.k3-pp-tk-bill {
	flex: 0 0 auto;
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	overflow: hidden;
	border-radius: 8px;
	background-color: var(--bg);
}

.k3-pp-tk-bill > img,
.k3-pp-tk-bill > svg {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: contain;
	border-radius: 6px;
}

.k3-pp-tk-bill > .k3-ph { padding: 24%; color: var(--teal); opacity: .5; }

.k3-pp-tk-tekst {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	gap: 1px;
	min-width: 0;
}

.k3-pp-tk-navn {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	font-family: inherit;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.35;
}

.k3-pp-tk-pris {
	font-family: inherit;
	font-size: 13.5px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--teal);
}

.k3-pp-tk-pris small,
.k3-pp-tk-pris .woocommerce-price-suffix {
	display: inline;
	font-size: 11.5px;
	font-weight: 400;
	color: var(--dim);
}

.k3-pp-tk-link .k3-pil { color: var(--linje); transition: color .3s var(--e), transform .3s var(--e); }

/* WooCommerces "Se kurv"-link efter et klik hører ikke hjemme i listen. */
.k3-pp-tk-punkt .added_to_cart { display: none !important; }

/* ── Detaljer: beskrivelse og datablad som folder ────────── */
/* To rækker med en streg over, navnet og en linje fra indholdet.
   Plusset til højre er en rund knap, der bliver sort med et minus når
   folden står åben, som Læg i kurv lige over. */
.k3-pp-detaljer {
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 0;
}

.k3-pp-fold {
	position: relative;
	margin: 0;
	padding: 0;
	border: 0;
	background-color: transparent;
}

.k3-pp-fold::before,
.k3-pp-fold:last-child::after {
	content: "";
	position: absolute;
	right: 0;
	left: 0;
	height: 1px;
	background-color: var(--linje);
	pointer-events: none;
}

.k3-pp-fold::before { top: 0; }
.k3-pp-fold:last-child::after { bottom: 0; }

.k3-pp-fold-top {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto auto;
	grid-template-areas:
		"navn meta tegn"
		"smugkig smugkig tegn";
	align-items: center;
	column-gap: 14px;
	margin: 0;
	padding: 18px 0;
	list-style: none;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
}

.k3-pp-fold-top::-webkit-details-marker { display: none; }
.k3-pp-fold-top::marker { content: ""; }

.k3-pp-fold-top:focus { outline: none; }

.k3-pp-fold-top:focus-visible {
	outline: 2px solid var(--teal);
	outline-offset: 4px;
	border-radius: 8px;
}

.k3-pp-fold-navn {
	grid-area: navn;
	margin: 0;
	padding: 0;
	font-family: inherit;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: -.01em;
	text-transform: none;
	color: var(--ink);
}

.k3-pp-fold-meta {
	grid-area: meta;
	font-family: inherit;
	font-size: 13px;
	font-weight: 400;
	line-height: 1.3;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
	color: var(--dim);
}

/* Linjen fra indholdet: kun når folden er lukket, og kun én linje. */
.k3-pp-fold-smugkig {
	grid-area: smugkig;
	display: block;
	min-width: 0;
	margin-top: 4px;
	overflow: hidden;
	font-family: inherit;
	font-size: 13.5px;
	font-weight: 400;
	line-height: 1.45;
	white-space: nowrap;
	text-overflow: ellipsis;
	color: var(--dim);
}

.k3-pp-fold[open] .k3-pp-fold-smugkig { display: none; }
.k3-pp-fold[open] > .k3-pp-fold-top { padding-bottom: 12px; }

/* Uden smugkig, eller med folden åben, er der kun én række, så navn,
   meta og plus står på samme midterlinje. */
.k3-pp-fold[open] > .k3-pp-fold-top,
.k3-pp-fold-top:not(:has(.k3-pp-fold-smugkig)) { grid-template-areas: "navn meta tegn"; }

.k3-pp-fold-tegn {
	grid-area: tegn;
	position: relative;
	display: block;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background-color: var(--side);
	transition: background-color .35s var(--e);
}

.k3-pp-fold-tegn::before,
.k3-pp-fold-tegn::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 12px;
	height: 1.6px;
	margin: -.8px 0 0 -6px;
	border-radius: 2px;
	background-color: var(--ink);
	transition: transform .45s var(--e), background-color .35s var(--e);
}

.k3-pp-fold-tegn::after { transform: rotate(90deg); }

.k3-pp-fold[open] .k3-pp-fold-tegn { background-color: var(--ink); }
.k3-pp-fold[open] .k3-pp-fold-tegn::before,
.k3-pp-fold[open] .k3-pp-fold-tegn::after { background-color: #ffffff; }
.k3-pp-fold[open] .k3-pp-fold-tegn::after { transform: rotate(0deg); }

.k3-pp-fold-krop { overflow: hidden; }

.k3-pp-fold-indre { padding: 0 0 24px; }

/* Indholdet toner frem mens folden åbner. Scriptet sætter klassen. */
.k3-pp-fold.er-ved-at-aabne .k3-pp-fold-indre { animation: k3-pp-fold-ind .5s var(--e) both; }

@keyframes k3-pp-fold-ind {
	from { opacity: 0; transform: translateY(-4px); }
	to   { opacity: 1; transform: none; }
}

/* I panelet er spalten smal nok i sig selv. */
.k3-pp-fold .k3-pp-prosa { max-width: none; }
.k3-pp-fold .k3-pp-prosa p,
.k3-pp-fold .k3-pp-prosa li { font-size: 15px; line-height: 1.7; color: rgba(20, 20, 20, .82); }
.k3-pp-fold .k3-pp-prosa strong { font-weight: 600; color: var(--ink); }
.k3-pp-fold .k3-pp-blad-linje:first-child { padding-top: 0; }

/* ── Beskrivelse og datablad som flader ──────────────────── */
/* Bruges ikke af produktsiden selv længere, men indhold() står stadig til
   temaer der tegner siden selv. */
.k3-pp-indhold {
	display: grid;
	/* Samme spalter som i toppen, så kanterne flugter. */
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: var(--pp-luft);
	align-items: start;
	margin-top: 40px;
}

.k3-pp-indhold--en { grid-template-columns: minmax(0, 1fr); }
.k3-pp-indhold--en .k3-pp-prosa { max-width: 68ch; }

.k3-pp-tekst,
.k3-pp-blad {
	min-width: 0;
	padding: 6px 36px 36px;
	border-radius: var(--radius);
	background-color: var(--flade);
}

.k3-pp-tekst .k3-pp-afsnit-hoved,
.k3-pp-blad .k3-pp-afsnit-hoved {
	margin-bottom: 20px;
	padding-top: 26px;
}

/* Overskriften er stregen, ikke omvendt: ingen streg over det
   allerførste afsnit i en hvid flade. */
.k3-pp-tekst .k3-pp-afsnit-hoved::before,
.k3-pp-blad .k3-pp-afsnit-hoved::before { display: none; }

/* Brødteksten: rolig, redaktionel, ikke for bred. */
.k3-pp-prosa { max-width: 62ch; }

.k3-pp-prosa p,
.k3-pp-prosa li {
	margin: 0 0 14px;
	font-family: inherit;
	font-size: 15.5px;
	font-weight: 400;
	line-height: 1.7;
	color: var(--ink);
}

.k3-pp-prosa li { margin-bottom: 6px; }
.k3-pp-prosa p:last-child { margin-bottom: 0; }

.k3-pp-prosa ul,
.k3-pp-prosa ol { margin: 0 0 16px; padding-left: 20px; }

.k3-pp-prosa h2,
.k3-pp-prosa h3,
.k3-pp-prosa h4 {
	margin: 26px 0 8px;
	font-family: inherit;
	font-size: 17px;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: -.01em;
	color: var(--ink);
}

.k3-pp-prosa h2:first-child,
.k3-pp-prosa h3:first-child { margin-top: 0; }

.k3-pp-prosa a { color: var(--teal); text-decoration: none; }

.k3-pp-prosa img {
	max-width: 100%;
	height: auto;
	border-radius: 10px;
}

.k3-pp-prosa table {
	width: 100%;
	margin: 0 0 16px;
	border-collapse: collapse;
}

.k3-pp-prosa th,
.k3-pp-prosa td {
	padding: 8px 0;
	border: 0;
	box-shadow: inset 0 -1px 0 var(--linje);
	font-family: inherit;
	font-size: 14px;
	text-align: left;
}

/* Databladet: etiket, prikker, værdi. Prikkerne er en baggrund,
   ikke en streg, så de kan strækkes uden at ramme teksten. */
.k3-pp-blad-liste {
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 0;
}

.k3-pp-blad-linje {
	display: flex;
	align-items: baseline;
	gap: 10px;
	margin: 0;
	padding: 9px 0;
}

.k3-pp-blad-linje dt {
	flex: 0 1 auto;
	margin: 0;
	font-family: inherit;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.45;
	color: var(--dim);
}

.k3-pp-blad-linje dd {
	flex: 0 1 auto;
	margin: 0;
	font-family: inherit;
	font-size: 14.5px;
	font-weight: 500;
	line-height: 1.45;
	text-align: right;
	overflow-wrap: anywhere;
	color: var(--ink);
}

/* Prikkerne ligger i et pseudo-element mellem dt og dd: dt og dd
   fylder kun det de skal, og prikkerne tager resten. */
.k3-pp-blad-linje::after {
	content: "";
	order: 1;
	flex: 1 1 24px;
	align-self: flex-end;
	min-width: 24px;
	height: 3px;
	margin-bottom: 5px;
	background-image: radial-gradient(circle, rgba(20, 20, 20, .3) 1px, transparent 1.4px);
	background-repeat: repeat-x;
	background-size: 6px 3px;
	background-position: left bottom;
}

.k3-pp-blad-linje dd { order: 2; }

/* Linjer uden etiket: bare teksten, ingen prikker. */
.k3-pp-blad-linje--fri::after { display: none; }
.k3-pp-blad-linje--fri dd { flex: 1 1 auto; font-weight: 400; text-align: left; color: var(--ink); }

/* ── Andre produkter ─────────────────────────────────────── */
.k3-pp-andre { margin-top: 96px; }

.k3-pp-andre .k3-udpluk-titel { font-size: clamp(20px, 2vw, 24px); }
.k3-pp-andre .k3-udpluk-hoved { margin-bottom: 32px; }

/* ── Bjælken i bunden på telefon ─────────────────────────── */
.k3-pp-bar {
	position: fixed;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 40;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px));
	background-color: var(--flade);
	box-shadow: 0 -1px 0 var(--linje), 0 -12px 30px -18px rgba(20, 20, 20, .25);
	transform: translateY(var(--pp-by, 100%));
	transition: transform .4s var(--e);
}

.k3-pp-bar.er-synlig { --pp-by: 0%; }

.k3-pp-bar-pris { min-width: 0; }
.k3-pp-bar-pris .k3-pris { font-size: 18px; }
.k3-pp-bar-pris .k3-pris--tilbud { font-size: 15px; }
.k3-pp-bar-pris .k3-enhed { font-size: 12.5px; }
.k3-pp-bar-pris .woocommerce-price-suffix,
.k3-pp-bar-pris small { display: none; }

.k3-pp-bar-knap {
	flex: 0 0 auto;
	width: auto;
	padding: 12px 18px;
	font-size: 14px;
}

/* ── Zoom i fuld størrelse ───────────────────────────────── */
/* Scriptet lægger den i body, uden for .k3, så den læser de variabler
   indstillingerne lægger på :root, med shoppens farver som reserve. */
.k3-pp-lys {
	position: fixed;
	inset: 0;
	width: 100%;
	max-width: none;
	height: 100%;
	max-height: none;
	margin: 0;
	padding: 0;
	overflow: hidden;
	border: 0;
	background-color: var(--k3-baggrund, #F1F0EE);
	color: var(--k3-tekst, #141414);
	font-family: "Poppins", sans-serif;
}

.k3-pp-lys[open] {
	display: grid;
	grid-template-rows: minmax(0, 1fr) auto;
	animation: k3-pp-lys-ind .35s cubic-bezier(.23, 1, .32, 1) both;
}

.k3-pp-lys::backdrop { background-color: rgba(20, 20, 20, .4); }

.k3-pp-lys-scene {
	position: relative;
	display: grid;
	place-items: center;
	min-height: 0;
	padding: 72px 96px 8px;
	touch-action: pan-y;
}

.k3-pp-lys-bill {
	display: block;
	width: auto;
	max-width: 100%;
	height: auto;
	max-height: 100%;
	object-fit: contain;
	border-radius: 12px;
	transition: opacity .25s cubic-bezier(.23, 1, .32, 1);
}

.k3-pp-lys-bill.er-ved-at-skifte { opacity: 0; }

.k3-pp-lys-fod {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 14px 20px calc(22px + env(safe-area-inset-bottom, 0px));
}

.k3-pp-lys-taeller {
	margin: 0;
	font-family: "Poppins", sans-serif;
	font-size: 13.5px;
	font-weight: 500;
	line-height: 1.3;
	font-variant-numeric: tabular-nums;
	color: rgba(20, 20, 20, .54);
}

.k3-pp-lys-knap {
	position: absolute;
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background-color: #ffffff;
	color: var(--k3-tekst, #141414);
	font-family: "Poppins", sans-serif;
	cursor: pointer;
	transition: background-color .3s cubic-bezier(.23, 1, .32, 1), color .3s cubic-bezier(.23, 1, .32, 1);
}

.k3-pp-lys-knap svg { width: 16px; height: 16px; }
.k3-pp-lys-knap[hidden] { display: none; }

.k3-pp-lys-luk { top: 16px; right: 16px; }
.k3-pp-lys-forrige { top: 50%; left: 24px; margin-top: -24px; }
.k3-pp-lys-naeste { top: 50%; right: 24px; margin-top: -24px; }

.k3-pp-lys-knap:focus { outline: none; }
.k3-pp-lys-knap:focus-visible { outline: 2px solid var(--k3-farve, #007083); outline-offset: 3px; }

@keyframes k3-pp-lys-ind {
	from { opacity: 0; }
	to   { opacity: 1; }
}

/* Mens lyskassen er åben, ruller siden bag den ikke. */
html.k3-lys-aaben { overflow: hidden; }

/* ── Fokus ───────────────────────────────────────────────── */
.k3--produkt button:focus-visible,
.k3--produkt select:focus-visible,
.k3--produkt input:focus-visible {
	outline: 2px solid var(--teal);
	outline-offset: 2px;
	border-radius: 6px;
}

.k3--produkt .k3-pp-zoom:focus-visible { outline-offset: -4px; border-radius: var(--radius); }

.k3-pp-form:not(#k360) .quantity:focus-within { box-shadow: 0 0 0 2px var(--teal); }

/* ── Berøring ────────────────────────────────────────────── */
@media (hover: none) {
	.k3-pp-form:not(#k360) .single_add_to_cart_button:active { background-color: var(--teal) !important; }
	.k3-pp-antal-knap:active { background-color: rgba(20, 20, 20, .08); }
	.k3-pp-fold-top:active .k3-pp-fold-tegn { background-color: var(--teal); }
	.k3-pp-lys-knap:active { background-color: var(--k3-farve, #007083); color: #ffffff; }
}

/* ── Mus ─────────────────────────────────────────────────── */
@media (hover: hover) and (pointer: fine) {
	.k3-pp-thumb:not(.er-nu):hover { opacity: .85; }
	.k3-pp-ring:hover { color: var(--teal); }
	.k3-pp-fakta dd a:hover { color: var(--teal); }
	.k3-pp-form:not(#k360) .single_add_to_cart_button:not([disabled]):not(.disabled):hover { background-color: var(--teal) !important; box-shadow: 0 10px 20px -12px rgba(20, 20, 20, .55); }
	.k3-pp-antal-knap:not([disabled]):hover { background-color: rgba(20, 20, 20, .08); }
	.k3-pp-form:not(#k360) .reset_variations:hover { color: var(--teal); }
	.k3-pp-tk-link:hover { background-color: rgba(20, 20, 20, .05); }
	.k3-pp-tk-link:hover .k3-pil { color: var(--teal); transform: translateX(3px); }
	.k3-pp-prosa a:hover { color: var(--ink); }
	.k3-pp-zoom svg { opacity: 0; transform: scale(.9); }
	.k3-pp-zoom:hover svg,
	.k3-pp-zoom:focus-visible svg { opacity: 1; transform: none; }
	.k3-pp-zoom:hover svg { background-color: var(--ink); color: #ffffff; }
	.k3-pp-fold-top:hover .k3-pp-fold-tegn { background-color: var(--teal); }
	.k3-pp-fold-top:hover .k3-pp-fold-tegn::before,
	.k3-pp-fold-top:hover .k3-pp-fold-tegn::after { background-color: #ffffff; }
	.k3-pp-fold-top:hover .k3-pp-fold-navn { color: var(--teal); }
	.k3-pp-lys-knap:hover { background-color: var(--k3-tekst, #141414); color: #ffffff; }
	.k3-pp-form:not(#k360) table.group_table .woocommerce-grouped-product-list-item__label a:hover { color: var(--teal); }
}

/* ── Skærmbredder ────────────────────────────────────────── */
@media (max-width: 1240px) {
	.k3--produkt { --pp-luft: 26px; }
	.k3-pp-panel { padding: 28px 30px 30px; }
	.k3-pp-tekst,
	.k3-pp-blad { padding: 4px 30px 30px; }
}

@media (max-width: 1024px) {
	.k3-pp-top,
	.k3-pp-indhold { grid-template-columns: minmax(0, 1fr); }
	.k3-pp-galleri { position: static; }
	.k3-pp-galleri--thumbs { grid-template-columns: minmax(0, 1fr); }
	.k3-pp-scene { padding: 22px; max-height: none; }
	/* På tablet og telefon ligger miniaturerne som et bånd under. */
	.k3-pp-thumbs { order: 0; flex-direction: row; flex-wrap: wrap; max-height: none; overflow: visible; }
	.k3-pp-thumbs > .k3-pp-thumb:first-child { border-radius: 8px 0 0 8px; }
	.k3-pp-thumbs > .k3-pp-thumb:last-child { border-radius: 0 8px 8px 0; }
	.k3-pp-thumb.er-nu::after { top: auto; right: 8px; bottom: 0; left: 8px; width: auto; height: 2px; border-radius: 2px 2px 0 0; }
	.k3-pp-indhold { margin-top: 26px; }
	.k3-pp-andre { margin-top: 76px; }
	.k3-pp-andre .k3-udpluk-hoved { margin-bottom: 24px; }
	/* Bjælken i bunden må ikke dække det sidste indhold. */
	.k3--produkt { padding-bottom: 72px; }
}

@media (min-width: 1025px) {
	.k3-pp-bar { display: none !important; }
}

@media (max-width: 560px) {
	.k3--produkt { --pp-luft: 18px; }
	.k3-pp-panel { gap: 18px; padding: 22px 20px 24px; }
	.k3-pp-titel { font-size: 24px; }
	.k3-pp-intro p { font-size: 14.5px; }
	.k3-pp-scene { padding: 16px; }
	.k3-pp-scene .k3-maerkat { top: 10px; left: 10px; }
	.k3-pp-zoom svg { right: 10px; bottom: 10px; width: 36px; height: 36px; padding: 11px; }
	.k3-pp-fold-top { padding: 16px 0; column-gap: 12px; }
	.k3-pp-fold-navn { font-size: 15px; }
	.k3-pp-fold-tegn { width: 32px; height: 32px; }
	.k3-pp-fold .k3-pp-prosa p,
	.k3-pp-fold .k3-pp-prosa li { font-size: 14.5px; }
	.k3-pp-lys-scene { padding: 72px 14px 8px; }
	.k3-pp-lys-forrige,
	.k3-pp-lys-naeste { top: auto; bottom: calc(10px + env(safe-area-inset-bottom, 0px)); margin-top: 0; width: 44px; height: 44px; }
	.k3-pp-lys-forrige { left: 16px; }
	.k3-pp-lys-naeste { right: 16px; }
	.k3-pp-lys-fod { min-height: 64px; padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px)); }
	.k3-pp-thumb { width: 60px; height: 60px; padding: 6px; }
	.k3-pp-galleri { gap: 8px; }
	.k3-pp-pris .k3-pris { font-size: 24px; }
	.k3-pp-pris .k3-pris--tilbud { font-size: 19px; }
	.k3-pp-knap { width: 100%; }
	.k3-pp-tilbud-felter { grid-template-columns: minmax(0, 1fr); }
	.k3-pp-form:not(#k360) .quantity { height: 46px; }
	.k3-pp-form:not(#k360) .single_add_to_cart_button { min-height: 46px; font-size: 14px; }
	.k3-pp-tekst,
	.k3-pp-blad { padding: 2px 20px 22px; }
	.k3-pp-tekst .k3-pp-afsnit-hoved,
	.k3-pp-blad .k3-pp-afsnit-hoved { padding-top: 20px; margin-bottom: 14px; }
	.k3-pp-prosa p { font-size: 15px; }
	.k3-pp-blad-linje { flex-wrap: wrap; padding: 8px 0; }
	.k3-pp-blad-linje dt,
	.k3-pp-blad-linje dd { font-size: 13.5px; }
	.k3-pp-bar { padding: 8px 14px calc(8px + env(safe-area-inset-bottom, 0px)); }
	.k3-pp-bar-knap { padding: 11px 14px; font-size: 13.5px; }
}

/* ── Reduceret bevægelse ─────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
	.k3--produkt *,
	.k3--produkt *::before,
	.k3--produkt *::after {
		transition-duration: .01ms !important;
		animation-duration: .01ms !important;
	}
	.k3-pp-bar { transition: none; }
	.k3-pp-fold.er-ved-at-aabne .k3-pp-fold-indre,
	.k3-pp-lys[open] { animation: none; }
	.k3-pp-lys-bill { transition: none; }
}

/* ── Print ───────────────────────────────────────────────── */
@media print {
	.k3-pp-bar,
	.k3-pp-thumbs,
	.k3-pp-form,
	.k3-pp-tilbud-ramme,
	.k3-pp-andre,
	.k3-pp-zoom,
	.k3-pp-fold-tegn,
	.k3-pp-fold-smugkig { display: none !important; }
	.k3-pp-top,
	.k3-pp-indhold { grid-template-columns: minmax(0, 1fr); }
	.k3-pp-galleri { position: static; }
}
