/* VAPR Print Manager – valgskjema */
.vpm-enhanced table.variations,
.vpm-enhanced .reset_variations {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	white-space: nowrap !important;
}

.vpm-picker {
	text-align: left;
	/* Designvariabler fra Bricks (sak #16a) – reserveverdi hvis variabelen mangler */
	--vpm-dark: var(--color-primary, #2b2b2b);
	--vpm-on-dark: var(--color-on-primary, #fff);
	--vpm-text: var(--color-text, #2b2b2b);
	--vpm-bg: var(--color-bg, #fff);
	--vpm-surface: var(--color-surface, #f1f1f1);
	--vpm-border: var(--color-border, #cfcfcf);
	--vpm-muted: var(--color-text-muted, #6b6b6b);
	--vpm-radius: var(--radius-button, 3px);
	display: flex;
	flex-direction: column;
	gap: 1.75em;
	margin: 1.5em 0 1.25em;
	width: 100%;
	/* Kolonnene følger bredden på selve valgskjemaet (smal kolonne ved siden av bildet eller full bredde). */
	container-type: inline-size;
}

.vpm-group-label {
	font-weight: 600;
	margin-bottom: 0.6em;
}
/* 0.137.0 (#145): «Velg materiale for å se pris» ved «Størrelse». */
.vpm-group-hint {
	margin-left: .5em;
	color: var(--color-text-muted, #616161);
	font-size: var(--text-s, 14px);
	font-weight: 400;
}

.vpm-options {
	display: grid;
	gap: 0.6em;
}
.vpm-options--material { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.vpm-options--size,
.vpm-options--frame    { grid-template-columns: repeat(6, minmax(0, 1fr)); }
/* Størrelser og rammer: tre i bredden (to av seks kolonner hver). Størrelsene får jevne rader etter antall (0.16.1) – ren CSS,
   så det følger også med når utvalget endres med materialet. */
.vpm-options--size > .vpm-opt,
.vpm-options--frame > .vpm-frame { grid-column: span 2; }
/* Rammer: alltid en tredjedel av bredden, uansett antall (0.16.2) – brede rammeruter blir for store mot resten.
   Rader som ikke er fulle, midtstilles (0.16.3): flex i stedet for rutenett. */
.vpm-options--frame { display: flex; flex-wrap: wrap; justify-content: center; }
.vpm-options--frame > .vpm-frame { flex: 0 0 calc((100% - 1.2em) / 3 - 0.01px); min-width: 0; }
/* Størrelser: siste rad fylles ut. To til overs (2, 5, 8 …) → de to siste står to i bredden.
   Én til overs (4, 7, 10 …) → de fire siste står to og to. Én størrelse alene står som før. */
.vpm-picker:not(.vpm-picker--liste) .vpm-options--size > .vpm-opt:nth-child(3n+1):nth-last-child(2),
.vpm-picker:not(.vpm-picker--liste) .vpm-options--size > .vpm-opt:nth-child(3n+2):last-child,
.vpm-picker:not(.vpm-picker--liste) .vpm-options--size > .vpm-opt:nth-child(3n+1):nth-last-child(4),
.vpm-picker:not(.vpm-picker--liste) .vpm-options--size > .vpm-opt:nth-child(3n+2):nth-last-child(3),
.vpm-picker:not(.vpm-picker--liste) .vpm-options--size > .vpm-opt:nth-child(3n):nth-last-child(2),
.vpm-picker:not(.vpm-picker--liste) .vpm-options--size > .vpm-opt:nth-child(3n+1):last-child:not(:first-child) { grid-column: span 3; }
/* Antall materialer varierer (1–7, 0.8.0): 3, 5 og 6 står tre i bredden, ellers to – og fire når skjemaet er bredt. */
.vpm-options--material.vpm-options--n3,
.vpm-options--material.vpm-options--n5,
.vpm-options--material.vpm-options--n6,
.vpm-options--material.vpm-options--n7 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@container (min-width: 521px) {
	.vpm-options--material { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.vpm-options--material.vpm-options--n2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.vpm-options--material.vpm-options--n3,
	.vpm-options--material.vpm-options--n5,
	.vpm-options--material.vpm-options--n6 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.vpm-options--material.vpm-options--n7 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
/* Lange materialnavn: én i bredden i smalt skjema, to i bredt. */
.vpm-options--material.vpm-options--lange { grid-template-columns: minmax(0, 1fr); }
@container (min-width: 521px) {
	.vpm-options--material.vpm-options--lange { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.vpm-options--material .vpm-opt-name { overflow-wrap: anywhere; }
/* Ett materiale: opplysning, ikke valg. */
.vpm-group--fast { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.5em; }
.vpm-group--fast .vpm-group-label { margin-bottom: 0; }
.vpm-group--fast .vpm-group-label::after { content: ":"; }

.vpm-opt,
.vpm-frame {
	appearance: none;
	background: var(--vpm-bg);
	color: var(--vpm-text);
	border: 1.5px solid var(--vpm-border);
	border-radius: var(--vpm-radius);
	font: inherit;
	cursor: pointer;
	transition: border-color .15s, background-color .15s, color .15s;
	margin: 0;
}
.vpm-opt {
	padding: 0.85em 0.75em;
	text-align: center;
	line-height: 1.2;
}
.vpm-opt:hover,
.vpm-frame:hover { border-color: var(--vpm-dark); }
.vpm-opt:focus-visible,
.vpm-frame:focus-visible { outline: 2px solid var(--vpm-dark); outline-offset: 2px; }

.vpm-opt.is-selected {
	background: var(--vpm-dark);
	border-color: var(--vpm-dark);
	color: var(--vpm-on-dark);
}

.vpm-opt--size {
	display: flex;
	flex-direction: column;
	padding: 0.9em 0.75em 0.8em;
}
.vpm-opt--size .vpm-opt-name { padding-bottom: 0.6em; }
.vpm-opt--size .vpm-opt-price {
	border-top: 1px solid currentColor;
	border-top-color: color-mix(in srgb, currentColor 25%, transparent);
	padding-top: 0.6em;
	font-size: max(0.9em, 13px);
	color: var(--vpm-muted);
}
.vpm-opt--size.is-selected .vpm-opt-price { color: color-mix(in srgb, var(--vpm-on-dark) 80%, transparent); }

.vpm-frame {
	display: flex;
	flex-direction: column;
	padding: 0;
	overflow: hidden;
	text-align: center;
}
.vpm-frame-img {
	display: block;
	aspect-ratio: 3 / 2;
	background: var(--vpm-surface);
}
.vpm-frame-img img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.vpm-frame-ph { display: block; width: 100%; height: 100%; }
.vpm-frame-name {
	display: block;
	padding: 0.6em 0.5em;
	border-top: 1px solid var(--vpm-border);
}
.vpm-frame-addon { color: var(--vpm-muted); font-size: 0.9em; }
.vpm-frame.is-selected { border-color: var(--vpm-dark); }
.vpm-frame.is-selected .vpm-frame-name {
	background: var(--vpm-dark);
	border-top-color: var(--vpm-dark);
	color: var(--vpm-on-dark);
}
.vpm-frame.is-selected .vpm-frame-addon { color: color-mix(in srgb, var(--vpm-on-dark) 80%, transparent); }

@media (max-width: 478px) {
	.vpm-options--size .vpm-opt { padding: 0.75em 0.35em; font-size: 0.93em; }
	.vpm-frame-name { padding: 0.55em 0.25em; font-size: 0.93em; }
}

.vpm-opt[disabled] { opacity: .35; cursor: not-allowed; }
.vpm-opt[disabled]:hover { border-color: var(--vpm-border); }

/* Prisen for valget (0.6.2) – erstatter WooCommerce' egen variantpris, samme skrivemåte som i rutene. */
.vpm-enhanced .woocommerce-variation-price { display: none !important; }
.vpm-total {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1em;
	border-top: 1px solid var(--vpm-border);
	padding-top: 1em;
}
.vpm-total-label { color: var(--vpm-muted); }
.vpm-total-value { font-size: 1.5em; font-weight: 600; line-height: 1.2; }
.vpm-total--hint { color: var(--vpm-muted); justify-content: flex-start; }

/* «Fra»-prisen ved tittelen (Bricks-elementet Produktpris). */
.vpm-fra-pris { color: var(--color-text-muted, #6b6b6b); }

/* Valgene som liste (0.7.0, Design → Produktsiden): én linje per valg, prisen til høyre. */
.vpm-picker--liste .vpm-options--material,
.vpm-picker--liste .vpm-options--size { grid-template-columns: minmax(0, 1fr); gap: 0.45em; }
.vpm-picker--liste .vpm-options--size > .vpm-opt { grid-column: auto; }
.vpm-picker--liste .vpm-options--size .vpm-opt,
.vpm-picker--liste .vpm-opt {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 0.8em;
	padding: 0.8em 1em;
	font-size: 1em;
	text-align: left;
}
.vpm-picker--liste .vpm-opt::before {
	content: "";
	flex: none;
	box-sizing: border-box;
	width: 1.05em;
	height: 1.05em;
	border: 1.5px solid var(--vpm-muted);
	border-radius: 50%;
}
.vpm-picker--liste .vpm-opt .vpm-opt-name { flex: 1 1 auto; min-width: 0; padding: 0; }
.vpm-picker--liste .vpm-opt--size .vpm-opt-price { border-top: 0; padding-top: 0; font-size: 1em; white-space: nowrap; }
.vpm-picker--liste .vpm-opt.is-selected { background: var(--vpm-bg); color: var(--vpm-text); border-color: var(--vpm-dark); }
.vpm-picker--liste .vpm-opt.is-selected::before { border-color: var(--vpm-dark); background: var(--vpm-dark); box-shadow: inset 0 0 0 3px var(--vpm-bg); }
.vpm-picker--liste .vpm-opt--size.is-selected .vpm-opt-price { color: var(--vpm-text); }

/* Produktsiden (0.7.0): valgene i Design → Produktsiden. Klassene er malens (Standard 1 fra 2.8.0). */
body.vapr-produkt-uten-sti .produkt-topp .produkt-topp__sti,
body.vapr-produkt-uten-pris .produkt-topp .produkt-topp__pris,
body.vapr-produkt-uten-kort .produkt-topp .produkt-topp__kort,
body.vapr-produkt-uten-motiv .produkt-motiv,
body.vapr-produkt-uten-vegg .produkt-vegg,
body.vapr-produkt-uten-materialer .produkt-materialer,
body.vapr-produkt-uten-trygghet .produkt-trygghet { display: none !important; }

body.vapr-produkt-en-kolonne .produkt-topp .produkt-topp__inner { grid-template-columns: minmax(0, 1fr); gap: var(--space-l, 32px); }
body.vapr-produkt-en-kolonne .produkt-topp .produkt-topp__bilde { position: static; }
body.vapr-produkt-en-kolonne .produkt-topp .produkt-topp__info { width: 100%; max-width: 600px; margin-inline: auto; }
body.vapr-produkt-en-kolonne .produkt-topp .produkt-topp__tittel,
body.vapr-produkt-en-kolonne .produkt-topp .produkt-topp__pris,
body.vapr-produkt-en-kolonne .produkt-topp .produkt-topp__kort { text-align: center; }
@media (min-width: 992px) {
	body.vapr-produkt-en-kolonne .produkt-topp .woocommerce-product-gallery__image img.wp-post-image {
		width: auto !important;
		max-height: 70vh !important;
	}
}

/* Eget utvalg i den engelske utgaven (0.46.0): bildet har ikke noe igjen å velge der. */
.vpm-ikke-utland { margin: 0 0 1.5em; padding: 14px 16px; border: 1px solid var(--color-border, #d9d9d9); border-radius: var(--radius, 0); }
.vpm-ikke-utland a { display: inline-block; margin-left: 4px; text-decoration: underline; }

/* Valuta og toll i den engelske utgaven (0.46.0). */
.vpm-toll { margin: 12px 0 0; font-size: .85em; color: var(--vpm-muted); }

/* Kantvalget (0.53.0, #72): to eller tre ruter i bredden. */
.vpm-options--edge { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.vpm-options--edge.vpm-options--e3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.vpm-picker--liste .vpm-options--edge { grid-template-columns: minmax(0, 1fr); gap: 0.45em; }
@media (max-width: 480px) {
	.vpm-options--edge.vpm-options--e3 { grid-template-columns: minmax(0, 1fr); }
}

.vpm-options--edge.vpm-options--e1 { grid-template-columns: minmax(0, 1fr); }
.vpm-kantinfo { margin: 0.7em 0 0; font-size: .85em; line-height: 1.45; color: var(--vpm-muted); }

/*
 * Illustrasjonen uten vegg (0.139.0, #147): filen er bare stykket (ramme og motiv, platen, lerretet eller arket).
 * Ruten får luft rundt – bildet fyller 85 % av bredden på PC og 90 % på mobil (75 og 50 tusendeler på hver side),
 * høyden følger formatet – og
 * skyggen tegnes her etter typen, så sidens farge er veggen i alle paletter. --vpm-u = en tusendel av rutens
 * bredde (frontend.js). Ingen runde hjørner: rammen og platen har rette kanter.
 */
/* Luften regnes av rutens bredde (--vpm-u), ikke i prosent – i karusellen er prosent av hele den brede raden. */
.woocommerce-product-gallery .woocommerce-product-gallery__image.vpm-illu-celle { --vpm-u: .6px; --vpm-sk: 1; box-sizing: border-box; padding: calc(var(--vpm-u) * 75) !important; background: none; }
body.vapr-palett-mork .woocommerce-product-gallery__image.vpm-illu-celle { --vpm-sk: 1.8; }
@media (max-width: 767px) {
	.woocommerce-product-gallery .woocommerce-product-gallery__image.vpm-illu-celle { padding: calc(var(--vpm-u) * 50) !important; }
}
.woocommerce-product-gallery__image.vpm-illu-celle img.vpm-illu-flat:not(#_) { border-radius: 0 !important; box-shadow: none !important; background: none; }
.woocommerce-product-gallery__image[data-vpm-illu="ramme"] img.vpm-illu-flat {
	filter: drop-shadow(0 calc(var(--vpm-u) * 7) calc(var(--vpm-u) * 14) rgba(0, 0, 0, calc(.20 * var(--vpm-sk)))) drop-shadow(0 calc(var(--vpm-u) * 2.5) calc(var(--vpm-u) * 3.5) rgba(0, 0, 0, calc(.28 * var(--vpm-sk))));
}
.woocommerce-product-gallery__image[data-vpm-illu="plate"] img.vpm-illu-flat {
	filter: drop-shadow(0 calc(var(--vpm-u) * 13) calc(var(--vpm-u) * 20) rgba(0, 0, 0, calc(.22 * var(--vpm-sk)))) drop-shadow(0 calc(var(--vpm-u) * 4) calc(var(--vpm-u) * 5) rgba(0, 0, 0, calc(.30 * var(--vpm-sk))));
}
.woocommerce-product-gallery__image[data-vpm-illu="lerret"] img.vpm-illu-flat {
	filter: drop-shadow(0 calc(var(--vpm-u) * 16) calc(var(--vpm-u) * 24) rgba(0, 0, 0, calc(.24 * var(--vpm-sk)))) drop-shadow(0 calc(var(--vpm-u) * 6) calc(var(--vpm-u) * 8) rgba(0, 0, 0, calc(.30 * var(--vpm-sk))));
}
.woocommerce-product-gallery__image[data-vpm-illu="papir"] img.vpm-illu-flat {
	filter: drop-shadow(0 calc(var(--vpm-u) * 3) calc(var(--vpm-u) * 6) rgba(0, 0, 0, calc(.14 * var(--vpm-sk)))) drop-shadow(0 calc(var(--vpm-u) * 1) calc(var(--vpm-u) * 1.5) rgba(0, 0, 0, calc(.22 * var(--vpm-sk))));
}
@media (max-width: 767px) {
	/* Mindre luft på mobil – skyggen kortere, så den ikke kuttes av kanten. */
	.woocommerce-product-gallery__image[data-vpm-illu="lerret"] img.vpm-illu-flat {
		filter: drop-shadow(0 calc(var(--vpm-u) * 11) calc(var(--vpm-u) * 17) rgba(0, 0, 0, calc(.24 * var(--vpm-sk)))) drop-shadow(0 calc(var(--vpm-u) * 4) calc(var(--vpm-u) * 6) rgba(0, 0, 0, calc(.30 * var(--vpm-sk))));
	}
	.woocommerce-product-gallery__image[data-vpm-illu="plate"] img.vpm-illu-flat {
		filter: drop-shadow(0 calc(var(--vpm-u) * 9) calc(var(--vpm-u) * 15) rgba(0, 0, 0, calc(.22 * var(--vpm-sk)))) drop-shadow(0 calc(var(--vpm-u) * 3) calc(var(--vpm-u) * 4) rgba(0, 0, 0, calc(.30 * var(--vpm-sk))));
	}
}

/* Linjen under hovedbildet når en illustrasjon vises (0.52.0, #71 steg 2). */
.vpm-illustrasjon { margin: 10px 0 0; font-size: .8125rem; line-height: 1.45; color: var(--color-text-muted, #6b6b6b); }
.vpm-illustrasjon[hidden], .vpm-illustrasjon [hidden] { display: none; }
.vpm-illustrasjon { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 16px; }
.vpm-illustrasjon__tekst { flex: 1 1 16em; }
.vpm-illustrasjon__bytt { flex: 0 0 auto; margin: 0; padding: 4px 0; border: 0; background: none; font: inherit; color: var(--color-text, inherit); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; min-height: 32px; }
.vpm-illustrasjon__bytt:hover { text-decoration-thickness: 2px; }
.vpm-illustrasjon__bytt:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }

/*
 * «Bildet på veggen» i rom (0.69.0, #82). Skriptet legger rommet inn i malens .produkt-vegg__vegg og
 * setter plassen som prosent av rommet; --vpm-cm er piksler per cm, så ramme, kant og skygge følger størrelsen.
 * Malens faste veggbilde og bildet i den skjules.
 */
.produkt-vegg .produkt-vegg__vegg.vpm-rom { position: relative; overflow: hidden; aspect-ratio: 3 / 2; background-image: none !important; background-color: #2a2b2c !important; }
.produkt-vegg .produkt-vegg__vegg.vpm-rom.vpm-rom--smal { aspect-ratio: auto; transition: height .35s ease; } /* høyden settes av skriptet (4:5, bredere for store bilder) */
.produkt-vegg .produkt-vegg__vegg.vpm-rom > :not(.vpm-rom__scene):not(.vpm-rom__chip):not(.vpm-rom__for-stort) { display: none !important; }
.vpm-rom__scene { position: absolute; left: 0; top: 0; width: 100%; aspect-ratio: 3 / 2; background-size: 100% 100%; background-repeat: no-repeat; transition: left .35s ease, top .35s ease, width .35s ease; }
.vpm-rom__bilde {
	--vpm-cm: 2px;
	position: absolute;
	box-sizing: border-box;
	filter: brightness(var(--vpm-lys, 1));
	transition: left .35s ease, top .35s ease, width .35s ease, height .35s ease;
	box-shadow: calc(.7 * var(--vpm-cm)) calc(1.1 * var(--vpm-cm)) calc(2.6 * var(--vpm-cm)) rgba(0, 0, 0, .42), 0 calc(.25 * var(--vpm-cm)) calc(.5 * var(--vpm-cm)) rgba(0, 0, 0, .3);
}
.vpm-rom__bilde[hidden] { display: none; }
.vpm-rom__flate { position: absolute; inset: calc(var(--vpm-rw, 0) * var(--vpm-cm)); padding: calc(var(--vpm-kant, 0) * var(--vpm-cm)); background: #f3f2ee; box-sizing: border-box; transition: inset .35s ease, padding .35s ease; }
.vpm-rom__flate img { display: block; width: 100% !important; height: 100% !important; max-width: none !important; object-fit: cover; margin: 0; border-radius: 0; }
.vpm-rom__bilde.vpm-rom--ramme {
	background-color: var(--vpm-rf, #1d1d1d);
	box-shadow: calc(.8 * var(--vpm-cm)) calc(1.3 * var(--vpm-cm)) calc(3 * var(--vpm-cm)) rgba(0, 0, 0, .45), 0 calc(.3 * var(--vpm-cm)) calc(.6 * var(--vpm-cm)) rgba(0, 0, 0, .32), inset 0 0 0 calc(.12 * var(--vpm-cm)) rgba(255, 255, 255, .12);
}
/* Tre (0.101.1): årene følger hver list – loddrett i sidene, vannrett oppe og nede (::before, gjæret i hjørnene med clip-path) – og lyset kommer ovenfra. */
.vpm-rom__bilde.vpm-rom--ramme.vpm-rom--tre {
	--vpm-rb: calc(var(--vpm-rw, 0) * var(--vpm-cm));
	background-image:
		linear-gradient(90deg, rgba(255, 255, 255, .04) 0 50%, rgba(0, 0, 0, .07) 50% 100%),
		repeating-linear-gradient(90deg, rgba(0, 0, 0, .06) 0 1px, transparent 1px 5px),
		repeating-linear-gradient(90deg, transparent 0 3px, rgba(255, 255, 255, .05) 3px 4px, transparent 4px 7px),
		repeating-linear-gradient(90deg, rgba(0, 0, 0, .05) 0 2px, transparent 2px 23px);
}
.vpm-rom__bilde.vpm-rom--ramme.vpm-rom--tre::before {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background-color: var(--vpm-rf, #1d1d1d);
	background-image:
		linear-gradient(180deg, rgba(255, 255, 255, .09) 0 50%, rgba(0, 0, 0, .12) 50% 100%),
		repeating-linear-gradient(180deg, rgba(0, 0, 0, .06) 0 1px, transparent 1px 5px),
		repeating-linear-gradient(180deg, transparent 0 3px, rgba(255, 255, 255, .05) 3px 4px, transparent 4px 7px),
		repeating-linear-gradient(180deg, rgba(0, 0, 0, .05) 0 2px, transparent 2px 23px);
	box-shadow: inset 0 0 0 calc(.12 * var(--vpm-cm)) rgba(255, 255, 255, .12);
	clip-path: polygon(0 0, 100% 0, calc(100% - var(--vpm-rb)) var(--vpm-rb), calc(100% - var(--vpm-rb)) calc(100% - var(--vpm-rb)), 100% 100%, 0 100%, var(--vpm-rb) calc(100% - var(--vpm-rb)), var(--vpm-rb) var(--vpm-rb));
}
.vpm-rom__bilde.vpm-rom--ramme .vpm-rom__flate { box-shadow: inset 0 0 calc(.9 * var(--vpm-cm)) rgba(0, 0, 0, .38); }
/* Passepartout (0.130.0, #139): varm hvit, 7 cm og 8 cm i bunnen (fra dataene), den skrå snittkanten rundt bildet og et svakt skjær i glasset. */
.vpm-rom__bilde.vpm-rom--pp .vpm-rom__flate { padding: calc(var(--vpm-ppt, 0) * var(--vpm-cm)) calc(var(--vpm-pps, 0) * var(--vpm-cm)) calc(var(--vpm-ppb, 0) * var(--vpm-cm)); background: #f6f3ec; box-shadow: inset 0 0 calc(.6 * var(--vpm-cm)) rgba(0, 0, 0, .22); }
.vpm-rom__bilde.vpm-rom--pp .vpm-rom__flate img { box-shadow: 0 0 0 calc(.22 * var(--vpm-cm)) #fcfbf7, 0 0 0 calc(.3 * var(--vpm-cm)) rgba(0, 0, 0, .12); }
.vpm-rom__bilde.vpm-rom--pp .vpm-rom__flate::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(135deg, rgba(255, 255, 255, .2) 0, rgba(255, 255, 255, .06) 24%, rgba(255, 255, 255, 0) 42%); }

/* Rammebilder (0.119.0, #135): rammen med profil – den ekte listen som border-image over bildet. Bredden er profilens
   synlige bredde, så listen dekker falsen (bildet ligger inntil 6 mm under lepen), som på den ekte rammen. */
.vpm-rom__bilde.vpm-rom--ramme.vpm-rom--ekte::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	box-sizing: border-box;
	border-style: solid;
	border-color: transparent;
	border-width: calc(var(--vpm-rbw, 0) * var(--vpm-cm));
	border-image-source: var(--vpm-rbi);
	border-image-slice: var(--vpm-rbs, 80);
	border-image-width: 1;
	border-image-repeat: round;
}
.vpm-rom__bilde.vpm-rom--ramme.vpm-rom--ekte { background-color: #141414; }
.vpm-rom__bilde.vpm-rom--plate { box-shadow: calc(.4 * var(--vpm-cm)) calc(.6 * var(--vpm-cm)) calc(1.4 * var(--vpm-cm)) rgba(0, 0, 0, .38), 0 0 0 calc(.08 * var(--vpm-cm)) rgba(160, 160, 160, .7); }
.vpm-rom__bilde.vpm-rom--lerret { box-shadow: calc(1.2 * var(--vpm-cm)) calc(2 * var(--vpm-cm)) calc(4.5 * var(--vpm-cm)) rgba(0, 0, 0, .5), calc(.5 * var(--vpm-cm)) calc(.6 * var(--vpm-cm)) var(--vpm-cm) rgba(0, 0, 0, .35); }
.vpm-rom__bilde.vpm-rom--lerret img { filter: saturate(.95); }
.vpm-rom__bilde.vpm-rom--papir { box-shadow: calc(.25 * var(--vpm-cm)) calc(.35 * var(--vpm-cm)) var(--vpm-cm) rgba(0, 0, 0, .25); }
.vpm-rom__chip { position: absolute; left: 50%; bottom: 14px; transform: translateX(-50%); max-width: calc(100% - 24px); box-sizing: border-box; overflow: hidden; text-overflow: ellipsis; background: rgba(20, 20, 20, .78); color: #fff; font-size: .8125rem; font-weight: 600; line-height: 1.3; padding: 7px 14px; border-radius: 999px; white-space: nowrap; pointer-events: none; }
.vpm-rom__chip[hidden], .vpm-rom__for-stort[hidden] { display: none; }
.vpm-rom__for-stort { position: absolute; inset: 0; display: grid; place-items: center; padding: 20px; text-align: center; color: #fff; background: rgba(0, 0, 0, .35); font-size: .9375rem; line-height: 1.45; }
.vpm-rom__under { display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center; justify-content: space-between; width: 100%; }
.vpm-rom__valg { display: flex; flex-wrap: wrap; gap: 10px; padding: 4px; margin: -4px; }
.vpm-rom__knapp { display: flex; flex-direction: column; align-items: center; gap: 4px; margin: 0; padding: 0; border: 0; background: none; font: inherit; font-size: .75rem; line-height: 1.3; color: var(--color-text, inherit); cursor: pointer; min-height: 44px; }
.vpm-rom__knapp img { display: block; width: 62px; height: 41px; border-radius: 4px; object-fit: cover; outline: 1px solid var(--color-border, #dedad3); outline-offset: 0; }
.vpm-rom__knapp[aria-pressed="true"] img { outline: 2px solid var(--color-text, #1f1f1f); outline-offset: 2px; }
.vpm-rom__knapp[aria-pressed="true"] .vpm-rom__navn { font-weight: 600; }
.vpm-rom__knapp:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; border-radius: 4px; }
.vpm-rom__knapp:disabled { cursor: not-allowed; opacity: .4; }
.vpm-rom__stort { display: none; }
.vpm-rom__knapp > span { display: flex; flex-direction: column; align-items: center; }
.vpm-rom__knapp:disabled .vpm-rom__stort { display: block; font-size: .6875rem; }
.vpm-rom__tekst { margin: 0; font-size: .8125rem; line-height: 1.45; color: var(--color-text-muted, #6b6b6b); }
.vpm-rom__merk { margin: 0; width: 100%; font-size: .75rem; line-height: 1.45; color: var(--color-text-muted, #6b6b6b); }
.vpm-rom__merk:empty { display: none; }
@media (prefers-reduced-motion: reduce) {
	.vpm-rom__scene, .vpm-rom__bilde, .vpm-rom__flate, .produkt-vegg .produkt-vegg__vegg.vpm-rom.vpm-rom--smal { transition: none; }
}

/* Skisse 11b (0.118.5, #134): målestrekene rundt rammen i rommet på bildesiden – bredden over, høyden ved siden av.
   Samme utseende som i «Prøv på veggen» (.vv-mal). Bare med «Hjelp meg å velge» og Innrammet med farge og størrelse. */
.vpm-rom__mal { position: absolute; z-index: 2; pointer-events: none; filter: drop-shadow(0 0 1px rgba(255, 255, 255, .95)) drop-shadow(0 0 1px rgba(255, 255, 255, .6)); }
.vpm-rom__mal[hidden] { display: none; }
.vpm-rom__mal-b, .vpm-rom__mal-h { position: absolute; display: flex; align-items: center; justify-content: center; }
.vpm-rom__mal-b { left: 0; right: 0; top: -14px; height: 11px; border: solid #1a1a18; border-width: 0 1px; }
.vpm-rom__mal-b::before { content: ""; position: absolute; left: 0; right: 0; top: 5px; height: 1px; background: #1a1a18; }
.vpm-rom__mal-h { top: 0; bottom: 0; right: -18px; width: 11px; border: solid #1a1a18; border-width: 1px 0; }
.vpm-rom__mal-h::before { content: ""; position: absolute; top: 0; bottom: 0; left: 5px; width: 1px; background: #1a1a18; }
.vpm-rom__mal--u .vpm-rom__mal-b { top: auto; bottom: -14px; }
.vpm-rom__mal--v .vpm-rom__mal-h { right: auto; left: -18px; }
.vpm-rom__mal span { position: relative; padding: 2px 8px; border-radius: 11px; background: rgba(255, 255, 255, .94); color: #1a1a18; box-shadow: 0 1px 4px rgba(26, 26, 24, .18); font-size: 12px; font-weight: 600; line-height: 16px; white-space: nowrap; }

/* Lupe på bildesiden (0.137.0, #145) – bare PC med mus; tar ikke imot klikk (lysboksen åpnes som før). */
.vpm-lupe {
	position: absolute;
	z-index: 3;
	width: 220px;
	height: 220px;
	border: 3px solid #fff;
	border-radius: 50%;
	box-shadow: 0 4px 18px rgba(0, 0, 0, .35);
	background-color: #fff;
	background-repeat: no-repeat;
	pointer-events: none;
	opacity: 0;
	transition: opacity .15s ease;
}
.vpm-lupe.is-on {
	opacity: 1;
}
@media (hover: none), (pointer: coarse), (max-width: 991px) {
	.vpm-lupe {
		display: none;
	}
}
@media (hover: hover) and (pointer: fine) and (min-width: 992px) {
	.woocommerce-product-gallery__image[data-vpm-lupe] img {
		cursor: zoom-in;
	}
}
