/* Utseende: grunnstil og komponenter. Bruker bare var(--...) fra tokens.css: ingen egne farger, ingen egne mål.
   Alle sider og alle andre plugins bruker disse klassene (.rh-...). Nye komponenter legges til HER, aldri i en annen plugin. */
.rh-v, .rh-v * { box-sizing: border-box; }
.rh-v { font-family: var(--font-sans); color: var(--ink); background: var(--surface); line-height: 1.5; font-size: 16px; -webkit-text-size-adjust: 100%; }
.rh-v :focus-visible { outline: var(--bar) solid var(--focus); outline-offset: 2px; }

/* oppbygging */
.rh-v .rh-hoved { max-width: none; }   /* bryter ut av temaets smale innholdsbredde */
body .rh-hoved.alignfull { margin-left: 0; margin-right: 0; }   /* temaets alignfull trekker -30px sideveis; forsiden har ingen sidepolstring rundt seg, så teksten ble klippet på mobil (F38) */
.rh-nowrap { white-space: nowrap; }
.rh-behold { width: 100%; max-width: var(--max); margin-inline: auto; padding-inline: var(--s4); }
.rh-seksjon { padding-block: var(--s10); }
.rh-seksjon--myk { background: var(--surface-soft); }
.rh-seksjon--navy { background: var(--navy); color: var(--ink-inverse); }
.rh-rutenett { display: grid; gap: var(--s4); grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); }
.rh-rad { display: flex; flex-wrap: wrap; gap: var(--s3); align-items: center; }

/* typografi */
.rh-v h1, .rh-v h2, .rh-v h3, .rh-v h4 { font-family: var(--font-display); line-height: 1.15; margin: 0 0 var(--s3); text-wrap: balance; color: var(--navy); }
.rh-v h1 { font-size: clamp(32px, 5vw, 56px); }
.rh-v h2 { font-size: clamp(24px, 3.2vw, 36px); }
.rh-v h3 { font-size: clamp(20px, 2.2vw, 24px); }
.rh-v p { margin: 0 0 var(--s3); max-width: 70ch; }
.rh-dempet { color: var(--ink-muted); }
/* vanlige lenker; knapper (.rh-knapp) har egne farger og skal ikke overstyres av lenkefargen */
.rh-v a:where(:not(.rh-knapp)) { color: var(--navy); text-decoration-thickness: 1px; text-underline-offset: 2px; }
.rh-v a:where(:not(.rh-knapp)):hover { color: var(--navy-hover); }

/* knapper: primær (oransje, handling), navy, kontur. Alle minst 44 px høye. */
.rh-knapp { display: inline-flex; align-items: center; justify-content: center; gap: var(--s2); min-height: var(--touch); padding: var(--s2) var(--s5);
	border: 0; border-radius: var(--r-md); font: 700 16px/1 var(--font-sans); text-decoration: none; cursor: pointer;
	transition: background .2s var(--ease), transform .2s var(--ease), box-shadow .2s var(--ease); }
.rh-knapp:active { transform: scale(.98); }
.rh-knapp--primar { background: var(--oransje); color: var(--navy); }
.rh-knapp--primar:hover { background: var(--oransje-hover); color: var(--navy); }
.rh-knapp--navy { background: var(--navy); color: var(--ink-inverse); }
.rh-knapp--navy:hover { background: var(--navy-hover); color: var(--ink-inverse); }
.rh-knapp--kontur { background: var(--surface); color: var(--navy); box-shadow: inset 0 0 0 2px var(--navy); }
.rh-knapp--kontur:hover { background: var(--navy-tint); }
.rh-knapp[disabled], .rh-knapp[aria-disabled="true"] { background: var(--surface-grey-2); color: var(--ink-muted); cursor: not-allowed; box-shadow: none; }

/* kort (varekort, informasjonskort) */
.rh-kort { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-lg); padding: var(--s4); transition: box-shadow .2s var(--ease), transform .2s var(--ease), border-color .2s var(--ease); }
.rh-kort:hover { box-shadow: var(--shadow-hover); border-color: var(--border-strong); transform: translateY(-2px); }
.rh-kort__tittel { font: 700 18px/1.3 var(--font-sans); color: var(--navy); margin: 0 0 var(--s2); overflow-wrap: anywhere; }
.rh-kort__pris, .rh-hero__pris { white-space: nowrap; }
.rh-kort__pris { font: 700 20px/1 var(--font-sans); color: var(--ink); }
.rh-kort__for { color: var(--ink-subtle); text-decoration: line-through; margin-left: var(--s2); }

/* merker og meldinger */
.rh-merke { display: inline-block; padding: var(--s1) var(--s2); border-radius: var(--r-pill); font: 700 12px/1.2 var(--font-sans); background: var(--navy-tint); color: var(--navy); }
.rh-merke--tilbud { background: var(--oransje-tint); color: var(--oransje-ink); }
.rh-merke--ok { background: var(--suksess-tint); color: var(--suksess); }
.rh-merke--feil { background: var(--feil-tint); color: var(--feil); }
.rh-melding { padding: var(--s3) var(--s4); border-radius: var(--r-md); border-left: var(--bar) solid var(--note); background: var(--note-tint); color: var(--ink); }
.rh-melding--feil { border-color: var(--feil); background: var(--feil-tint); }
.rh-melding--varsel { border-color: var(--varsel); background: var(--oransje-tint); }
.rh-melding--ok { border-color: var(--suksess); background: var(--suksess-tint); }

/* skjemafelt */
.rh-felt { display: block; width: 100%; min-height: var(--touch); padding: var(--s2) var(--s3); border: 1px solid var(--border-control); border-radius: var(--r-md); background: var(--surface); color: var(--ink); font: 16px/1.4 var(--font-sans); }
.rh-felt:focus { border-color: var(--navy); outline: var(--bar) solid var(--focus); outline-offset: 1px; }
.rh-etikett { display: block; margin-bottom: var(--s1); font-weight: 700; color: var(--navy); }

/* tabell */
.rh-tabell { width: 100%; border-collapse: collapse; }
.rh-tabell th { text-align: left; background: var(--surface-grey); color: var(--navy); padding: var(--s2) var(--s3); border-bottom: 1px solid var(--border-strong); }
.rh-tabell td { padding: var(--s2) var(--s3); border-bottom: 1px solid var(--border); }

/* mørk seksjon */
@media (prefers-reduced-motion: reduce) { .rh-v *, .rh-v *::before, .rh-v *::after { transition: none !important; animation: none !important; } }
.rh-seksjon--navy h1, .rh-seksjon--navy h2, .rh-seksjon--navy h3 { color: var(--ink-inverse); }
.rh-v .rh-seksjon--navy a:not(.rh-knapp) { color: var(--ink-inverse); }

/* topp og bunn (markup bygges av pluginen «Topp og bunn»; stilen ligger bare her) */
.rh-hopp { position: absolute; left: var(--s2); top: -100px; background: var(--navy); color: var(--ink-inverse); padding: var(--s2) var(--s4); border-radius: var(--r-md); z-index: 100; }
.rh-hopp:focus { top: var(--s2); }
.rh-info { background: var(--navy-deep); color: var(--ink-inverse); font-size: 13px; }
.rh-info__liste { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--s1) var(--s6); list-style: none; margin: 0; padding: var(--s2) var(--s4); }
.rh-topp { background: var(--surface); border-bottom: 1px solid var(--border); position: sticky; top: 0; z-index: 50; }
.rh-topp__rad { display: flex; align-items: center; gap: var(--s4); padding-block: var(--s3); flex-wrap: wrap; }
.rh-logo { display: inline-flex; align-items: center; flex: 0 0 auto; }
.rh-logo img { display: block; height: 32px; width: auto; max-width: 100%; }
.rh-v .rh-topp .rh-logo img { height: 32px; width: auto; max-width: 100%; }   /* WooCommerce-sider (kategori, konto) ga 300 px bred logo: samme størrelse overalt */
.rh-sok { display: flex; flex: 1 1 280px; min-width: 0; order: 3; }
.rh-sok .rh-felt { border-radius: var(--r-md) 0 0 var(--r-md); min-width: 0; }
.rh-sok .rh-knapp { border-radius: 0 var(--r-md) var(--r-md) 0; }
.rh-handling { display: flex; align-items: center; gap: var(--s2); margin-left: auto; list-style: none; padding: 0; margin-block: 0; }
.rh-handling a { display: inline-flex; align-items: center; gap: var(--s1); min-height: var(--touch); padding: 0 var(--s3); text-decoration: none; font-weight: 700; border-radius: var(--r-md); }
.rh-handling a:hover { background: var(--navy-tint); }
.rh-meny { background: var(--navy); color: var(--ink-inverse); }
.rh-meny__av { position: absolute; opacity: 0; pointer-events: none; }
.rh-meny__knapp { display: inline-flex; align-items: center; gap: var(--s2); min-height: var(--touch); padding: 0 var(--s4); cursor: pointer; font-weight: 700; }
.rh-meny__av:focus-visible + .rh-meny__knapp { outline: var(--bar) solid var(--oransje); outline-offset: -3px; }
.rh-meny__liste { display: none; list-style: none; margin: 0; padding: 0; }
.rh-meny__av:checked ~ .rh-meny__liste { display: block; }
.rh-meny { position: relative; }
.rh-meny__liste > li > a { display: flex; align-items: center; min-height: var(--touch); padding: 0 var(--s4); color: var(--ink-inverse); text-decoration: none; font-weight: 700; cursor: pointer; }
@media (min-width: 782px) {
	.rh-sok { order: 0; }
	.rh-meny__knapp { display: none; }
	.rh-meny__liste { display: flex; max-width: var(--max); margin-inline: auto; padding-inline: var(--s4); }
}

/* mega-meny «Alle kategorier»: hovedkategorier til venstre, underkategorier til høyre for den aktive (hover eller trykk). Markup og skript: Topp og bunn. */
.rh-mega > summary { list-style: none; display: flex; align-items: center; gap: var(--s2); min-height: var(--touch); padding: 0 var(--s4); background: var(--oransje); color: var(--navy); font-weight: 700; cursor: pointer; white-space: nowrap; }
.rh-mega > summary::-webkit-details-marker { display: none; }
.rh-mega > summary::after { content: "▾"; font-size: 12px; }
.rh-mega[open] > summary::after { content: "▴"; }
.rh-mega__panel { background: var(--surface); color: var(--ink); }
.rh-mega:not([open]) > .rh-mega__panel { display: none; }
.rh-mega__hoved, .rh-mega__liste, .rh-mega__sub, .rh-mega__kort { list-style: none; margin: 0; padding: 0; }
.rh-mega__hovedlenke { display: flex; justify-content: space-between; align-items: center; gap: var(--s2); min-height: var(--touch); padding: 0 var(--s4); font-weight: 600; color: var(--navy); text-decoration: none; }
.rh-mega--barn > .rh-mega__hovedlenke::after { content: "›"; font-size: 18px; color: var(--ink-muted); }
.rh-mega__felt { display: none; }
.rh-mega__tittel { margin: 0 0 var(--s4); font-weight: 700; font-size: 18px; max-width: none; }
.rh-mega__tittel a { color: var(--navy); }
.rh-mega__liste { display: grid; gap: var(--s2); max-width: 560px; }
.rh-mega__lenke { display: flex; align-items: center; min-height: var(--touch); padding: 0 var(--s3); border: 1px solid var(--border); border-radius: var(--r-md); font-weight: 600; color: var(--navy); background: var(--surface); }
.rh-mega__sub { display: flex; flex-wrap: wrap; gap: var(--s1) var(--s4); padding: var(--s1) var(--s3) var(--s2); font-size: 14px; }
.rh-mega__sub a { color: var(--ink-muted); }
.rh-mega__kort { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: var(--s3); }
.rh-mega__kortlenke { display: flex; flex-direction: column; align-items: center; gap: var(--s2); padding: var(--s2); border: 1px solid var(--border); border-radius: var(--r-md); background: var(--surface); text-align: center; color: var(--navy); height: 100%; }
.rh-mega__bilde { width: 96px; height: 96px; max-width: 100%; display: flex; align-items: center; justify-content: center; background: var(--surface-grey); border-radius: var(--r-md); overflow: hidden; }
.rh-mega__bilde img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
.rh-mega__navn { font-size: 14px; font-weight: 700; line-height: 1.3; overflow-wrap: anywhere; }
.rh-mega__mobil { display: none; }
@media (min-width: 782px) {
	.rh-mega[open] > .rh-mega__panel { position: absolute; left: var(--s4); right: var(--s4); max-width: calc(var(--max) - 2 * var(--s4)); margin-inline: auto; top: 100%; z-index: 70; height: clamp(320px, 60vh, 520px); border: 1px solid var(--border-strong); border-top: 0; border-radius: 0 0 var(--r-lg) var(--r-lg); box-shadow: var(--shadow-pop); overflow: hidden; }
	.rh-mega__hoved { width: 280px; height: 100%; overflow-y: auto; padding: var(--s2) 0; background: var(--surface-soft); border-right: 1px solid var(--border); box-sizing: border-box; }
	.rh-mega__hoved > li.er-aktiv > .rh-mega__hovedlenke, .rh-mega__hoved:not(:has(> li.er-aktiv)) > li.rh-mega__forste > .rh-mega__hovedlenke { background: var(--surface); box-shadow: inset 3px 0 0 var(--oransje); }
	.rh-mega__hoved > li > .rh-mega__felt { position: absolute; left: 280px; right: 0; top: 0; bottom: 0; overflow-y: auto; padding: var(--s6); }
	.rh-mega__hoved > li.er-aktiv > .rh-mega__felt, .rh-mega__hoved:not(:has(> li.er-aktiv)) > li.rh-mega__forste > .rh-mega__felt { display: block; }
}
@media (max-width: 781px) {
	.rh-mega > summary { width: 100%; }
	.rh-mega__hovedlenke { border-bottom: 1px solid var(--border); }
	.rh-mega--barn > .rh-mega__hovedlenke::after { content: "+"; }
	.rh-mega--barn.er-aktiv > .rh-mega__hovedlenke::after { content: "–"; }
	.rh-mega__felt { padding: var(--s3) var(--s4) var(--s4); background: var(--surface-soft); border-bottom: 1px solid var(--border); }
	.rh-mega__hoved > li.er-aktiv > .rh-mega__felt { display: block; }
	.rh-mega__kort { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	/* Mobilmeny (N-240): sortimentet som rutenett, to i bredden, i stedet for listen på 22 rader. Hele bildet vises (contain, absolutt i boks med fast format). */
	.rh-mega__panel:has(> .rh-mega__mobil) > .rh-mega__hoved { display: none; }
	.rh-mega__mobil { display: block; padding: var(--s3); background: var(--surface-soft); }
	.rh-mega__rute { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s2); }
	.rh-mega__rutelenke { display: flex; flex-direction: column; height: 100%; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-md); overflow: hidden; color: var(--navy); }
	.rh-mega__rutebilde { position: relative; display: block; aspect-ratio: 1 / 1; background: var(--surface-grey); }
	.rh-mega__rutebilde img { position: absolute; inset: 4%; width: 92%; height: 92%; object-fit: contain; mix-blend-mode: multiply; }
	.rh-mega__rutenavn { display: flex; align-items: center; flex: 1; padding: var(--s2) 6px; font-size: 12px; font-weight: 700; line-height: 1.3; overflow-wrap: break-word; hyphens: auto; }
	.rh-mega__alle { margin: var(--s3) 0 0; text-align: center; font-weight: 700; }
	.rh-mega__alle a { display: flex; align-items: center; justify-content: center; min-height: var(--touch); color: var(--navy); background: var(--surface); border: 1px solid var(--border-strong); border-radius: var(--r-md); }
}

/* tilstander i toppen: tekst og bakgrunn bytter alltid sammen (hover, tapp, fokus, aktiv). Lenkefargen for hover (navy) gjorde menyen og kundelenkene mørke på mørkt. Kontrast minst 4,5:1. */
.rh-topp a, .rh-meny a, .rh-meny summary, .rh-meny__knapp, .rh-info a { -webkit-tap-highlight-color: transparent; }
.rh-v .rh-meny__liste > li > a:is(:hover, :focus-visible, :active), .rh-v .rh-meny__knapp:is(:hover, :active) { background: var(--navy-hover); color: var(--ink-inverse); }
.rh-v .rh-mega > summary:is(:hover, :focus-visible, :active), .rh-v .rh-mega[open] > summary { background: var(--oransje-hover); color: var(--navy); }
.rh-v .rh-handling a:is(:hover, :focus-visible, :active) { background: var(--navy-tint); color: var(--navy); }
.rh-v .rh-info a:is(:hover, :focus-visible, :active) { color: var(--ink-inverse); text-decoration: underline; }
.rh-v .rh-mega a:is(:hover, :focus-visible, :active) { color: var(--navy); }
.rh-v .rh-mega__hovedlenke:is(:hover, :focus-visible, :active) { background: var(--surface); }
.rh-v .rh-mega__lenke:is(:hover, :focus-visible), .rh-v .rh-mega__kortlenke:is(:hover, :focus-visible) { background: var(--navy-tint); }
.rh-v .rh-mega__sub a:is(:hover, :focus-visible) { color: var(--navy); text-decoration: underline; }
.rh-v .rh-meny :focus-visible { outline-color: var(--oransje); outline-offset: -3px; }
.rh-v .rh-mega__panel :focus-visible { outline-color: var(--navy); outline-offset: -3px; }
.rh-v .rh-info :focus-visible { outline-color: var(--ink-inverse); }

.rh-bunn { background: var(--navy); color: var(--ink-inverse); margin-top: var(--s16); }
.rh-bunn__rutenett { display: grid; gap: var(--s8); grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); padding-block: var(--s10); }
.rh-bunn h2 { font-size: 16px; text-transform: uppercase; letter-spacing: .04em; color: var(--ink-inverse); }
.rh-bunn ul { list-style: none; margin: 0; padding: 0; }
.rh-bunn li { margin-bottom: var(--s2); }
.rh-v .rh-bunn a:not(.rh-knapp) { color: var(--ink-inverse-muted); }
.rh-v .rh-bunn a:not(.rh-knapp):hover { color: var(--ink-inverse); }
.rh-bunn__juridisk { border-top: 1px solid var(--navy-hover); padding-block: var(--s4); color: var(--ink-inverse-muted); font-size: 14px; }
.rh-skjult { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* kampanjelinje øverst og toppens ekstra deler (kundevalg, kundeservice, pillknapper) */
.rh-info__rad { display: flex; align-items: center; justify-content: space-between; gap: var(--s4); flex-wrap: wrap; padding-block: var(--s2); }
.rh-info__lenker { display: flex; gap: var(--s5); list-style: none; margin: 0; padding: 0; }
.rh-info__lenker a { color: var(--ink-inverse); text-decoration: none; }
.rh-pille { display: inline-flex; align-items: center; min-height: 36px; padding: 0 var(--s4); border-radius: var(--r-pill); font-weight: 700; text-decoration: none; background: var(--surface); color: var(--navy); box-shadow: inset 0 0 0 1px var(--border-strong); }
.rh-pille--tilbud { background: var(--oransje); color: var(--navy); box-shadow: none; }
/* kategorikarusell (bla sidelengs uten JavaScript) */
.rh-karusell { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(150px, 1fr); gap: var(--s3); overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: var(--s2); }
.rh-katkort { scroll-snap-align: start; display: flex; flex-direction: column; gap: var(--s2); background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-lg); padding: var(--s2); text-decoration: none; transition: box-shadow .2s var(--ease), transform .2s var(--ease); }
.rh-v a.rh-katkort { color: var(--navy); }
.rh-katkort:hover { box-shadow: var(--shadow-hover); transform: translateY(-2px); }
.rh-katkort__bilde { aspect-ratio: 4 / 3; background: var(--surface-grey); border-radius: var(--r-md); display: flex; align-items: center; justify-content: center; overflow: hidden; }
.rh-katkort__bilde { max-height: 170px; }
.rh-karusell--topp { grid-auto-columns: minmax(150px, 220px); }
.rh-karusell--topp:not(:has(> .rh-katkort:nth-child(4))) { grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 380px)); overflow: visible; }
.rh-karusell--topp:not(:has(> .rh-katkort:nth-child(4))) > .rh-katkort { flex-direction: row; align-items: center; gap: var(--s3); padding: var(--s2) var(--s3); }
.rh-karusell--topp:not(:has(> .rh-katkort:nth-child(4))) > .rh-katkort > .rh-katkort__bilde { width: 64px; height: 64px; aspect-ratio: 1; flex: none; max-height: none; }
.rh-karusell--topp:not(:has(> .rh-katkort:nth-child(4))) > .rh-katkort > .rh-katkort__navn { flex: 1; padding: 0; }
.rh-katkort__bilde img { width: 100%; height: 100%; object-fit: contain; }
.rh-katkort__navn { display: flex; justify-content: space-between; align-items: center; font-weight: 700; padding: 0 var(--s1) var(--s1); }

/* D1 (Jørgen 2.11): kategoriruter, firkantede, én rad. Hele bildet i en kvadratisk rute, navn og antall varer på hvit bunn under. Smal skjerm: bla sidelengs som før. */
.rh-karusell--rute { grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: visible; scroll-snap-type: none; }   /* mobil: to i bredden, ingen sidelengs rulling */
@media (min-width: 640px) { .rh-karusell--rute { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.rh-katkort--rute { padding: 0; gap: 0; overflow: hidden; border-radius: var(--r-lg); }
.rh-katkort--rute .rh-katkort__bilde { aspect-ratio: 1 / 1; max-height: none; border-radius: 0; background: var(--surface-grey); }
.rh-katkort--rute .rh-katkort__bilde img { object-fit: contain; padding: var(--s2); box-sizing: border-box; }
.rh-katkort--rute .rh-katkort__navn { display: block; padding: var(--s3) var(--s3) var(--s3); background: var(--surface); }
.rh-katkort--rute .rh-katkort__tekst { display: block; font-weight: 700; line-height: 1.25; }
.rh-katkort--rute .rh-katkort__tekst small { display: block; margin-top: 2px; font-weight: 500; font-size: 12px; color: var(--ink-muted, var(--ink)); }
@media (min-width: 1100px) { .rh-karusell--rute { display: flex; flex-wrap: wrap; overflow: visible; } .rh-karusell--rute > .rh-katkort--rute { flex: 1 1 calc((100% - 7 * var(--s3)) / 8); min-width: 0; } }   /* åtte i raden, færre fyller hele bredden */

/* D1: to rolige kampanjebokser (tonet flate, ikke oransje bakgrunn) og tillitsrad */
.rh-kbokser { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s4); }
.rh-kbokse { display: flex; flex-direction: column; align-items: flex-start; gap: var(--s3); padding: var(--s6); border-radius: var(--r-lg); background: var(--navy-tint); }
.rh-kbokse--gra { background: var(--surface-grey); }
.rh-v .rh-hoved .rh-kbokse__tittel { font-family: var(--font-display); font-weight: 800; font-size: clamp(22px, 2.6vw, 30px); line-height: 1.15; margin: 0; color: var(--navy); }
.rh-kbokse > p { margin: 0; color: var(--ink-muted); }
.rh-kbokse .rh-rad { margin-top: auto; }
@media (min-width: 1100px) { .rh-rutenett--varer.rh-rutenett--fem { grid-template-columns: repeat(5, minmax(0, 1fr)); } }   /* fem varer: én rad på PC */
.rh-tillitsrad { list-style: none; margin: 0; padding: var(--s5) 0 0; border-top: 1px solid var(--border); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--s4); }
.rh-tillitsrad li { display: flex; flex-direction: column; gap: 2px; }
.rh-tillitsrad strong { font-weight: 800; color: var(--navy); }
.rh-tillitsrad span { color: var(--ink-muted); font-size: 14px; }
@media (max-width: 781px) { .rh-kbokser { grid-template-columns: 1fr; } .rh-tillitsrad { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* kampanjeblokk (hero) */
.rh-hero { display: grid; border-radius: var(--r-xl); overflow: hidden; background: var(--surface); border: 1px solid var(--border); }
.rh-hero__tekst { background: var(--oransje-tint); padding: var(--s8) var(--s6); display: flex; flex-direction: column; gap: var(--s3); align-items: flex-start; }
.rh-hero__bilde { display: flex; align-items: center; justify-content: center; padding: var(--s6); min-height: 240px; }
.rh-hero__bilde img { max-width: 100%; max-height: 420px; object-fit: contain; }
.rh-hero__pris { font: 700 clamp(32px, 4vw, 48px)/1 var(--font-display); color: var(--oransje-ink); }
.rh-hero__for { color: var(--ink-subtle); text-decoration: line-through; margin-left: var(--s2); font-size: 18px; }
.rh-brikker { display: flex; flex-wrap: wrap; gap: var(--s2); list-style: none; margin: 0; padding: 0; }
.rh-brikker li { background: var(--surface); border-radius: var(--r-pill); padding: var(--s1) var(--s3); font-weight: 700; font-size: 14px; }
@media (min-width: 782px) { .rh-hero { grid-template-columns: 1.1fr 1fr; } }

/* seksjonsoverskrift med lenke til høyre, og bilde i varekort */
.rh-seksjonshode { display: flex; align-items: baseline; justify-content: space-between; gap: var(--s4); flex-wrap: wrap; margin-bottom: var(--s4); }
.rh-seksjonshode h2 { margin: 0; }
.rh-seksjonshode:not(:first-child) { margin-top: var(--s8); }
.rh-kort__bilde { aspect-ratio: 1 / 1; background: var(--surface-grey); border-radius: var(--r-md); margin-bottom: var(--s3); display: flex; align-items: center; justify-content: center; overflow: hidden; }
/* CLS 28.10: bildet fyller boksen (absolutt), så en innlastet fil med annet sideforhold (300×300 mot width/height 300×225) aldri flytter bildet inni boksen */
.rh-kort__bilde { position: relative; }
.rh-kort__bilde img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
/* menyen brytes ikke midt i et menypunkt; for smal skjerm går den over på flere rader */
.rh-meny__liste > li > a { white-space: nowrap; }
@media (min-width: 782px) { .rh-meny__liste { flex-wrap: wrap; } }

/* sidens innhold må slå temaets egne regler for lenker og overskrifter (temaet understreker og gjør overskrifter tynne i innholdet) */
.rh-v :is(.rh-knapp, .rh-katkort, .rh-kort__tittel a, .rh-hero h3 a, .rh-topp a, .rh-info a, .rh-meny a) { text-decoration: none; }
.rh-v .rh-hoved :is(h2, h3, h4) { font-family: var(--font-display); font-weight: 700; color: var(--navy); line-height: 1.15; margin: 0 0 var(--s3); }
.rh-v .rh-hoved h2 { font-size: clamp(24px, 3.2vw, 36px); }
.rh-v .rh-hoved h3 { font-size: clamp(20px, 2.2vw, 24px); }
.rh-v .rh-hoved .rh-kort__tittel { font: 700 18px/1.3 var(--font-sans); }
.rh-v .rh-hoved .rh-seksjon--navy :is(h2, h3) { color: var(--ink-inverse); }
.rh-v .rh-hoved .rh-seksjon--navy a:where(:not(.rh-knapp)) { color: var(--ink-inverse); text-decoration: underline; }
.rh-rutenett--2 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); }
.rh-katkort__bilde img { mix-blend-mode: multiply; }
.rh-kort__bilde img { mix-blend-mode: multiply; }
.rh-kort ul { padding-left: var(--s5); margin: 0 0 var(--s4); }
.rh-kort li { margin-bottom: var(--s2); }
.rh-kort .rh-knapp + .rh-knapp { margin-left: 0; }
.rh-rutenett--3 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); }
.rh-v .rh-bunn a:where(:not(.rh-knapp)) { text-decoration: none; }
.rh-v .rh-bunn a:where(:not(.rh-knapp)):hover { text-decoration: underline; }

.rh-rutenett--varer { grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); justify-items: stretch; }
.rh-rutenett--varer > .rh-kort { min-width: 0; }

/* mobil: kompakt topp, to varer i bredden, mindre kampanjebilde */
@media (max-width: 781px) {
	.rh-info__liste { flex-wrap: nowrap; overflow-x: auto; justify-content: flex-start; gap: var(--s5); white-space: nowrap; padding-block: var(--s2); scrollbar-width: none; }
	.rh-info__lenker { display: none; }
	.rh-logo img { height: 22px; }
	.rh-v .rh-topp .rh-logo img { height: 22px; }
	.rh-handling a { padding: 0 var(--s2); font-size: 14px; }
	.rh-hero__tekst { padding: var(--s5) var(--s4); }
	.rh-hero__bilde { min-height: 0; padding: var(--s4); }
	.rh-hero__bilde img { max-height: 220px; }
	.rh-rutenett--varer { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.rh-kort { padding: var(--s3); }
	.rh-kort .rh-knapp { width: 100%; }
}

/* temaet legger blokk-luft mellom toppens deler: topplinje og topp skal sitte tett */
.rh-v .wp-site-blocks > :is(.rh-info, .rh-topp) { margin-block-start: 0; }
/* varekort: knappen ligger alltid nederst, så knappene står på samme linje uansett tittellengde */
.rh-kort { display: flex; flex-direction: column; }
.rh-kort > .rh-knapp, .rh-kort > .rh-rad { margin-top: auto; align-self: flex-start; }


/* én skrift (Manrope) overalt; tall med lik bredde der de sammenlignes (priser, tabeller), så de ikke «danser» */
.rh-v { font-feature-settings: "ss01" 0; }
.rh-v :is(h1, h2, h3, h4) { letter-spacing: -0.01em; }
.rh-v .rh-hoved :is(h2, h3, h4) { font-weight: 800; }
.rh-kort__pris, .rh-hero__pris, .rh-kort__for, .rh-hero__for, .rh-tabell td, .rh-tabell th, .rh-info__liste { font-variant-numeric: tabular-nums lining-nums; }
.rh-hero__pris { font-family: var(--font-display); font-weight: 800; }


/* pris og førpris på samme rad når det er plass, ellers under hverandre (ingen sideveis rulling på smale skjermer) */
.rh-prisrad { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px var(--s2); margin: 0 0 var(--s2); }
.rh-prisrad .rh-kort__for, .rh-prisrad .rh-hero__for { margin-left: 0; }

/* sidetittel, brødsmule, løpende tekst */
.rh-v .rh-hoved h1.rh-sidetittel { font-family: var(--font-display); font-weight: 800; font-size: clamp(28px, 4vw, 40px); line-height: 1.15; color: var(--navy); margin: 0 0 var(--s4); }
.rh-brodsmule { margin: 0 0 var(--s4); font-size: 14px; }
.rh-brodsmule ol { display: flex; flex-wrap: wrap; gap: var(--s1) var(--s2); list-style: none; margin: 0; padding: 0; color: var(--ink-muted); }
.rh-brodsmule li + li::before { content: "›"; margin-right: var(--s2); color: var(--ink-subtle); }
.rh-brodsmule a { color: var(--navy); }
.rh-tekst { max-width: 75ch; }
.rh-tekst > :first-child { margin-top: 0; }
.rh-tekst h2, .rh-tekst h3, .rh-tekst h4 { margin: var(--s6) 0 var(--s2); }
.rh-vareseksjon .rh-tekst :is(h2, h3, h4) { font-size: 1.25rem; line-height: 1.3; }
.rh-tekst ul, .rh-tekst ol { padding-left: var(--s6); margin: 0 0 var(--s3); }
.rh-tekst li { margin-bottom: var(--s1); }
.rh-tekst img { max-width: 100%; height: auto; border-radius: var(--r-md); }
.rh-tekst table { border-collapse: collapse; width: 100%; margin-bottom: var(--s4); }
.rh-tekst th, .rh-tekst td { border: 1px solid var(--border-strong); padding: var(--s2) var(--s3); text-align: left; }
.rh-tekst th { background: var(--surface-grey); color: var(--navy); }
.rh-tekst blockquote { margin: var(--s4) 0; padding: var(--s2) var(--s4); border-left: var(--bar) solid var(--oransje); background: var(--surface-soft); }

/* kategori: verktøylinje, underkategorier, sidetall */
.rh-verktoy { display: flex; align-items: center; flex-wrap: wrap; gap: var(--s3); margin: var(--s4) 0; }
.rh-verktoy p { margin: 0 auto 0 0; }
.rh-felt--kort { width: auto; min-width: 200px; }
.rh-karusell--topp { margin-top: var(--s4); }
.rh-sidetall { margin-top: var(--s8); }
.rh-sidetall ul { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--s2); list-style: none; margin: 0; padding: 0; }
.rh-sidetall a, .rh-sidetall span[aria-current] { display: inline-flex; align-items: center; justify-content: center; min-width: var(--touch); min-height: var(--touch); padding: 0 var(--s3); border-radius: var(--r-md); text-decoration: none; font-weight: 700; box-shadow: inset 0 0 0 1px var(--border-strong); }
.rh-v .rh-sidetall a:where(:not(.rh-knapp)):hover { background: var(--navy-tint); }
.rh-sidetall span[aria-current] { background: var(--navy); color: var(--ink-inverse); box-shadow: none; }
.rh-sidetall__hull { display: inline-flex; align-items: center; min-height: var(--touch); color: var(--ink-subtle); }

/* vare: galleri og kjøpsboks */
.rh-vare { display: grid; gap: var(--s8); margin-bottom: var(--s10); }
@media (min-width: 782px) { .rh-vare { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); align-items: start; } }
.rh-galleri__hoved { display: flex; align-items: center; justify-content: center; aspect-ratio: 1 / 1; background: var(--surface-grey); border-radius: var(--r-lg); overflow: hidden; }
.rh-galleri__hoved img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
.rh-galleri__miniatyrer { display: flex; flex-wrap: wrap; gap: var(--s2); list-style: none; margin: var(--s3) 0 0; padding: 0; }
.rh-galleri__miniatyrer a { display: block; width: 72px; height: 72px; background: var(--surface-grey); border-radius: var(--r-md); overflow: hidden; box-shadow: inset 0 0 0 1px var(--border); }
.rh-galleri__miniatyrer img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
.rh-kjop { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-lg); padding: var(--s6); }
.rh-lager--ja { color: var(--suksess); font-weight: 700; }
.rh-lager--nei { color: var(--feil); font-weight: 700; }
.rh-kjopsfelt { margin: var(--s4) 0; }
.rh-kjopsfelt form.cart { display: flex; flex-wrap: wrap; gap: var(--s3); align-items: center; margin: 0; }
.rh-kjopsfelt .quantity input.qty { width: 88px; min-height: var(--touch); padding: var(--s2) var(--s3); border: 1px solid var(--border-control); border-radius: var(--r-md); font: 16px/1.4 var(--font-sans); background: var(--surface); color: var(--ink); text-align: center; }
.rh-kjopsfelt .single_add_to_cart_button { display: inline-flex; align-items: center; justify-content: center; min-height: var(--touch); padding: var(--s2) var(--s6); border: 0; border-radius: var(--r-md); background: var(--oransje); color: var(--navy); font: 700 16px/1 var(--font-sans); cursor: pointer; }
.rh-kjopsfelt .single_add_to_cart_button:hover { background: var(--oransje-hover); }
/* Velg størrelse først: knappen er deaktivert og skal være lesbar (Woo legger opacity .5 på oransje, kontrast 1,86:1 i Lighthouse 27.10). */
.rh-kjopsfelt .single_add_to_cart_button.disabled, .rh-kjopsfelt .single_add_to_cart_button:disabled, .rh-kjopsfelt .single_add_to_cart_button.wc-variation-selection-needed,
.rh-kjopsfelt .single_add_to_cart_button.disabled:hover, .rh-kjopsfelt .single_add_to_cart_button:disabled:hover { background: var(--surface-grey-2); color: var(--ink-muted); cursor: not-allowed; opacity: 1; box-shadow: none; }
.rh-kjopsfelt table.variations { width: 100%; border-collapse: collapse; margin-bottom: var(--s3); }
.rh-kjopsfelt table.variations th, .rh-kjopsfelt table.variations td { display: block; text-align: left; padding: 0 0 var(--s2); }
.rh-kjopsfelt table.variations label { font-weight: 700; color: var(--navy); }
.rh-kjopsfelt table.variations select { width: 100%; min-height: var(--touch); padding: var(--s2) var(--s3); border: 1px solid var(--border-control); border-radius: var(--r-md); font: 16px/1.4 var(--font-sans); background: var(--surface); color: var(--ink); }
.rh-kjopsfelt .reset_variations { font-size: 14px; }
.rh-kjopsfelt .woocommerce-variation-price .price { font-weight: 800; font-size: 20px; color: var(--navy); }
.rh-vareseksjon { margin-bottom: var(--s8); }
.rh-vareseksjon > h2 { margin-bottom: var(--s3); }
/* brede tabeller ruller i egen ramme i stedet for å skyve hele siden sideveis */
.rh-tabellramme { overflow-x: auto; max-width: 100%; margin-bottom: var(--s4); }
.rh-tabellramme > .rh-tabell { min-width: 480px; }
.rh-tabell th[scope="row"] { width: 34%; background: var(--surface-soft); font-weight: 700; }

/* ---- Kurv og kasse (WooCommerce-blokkene restylet med tokens; ingen egne maler) ---- */
.rh-v:is(.woocommerce-cart, .woocommerce-checkout) main { max-width: var(--max); margin-inline: auto; padding: var(--s6) var(--s4) var(--s16); }
.rh-v:is(.woocommerce-cart, .woocommerce-checkout) main > * { max-width: none; margin-inline: 0; }
.rh-v:is(.woocommerce-cart, .woocommerce-checkout) .wp-block-post-title { font-family: var(--font-display); font-weight: 800; font-size: clamp(28px, 4vw, 44px); line-height: 1.1; color: var(--navy); margin: 0 0 var(--s6); }
.rh-v .wc-block-components-sidebar-layout { gap: var(--s8); }
.rh-v .wc-block-cart-items__header span, .rh-v .wc-block-cart__totals-title, .rh-v .wc-block-components-checkout-step__title { font-family: var(--font-display); font-weight: 800; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: var(--ink-muted); }
/* CLS 28.10: kassen holdes skjult til WooCommerce har tegnet ferdig (kasse-og-betaling/inc/kasse_cls.php setter og tar bort klassen). Skjult innhold hopper ikke; rammen har reservert høyde og et grått skjelett. */
html.rh-kasse-vent .wp-block-woocommerce-checkout { position: relative; min-height: 1100px; }
html.rh-kasse-vent .wp-block-woocommerce-checkout > * { visibility: hidden; }
html.rh-kasse-vent .wp-block-woocommerce-checkout::before { content: ""; position: absolute; left: 0; top: 0; width: 100%; max-width: 640px; height: 460px; border-radius: var(--r-md); background: repeating-linear-gradient(to bottom, var(--surface-grey) 0 52px, transparent 52px 76px); animation: rh-kasse-puls 1.1s ease-in-out infinite alternate; }
@keyframes rh-kasse-puls { to { opacity: .5; } }
@media (prefers-reduced-motion: reduce) { html.rh-kasse-vent .wp-block-woocommerce-checkout::before { animation: none; } }
.rh-v .wc-block-components-checkout-step__title { font-size: 20px; letter-spacing: 0; text-transform: none; color: var(--navy); }
.rh-v .wc-block-cart-item__product a, .rh-v .wc-block-components-product-name { font-weight: 700; color: var(--navy); text-decoration: none; }
.rh-v .wc-block-cart-item__product a:hover { text-decoration: underline; }
.rh-v .wc-block-cart-items { border-collapse: collapse; }
.rh-v .wc-block-cart-items td, .rh-v .wc-block-cart-items th { border-color: var(--border); }
.rh-v :is(.wc-block-formatted-money-amount, .wc-block-components-product-price, .wc-block-components-totals-item__value) { font-variant-numeric: tabular-nums; white-space: nowrap; color: var(--ink); }
.rh-v .wc-block-cart-item__total .wc-block-formatted-money-amount { font-weight: 700; }
.rh-v .wc-block-components-product-metadata, .rh-v .wc-block-components-product-metadata p { color: var(--ink-muted); font-size: 14px; }
.rh-v .wc-block-components-totals-footer-item { font-weight: 800; color: var(--navy); }
.rh-v .wc-block-components-totals-footer-item > .wc-block-components-totals-item__value .wc-block-formatted-money-amount { font-size: 22px; font-weight: 800; color: var(--navy); }
.rh-topp__rad--kasse { justify-content: space-between; flex-wrap: wrap; }
.rh-topp__rad--kasse .rh-logo img { max-width: 100%; height: auto; }
.rh-v .wc-block-components-totals-item__description, .rh-v .wc-block-components-totals-footer-item-tax { color: var(--ink-muted); font-size: 14px; }
.rh-v .wc-block-components-sidebar { align-self: start; }
.rh-v .wc-block-cart__sidebar, .rh-v .wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block { background: var(--surface-soft); border: 1px solid var(--border); border-radius: var(--r-lg); padding: var(--s5); }
.rh-v .wc-block-components-button:not(.is-link):not(.wc-block-components-quantity-selector__button) { background: var(--oransje); color: var(--navy); border: 0; border-radius: var(--r-md); min-height: 52px; font-family: var(--font-sans); font-weight: 800; font-size: 17px; opacity: 1; text-decoration: none; }
.rh-v .wc-block-components-button:not(.is-link):not(.wc-block-components-quantity-selector__button):hover { background: var(--oransje-hover); color: var(--navy); }
.rh-v .wc-block-components-button .wc-block-components-button__text { color: var(--navy); }
.rh-v .wc-block-components-button.outlined { background: var(--surface); box-shadow: inset 0 0 0 2px var(--navy); }
.rh-v .wc-block-components-text-input input, .rh-v .wc-block-components-text-input textarea, .rh-v .wc-block-components-combobox .components-combobox-control__input, .rh-v .wc-blocks-components-select__select { border: 1px solid var(--border-control); border-radius: var(--r-md); min-height: 52px; background: var(--surface); color: var(--ink); font-family: var(--font-sans); font-size: 16px; }
.rh-v .wc-block-components-text-input input:focus, .rh-v .wc-blocks-components-select__select:focus { outline: var(--bar) solid var(--focus); outline-offset: 1px; box-shadow: none; }
.rh-v .wc-block-components-text-input label, .rh-v .wc-blocks-components-select__label { color: var(--ink-muted); }
.rh-v .wc-block-components-radio-control__option, .rh-v .wc-block-components-radio-control-accordion-option { border-color: var(--border-strong); }
.rh-v .wc-block-components-radio-control__option-checked { background: var(--navy-tint); box-shadow: inset 0 0 0 2px var(--navy); }
.rh-v .wc-block-components-radio-control__input:checked::before { background: var(--navy); }
.rh-v .wc-block-components-checkbox__input:checked { background: var(--navy); border-color: var(--navy); }
.rh-v .wc-block-components-notice-banner { border-radius: var(--r-md); font-family: var(--font-sans); }
.rh-v .wc-block-components-notice-banner.is-error { background: var(--feil-tint); border-color: var(--feil); color: var(--ink); }
.rh-v .wc-block-components-quantity-selector { border-radius: var(--r-md); border-color: var(--border-control); }
.rh-v .wc-block-checkout__terms { color: var(--ink-muted); font-size: 14px; }
@media (max-width: 782px) {
	.rh-v:is(.woocommerce-cart, .woocommerce-checkout) main { padding-top: var(--s4); }
	.rh-v .wc-block-cart__sidebar { padding: var(--s4); }
}

/* ---- Informasjonssider og skjema ---- */
.rh-tekst--bred { max-width: none; }
.rh-tekst--bred > :is(p, ul, ol, h2, h3, h4, table, blockquote) { max-width: 75ch; }
.rh-tekst .rh-rutenett { margin: var(--s4) 0 var(--s6); }
.rh-tekst .rh-rutenett > .rh-kort > :is(h2, h3, h4):first-child, .rh-tekst .rh-kort > :first-child { margin-top: 0; }
.rh-tekst .rh-kort :is(p, ul) { max-width: none; }
.rh-v .rh-tekst a.rh-kort { color: var(--ink); text-decoration: none; }
.rh-v .rh-tekst a.rh-kort b, .rh-tekst .rh-kort > b:first-child { display: block; color: var(--navy); margin-bottom: var(--s1); }
.rh-tekst .rh-knapp { margin: 0 var(--s2) var(--s2) 0; }
.rh-v .rh-tekst a.rh-knapp--primar, .rh-v .rh-tekst a.rh-knapp--navy { text-decoration: none; }
.rh-tekst h2 { font-size: clamp(22px, 2.6vw, 28px); margin-top: var(--s8); }
.rh-tekst h3 { font-size: 20px; margin-top: var(--s6); }
.rh-tekst h4 { font-size: 16px; margin-top: var(--s5); }
.rh-tekst details { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-md); margin: 0 0 var(--s2); }
.rh-tekst summary { cursor: pointer; padding: var(--s3) var(--s4); min-height: var(--touch); font-weight: 700; color: var(--navy); }
.rh-tekst details[open] summary { border-bottom: 1px solid var(--border); }
.rh-tekst details > :not(summary) { padding-inline: var(--s4); }
.rh-tekst details > :last-child { padding-bottom: var(--s3); }
.rh-skjema { display: grid; gap: var(--s4); max-width: 560px; }
.rh-skjema__rad { min-width: 0; }
.rh-skjema textarea.rh-felt { resize: vertical; }
.rh-avkryss { display: flex; gap: var(--s2); align-items: flex-start; font-weight: 400; }
.rh-avkryss input { margin-top: 4px; min-width: 20px; min-height: 20px; }
.rh-melding--ok { border-left-color: var(--suksess); background: var(--suksess-tint); }
.rh-melding--feil { border-left-color: var(--feil); background: var(--feil-tint); }
.rh-tekst .rh-kort :is(h2, h3, h4) { font-size: 18px; line-height: 1.3; margin-bottom: var(--s2); }
.rh-tekst :is(code, kbd, pre) { font-family: var(--font-sans); font-size: inherit; font-weight: 700; background: var(--surface-grey); border-radius: var(--r-sm); padding: 0 var(--s1); }
.rh-tekst pre { padding: var(--s3); overflow-x: auto; }

/* ---- Tilbud, søk, hurtigbestilling og sammenlign ---- */
.rh-kort { position: relative; }
.rh-kort__merke { position: absolute; top: var(--s3); left: var(--s3); z-index: 1; font-variant-numeric: tabular-nums; }
/* 30.10: kort uten bilde beholder bildeboksen med et rolig plassholderbilde, så kortet har samme oppbygning som de andre og rabattmerket ligger på boksen, ikke oppå tittelen */
.rh-kort--vare .rh-kort__bilde:empty { display: flex; align-items: center; justify-content: center; }
.rh-kort--vare .rh-kort__bilde:empty::after { content: ""; width: 34%; height: 34%; opacity: .35; background: center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23131648' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Ccircle cx='9' cy='11' r='1.8'/%3E%3Cpath d='M21 16l-5-5-8 8'/%3E%3C/svg%3E"); }
.rh-kort__ekstra { margin: calc(-1 * var(--s1)) 0 var(--s2); }
.rh-faner { margin: 0 0 var(--s4); }
.rh-faner ul { display: flex; flex-wrap: wrap; gap: var(--s2); list-style: none; margin: 0; padding: 0; }
.rh-faner a { display: inline-flex; align-items: center; min-height: var(--touch); padding: var(--s2) var(--s4); border-radius: var(--r-pill); background: var(--surface); color: var(--navy); font-weight: 700; box-shadow: inset 0 0 0 1px var(--border-strong); }
.rh-v .rh-faner a { text-decoration: none; }
.rh-v .rh-faner a:where(:not(.rh-knapp)):hover { background: var(--navy-tint); }
.rh-v .rh-faner a[aria-current] { background: var(--navy); color: var(--ink-inverse); box-shadow: none; }
.rh-faner--sorter { margin: 0; }
.rh-faner--sorter a { min-height: 36px; padding: var(--s1) var(--s3); font-size: 14px; }
.rh-sokeskjema { display: grid; gap: var(--s3); margin: 0 0 var(--s4); max-width: 720px; }
.rh-sokeskjema__rad { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s3); }
.rh-sokeskjema__rad:first-child .rh-felt { flex: 1 1 240px; width: auto; border-radius: var(--r-md) 0 0 var(--r-md); }
.rh-sokeskjema__rad:first-child { gap: 0; flex-wrap: nowrap; }
.rh-sokeskjema__rad:first-child .rh-knapp { border-radius: 0 var(--r-md) var(--r-md) 0; }
.rh-lenkeliste { list-style: none; margin: 0 0 var(--s4); padding: 0; display: grid; gap: var(--s2); }
.rh-melding .rh-lenkeliste { margin: 0; }
.rh-liten-overskrift { font-size: 20px; margin: var(--s6) 0 var(--s3); }
.rh-skjema--bred { max-width: 720px; }
.rh-skjema--rutenett { max-width: none; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); align-items: end; }
.rh-tabellramme > .rh-tabell--sammenlign { min-width: 640px; }
.rh-tabell--sammenlign thead th { vertical-align: top; font-weight: 700; min-width: 180px; }
.rh-tabell--sammenlign thead th:first-child { min-width: 0; }
.rh-tabell--sammenlign tbody th[scope="row"] { position: sticky; left: 0; width: auto; min-width: 110px; }
.rh-sammenlign__bilde { display: block; margin-bottom: var(--s2); }
.rh-sammenlign__bilde img { display: block; width: 96px; height: 96px; object-fit: contain; border-radius: var(--r-md); background: var(--surface-grey); }
.rh-tabell--sammenlign td { vertical-align: top; }
.rh-seksjon .rh-melding { margin: 0 0 var(--s4); }
.rh-skjema--rutenett { margin-bottom: var(--s6); }
.rh-skjema--bred + .rh-tabellramme { margin-top: var(--s6); }

/* ---- Samtykke (informasjonskapsler): samme bunnark som riktighandel.no (mål, skrift, farger og skygger fra live; «Ja» er den store oransje knappen, «Nei takk» en tydelig knapp på samme lag) ---- */
.rh-samtykke { position: fixed; left: 0; right: 0; bottom: 0; z-index: 100002; background: var(--surface); color: var(--samtykke-tekst); border-top: 1px solid var(--border); box-shadow: var(--shadow-stripe); font-size: 14px; line-height: 1.4; max-height: 60vh; overflow: auto; contain: layout; }   /* 31.10: kompakt stripe nederst, ingen dimming av siden */
.rh-samtykke[hidden], .rh-samtykke [hidden] { display: none; }
.rh-samtykke:focus { outline: none; }
.rh-samtykke__indre { max-width: 760px; margin: 0 auto; padding: 10px 16px calc(env(safe-area-inset-bottom, 0px) + 10px); }
.rh-v .rh-samtykke__tittel { font-family: var(--font-sans); font-weight: 700; font-size: 14px; line-height: 1.25; margin: 0; color: var(--samtykke-tekst); }
.rh-v .rh-samtykke__tekst p { margin: 0; font-size: 14px; max-width: none; }
.rh-v .rh-samtykke a { color: var(--samtykke-lenke); text-decoration: underline; }
.rh-samtykke__velg { display: flex; gap: 0 12px; flex-wrap: wrap; margin: 0 0 10px; padding: 0; border: 0; min-width: 0; }
.rh-samtykke__velg[hidden] { display: none; }
.rh-samtykke__valg { display: flex; align-items: center; gap: 6px; min-height: var(--touch); cursor: pointer; font-weight: 400; }
.rh-samtykke__valg input { flex: none; width: 18px; height: 18px; margin: 0; accent-color: var(--navy); }
.rh-samtykke__knapper { display: grid; grid-template-columns: 1.4fr 1fr auto; gap: 8px; margin-top: 8px; align-items: center; }
.rh-samtykke__knapper .rh-knapp { width: 100%; min-height: 44px; padding: 0 var(--s2); border-radius: 8px; border: 2px solid var(--navy); background: var(--surface); color: var(--navy); font: inherit; font-size: 15px; font-weight: 600; box-shadow: none; cursor: pointer; }
.rh-samtykke__knapper .rh-knapp:hover { background: var(--surface); color: var(--navy); }
.rh-samtykke__knapper .rh-samtykke__ja, .rh-samtykke__knapper .rh-samtykke__ja:hover { min-height: 44px; background: var(--samtykke-ja); border-color: var(--samtykke-ja); color: var(--ink-inverse); font-size: 15px; font-weight: 700; box-shadow: none; }
.rh-samtykke__knapper .rh-lenkeknapp { width: auto; min-height: 44px; justify-self: end; font-size: 14px; font-weight: 600; color: var(--samtykke-lenke); }
.rh-samtykke__knapper :is(.rh-knapp, .rh-lenkeknapp):focus-visible { outline: 3px solid var(--navy); outline-offset: 2px; }
.rh-samtykke__knapper [hidden] { display: none; }
.rh-lenkeknapp { display: inline-flex; align-items: center; min-height: var(--touch); padding: 0 var(--s2); border: 0; background: none; color: var(--navy); font: inherit; font-weight: 600; text-decoration: underline; text-underline-offset: 2px; cursor: pointer; }
.rh-lenkeknapp:hover { color: var(--navy-hover); }
.rh-bunn .rh-lenkeknapp { min-height: 24px; padding: 0; color: var(--ink-inverse-muted); font-weight: 400; }
.rh-bunn .rh-lenkeknapp:hover { color: var(--ink-inverse); }


/* CLS 28.10: banneret vises først når hele markupen er lest (html.rh-sam-klar settes av linja rett etter banneret); reserve uten JavaScript: animasjonen viser det etter 3 s */
.rh-samtykke { visibility: hidden; animation: rh-samtykke-vis 0s 3s forwards; }
html.rh-sam-klar .rh-samtykke { visibility: visible; animation: none; }
@keyframes rh-samtykke-vis { to { visibility: visible; } }
/* ---- Min konto (plugin Min konto): Woo sine kontoskjemaer og -sider med tokens ---- */
.rh-konto { padding-bottom: var(--s12); }
.rh-konto .woocommerce { display: grid; gap: var(--s8); align-items: start; }
.rh-konto .woocommerce > * { min-width: 0; max-width: 100%; }
body .rh-konto .woocommerce::before, body .rh-konto .woocommerce::after, body.woocommerce-account .rh-konto .woocommerce::before, body.woocommerce-account .rh-konto .woocommerce::after { content: none; display: none; }
.rh-konto .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: flex; gap: var(--s2); overflow-x: auto; -webkit-overflow-scrolling: touch; }
.rh-konto .woocommerce-MyAccount-navigation li { flex: 0 0 auto; margin: 0; }
.rh-konto .woocommerce-MyAccount-navigation a { display: flex; align-items: center; min-height: var(--touch); padding: var(--s2) var(--s4); border-radius: var(--r-md); color: var(--navy); font-weight: 700; text-decoration: none; box-shadow: inset 0 0 0 1px var(--border-strong); white-space: nowrap; }
.rh-konto .woocommerce-MyAccount-navigation a:hover { background: var(--navy-tint); }
.rh-konto .woocommerce-MyAccount-navigation .is-active a { background: var(--navy-tint); box-shadow: inset 0 0 0 2px var(--navy); }
/* Aktivt valg i Min konto (kundetest 27.10 G8): teksten var nesten usynlig (lys tekst på lys bakgrunn: Woos egen stil for .is-active vant). Høyere spesifisitet, mørk tekst (navy på lys tint, kontrast ca. 15:1), fet og en tydelig venstrestrek. */
body.woocommerce-account .rh-konto .woocommerce-MyAccount-navigation ul li.is-active a, body .rh-konto .woocommerce-MyAccount-navigation ul li.is-active a:hover { color: var(--navy); background: var(--navy-tint); font-weight: 800; box-shadow: inset 4px 0 0 var(--oransje), inset 0 0 0 2px var(--navy); opacity: 1; }
.rh-konto .woocommerce-MyAccount-content { min-width: 0; }
.rh-konto .woocommerce-MyAccount-content > h2, .rh-konto__hei { font-size: clamp(24px, 3vw, 32px); margin-bottom: var(--s3); }
.rh-konto__under, .rh-konto__ekstra h2 { font-size: 20px; margin: var(--s8) 0 var(--s3); }
.rh-konto .rh-rutenett { margin-block: var(--s6); }
.rh-konto .rh-kort .rh-knapp { margin-top: var(--s2); }
.rh-konto .col2-set, .rh-konto .woocommerce-Addresses { display: grid; gap: var(--s6); }
.rh-konto .col2-set > div, .rh-konto .woocommerce-Address { padding: var(--s5); border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--surface); }
.rh-konto .col2-set h2, .rh-konto .woocommerce-Address-title h2, .rh-konto .woocommerce-Address h2 { font-size: 22px; margin-bottom: var(--s4); }
/* Innlogging og registrering (ikke innlogget): to like kort side om side fra 782 px, under hverandre under. Woos 48 %-bredder med flyt (woocommerce-layout.css), rammen om hvert skjema og eldre regler for .u-columns (riktighandel-design) nullstilles, så kortet er eneste ramme. */
body .rh-konto .col2-set > :is(.col-1, .col-2) { float: none; width: auto; margin: 0; min-width: 0; }
body .rh-konto .col2-set::before, body .rh-konto .col2-set::after { content: none; }   /* Woos clearfix-pseudoelementer blir ellers egne rutenettceller (tomme flater) */
body .rh-konto #customer_login { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s6); align-items: start; width: 100%; margin: 0; padding: 0; border: 0; border-radius: 0; background: none; }
body .rh-konto #customer_login :is(form.login, form.register) { margin: 0; padding: 0; border: 0; border-radius: 0; background: none; }
.rh-konto .woocommerce-Address-title { display: flex; justify-content: space-between; align-items: baseline; gap: var(--s3); }
.rh-konto address { font-style: normal; line-height: 1.6; }
.rh-konto form p, .rh-konto form .form-row { margin: 0 0 var(--s4); max-width: none; }
.rh-konto form label { display: block; margin-bottom: var(--s1); color: var(--ink-muted); font-weight: 600; }
.rh-konto form :is(input.input-text, input[type="text"], input[type="email"], input[type="password"], input[type="tel"], select, textarea) { width: 100%; min-height: 52px; padding: var(--s2) var(--s3); border: 1px solid var(--border-control); border-radius: var(--r-md); background: var(--surface); color: var(--ink); font: 16px/1.4 var(--font-sans); }
.rh-konto form :is(input, select, textarea):focus { outline: var(--bar) solid var(--focus); outline-offset: 1px; }
.rh-konto form .woocommerce-form__label-for-checkbox { display: flex; align-items: center; gap: var(--s2); font-weight: 400; color: var(--ink); }
.rh-konto form input[type="checkbox"], .rh-konto form input[type="radio"] { width: 20px; height: 20px; accent-color: var(--navy); }
.rh-konto__type { margin: 0 0 var(--s4); padding: 0; border: 0; display: flex; flex-wrap: wrap; gap: var(--s2) var(--s6); }
.rh-konto__type legend { padding: 0; margin-bottom: var(--s2); color: var(--ink-muted); font-weight: 600; }
.rh-konto__type label { display: inline-flex; align-items: center; gap: var(--s2); margin: 0; min-height: var(--touch); font-weight: 400; color: var(--ink); }
.rh-konto :is(button.button, .woocommerce-button, a.button, .woocommerce-Button) { display: inline-flex; align-items: center; justify-content: center; min-height: var(--touch); padding: var(--s2) var(--s5); border: 0; border-radius: var(--r-md); background: var(--oransje); color: var(--navy); font: 800 16px/1.2 var(--font-sans); text-decoration: none; cursor: pointer; }
.rh-konto :is(button.button, .woocommerce-button, a.button, .woocommerce-Button):hover { background: var(--oransje-hover); color: var(--navy); }
.rh-konto .woocommerce-orders-table .woocommerce-button { min-height: 36px; padding: var(--s1) var(--s3); font-size: 14px; margin: 0 var(--s1) var(--s1) 0; }
.rh-konto .lost_password, .rh-konto .woocommerce-LostPassword { margin-top: var(--s3); }
.rh-konto table { width: 100%; border-collapse: collapse; }
.rh-konto :is(th, td) { padding: var(--s3); border-bottom: 1px solid var(--border); text-align: left; vertical-align: top; font-variant-numeric: tabular-nums; }
.rh-konto thead th { font-size: 13px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--ink-muted); }
.rh-konto :is(.woocommerce-error, .woocommerce-message, .woocommerce-info) { list-style: none; margin: 0 0 var(--s4); padding: var(--s3) var(--s4); border-radius: var(--r-md); border-left: var(--bar) solid var(--note); background: var(--note-tint); color: var(--ink); }
.rh-konto .woocommerce-error { border-left-color: var(--feil); background: var(--feil-tint); }
.rh-konto .woocommerce-message { border-left-color: var(--suksess); background: var(--suksess-tint); }
@media (min-width: 900px) {
	.rh-konto .woocommerce:has(> .woocommerce-MyAccount-navigation) { grid-template-columns: 240px minmax(0, 1fr); }
	body .rh-konto .woocommerce > .woocommerce-MyAccount-navigation { grid-column: 1; grid-row: 1; float: none; width: auto; }
	body .rh-konto .woocommerce > .woocommerce-MyAccount-content { grid-column: 2; grid-row: 1; float: none; width: auto; }
	.rh-konto .woocommerce-MyAccount-navigation ul { flex-direction: column; overflow: visible; }
	.rh-konto .woocommerce-MyAccount-navigation a { white-space: normal; }
}
@media (min-width: 782px) {
	.rh-konto .col2-set, .rh-konto .woocommerce-Addresses { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	body .rh-konto #customer_login { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
	.rh-konto .shop_table_responsive thead { display: none; }
	.rh-konto .shop_table_responsive tr { display: block; margin-bottom: var(--s3); border: 1px solid var(--border); border-radius: var(--r-md); }
	.rh-konto .shop_table_responsive td { display: flex; justify-content: space-between; gap: var(--s3); border-bottom: 1px solid var(--border); }
	.rh-konto .shop_table_responsive td::before { content: attr(data-title); font-weight: 700; color: var(--ink-muted); }
	.rh-konto .shop_table_responsive td:last-child { border-bottom: 0; }
}

/* ---- Obligatorisk-stjerne (WooCommerce-skjemaer) i feilfarge fra paletten ---- */
.rh-v :is(.required, abbr.required) { color: var(--feil); text-decoration: none; border: 0; }

/* ---- Varesiden: kvantumsrabatt og kjøpsinfo under «Legg i kurv» ---- */
.rh-kvantum { margin: var(--s4) 0; border: 1px solid var(--border); border-radius: var(--r-md); overflow: hidden; background: var(--surface); }
.rh-v .rh-kvantum__tittel { margin: 0; max-width: none; padding: var(--s2) var(--s3); background: var(--navy); color: var(--ink-inverse); font: 700 14px/1.4 var(--font-sans); }
.rh-kvantum .rh-tabell { font-size: 14px; font-variant-numeric: tabular-nums; }
.rh-kvantum .rh-tabell :is(th, td) { padding: var(--s2) var(--s3); white-space: nowrap; }
.rh-kvantum .rh-tabell tbody tr:last-child td { border-bottom: 0; }
.rh-kvantum__spar { color: var(--suksess); font-weight: 700; }
.rh-kjopinfo { list-style: none; margin: var(--s3) 0 0; padding: 0; font-size: 14px; line-height: 1.5; color: var(--ink-muted); }
.rh-kjopinfo li { padding: var(--s1) 0; }
.rh-kjopinfo__lager { color: var(--suksess); font-weight: 700; }
.rh-v .rh-leveringsloefte { max-width: none; margin: 0 0 var(--s4); padding: var(--s3) var(--s4); background: var(--suksess-tint); color: var(--suksess); border-radius: var(--r-md); font-size: 15px; font-weight: 700; line-height: 1.4; }

/* ---- Informasjonssider: nøkkeltall, tekst med bilde, navn/verdi-liste og handlingsbånd (brukes av Sider) ---- */
.rh-tekst:has(:is(.rh-nokkeltall, .rh-tekstbilde, .rh-cta, .rh-rutenett)) { max-width: none; }
.rh-tekst:has(:is(.rh-nokkeltall, .rh-tekstbilde, .rh-cta, .rh-rutenett)) > :is(p, ul, ol, details) { max-width: 75ch; }
.rh-nokkeltall { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: var(--s3); margin: var(--s6) 0 var(--s10); }
.rh-nokkeltall > div { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-lg); padding: var(--s4); text-align: center; color: var(--ink-muted); font-size: 14px; }
.rh-nokkeltall b { display: block; font: 800 28px/1.1 var(--font-display); color: var(--navy); font-variant-numeric: tabular-nums; }
.rh-tekstbilde { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s8); align-items: center; margin: 0 0 var(--s12); }
.rh-tekstbilde img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r-lg); display: block; }
.rh-tekstbilde > div > :first-child { margin-top: 0; }
.rh-tekstbilde:not(:has(img)) { grid-template-columns: 1fr; margin-bottom: var(--s8); }
.rh-tekstbilde--snu > :first-child { order: 2; }
.rh-tekstbilde--ramme { gap: 0; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-xl); overflow: hidden; }
.rh-tekstbilde--ramme img { border-radius: 0; height: 100%; aspect-ratio: auto; min-height: 260px; }
.rh-tekstbilde--ramme > div { padding: var(--s6); }
.rh-dl { display: grid; grid-template-columns: auto 1fr; gap: var(--s1) var(--s4); margin: var(--s4) 0; }
.rh-dl dt { font-weight: 700; color: var(--navy); }
.rh-dl dd { margin: 0; }
.rh-cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s4); background: var(--navy); color: var(--ink-inverse); border-radius: var(--r-xl); padding: var(--s8); margin: var(--s12) 0 0; }
.rh-v .rh-hoved .rh-cta :is(h2, h3) { color: var(--ink-inverse); margin: 0 0 var(--s2); }
.rh-cta p { margin: 0; color: var(--ink-inverse-muted); }
@media (max-width: 782px) {
	.rh-tekstbilde { grid-template-columns: 1fr; gap: var(--s4); }
	.rh-tekstbilde--snu > :first-child { order: 0; }
	.rh-tekstbilde--ramme > div { padding: var(--s4); }
	.rh-cta { padding: var(--s6) var(--s4); }
}

/* ---- Filter og hurtigsøk (moduler i Katalog): filterpanel på kategorisider, valgte brikker, forslag under toppsøket ---- */
.rh-kat-med-filter { display: grid; grid-template-columns: var(--bredde-side) minmax(0, 1fr); grid-template-areas: "side hode" "side hoved"; grid-template-rows: auto 1fr; column-gap: var(--s8); align-items: start; margin-top: 0; }
.rh-kat-hode { grid-area: hode; }
.rh-kat-side { grid-area: side; }
.rh-kat-hoved { grid-area: hoved; }
.rh-kat-hoved, .rh-kat-hode { min-width: 0; }
.rh-filter__knapp, .rh-filter__lukk, .rh-filter__ferdig { display: none; }
.rh-filter__panel { display: block; }
.rh-filter__topp { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); padding-bottom: var(--s2); border-bottom: 1px solid var(--border); font-size: 18px; color: var(--navy); }
.rh-filter__nullstill { margin-left: auto; font-size: 14px; font-weight: 700; }
.rh-filter__gruppe { border-bottom: 1px solid var(--border); padding: var(--s2) 0; }
.rh-filter__gruppe > summary { cursor: pointer; font-weight: 800; color: var(--navy); min-height: var(--touch); display: flex; align-items: center; list-style: none; }
.rh-filter__gruppe > summary::-webkit-details-marker { display: none; }
.rh-filter__gruppe > summary::after { content: "+"; margin-left: auto; font-size: 20px; line-height: 1; }
.rh-filter__gruppe[open] > summary::after { content: "\2212"; }
.rh-filter__liste { list-style: none; margin: 0; padding: 0; max-height: 440px; overflow-y: auto; }
.rh-v .rh-filter__rad { display: flex; align-items: center; gap: var(--s3); min-height: var(--touch); padding: 0 var(--s1); color: var(--ink); text-decoration: none; border-radius: var(--r-sm); }
.rh-v .rh-filter__rad:hover { background: var(--surface-grey); color: var(--ink); }
.rh-filter__boks { flex: none; width: 20px; height: 20px; border: 2px solid var(--border-control); border-radius: var(--r-sm); background: var(--surface); }
.rh-filter__rad--valgt .rh-filter__boks { background: var(--navy); border-color: var(--navy); box-shadow: inset 0 0 0 3px var(--surface); }
.rh-filter__rad--valgt { font-weight: 700; }
.rh-filter__antall { margin-left: auto; color: var(--ink-muted); font-size: 14px; font-variant-numeric: tabular-nums; }
.rh-filter__pris { display: flex; align-items: center; gap: var(--s2); padding: var(--s1) 0 var(--s2); }
.rh-filter__pris .rh-felt { width: 0; flex: 1 1 0; min-width: 0; }
.rh-brikker--lenker { margin: var(--s3) 0; }
.rh-brikker--lenker li { padding: 0; background: var(--surface-grey); }
.rh-brikker--lenker li { border: 1px solid var(--border-control); }
.rh-v .rh-brikker .rh-brikke { font-size: 15px; }
.rh-v .rh-brikker .rh-brikke > span[aria-hidden] { margin-left: var(--s2); font-size: 22px; font-weight: 800; line-height: 1; }
.rh-v .rh-brikker .rh-brikke:hover > span[aria-hidden] { color: var(--oransje-ink); }
.rh-v .rh-brikker .rh-brikke { display: inline-flex; text-decoration: none; align-items: center; min-height: var(--touch); padding: 0 var(--s3); color: var(--navy); text-decoration: none; }
.rh-v .rh-brikker .rh-brikke:hover { background: var(--surface-grey); color: var(--navy); border-radius: var(--r-pill); }
/* verdier i panelet: de åtte første, «Vis alle», og de uten treff bak «Vis N som ikke passer valgene» (som på riktighandel.no) */
.rh-filter__mer, .rh-filter__ute { display: none; }
.rh-filter__liste:has(.rh-filter__vis:not(.rh-filter__vis--ute) input:checked) .rh-filter__mer { display: list-item; }
.rh-filter__liste:has(.rh-filter__vis--ute input:checked) .rh-filter__ute { display: list-item; }
.rh-filter__vis label { display: flex; align-items: center; min-height: var(--touch); padding: 0 var(--s1); color: var(--navy); font-size: 14px; font-weight: 700; cursor: pointer; }
.rh-filter__vis--ute label { color: var(--ink-muted); font-weight: 400; }
.rh-filter__vis input:checked + span::after { content: " (skjul)"; }
.rh-filter__rad--av { opacity: .45; cursor: default; }
.rh-filter__bak, .rh-kat-antall { display: none; }
.rh-fjs .rh-verktoy__send { display: none; }
.rh-kat-hoved[aria-busy="true"] .rh-rutenett { opacity: .5; transition: opacity .15s; }
@media (max-width: 899px) {
	.rh-kat-med-filter { grid-template-columns: 1fr; grid-template-areas: "hode" "hoved" "side"; grid-template-rows: none; gap: var(--s3); }
	/* fast linje under toppen: Filtrer | Sorter (som på riktighandel.no) */
	.rh-verktoy--filter { position: sticky; top: var(--topp-h, 64px); z-index: 40; display: grid; grid-template-columns: 1fr 1fr; gap: var(--s2); margin: 0; padding: var(--s2) 0; background: var(--surface); border-bottom: 1px solid var(--border); }
	.rh-verktoy--filter .rh-verktoy__antall { display: none; }
	.rh-verktoy--filter .rh-verktoy__send { grid-column: 1 / -1; }
	.rh-verktoy--filter .rh-felt { width: 100%; max-width: none; }
	.rh-filter__knapp { display: inline-flex; justify-content: center; width: 100%; }
	/* CLS 28.10: kolonnen under varene er skjult til varene er lest (html.rh-kat-klar settes av linja rett etter dem i katalog/inc/markup.php); reserve uten JavaScript: animasjonen viser den etter 3 s */
	.rh-kat-med-filter > .rh-kat-filter { visibility: hidden; animation: rh-kat-vis 0s 3s forwards; }
	html.rh-kat-klar .rh-kat-med-filter > .rh-kat-filter { visibility: visible; animation: none; }
	@keyframes rh-kat-vis { to { visibility: visible; } }
	.rh-kat-antall { display: block; margin: var(--s2) 0 0; }
	/* arket nedenfra med mørkt overlegg; trykk utenfor lukker */
	.rh-filter__panel { display: none; }
	.rh-filter__av:checked ~ .rh-filter__bak { display: block; position: fixed; inset: 0; z-index: 90; }
	.rh-filter__av:checked ~ .rh-filter__panel { display: flex; flex-direction: column; position: fixed; left: 0; right: 0; bottom: 0; z-index: 91; max-height: 88vh; max-height: 88dvh; background: var(--surface); border-radius: var(--r-lg) var(--r-lg) 0 0; box-shadow: var(--shadow-ark); padding: var(--s4) var(--s4) 0; overflow-y: auto; overscroll-behavior: contain; }
	body:has(.rh-filter__av:checked) { overflow: hidden; }
	.rh-filter__lukk { display: inline-flex; align-items: center; min-height: var(--touch); padding: 0 var(--s2); font-size: 14px; font-weight: 700; cursor: pointer; }
	.rh-filter__ferdig { display: inline-flex; position: sticky; bottom: 0; margin: var(--s3) 0; width: 100%; box-shadow: 0 0 0 var(--s3) var(--surface); }
	.rh-filter__av:focus-visible ~ .rh-filter__panel { outline: none; }
}
/* ---- Hurtigsøk (Katalog): forslagspanelet under toppsøket. Motoren er gjenbrukt fra den gamle butikkens hurtigsøk; klassene (hs-*) er de samme, stilen er våre tokens. ---- */
.rh-sok { position: relative; }
.hs-panel { position: absolute; z-index: 100001; display: flex; flex-direction: column; overflow: hidden; max-height: min(70vh, 560px); background: var(--surface); border-radius: var(--r-lg); box-shadow: var(--shadow-sticky), 0 0 0 1px var(--border); font: 14px/1.4 var(--font-sans); color: var(--ink); }
.hs-panel[hidden] { display: none; }
.hs-panel *, .hs-skjema * { box-sizing: border-box; }
.hs-liste { flex: 1 1 auto; min-height: 0; overflow: auto; -webkit-overflow-scrolling: touch; }
.hs-tittel { padding: var(--s3) var(--s3) var(--s1); font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--ink-muted); }
.hs-rad { display: flex; align-items: center; gap: var(--s3); min-height: 56px; padding: var(--s2) var(--s3); color: inherit; text-decoration: none; cursor: pointer; }
.hs-rad:hover, .hs-rad.er-valgt { background: var(--navy-tint); }
.hs-rad img { flex: none; width: 48px; height: 48px; object-fit: contain; border-radius: var(--r-sm); background: var(--surface); box-shadow: inset 0 0 0 1px var(--border); }
.hs-rad__t { flex: 1; min-width: 0; }
.hs-rad__n { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; overflow-wrap: anywhere; font-weight: 700; line-height: 1.3; color: var(--navy); }
.hs-rad__n mark, .hs-rad__k mark, .hs-kat mark { background: none; color: var(--oransje-ink); font-weight: 800; }
.hs-rad__m { display: flex; flex-wrap: wrap; gap: var(--s1) var(--s2); align-items: center; margin-top: 2px; font-size: 13px; color: var(--ink-muted); }
.hs-rad__m i { display: inline-block; width: 7px; height: 7px; margin-right: var(--s1); border-radius: 50%; background: var(--suksess); }
.hs-rad__m i.er-bestill { background: var(--varsel); }
.hs-rad__m i.er-tom { background: var(--ink-subtle); }
.hs-rad__k { font-weight: 600; font-variant-numeric: tabular-nums; color: var(--ink); }
.hs-rad__p { flex: none; text-align: right; font-weight: 800; white-space: nowrap; font-variant-numeric: tabular-nums; color: var(--navy); }
.hs-rad__p small { margin-right: 3px; font-weight: 600; color: var(--ink-muted); }
.hs-rad__p s { display: block; font-size: 12px; font-weight: 400; color: var(--ink-subtle); }
.hs-rad__p em { display: block; margin-top: 2px; font-style: normal; font-weight: 700; color: var(--oransje-ink); }
.hs-kat { display: flex; flex-wrap: wrap; gap: 6px; padding: var(--s1) var(--s3) var(--s3); }
.hs-kat a { display: inline-flex; align-items: center; min-height: var(--touch); padding: 6px var(--s4); border-radius: var(--r-pill); background: var(--surface-grey); color: var(--ink); text-decoration: none; font-size: 14px; font-weight: 600; }
.hs-kat a:hover, .hs-kat a.er-valgt { background: var(--navy); color: var(--ink-inverse); }
.hs-kat a:hover mark, .hs-kat a.er-valgt mark { color: var(--ink-inverse); }
.hs-alle { flex: none; display: block; padding: var(--s3); border-top: 1px solid var(--border); background: var(--surface); color: var(--navy); font-weight: 700; text-decoration: none; }
.hs-alle:hover, .hs-alle.er-valgt { background: var(--surface-soft); }
.hs-ingen { padding: var(--s4) var(--s3); color: var(--ink-muted); }
.hs-ute { padding: var(--s2) var(--s3); }
.hs-status { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.hs-skjema { position: relative; display: flex; max-width: 640px; }
.hs-skjema input { flex: 1; min-width: 0; height: 46px; padding: 0 var(--s4); border: 1px solid var(--border-control); border-radius: var(--r-pill); font-size: 16px; }
@media (max-width: 600px) {
	.hs-rad img { width: 42px; height: 42px; }
	.hs-panel { border-radius: var(--r-md); }
	.hs-liste { padding-bottom: 56px; scroll-padding-bottom: 56px; }
}

/* ---- Guider: oversikten /butikk/guider-og-hjelpeartikler med bilde, utdrag og «Les guiden →» (brukes av Sider) ---- */
.rh-ingress { font-size: 18px; line-height: 1.5; color: var(--ink-muted); max-width: 70ch; margin: 0 0 var(--s6); }
.rh-guider { margin-bottom: var(--s8); }
.rh-guide { display: flex; flex-direction: column; }
.rh-guide .rh-kort__bilde { aspect-ratio: 16 / 10; background: var(--surface); border: 1px solid var(--border); }
.rh-guide .rh-kort__bilde img { object-fit: contain; padding: var(--s2); mix-blend-mode: normal; }
.rh-guide .rh-dempet { margin: 0 0 var(--s3); }
.rh-guide__les { margin-top: auto; font-weight: 700; color: var(--navy); }

/* ---- Kategorimeny (modul i Katalog): venstre kolonne på kategorisider, bare PC (≥ 1024 px). Filterpanelet står under menyen i samme kolonne. ---- */
.rh-kat-side { min-width: 0; display: flex; flex-direction: column; gap: var(--s6); }
.rh-km { flex: none; border: 1px solid var(--border); border-radius: var(--r-md); background: var(--surface); overflow: hidden; }
.rh-v .rh-km__tittel { margin: 0; padding: var(--s3) var(--s4); background: var(--navy); color: var(--ink-inverse); font: 700 16px/1.3 var(--font-sans); }
.rh-km ul { list-style: none; margin: 0; padding: 0; }
.rh-km__punkt { margin: 0; border-bottom: 1px solid var(--border); }
.rh-km__liste--n1 > .rh-km__punkt:last-child { border-bottom: 0; }
.rh-km__rad { display: flex; align-items: stretch; list-style: none; cursor: pointer; }
.rh-km__rad::-webkit-details-marker { display: none; }
.rh-km__rad::after { content: "+"; flex: none; display: flex; align-items: center; justify-content: center; width: var(--touch); font-size: 20px; line-height: 1; color: var(--navy); }
.rh-km__gren[open] > .rh-km__rad::after { content: "\2212"; }
.rh-km__rad:hover::after { background: var(--surface-grey); }
.rh-km__rad:focus-visible { outline: var(--bar) solid var(--focus); outline-offset: -3px; }
.rh-v .rh-km__lenke { display: flex; flex: 1; min-width: 0; align-items: baseline; justify-content: space-between; gap: var(--s2); min-height: 40px; padding: var(--s2) var(--s4); color: var(--navy); font-size: 14px; font-weight: 500; line-height: 1.35; text-decoration: none; overflow-wrap: anywhere; }
.rh-v .rh-km__lenke:hover { background: var(--surface-grey); color: var(--navy); }
.rh-v .rh-km__punkt--aktiv > .rh-km__lenke, .rh-v .rh-km__punkt--aktiv > .rh-km__gren > .rh-km__rad > .rh-km__lenke { color: var(--oransje-ink); font-weight: 800; box-shadow: inset 3px 0 0 var(--oransje); }
.rh-km__liste--n2, .rh-km__liste--n3, .rh-km__liste--n4 { background: var(--surface-soft); border-top: 1px solid var(--border); }
.rh-km__liste--n2 .rh-km__lenke { padding-left: var(--s8); font-weight: 400; }
.rh-km__liste--n3 .rh-km__lenke { padding-left: var(--s10); font-weight: 400; font-size: 13px; }
.rh-km__liste--n4 .rh-km__lenke { padding-left: var(--s12); font-weight: 400; font-size: 13px; }
.rh-km__liste--n2 .rh-km__punkt:last-child, .rh-km__liste--n3 .rh-km__punkt:last-child, .rh-km__liste--n4 .rh-km__punkt:last-child { border-bottom: 0; }
@media (max-width: 1023px) {
	.rh-km { display: none; }
	.rh-kat-layout--kunmeny { display: block; margin-top: 0; }
	.rh-kat-layout--kunmeny > .rh-kat-side { display: none; }
}

/* ---- Galleri og bildevisning på varesiden (Katalog) ---- */
.rh-galleri__hoved { cursor: zoom-in; }
.rh-galleri__miniatyrer a { cursor: pointer; transition: box-shadow .12s; }
.rh-galleri__miniatyrer a[aria-current="true"] { box-shadow: inset 0 0 0 2px var(--navy); }
.rh-lysboks-apen { overflow: hidden; }
.rh-lysboks { position: fixed; inset: 0; z-index: 200; background: var(--overlegg); display: flex; }
.rh-lysboks[hidden] { display: none; }
.rh-lysboks__scene { position: relative; flex: 1; display: flex; align-items: center; justify-content: center; padding: var(--s16) var(--s4) var(--s12); min-width: 0; }
.rh-lysboks__figur { margin: 0; display: flex; align-items: center; justify-content: center; max-width: 100%; max-height: 100%; min-width: 0; }
.rh-lysboks__figur img { display: block; max-width: min(100%, 1600px); max-height: calc(100vh - 160px); max-height: calc(100dvh - 160px); width: auto; height: auto; object-fit: contain; background: var(--surface); border-radius: var(--r-md); }
.rh-lysboks__knapp { position: absolute; z-index: 1; display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; min-width: var(--touch); min-height: var(--touch); padding: 0; border: 0; border-radius: var(--r-pill); background: var(--surface); color: var(--navy); font: 700 32px/1 var(--font-sans); cursor: pointer; box-shadow: var(--shadow-control); }
.rh-lysboks__knapp:hover { background: var(--navy-tint); }
.rh-lysboks__knapp[hidden] { display: none; }
.rh-lysboks__lukk { top: max(var(--s4), env(safe-area-inset-top, 0px)); right: max(var(--s4), env(safe-area-inset-right, 0px)); }
.rh-lysboks__forrige { left: max(var(--s4), env(safe-area-inset-left, 0px)); top: 50%; transform: translateY(-50%); }
.rh-lysboks__neste { right: max(var(--s4), env(safe-area-inset-right, 0px)); top: 50%; transform: translateY(-50%); }
.rh-lysboks__teller { position: absolute; left: 0; right: 0; bottom: max(var(--s4), env(safe-area-inset-bottom, 0px)); margin: 0; text-align: center; color: var(--ink-inverse); font: 700 16px/1.2 var(--font-sans); }
.rh-lysboks__teller[hidden] { display: none; }
@media (max-width: 782px) {
	.rh-lysboks__scene { padding: var(--s16) var(--s2) var(--s12); }
	.rh-lysboks__forrige, .rh-lysboks__neste { top: auto; bottom: max(var(--s2), env(safe-area-inset-bottom, 0px)); transform: none; }
	.rh-lysboks__forrige { left: var(--s4); }
	.rh-lysboks__neste { right: var(--s4); }
}

/* ---- Kasse: privat/bedrift og hent firmaopplysninger fra Brønnøysund (egne elementer først i kontaktdelen: valg, organisasjonsnummer, knapp og status) ---- */
.rh-v .rh-brreg { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s2) var(--s3); margin: 0 0 var(--s4); }
.rh-v .rh-brreg__knapp { font: 700 15px/1 var(--font-sans); min-height: var(--touch); padding: var(--s2) var(--s5); border-radius: var(--r-md); background: var(--surface); color: var(--navy); border: 2px solid var(--navy); cursor: pointer; }
.rh-v .rh-brreg__knapp:hover { background: var(--navy-tint); }
.rh-v .rh-brreg__knapp[disabled] { opacity: .6; cursor: progress; }
.rh-v .rh-brreg__status { margin: 0; flex: 1 1 220px; min-width: 0; font-size: 14px; color: var(--ink-muted); }
.rh-v .rh-brreg__status[data-tilstand="ok"] { color: var(--suksess); font-weight: 700; }
.rh-v .rh-brreg__status[data-tilstand="feil"] { color: var(--feil); }
.rh-v .rh-brreg__status:empty { display: none; }
@media (max-width: 782px) { .rh-v .rh-brreg__knapp { width: 100%; } }
.rh-v .rh-kunde { margin: 0 0 var(--s5); }
.rh-v .rh-kunde__rad { border: 0; margin: 0 0 var(--s3); padding: 0; display: flex; flex-wrap: wrap; gap: var(--s2) var(--s3); }
.rh-v .rh-kunde__tittel { flex: 0 0 100%; padding: 0; margin: 0 0 var(--s2); font-weight: 700; color: var(--navy); }
.rh-v .rh-kunde__valg { display: flex; align-items: center; gap: var(--s2); min-height: var(--touch); padding: 0 var(--s4); border: 2px solid var(--border-control); border-radius: var(--r-md); background: var(--surface); cursor: pointer; font-weight: 600; flex: 1 1 140px; }
.rh-v .rh-kunde__valg:has(input:checked) { border-color: var(--navy); background: var(--navy-tint); }
.rh-v .rh-kunde__valg input { width: 20px; height: 20px; accent-color: var(--navy); margin: 0; }
.rh-v .rh-kunde__org[hidden] { display: none; }
.rh-v .rh-kunde__org-etikett { display: block; margin: 0 0 var(--s1); font-weight: 600; color: var(--navy); }
.rh-v .rh-kunde__org-felt { width: 100%; min-height: var(--touch); padding: 0 var(--s4); border: 1px solid var(--navy); border-radius: var(--r-md); font: inherit; background: var(--surface); box-sizing: border-box; margin: 0 0 var(--s3); }

/* ---- Drop-in (admin): salg over disk. Skjema i blokker, ordrelinjer i tre kolonner, åpne salg som rader ---- */
.rh-v.rh-di { max-width: none; }   /* bredde 27.10: Drop-in bruker hele skjermbredden (rutenettet .rh-dx__hoved tar 1fr + 340 px) */
.rh-v .rh-di__ingress { color: var(--ink-muted); margin: 0 0 var(--s5); }
.rh-v .rh-di__skjema { display: grid; gap: var(--s5); }
.rh-v .rh-di__blokk { border: 1px solid var(--border-contrast, var(--border)); border-radius: var(--r-md); padding: var(--s4) var(--s5); margin: 0; background: var(--surface); }
.rh-v .rh-di__blokk legend { font-weight: 700; color: var(--navy); padding: 0 var(--s2); }
.rh-v .rh-di__linjer { display: grid; gap: var(--s2); margin: 0 0 var(--s4); }
.rh-v .rh-di__linje { display: grid; grid-template-columns: minmax(0, 3fr) minmax(70px, 1fr) minmax(100px, 1.4fr); gap: var(--s2); }
.rh-v .rh-di__linje--hode { font-size: 13px; color: var(--ink-muted); font-weight: 600; }
.rh-v .rh-di__linje input, .rh-v .rh-di__felt input { width: 100%; min-height: var(--touch); padding: 0 var(--s3); border: 1px solid var(--navy); border-radius: var(--r-md); font: inherit; box-sizing: border-box; }
.rh-v .rh-di__felt { display: block; margin: 0 0 var(--s3); font-weight: 600; color: var(--navy); }
.rh-v .rh-di__felt input { display: block; margin-top: var(--s1); font-weight: 400; }
.rh-v .rh-di__valg { display: flex; align-items: center; gap: var(--s2); min-height: var(--touch); }
.rh-v .rh-di__valg input { width: 20px; height: 20px; accent-color: var(--navy); margin: 0; }
.rh-v .rh-di__ordre { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s2) var(--s3); padding: var(--s3) 0; border-bottom: 1px solid var(--border); }
.rh-v .rh-di-inline { display: inline-block; margin: 0; }
@media (max-width: 782px) { .rh-v .rh-di__blokk { padding: var(--s3); } .rh-v .rh-di__linje { grid-template-columns: minmax(0, 2fr) 70px minmax(90px, 1fr); } .rh-v .rh-di__ordre .rh-knapp { width: 100%; } }

/* ---- Katalog 0.5.0: matriseskjema (flere størrelser), tilbudsmerke på varesiden, pris per enhet, «Passer med», kategoritekst med «Les mer» ---- */
.rh-kjopsfelt--matrise form.variations_form, .single-product .rh-kjopsfelt--matrise form.variations_form.cart { display: none !important; }   /* matrisen erstatter Woos variantskjema; tema-CSS (.single-product form.cart, maks 781px) viste det ellers på mobil: to knapper, Vipps deaktivert */
.rh-matrise { margin: var(--s4) 0; border: 1px solid var(--border); border-radius: var(--r-md); background: var(--surface); overflow: hidden; }
.rh-matrise[hidden] { display: none; }
.rh-v h2.rh-matrise__tittel { margin: 0; max-width: none; padding: var(--s2) var(--s3); background: var(--navy); color: var(--ink-inverse); font: 700 14px/1.4 var(--font-sans); }
.rh-matrise__tabell { width: 100%; margin: 0; font-variant-numeric: tabular-nums; }
.rh-matrise__tabell :is(th, td) { padding: var(--s2) var(--s3); vertical-align: middle; }
.rh-matrise__tabell tbody th[scope="row"] { width: auto; text-align: left; font-weight: 700; color: var(--navy); background: transparent; }
.rh-matrise__tabell tbody tr:last-child :is(th, td) { border-bottom: 0; }
.rh-matrise__kol-antall, .rh-matrise__antall { text-align: right; }
.rh-matrise__pris { white-space: nowrap; }
.rh-v .rh-matrise :is(th, td, ins, del, span, p, a, strong, b) { text-decoration: none; }
.rh-v .rh-matrise .rh-kort__for, .rh-v .rh-matrise del { text-decoration: line-through; }
.rh-kort__pris ins, .rh-hero__pris ins, .rh-prisrad ins { text-decoration: none; }
.rh-matrise__rad--valgt { background: var(--navy-tint); }
.rh-matrise__rad--ut th, .rh-matrise__rad--ut .rh-matrise__pris { color: var(--ink-muted); }
.rh-matrise__velger { display: inline-flex; align-items: stretch; }
.rh-matrise__trinn { width: var(--touch); min-height: var(--touch); padding: 0; border: 1px solid var(--border-control); background: var(--surface); color: var(--navy); font: 700 22px/1 var(--font-sans); cursor: pointer; }
.rh-matrise__trinn:first-child { border-radius: var(--r-md) 0 0 var(--r-md); }
.rh-matrise__trinn:last-child { border-radius: 0 var(--r-md) var(--r-md) 0; }
.rh-matrise__trinn:hover { background: var(--navy-tint); }
.rh-matrise__felt { width: 64px; min-height: var(--touch); padding: 0 var(--s2); border: 1px solid var(--border-control); border-left: 0; border-right: 0; border-radius: 0; text-align: center; font: 700 18px/1.4 var(--font-sans); background: var(--surface); color: var(--ink); box-sizing: border-box; -moz-appearance: textfield; }
.rh-matrise__sum { margin: 0; padding: var(--s3); border-top: 1px solid var(--border); display: flex; flex-wrap: wrap; gap: var(--s1) var(--s2); align-items: baseline; }
.rh-matrise__notat { margin: 0; padding: var(--s2) var(--s3) 0; }
/* Handlingsrad (Utseende 0.9.124): «Legg alle i kurv» og Vipps' hurtigkasse side om side på PC, hver på egen rad på mobil. Vipps' knapp er Woo-Vipps' egen (logo og farge uendret), bare høyde og avrunding følger de andre knappene. */
.rh-matrise__handling { display: flex; flex-wrap: wrap; gap: var(--s2); align-items: stretch; padding: 0 var(--s3) var(--s3); }
.rh-matrise__alle { margin: 0; flex: 1 1 220px; }
.rh-matrise__vipps { flex: 1 1 220px; display: flex; }
.rh-matrise .rh-matrise__vipps .vipps_buy_now_wrapper { display: flex; flex: 1 1 auto; align-self: stretch; height: auto; margin: 0; padding: 0; }   /* tre klasser: Woo-Vipps/temaet gir omslaget 8 px margin og fast høyde */
.rh-matrise .rh-matrise__vipps .vipps-buy-now { box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; flex: 1 1 auto; align-self: stretch; height: auto; min-height: var(--touch); margin: 0; padding: 0; border-radius: var(--r-md); }
.rh-matrise .rh-matrise__vipps vipps-mobilepay-button { flex: 1 1 auto; }   /* Vipps' knapp (stretched, satt i matrise.js) fyller raden */
.rh-matrise .rh-matrise__vipps .vipps-buy-now:is([disabled], .disabled) { opacity: .5; cursor: not-allowed; pointer-events: none; }
.rh-matrise__alle[disabled] { opacity: .5; cursor: not-allowed; }
.rh-matrise__melding { margin: 0; padding: var(--s3); border-top: 1px solid var(--border); color: var(--suksess); font-weight: 700; }
.rh-matrise__melding--feil, .rh-matrise__feil { color: var(--feil); }
.rh-matrise__feilrad td { padding-top: 0; }
.rh-matrise__feil { margin: 0; font-size: 14px; font-weight: 600; }
.rh-prisrad__merke { align-self: center; }
.rh-enhetspris { margin: 0 0 var(--s2); font-size: 14px; color: var(--ink-muted); }
.rh-kvantum__notat { margin: 0; padding: 0 var(--s3) var(--s2); }
.rh-passermed { margin: var(--s5) 0 0; padding-top: var(--s4); border-top: 1px solid var(--border); }
.rh-v .rh-passermed__tittel { margin: 0 0 var(--s3); max-width: none; font-size: 18px; }
.rh-passermed__rutenett { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s3); }
.rh-passermed .rh-kort__tittel { font-size: 14px; }
.rh-tekst .rh-kattekst__mer { margin: var(--s2) 0 0; border: 0; border-radius: 0; background: none; }
.rh-tekst .rh-kattekst__mer[open] > summary { border-bottom: 0; }
.rh-tekst .rh-kattekst__mer > :not(summary) { padding-inline: 0; }
.rh-tekst .rh-kattekst__mer > summary { padding: 0; display: inline-flex; align-items: center; min-height: var(--touch); cursor: pointer; font-weight: 700; color: var(--navy); text-decoration: underline; text-underline-offset: 3px; }
.rh-kattekst img { max-width: 100%; height: auto; border-radius: var(--r-md); }
@media (max-width: 782px) {
  /* mobil: størrelse og pris til venstre, store felt til høyre (ingen tabellbredde som sprenger boksen) */
  .rh-matrise__tabell thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .rh-matrise__tabell tbody tr[data-id] { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: var(--s3); padding: var(--s2) var(--s3); border-bottom: 1px solid var(--border); }
  .rh-matrise__tabell tbody tr[data-id] :is(th, td) { padding: 0; border: 0; }
  .rh-matrise__tabell tbody tr[data-id] th { grid-column: 1; grid-row: 1; }
  .rh-matrise__tabell tbody tr[data-id] .rh-matrise__pris { grid-column: 1; grid-row: 2; font-size: 14px; white-space: normal; }
  .rh-matrise__tabell tbody tr[data-id] .rh-matrise__antall { grid-column: 2; grid-row: 1 / span 2; }
  .rh-matrise__tabell tbody tr.rh-matrise__feilrad { display: block; padding: 0 var(--s3) var(--s2); }
  .rh-matrise__tabell tbody tr.rh-matrise__feilrad td { display: block; padding: 0; border: 0; }
  .rh-matrise__felt { width: 56px; min-height: 48px; }
  .rh-matrise__trinn { width: 48px; min-height: 48px; }
}
.rh-v.rh-di h2 { margin: var(--s8, 32px) 0 var(--s2); } .rh-v .rh-di__skjema + h2 { margin-top: var(--s8, 32px); }
.rh-v .rh-di__sok { position: relative; min-width: 0; }
.rh-v .rh-di__forslag { position: absolute; z-index: 5; left: 0; right: 0; display: grid; background: var(--surface); border: 1px solid var(--navy); border-radius: var(--r-md); box-shadow: var(--shadow-control); max-height: 320px; overflow: auto; }
.rh-v .rh-di__forslag:empty { display: none; }
.rh-v .rh-di__forslag-rad { display: grid; gap: 2px; text-align: left; min-height: var(--touch); padding: var(--s2) var(--s3); background: none; border: 0; border-bottom: 1px solid var(--border); font: inherit; color: var(--ink); cursor: pointer; }
.rh-v .rh-di__forslag-rad:is(:hover, :focus-visible) { background: var(--navy-tint); }
.rh-v .rh-di__forslag-rad span { color: var(--ink-muted); font-size: 13px; }
.rh-v .rh-di__ingen { margin: 0; padding: var(--s3); color: var(--ink-muted); }
.rh-v .rh-di__hentrad { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s2) var(--s3); margin: 0 0 var(--s3); }
.rh-v .rh-di__samme { margin: 0 0 var(--s3); min-height: 0; }
/* Gavekort (Kasse og betaling): skjema på produktsiden, saldosjekk, linje i kurv/kasse, gratis-frakt-teller */
.rh-gk-felt { display: grid; gap: var(--s3); margin: 0 0 var(--s4); width: 100%; }
.rh-gk-felt label { display: grid; gap: var(--s1); font-weight: 600; font-size: 14px; color: var(--navy); }
.rh-gk-felt input, .rh-gk-felt textarea, .rh-gk-sjekk input { min-height: var(--touch); padding: 0 var(--s3); border: 1px solid var(--border-control); border-radius: var(--r-md); font: inherit; font-size: 16px; background: var(--surface); box-sizing: border-box; }
.rh-gk-felt textarea { padding: var(--s2) var(--s3); }
.rh-gk-belop { display: flex; flex-wrap: wrap; gap: var(--s2); }
.rh-gk-belop__valg { min-height: var(--touch); min-width: 64px; padding: 0 var(--s3); border: 1px solid var(--border-control); border-radius: var(--r-md); background: var(--surface); color: var(--navy); font-weight: 700; cursor: pointer; }
.rh-gk-belop__valg:hover { background: var(--navy-tint); }
.rh-gk-felt small { color: var(--ink-muted); }
.rh-gk-sjekk { display: flex; flex-wrap: wrap; gap: var(--s2); align-items: flex-end; max-width: 520px; margin: var(--s4) 0 0; }
.rh-gk-sjekk label { display: grid; gap: var(--s1); flex: 1 1 220px; font-weight: 600; font-size: 14px; color: var(--navy); }
.rh-gk-sjekk input { text-transform: uppercase; }
.rh-gk-svar { margin: var(--s3) 0 0; font-weight: 700; color: var(--navy); }
.rh-gk-rad { display: flex; justify-content: space-between; gap: var(--s3); padding: var(--s2) 0; color: var(--suksess); font-weight: 700; }
.rh-kurv-sub { font-weight: 400; color: var(--ink-muted); }
.rh-teller { padding: var(--s3); margin: 0 0 var(--s3); border-radius: var(--r-md); background: var(--navy-tint); color: var(--navy); font-weight: 700; }
.rh-teller--oppnadd { color: var(--suksess); }

/* Betalingsikoner i bunnen */
.rh-bunn__betaling { display: flex; gap: var(--s2); list-style: none; margin: 0; padding: var(--s4) 0 var(--s3); }
.rh-bunn__betaling li { line-height: 0; }
.rh-bunn__betaling svg { display: block; border-radius: 4px; }

/* Betalingsikoner i bunnen (rh-bk) */

.rh-bk { fill: var(--kort-hvit); } .rh-bk-visa { fill: var(--kort-visa); font: italic 700 15px Arial, sans-serif; } .rh-bk-mc1 { fill: var(--kort-mc-rod); } .rh-bk-mc2 { fill: var(--kort-mc-gul); } .rh-bk-mc3 { fill: var(--kort-mc-midt); }

/* Sporingssiden (Ordrebehandling) 29.10: godkjent design «Ny sporingsside». Egen lett side uten tema, scopet av body.ps-side. Mobil først, to kolonner fra 900 px. Ingen layoutskift: svaret kommer ferdig fra serveren, bilder har faste mål. */
.ps-side { margin: 0; background: var(--surface-grey); color: var(--navy); font: 16px/1.55 var(--font-sans); -webkit-text-size-adjust: 100%; }
.ps-side *, .ps-side *::before, .ps-side *::after { box-sizing: border-box; }
.ps-side a { color: var(--navy); }
.ps-side a:focus-visible, .ps-side button:focus-visible, .ps-side input:focus-visible, .ps-side summary:focus-visible { outline: 3px solid var(--oransje); outline-offset: 2px; }
.ps-side .ps-topp { background: var(--surface); border-bottom: 1px solid var(--border); }
.ps-side .ps-topp-inn { max-width: 1000px; margin: 0 auto; padding: 0 var(--s4); height: 56px; display: flex; align-items: center; justify-content: space-between; gap: var(--s3); }
.ps-side .ps-logo { display: block; line-height: 0; text-decoration: none; color: var(--navy); font-weight: 800; }
.ps-side .ps-logo svg { display: block; width: 222px; height: 28px; max-width: 100%; }
.ps-side .ps-topp-tag { font-size: 13px; font-weight: 700; color: var(--ink-muted); }
.ps-side .ps-inn { max-width: 1000px; margin: 0 auto; padding: 0; }
.ps-side h1, .ps-side h2 { text-wrap: balance; }
.ps-side .ps-hero { background: var(--navy); color: var(--ink-inverse); padding: var(--s5) var(--s4) var(--s6); }
.ps-side .ps-pill { display: inline-flex; align-items: center; font-size: 12px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; padding: 4px 10px; border-radius: 999px; background: var(--oransje); color: var(--navy); }
.ps-side .ps-hero.ok .ps-pill { background: var(--suksess-lys); }
.ps-side .ps-hero.feil .ps-pill { background: var(--feil-lys); }
.ps-side .ps-hero h1 { color: var(--ink-inverse); font-size: 26px; line-height: 1.15; margin: 10px 0 6px; font-weight: 800; }
.ps-side .ps-hero p { margin: 0; color: var(--ink-inverse-soft); font-size: 16px; }
.ps-side .ps-hero a { color: var(--ink-inverse); }
.ps-side .ps-eta { display: flex; gap: var(--s3); align-items: baseline; flex-wrap: wrap; margin-top: 14px; padding-top: var(--s3); border-top: 1px solid var(--navy-linje); }
.ps-side .ps-eta b { font-size: 22px; color: var(--ink-inverse); }
.ps-side .ps-eta small { color: var(--ink-inverse-muted); font-size: 13px; }
.ps-side .ps-steg { list-style: none; display: flex; padding: 0; margin: var(--s4) 0 0; gap: var(--s1); }
.ps-side .ps-steg li { flex: 1; font-size: 12px; line-height: 1.25; color: var(--ink-inverse-muted); }
.ps-side .ps-steg li::before { content: ""; display: block; height: 6px; border-radius: 3px; background: var(--navy-linje); margin-bottom: 6px; }
.ps-side .ps-steg li.ferdig::before, .ps-side .ps-steg li.naa::before { background: var(--oransje); }
.ps-side .ps-hero.ok .ps-steg li.ferdig::before, .ps-side .ps-hero.ok .ps-steg li.naa::before { background: var(--suksess-lys); }
.ps-side .ps-steg li.naa { color: var(--ink-inverse); font-weight: 800; }
.ps-side .ps-nrlinje { display: flex; justify-content: space-between; gap: var(--s2); padding-top: var(--s3); font: 12px/1.4 var(--font-mono); color: var(--ink-inverse-muted); overflow-wrap: anywhere; }
.ps-side .ps-hoved, .ps-side .ps-flere { display: grid; gap: var(--s3); padding: var(--s3) var(--s4) 0; }
.ps-side .ps-flere { padding-bottom: var(--s2); }
.ps-side .ps-kort { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-lg); padding: var(--s4); min-width: 0; }
.ps-side .ps-kort p { margin: var(--s1) 0; font-size: 15px; color: var(--ink-muted); }
.ps-side .ps-h3 { font-size: 16px; font-weight: 800; margin: 0 0 var(--s2); color: var(--navy); }
.ps-side .ps-liten, .ps-side .ps-kort p.ps-liten { font-size: 14px; color: var(--ink-subtle); }
.ps-side .ps-act { display: flex; flex-direction: column; gap: var(--s2); margin-top: var(--s3); }
.ps-side .ps-btn { font: inherit; font-weight: 800; border: 0; border-radius: var(--r-lg); min-height: 48px; padding: 0 var(--s5); display: flex; align-items: center; justify-content: center; text-align: center; text-decoration: none; cursor: pointer; }
.ps-side .ps-btn.p { background: var(--oransje); color: var(--navy); }
.ps-side .ps-btn.p:hover { background: var(--oransje-hover); }
.ps-side .ps-btn.s { background: var(--surface); color: var(--navy); border: 2px solid var(--border-strong); }
.ps-side .ps-btn.stor { min-height: 56px; font-size: 17px; }
.ps-side .ps-btn[hidden] { display: none; }
.ps-side .ps-sok label { display: block; font-weight: 800; font-size: 15px; margin-bottom: var(--s1); }
.ps-side .ps-rad { display: flex; gap: var(--s2); }
.ps-side .ps-rad input { flex: 1; min-width: 0; font: inherit; font-size: 17px; min-height: 52px; padding: 0 var(--s3); border: 2px solid var(--border-strong); border-radius: var(--r-lg); background: var(--surface); color: var(--navy); }
.ps-side .ps-rad .ps-btn { min-height: 52px; padding: 0 var(--s5); }
.ps-side .ps-det { min-height: 24px; margin: var(--s2) 0 0; font-size: 14px; color: var(--ink-subtle); }
.ps-side .ps-liste, .ps-side .ps-trinn { margin: var(--s1) 0 0; padding-left: 20px; font-size: 15px; color: var(--ink-muted); }
.ps-side .ps-liste li, .ps-side .ps-trinn li { margin: 2px 0; }
.ps-side .ps-under { margin-top: var(--s3); }
.ps-side .ps-kolli { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s2); }
.ps-side .ps-kolli li { display: grid; grid-template-columns: 1fr auto; gap: 2px var(--s2); padding: var(--s2) 0; border-top: 1px solid var(--border); font-size: 14px; }
.ps-side .ps-kolli li:first-child { border-top: 0; padding-top: 0; }
.ps-side .ps-mono { font: 12px/1.4 var(--font-mono); color: var(--ink-muted); overflow-wrap: anywhere; }
.ps-side .ps-chip { font-size: 12px; font-weight: 700; padding: 2px 8px; border-radius: 999px; background: var(--navy-tint); color: var(--navy); align-self: start; white-space: nowrap; }
.ps-side .ps-chip.g { background: var(--suksess-tint); color: var(--suksess); }
.ps-side .ps-hend { list-style: none; margin: 0; padding: 0; font-size: 14px; }
.ps-side .ps-hend li { display: flex; gap: var(--s3); padding: 7px 0; border-top: 1px solid var(--border); }
.ps-side .ps-hend li:first-child { border-top: 0; font-weight: 800; }
.ps-side .ps-hend time { flex: 0 0 96px; color: var(--ink-subtle); font-weight: 500; font-size: 13px; }
.ps-side .ps-lager { display: block; width: 100%; height: auto; aspect-ratio: 550 / 328; object-fit: cover; border-radius: var(--r-md); margin-top: var(--s3); background: var(--navy-tint); }
.ps-side .ps-kartlenke { display: block; margin-top: var(--s3); line-height: 0; }
.ps-side .ps-kart { display: block; width: 100%; height: auto; aspect-ratio: 1100 / 520; object-fit: cover; border-radius: var(--r-md); border: 1px solid var(--border); }
.ps-side .ps-topp-hoyre { display: flex; align-items: center; }
.ps-side .ps-konto-lenke { font-size: 14px; font-weight: 700; text-decoration: none; padding: 6px 12px; border-radius: 999px; border: 1px solid var(--border-strong); background: var(--surface); color: var(--navy); white-space: nowrap; }
.ps-side .ps-konto-lenke:hover { border-color: var(--navy); }
.ps-side .ps-pn-spor { margin-top: var(--s3); }
.ps-side .ps-konto.ps-ute { background: transparent; border-style: dashed; }
.ps-side .ps-videre { display: block; margin: var(--s3) var(--s4) 0; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-lg); padding: var(--s4); }
.ps-side .ps-videre p { margin: 0 0 var(--s3); color: var(--ink-muted); }
.ps-side .ps-fliser { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s2); }
.ps-side .ps-fliser a { display: flex; align-items: center; min-height: 52px; padding: var(--s2) var(--s3); border: 1px solid var(--border-strong); border-radius: var(--r-md); text-decoration: none; font-weight: 700; background: var(--surface-soft); }
.ps-side .ps-fliser li:first-child a { background: var(--oransje-tint); border-color: var(--oransje); }
.ps-side .ps-videre .ps-act { margin-top: var(--s3); }
.ps-side .ps-butikk { display: none; }
.ps-side .ps-topp-hoyre { gap: var(--s2); }
.ps-side .ps-konto-lenke.ps-til-butikk { background: var(--oransje); border-color: var(--oransje); color: var(--navy); }
.ps-side .ps-del--en { display: block; }
@media (max-width: 559px) { .ps-side .ps-lang { display: none; } .ps-side .ps-logo svg { width: 150px; } }
.ps-side .ps-eldre { margin: var(--s4) var(--s4) 0; font-size: 14px; color: var(--ink-muted); }
.ps-side .ps-eldre summary { cursor: pointer; font-weight: 700; padding: var(--s2) 0; min-height: 44px; display: flex; align-items: center; }
.ps-side .ps-eldre-inn { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-lg); padding: var(--s4); }
.ps-side .ps-eldre .ps-h3 { font-size: 15px; margin-top: var(--s3); }
.ps-side .ps-eldre .ps-h3:first-child { margin-top: 0; }
.ps-side .ps-lenker { margin: var(--s3) 0 0; padding-left: 20px; }
.ps-side .ps-lenker li { margin: 6px 0; }
.ps-side .ps-bunn { max-width: 1000px; margin: 0 auto; padding: var(--s6) var(--s4) var(--s10); font-size: 14px; color: var(--ink-subtle); text-align: center; }
.ps-side .ps-bunn p { margin: var(--s1) 0; }
@media (min-width: 560px) { .ps-side .ps-act { flex-direction: row; flex-wrap: wrap; } .ps-side .ps-act .ps-btn { flex: 0 1 auto; } .ps-side .ps-act .ps-btn.stor { flex: 1 1 auto; } }
@media (min-width: 900px) {
	.ps-side .ps-inn { max-width: 1160px; padding: var(--s8) var(--s6) 0; }
	.ps-side .ps-topp-inn, .ps-side .ps-bunn { max-width: 1160px; }
	.ps-side .ps-del { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: var(--s5); align-items: stretch; }
	.ps-side .ps-del.ps-del--en { display: block; }
	.ps-side .ps-del > .ps-hero { display: flex; flex-direction: column; }
	.ps-side .ps-del > .ps-hero .ps-steg { margin-top: auto; padding-top: var(--s6); }
	.ps-side .ps-del > .ps-hero .ps-nrlinje { margin-top: var(--s3); }
	.ps-side .ps-del > .ps-hero { border-radius: var(--r-lg); padding: var(--s6) var(--s8) var(--s8); }
	.ps-side .ps-hero h1 { font-size: 42px; line-height: 1.1; margin: 14px 0 10px; }
	.ps-side .ps-hero p { font-size: 19px; }
	.ps-side .ps-steg li { font-size: 13px; }
	.ps-side .ps-hoved, .ps-side .ps-flere { padding: 0; }
	.ps-side .ps-flere { margin-top: var(--s5); grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); align-items: stretch; gap: var(--s5); }
	.ps-side .ps-flere > .ps-kort, .ps-side .ps-hoved > .ps-kort { height: 100%; }
	.ps-side .ps-kort { padding: var(--s5); }
	.ps-side .ps-kort p { font-size: 16px; }
	.ps-side .ps-h3 { font-size: 18px; }
	.ps-side .ps-videre { margin: var(--s4) 0 0; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-lg); padding: var(--s6); }
	.ps-side .ps-videre p { margin: 0 0 var(--s3); color: var(--ink-muted); }
	.ps-side .ps-fliser { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--s3); }
	.ps-side .ps-fliser a { display: flex; align-items: center; min-height: 64px; font-size: 17px; padding: var(--s2) var(--s4); border: 1px solid var(--border-strong); border-radius: var(--r-md); text-decoration: none; font-weight: 700; background: var(--surface-soft); }
	.ps-side .ps-fliser li:first-child a { background: var(--oransje-tint); border-color: var(--oransje); }
	.ps-side .ps-fliser a:hover { border-color: var(--navy); }
	.ps-side .ps-videre .ps-act { margin-top: var(--s4); }
	.ps-side .ps-eldre { margin: var(--s4) 0 0; }
}

/* ---- Kategoriside: tittel, tekst og underkategorier over varene, på linje på PC ---- */
.rh-hoved:has(.rh-kat-layout) > .rh-seksjon { padding-top: var(--s4); }
.rh-kat-hode .rh-sidetittel { margin-top: 0; }
.rh-kat-topp { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s4); margin-bottom: var(--s4); }
.rh-kat-topp > * { min-width: 0; }
.rh-kat-topp__tekst > :first-child, .rh-kat-topp .rh-kattekst { margin-top: 0; }
.rh-kat-topp .rh-karusell--topp { margin: 0; padding: 0; display: grid; grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: repeat(auto-fill, minmax(min(100%, 190px), 1fr)); gap: var(--s2); overflow: visible; }
.rh-kat-topp .rh-karusell--topp > .rh-katkort { flex-direction: row; align-items: center; gap: var(--s2); padding: var(--s1) var(--s3) var(--s1) var(--s1); border-radius: var(--r-md); }
.rh-kat-topp .rh-karusell--topp > .rh-katkort > .rh-katkort__bilde { width: 44px; height: 44px; aspect-ratio: 1; flex: none; max-height: none; }
.rh-kat-topp .rh-karusell--topp > .rh-katkort > .rh-katkort__navn { flex: 1; padding: 0; font-size: 14px; line-height: 1.3; }
.rh-kat-topp .rh-karusell--topp:not(:has(> .rh-katkort:nth-child(4))) { grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 1fr)); }   /* høyere spesifisitet enn regelen for få fliser: ellers én kolonne på nettbrett */
@media (max-width: 599px) {
	.rh-kat-topp .rh-karusell--topp { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.rh-kat-topp .rh-karusell--topp > .rh-katkort > .rh-katkort__bilde { display: none; }
	.rh-kat-topp .rh-karusell--topp > .rh-katkort { padding: var(--s2) var(--s3); min-height: var(--touch); }
}
@media (min-width: 1024px) {
	.rh-kat-topp--mange .rh-karusell--topp { grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr)); }
	/* kategorimenyen vises i full lengde (aldri kuttet eller rullet i en boks); filteret står som verktøylinje over varene (se «Filter som verktøylinje») */
}

/* ---- Filter som verktøylinje og pene valg (Katalog 0.6.10) ---- */
.rh-filter__merke { display: inline-block; width: 8px; height: 8px; margin-left: var(--s2); border-radius: 50%; background: var(--oransje); }
/* Størrelsesknapper (Katalog 0.6.16): jevnt rutenett med like brede knapper, antallet som liten diskret tall til høyre uten å skyve teksten; tall, bokstaver og resten skilles av en tynn linje */
.rh-filter__liste--knapper { display: grid; grid-template-columns: repeat(auto-fill, minmax(104px, 1fr)); gap: var(--s2); padding: var(--s2) var(--s1); max-height: none; overflow: visible; list-style: none; margin: 0; }
.rh-filter__liste--knapper > li { margin: 0; min-width: 0; }
.rh-filter__liste--knapper > .rh-filter__skille { grid-column: 1 / -1; height: 1px; margin: var(--s1) 0; padding: 0; background: var(--border); }
.rh-v .rh-filter__liste--knapper .rh-filter__rad { box-sizing: border-box; width: 100%; min-width: 0; height: 44px; min-height: 44px; padding: 0 var(--s2); justify-content: space-between; gap: var(--s1); border: 1px solid var(--border-control); border-radius: var(--r-md); background: var(--surface); font-weight: 700; font-size: 13px; line-height: 1; color: var(--navy); white-space: nowrap; }
.rh-filter__liste--knapper .rh-filter__rad > span:not(.rh-filter__boks):not(.rh-filter__antall) { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; text-align: center; }
.rh-v .rh-filter__liste--knapper .rh-filter__rad:hover { border-color: var(--navy); background: var(--surface-soft); }
.rh-filter__liste--knapper .rh-filter__boks { display: none; }
.rh-filter__liste--knapper .rh-filter__antall { flex: none; min-width: 1.2em; margin: 0; text-align: right; font-size: 11px; font-weight: 400; font-variant-numeric: tabular-nums; color: var(--ink-muted); }
.rh-v .rh-filter__liste--knapper .rh-filter__rad--valgt { background: var(--navy); border-color: var(--navy); color: var(--ink-inverse); }
.rh-filter__liste--knapper .rh-filter__rad--valgt .rh-filter__antall { color: var(--ink-inverse); }
.rh-filter__liste--knapper .rh-filter__rad--av { opacity: .45; }
@media (max-width: 899px) {
	.rh-filter__liste--knapper { grid-template-columns: repeat(3, minmax(0, 1fr)); }   /* tre kolonner i arket på smale skjermer */
}
@media (min-width: 900px) {
	.rh-filter__liste.rh-filter__liste--knapper { max-height: min(60vh, 420px); overflow-y: auto; }
	.rh-filter__gruppe:has(.rh-filter__liste--knapper) > .rh-filter__drop { min-width: 380px; max-width: min(420px, 92vw); }   /* bred nok til tre like brede knapper på rad */   /* bare selve verdilisten ruller i nedtrekket, aldri kategorimenyen */
}
.rh-filter__sok { width: 100%; box-sizing: border-box; margin: 0 0 var(--s2); }
.rh-filter__liste--sok .rh-filter__mer { display: list-item; }
.rh-filter__liste--sok .rh-filter__vis { display: none; }
.rh-filter__liste li[hidden], .rh-filter__liste--sok li[hidden] { display: none; }
.rh-filter__pris { display: flex; align-items: center; gap: var(--s2); padding: var(--s2) var(--s1) var(--s1); }
.rh-filter__pris .rh-felt { width: 0; flex: 1 1 0; min-width: 0; }
.rh-filter__pris-send { flex: none; min-height: var(--touch); }
@media (min-width: 900px) {
	.rh-kat-med-filter { grid-template-columns: minmax(0, 1fr); grid-template-areas: "hode" "filter" "hoved"; grid-template-rows: auto auto 1fr; }
	.rh-kat-side { display: contents; }
	.rh-kat-side > .rh-filter { grid-area: filter; position: relative; z-index: 30; margin: 0 0 var(--s4); overflow: visible; border: 0; border-radius: 0; background: transparent; }   /* Jørgen 28.10: ingen ramme rundt filterknappene (den kom fra .rh-filter i gamle temaets rh-stil.css) */   /* nedtrekkene legger seg over varene; aldri klippet av en eldre regel (.rh-filter { overflow: hidden } fra live-kopien) */
	.rh-filter__panel { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s2); }
	.rh-filter__topp { order: 99; margin-left: auto; padding: 0; border: 0; font-size: 14px; }
	.rh-filter__topp strong { display: none; }
	.rh-filter__gruppe { position: relative; border: 0; padding: 0; }
	.rh-filter__gruppe > summary { min-height: 40px; padding: 0 var(--s4); gap: var(--s2); border: 1px solid var(--border-control); border-radius: 999px; background: var(--surface); font-size: 14px; white-space: nowrap; }
	.rh-filter__gruppe > summary:hover { border-color: var(--navy); }
	.rh-filter__gruppe > summary::after, .rh-filter__gruppe[open] > summary::after { content: ""; width: 7px; height: 7px; margin: -3px 0 0 var(--s1); border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); font-size: 0; }
	.rh-filter__gruppe[open] > summary { border-color: var(--navy); box-shadow: 0 0 0 1px var(--navy); }
	.rh-filter__gruppe > summary:has(.rh-filter__merke) { background: var(--navy); border-color: var(--navy); color: var(--ink-inverse); }   /* gruppe med valgt verdi: fylt pille */
	.rh-filter__gruppe > summary:has(.rh-filter__merke) .rh-filter__merke { background: var(--surface); }
	.rh-filter__drop .rh-filter__pris .rh-felt { min-height: 44px; font-size: 16px; }
	.rh-filter__drop .rh-filter__pris-send { min-width: 64px; }
	.rh-filter__gruppe[open] > summary::after { transform: rotate(-135deg); margin-top: 3px; }
	.rh-filter__drop { position: absolute; top: calc(100% + var(--s1)); left: 0; z-index: 60; min-width: 260px; max-width: 360px; padding: var(--s2); background: var(--surface); border: 1px solid var(--border-strong); border-radius: var(--r-md); box-shadow: var(--shadow-pop); }
	.rh-filter__liste { max-height: 320px; }
	.rh-filter__ferdig { display: none; }
}
@media (min-width: 1024px) {
	.rh-kat-med-filter { grid-template-columns: var(--bredde-side) minmax(0, 1fr); grid-template-areas: "side hode" "side filter" "side hoved"; }
	.rh-kat-side > .rh-km { grid-area: side; align-self: start; }
}

/* Produktpakker, lagervarsel og dokumenter med tilgangsnivå (Katalog 0.6.0) */
.rh-pk-pris { display: grid; gap: var(--s1); margin: var(--s3) 0 var(--s2); padding: var(--s3) var(--s4); background: var(--surface-soft); border: 1px solid var(--border); border-radius: var(--r-lg); }
.rh-pk-pris > div { display: flex; justify-content: space-between; align-items: baseline; gap: var(--s4); }
.rh-pk-pris dt { color: var(--ink-muted); font-size: .9375rem; }
.rh-pk-pris dd { margin: 0; font-variant-numeric: tabular-nums; color: var(--ink-muted); }
.rh-pk-pris__pakke dt, .rh-pk-pris__pakke dd { color: var(--navy); font-weight: 800; font-size: 1.0625rem; }
.rh-pk-spar { margin: 0 0 var(--s3); }
.rh-pk-liste { list-style: none; margin: 0; padding: 0; border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--surface); }
.rh-pk-del { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; align-items: center; gap: var(--s4); padding: var(--s3) var(--s4); }
.rh-pk-del + .rh-pk-del { border-top: 1px solid var(--border); }
.rh-pk-del__bilde { display: flex; align-items: center; justify-content: center; width: 64px; height: 64px; background: var(--surface-grey); border-radius: var(--r-md); overflow: hidden; }
.rh-pk-del__bilde img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
.rh-pk-del__navn { display: grid; gap: 2px; min-width: 0; font-weight: 600; }
.rh-pk-del__navn a { color: var(--navy); text-decoration: none; }
.rh-pk-del__navn a:hover { text-decoration: underline; }
.rh-pk-del__pris { display: grid; justify-items: end; gap: 2px; text-align: right; }
.rh-pk-del__sum { font-weight: 700; font-variant-numeric: tabular-nums; }
.rh-pk-del__stk { font-size: .8125rem; }
@media (max-width: 520px) {
	.rh-pk-del { grid-template-columns: 48px minmax(0, 1fr); gap: var(--s3); }
	.rh-pk-del__bilde { width: 48px; height: 48px; }
	.rh-pk-del__pris { grid-column: 2; justify-items: start; text-align: left; grid-auto-flow: column; justify-content: start; gap: var(--s3); align-items: baseline; }
}

.rh-lv { margin: var(--s4) 0; padding: var(--s4); border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--surface-soft); }
.rh-lv[hidden] { display: none; }
.rh-lv__tittel { margin: 0 0 var(--s2); font-weight: 700; color: var(--navy); }
.rh-lv__rad { display: flex; flex-wrap: wrap; gap: var(--s2); }
.rh-lv__rad[hidden] { display: none; }
.rh-lv__rad .rh-felt { flex: 1 1 200px; width: auto; min-width: 0; }
.rh-lv__felle { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.rh-lv__vilkar { margin: var(--s2) 0 0; font-size: .8125rem; }
.rh-lv__svar { margin: var(--s2) 0 0; font-size: .875rem; color: var(--suksess); }
.rh-lv__svar:empty { display: none; }
.rh-lv__svar--feil { color: var(--feil); }

.rh-dok { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s2); }
.rh-dok__rad { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--s2); padding: var(--s2) var(--s3); background: var(--surface-soft); border: 1px solid var(--border); border-radius: var(--r-md); }
.rh-dok__rad--last { color: var(--ink-muted); }
.rh-dok__laas { font-size: .875rem; }

/* Drift: «Meld feil på siden» (dialog) */
.rh-meldfeil { width: min(520px, calc(100vw - 2 * var(--s4))); max-height: calc(100vh - 2 * var(--s4)); padding: var(--s6); border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--surface); color: var(--ink); box-shadow: var(--shadow-pop); overflow: auto; }
.rh-meldfeil, .rh-meldfeil * { box-sizing: border-box; }
.rh-meldfeil::backdrop { background: var(--overlay); }
.rh-meldfeil__skjema { display: grid; gap: var(--s3); }
.rh-meldfeil__tittel { margin: 0; font-size: 20px; line-height: 1.25; color: var(--navy); }
.rh-meldfeil__knapper { display: flex; gap: var(--s3); flex-wrap: wrap; position: sticky; bottom: calc(-1 * var(--s6)); margin-bottom: calc(-1 * var(--s6)); padding: var(--s3) 0 var(--s6); background: var(--surface); }   /* H14: Send/Lukk synes alltid, også på lav skjerm */
.rh-meldfeil__ekstra { display: grid; gap: var(--s3); }
.rh-meldfeil__rad { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s3); }
.rh-meldfeil__avkryss { display: flex; align-items: center; gap: var(--s2); font-weight: 600; }
.rh-meldfeil__feil { color: var(--feil); }
.rh-meldfeil #rh-meldfeil-forh { max-width: 100%; max-height: 220px; object-fit: contain; border: 1px solid var(--border); border-radius: var(--r-sm, 4px); }
.rh-meldfeil #rh-meldfeil-forh[hidden], .rh-meldfeil button[hidden] { display: none; }
@media (max-width: 480px) { .rh-meldfeil__rad { grid-template-columns: 1fr; } }
.rh-meldfeil-vel { position: fixed; inset: 0; z-index: 2147483600; cursor: crosshair; background: color-mix(in srgb, var(--ink) 25%, transparent); touch-action: none; }
.rh-meldfeil-vel__tekst { position: fixed; top: 48px; left: 50%; transform: translateX(-50%); background: var(--navy); color: var(--surface); padding: var(--s2) var(--s3); border-radius: var(--r-sm, 4px); }
.rh-meldfeil-vel__rute { display: none; position: fixed; border: 2px dashed var(--surface); background: color-mix(in srgb, var(--note) 20%, transparent); box-shadow: 0 0 0 9999px color-mix(in srgb, var(--ink) 35%, transparent); }
.rh-kf-skjema .rh-felt, #rh-kf-epost .rh-felt { box-sizing: border-box; width: 100%; max-width: 100%; }
.rh-kf-forhand-tekst { white-space: pre-wrap; }

/* ---- /pakk: plukkboks (slot, plukkstatus, emballasje) og kontaktnavn til PostNord ---- */
.rh-pakk .slotb { display: inline-block; font-size: 32px; font-weight: 800; line-height: 1.1; letter-spacing: .02em; background: var(--navy); color: var(--surface); padding: var(--s1) var(--s4); border-radius: var(--r-md); vertical-align: middle; margin-left: var(--s2); }
.rh-pakk .slotb.ingen { background: var(--surface-grey); color: var(--ink-subtle); font-size: 16px; font-weight: 600; }
.rh-pakk .plukkrad { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s1) var(--s4); padding: var(--s2) var(--s3); background: var(--navy-tint); border: 1px solid var(--border); border-radius: var(--r-md); margin: var(--s2) 0; font-size: 14px; }
.rh-pakk .plukkrad[hidden] { display: none; }
.rh-pakk .plukkrad .rod, .rh-pakk .emb .feil { color: var(--feil); font-weight: 700; }
.rh-pakk .emb { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s1) var(--s2); padding: var(--s2) var(--s3); border: 1px solid var(--border); border-left: var(--bar) solid var(--navy); border-radius: var(--r-md); background: var(--surface); margin: var(--s2) 0; font-size: 14px; }
.rh-pakk .emb:empty { display: none; }
.rh-pakk .emb .chip, .rh-pakk .emb .tiny { background: var(--surface-grey); border: 1px solid var(--border); border-radius: 999px; padding: var(--s1) var(--s3); font: inherit; font-weight: 600; cursor: pointer; }
.rh-pakk .emb select, .rh-pakk .emb input[type=number] { min-height: 32px; border: 1px solid var(--border); border-radius: var(--r-md); font: inherit; padding: 0 var(--s2); }
.rh-pakk .emb .kn { min-height: 32px; padding: 0 var(--s3); font: inherit; font-weight: 600; border-radius: var(--r-md); border: 1px solid var(--navy); background: var(--navy); color: var(--surface); cursor: pointer; }
.rh-pakk .rh-kontaktnavn { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s2); }
.rh-pakk .rh-kontaktnavn > p { flex: 1 0 100%; margin: 0; }
.rh-pakk .rh-kontaktnavn .rh-felt { flex: 1 1 260px; min-width: 0; }

/* Min konto: eldre ordrer, e-postbekreftelse og adressebok (Kunde og bedrift) */
.rh-konto__melding { margin: 0 0 var(--s4); padding: var(--s3) var(--s4); border-radius: var(--r-md); background: var(--suksess-tint); color: var(--suksess); font-weight: 600; }
.rh-konto__melding--feil { background: var(--feil-tint); color: var(--feil); }
.rh-konto__melding ul { margin: 0; padding-left: var(--s5); }
.rh-konto__kort { padding: var(--s5); border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--surface); }
.rh-konto__kort > :last-child { margin-bottom: 0; }
.rh-konto__ordrer { display: grid; gap: var(--s3); }
.rh-konto__ordre { padding: var(--s4); border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--surface); }
.rh-konto__ordre-topp { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--s2) var(--s5); }
.rh-konto__ordre-topp > * { min-width: 0; }
.rh-konto__ordre-status { color: var(--ink-muted); }
.rh-konto__ordre-sum { margin-left: auto; font-weight: 700; color: var(--navy); font-variant-numeric: tabular-nums; }
.rh-konto__ordre-detaljer { margin-top: var(--s3); }
.rh-konto__ordre-detaljer summary { min-height: var(--touch); display: flex; align-items: center; cursor: pointer; color: var(--navy); font-weight: 600; }
.rh-konto__ordre-detaljer ul { margin: 0 0 var(--s2); padding-left: var(--s5); }
.rh-konto__ordre-detaljer p { margin: 0 0 var(--s1); color: var(--ink-muted); }
.rh-konto__adresserutenett { display: grid; gap: var(--s3); grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); margin-bottom: var(--s4); }
.rh-konto__adresse { display: flex; flex-direction: column; justify-content: space-between; gap: var(--s3); padding: var(--s4); border: 1px solid var(--border); border-radius: var(--r-lg); background: var(--surface); }
.rh-konto__adresse-tekst { margin: 0; line-height: 1.6; overflow-wrap: anywhere; }
.rh-konto__adresse-valg { display: flex; flex-wrap: wrap; gap: var(--s2); }
.rh-konto__adressehandling { margin: 0; }
.rh-konto__merke { display: inline-block; margin-bottom: var(--s1); padding: 0 var(--s2); border-radius: var(--r-pill); background: var(--navy-tint); color: var(--navy); font-size: 13px; font-weight: 700; }
.rh-konto .rh-konto__sekundaer { background: var(--surface); color: var(--navy); box-shadow: inset 0 0 0 2px var(--navy); }
.rh-konto .rh-konto__sekundaer:hover { background: var(--navy-tint); color: var(--navy); }
.rh-konto .rh-konto__slett { color: var(--feil); box-shadow: inset 0 0 0 2px var(--feil); }
.rh-konto .rh-konto__slett:hover { background: var(--feil-tint); color: var(--feil); }
.rh-konto__adresseskjema { max-width: 560px; }

/* Eiersiden /dash (Drift): egen lett side uten tema, scopet av body.ds-side. Samme bokser og rekkefølge som riktighandel.no. */
.ds-side { margin: 0; background: var(--ds-bg); color: var(--ink); font: 16px/1.4 var(--font-sans); -webkit-text-size-adjust: 100%; }
.ds-side *, .ds-side *::before, .ds-side *::after { box-sizing: border-box; }
.ds-side a { color: var(--note); text-decoration: none; }
.ds-side a:hover { text-decoration: underline; }
.ds-side .ds-inn { max-width: none; margin: 0; padding: var(--s3); }   /* bredde 27.10 */
.ds-side .ds-tittel { font-size: 18px; margin: 0 0 var(--s3); display: flex; justify-content: space-between; gap: var(--s2); flex-wrap: wrap; }
.ds-side .ds-tittel small { font-weight: 400; color: var(--ink-subtle); font-size: 13px; }
.ds-side .ds-rutenett, .ds-side .ds-kpi { display: grid; gap: var(--s3); margin-bottom: var(--s3); }
.ds-side .ds-rutenett { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.ds-side .ds-kpi { grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }
.ds-side .ds-boks { background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-md); padding: var(--s3) var(--s4); min-width: 0; }
.ds-side .ds-boks h2 { margin: 0; font-size: 14px; color: var(--ink-muted); font-weight: 600; }
.ds-side .ds-boks { border-top: 3px solid var(--navy); }   /* én stripe for alle bokser: marine (ingen dekorfarger per boks) */
.ds-side .ds-stor { font-size: 32px; font-weight: 700; margin: var(--s1) 0; }
.ds-side .ds-kpi .ds-stor { font-size: 24px; margin-top: 2px; }
.ds-side .ds-sub { color: var(--ink); font-size: 14px; margin-top: 2px; }
.ds-side .ds-kpi .ds-sub { font-size: 13px; color: var(--ink-muted); }
.ds-side .ds-sml { display: flex; flex-direction: column; gap: 2px; margin-top: 6px; color: var(--ink-subtle); font-size: 12px; }
.ds-side .ds-dempet { color: var(--ink-subtle); font-size: 12px; margin-top: var(--s2); }
.ds-side .ds-ok { color: var(--suksess); } .ds-side .ds-gul { color: var(--varsel); font-weight: 700; } .ds-side .ds-feil { color: var(--feil); font-weight: 700; }
.ds-side .ds-pil { font-weight: 700; border-radius: 10px; padding: 1px 7px; font-size: 12px; }
.ds-side .ds-pil--opp { background: var(--suksess-tint); color: var(--suksess); } .ds-side .ds-pil--ned { background: var(--feil-tint); color: var(--feil); } .ds-side .ds-pil--ingen { background: var(--surface-grey-2); color: var(--ink-muted); }
.ds-side .ds-graf { margin-bottom: var(--s3); } .ds-side .ds-graf h2 { margin: 0 0 6px; }
.ds-side details.ds-fold { padding-top: var(--s2); padding-bottom: var(--s2); margin-bottom: var(--s2); }
.ds-side details.ds-fold > summary { cursor: pointer; list-style: none; display: flex; align-items: center; gap: 8px; min-height: 32px; }
.ds-side details.ds-fold > summary::-webkit-details-marker { display: none; }
.ds-side details.ds-fold > summary::before { content: "▸"; color: var(--ink-muted); flex: 0 0 auto; transition: transform .15s; }
.ds-side details.ds-fold[open] > summary::before { transform: rotate(90deg); }
.ds-side details.ds-fold > summary h2 { margin: 0; font-size: 1rem; }
.ds-side details.ds-fold[open] > summary { margin-bottom: 6px; }
.ds-side .ds-apen { }   /* sammenleggbar seksjon som er åpen som standard (konvertering, siste ordre) */
.ds-side .ds-svg { width: 100%; height: auto; display: block; }
.ds-side .ds-forkl { display: flex; gap: 14px; flex-wrap: wrap; font-size: 12px; color: var(--ink-muted); margin-top: 6px; }
.ds-side .ds-sym { display: inline-block; width: 12px; height: 12px; border-radius: 2px; vertical-align: -1px; margin-right: 4px; }
.ds-side .ds-sym--blaa { background: var(--ds-blaa); } .ds-side .ds-sym--trend { background: var(--ds-trend); } .ds-side .ds-sym--blaa-lys { background: var(--ds-blaa-lys); }
.ds-side .ds-sym--gronn { background: var(--ds-gronn); } .ds-side .ds-sym--prikk { background: var(--ink-subtle); border-radius: 50%; }
.ds-side .ds-under { font-size: 15px; margin: var(--s3) 0 6px; }
.ds-side .ds-graf .ds-under { margin: var(--s3) 0 4px; }
.ds-side .ds-hvorfor { margin: 6px 0 0; padding-left: 18px; font-size: 14px; line-height: 1.5; } .ds-side .ds-hvorfor li { margin: 3px 0; }
.ds-side .ds-tall2 { display: flex; gap: 14px; flex-wrap: wrap; font-size: 13px; margin-top: var(--s2); }
.ds-side .ds-tall2 span { background: var(--ds-bg); border-radius: var(--r-sm); padding: 4px 8px; }
.ds-side .ds-prog { display: grid; gap: var(--s3); grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); margin-top: var(--s3); }
.ds-side .ds-prog div { background: var(--ds-bg); border-radius: var(--r-md); padding: 10px var(--s3); } .ds-side .ds-prog b { display: block; font-size: 20px; }
.ds-side .ds-stripe { display: flex; gap: var(--s4); flex-wrap: wrap; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-md); padding: 10px 14px; margin-bottom: var(--s3); font-size: 14px; }
.ds-side .ds-ramme { overflow-x: auto; }
.ds-side .ds-tabell { border-collapse: collapse; width: 100%; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-md); }
.ds-side .ds-tabell th { font-size: 13px; text-align: left; padding: var(--s2); border-bottom: 2px solid var(--border-strong); white-space: nowrap; }
.ds-side .ds-tabell td { padding: var(--s2); border-bottom: 1px solid var(--border); font-size: 14px; vertical-align: middle; }
.ds-side .ds-tabell .ds-t { text-align: right; white-space: nowrap; } .ds-side .ds-tabell .ds-nb { white-space: nowrap; }
.ds-side .ds-aar th, .ds-side .ds-aar td { text-align: right; white-space: nowrap; } .ds-side .ds-aar th:first-child, .ds-side .ds-aar td:first-child { text-align: left; }
.ds-side .ds-aar tr.ds-na td { font-weight: 700; background: var(--ds-bg); }
.ds-side .ds-logg .rh-seksjonshode { margin: var(--s3) 0 var(--s2); } .ds-side .ds-logg h2 { font-size: 15px; color: var(--ink); }
.ds-side .ds-logg .rh-tabell th, .ds-side .ds-logg .rh-tabell td { font-size: 14px; }
@media (max-width: 640px) { .ds-side .ds-inn { padding: var(--s2); } .ds-side .ds-stor { font-size: 28px; } .ds-side .ds-boks { padding: var(--s3); } }
@media (max-width: 640px) { .ds-side .ds-ramme .ds-tabell { min-width: 640px; } }

/* /dash: toppen (nøkkeltall og «Krever oppmerksomhet»), grupper, periodevalg, to grafer ved siden av hverandre og datakvalitet (29.10). Bare tokens: marine, oransje og statusfarger. */
.ds-side .ds-oppd { margin: 0 0 var(--s2); color: var(--ink-subtle); font-size: 13px; min-height: 20px; }
.ds-side .ds-nokkel { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: var(--s3); margin-bottom: var(--s3); }
.ds-side .ds-nk { display: flex; flex-direction: column; gap: 2px; min-width: 0; min-height: 156px; padding: var(--s3) var(--s4); background: var(--surface); border: 1px solid var(--border); border-top: 3px solid var(--navy); border-radius: var(--r-md); color: var(--ink); }
.ds-side a.ds-nk:hover { text-decoration: none; border-color: var(--navy); }
.ds-side .ds-nk--gul { border-top-color: var(--varsel); } .ds-side .ds-nk--feil { border-top-color: var(--feil); } .ds-side .ds-nk--ok { border-top-color: var(--suksess); }
.ds-side .ds-nk__t { margin: 0; font-size: 13px; font-weight: 600; color: var(--ink-muted); }
.ds-side .ds-nk__tall { font-size: 24px; font-weight: 700; line-height: 1.25; color: var(--navy); overflow-wrap: anywhere; }
.ds-side .ds-nk--gul .ds-nk__tall { color: var(--varsel); } .ds-side .ds-nk--feil .ds-nk__tall { color: var(--feil); } .ds-side .ds-nk--ok .ds-nk__tall { color: var(--suksess); }
.ds-side .ds-nk__under { font-size: 13px; color: var(--ink-muted); }
.ds-side .ds-nk__merker { display: flex; flex-direction: column; gap: 2px; font-size: 12px; color: var(--ink-subtle); }
.ds-side .ds-mini { display: block; width: 100%; max-width: 160px; height: 28px; margin-top: auto; }
.ds-side .ds-mini polyline { fill: none; stroke: var(--oransje); stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.ds-side .ds-krever { margin-bottom: var(--s3); border-top: 0; border-left: 4px solid var(--oransje); }
.ds-side .ds-krever__liste { list-style: none; margin: var(--s2) 0 0; padding: 0; display: grid; gap: var(--s1); }
.ds-side .ds-krever__tom { margin: var(--s2) 0 0; color: var(--suksess); font-size: 14px; font-weight: 600; }
.ds-side .ds-kr { padding: 6px 10px; border-radius: var(--r-sm); font-size: 14px; }
.ds-side .ds-kr a { color: inherit; font-weight: 600; }
.ds-side .ds-kr--feil { background: var(--feil-tint); color: var(--feil); } .ds-side .ds-kr--gul { background: var(--oransje-tint); color: var(--varsel); }
.ds-side .ds-gruppe { margin-top: var(--s6); scroll-margin-top: var(--s4); }
.ds-side .ds-gruppe__tittel { margin: 0 0 var(--s3); padding-bottom: var(--s1); font-size: 18px; color: var(--navy); border-bottom: 2px solid var(--oransje); }
.ds-side .ds-periode { display: flex; flex-wrap: wrap; gap: var(--s2); margin-bottom: var(--s3); }
.ds-side .ds-periode__valg { padding: 6px 14px; min-height: 36px; display: inline-flex; align-items: center; border: 1px solid var(--border-strong); border-radius: var(--r-pill); background: var(--surface); color: var(--navy); font-size: 14px; font-weight: 600; }
.ds-side .ds-periode__valg:hover { text-decoration: none; border-color: var(--navy); }
.ds-side .ds-periode__valg--valgt { background: var(--navy); border-color: var(--navy); color: var(--ink-inverse); }
.ds-side .ds-periodeboks { margin-bottom: var(--s3); }
.ds-side .ds-par { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s3); align-items: start; }
.ds-side .ds-par > .ds-boks { margin-bottom: var(--s3); }
.ds-side .ds-data { margin-top: var(--s6); }
.ds-side .ds-data h2 { margin-bottom: var(--s2); }
@media (max-width: 900px) { .ds-side .ds-par { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 640px) { .ds-side .ds-nk { min-height: 0; } .ds-side .ds-nk__tall { font-size: 20px; } }


/* ---- Kvalitetsrettelser 26.10 (rapporten ny/KVALITETSSJEKK_DEV_2026-10-26.md) ---- */
/* forsidens h1 */
.rh-forside-h1 { margin: var(--s6) 0 var(--s4); font-size: clamp(1.5rem, 1.1rem + 1.6vw, 2.25rem); line-height: 1.15; font-weight: 800; color: var(--navy); text-wrap: balance; }
/* tom handlekurv: rolig tomtilstand i stedet for Woos trist-ansikt og «Nyheter i butikken» */
.wp-block-woocommerce-empty-cart-block .with-empty-cart-icon::before { content: none; display: none; }
.wp-block-woocommerce-empty-cart-block .with-empty-cart-icon { padding-top: 0; }
.wp-block-woocommerce-empty-cart-block .wp-block-separator { display: none; }
.rh-tomkurv { display: grid; justify-items: center; gap: var(--s4); padding: var(--s6) var(--s4) var(--s10); text-align: center; }
.rh-tomkurv__tekst { margin: 0; color: var(--ink-muted); max-width: 46ch; }
.rh-tomkurv__knapper { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--s3); margin: 0; }
/* tomme bildefelt (kategorier og kort uten bilde) tar ingen plass */
.rh-katkort__bilde:empty, .rh-kort__bilde:empty, .rh-mega__bilde:empty { display: none; }
/* underkategorier: seks vises på mobil, resten bak «Vis alle» (avkrysning uten JavaScript) */
.rh-kat-alle__av { position: absolute; opacity: 0; pointer-events: none; width: 1px; height: 1px; }
.rh-kat-alle__knapp { display: none; }
@media (max-width: 899px) {
	.rh-kat-topp__under--mange .rh-karusell--topp > .rh-katkort:nth-child(n+7) { display: none; }
	.rh-kat-alle__av:checked ~ .rh-karusell--topp > .rh-katkort:nth-child(n+7) { display: flex; }
	.rh-kat-alle__knapp { display: flex; align-items: center; justify-content: center; min-height: var(--touch); margin-top: var(--s2); border: 1px solid var(--border-control); border-radius: var(--r-md); color: var(--navy); font-weight: 700; cursor: pointer; }
	.rh-kat-alle__faerre { display: none; }
	.rh-kat-alle__av:checked ~ .rh-kat-alle__knapp .rh-kat-alle__mer { display: none; }
	.rh-kat-alle__av:checked ~ .rh-kat-alle__knapp .rh-kat-alle__faerre { display: inline; }
	.rh-kat-alle__av:focus-visible ~ .rh-kat-alle__knapp { outline: var(--bar) solid var(--focus); outline-offset: 2px; }
}
/* underkategorier på PC: ti vises, resten bak «Vis alle N» (som på mobil, men først fra den ellevte), så filteret og varene kommer tidlig */
@media (min-width: 900px) {
	.rh-kat-topp__under--mange .rh-karusell--topp:has(> .rh-katkort:nth-child(11)) > .rh-katkort:nth-child(n+11) { display: none; }
	.rh-kat-topp__under--mange .rh-kat-alle__av:checked ~ .rh-karusell--topp:has(> .rh-katkort:nth-child(11)) > .rh-katkort:nth-child(n+11) { display: flex; }
	.rh-kat-topp__under--mange:has(.rh-karusell--topp:not(:has(> .rh-katkort:nth-child(11)))) .rh-kat-alle__knapp { display: none; }
	.rh-kat-topp__under--mange .rh-kat-alle__knapp { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; margin-top: var(--s2); padding: 0 var(--s4); border: 1px solid var(--border-control); border-radius: var(--r-md); color: var(--navy); font-weight: 700; cursor: pointer; }
	.rh-kat-alle__faerre { display: none; }
	.rh-kat-alle__av:checked ~ .rh-kat-alle__knapp .rh-kat-alle__mer { display: none; }
	.rh-kat-alle__av:checked ~ .rh-kat-alle__knapp .rh-kat-alle__faerre { display: inline; }
	.rh-kat-alle__av:focus-visible ~ .rh-kat-alle__knapp { outline: var(--bar) solid var(--focus); outline-offset: 2px; }
}
/* mobil: trykkflater på minst 44 px uten å endre utseendet (brødsmulen får et usynlig treffområde, bunnlenkene får høyde), kompakt topp, topplinjen er én setning som ikke klippes */
@media (max-width: 781px) {
	.rh-brodsmule a { position: relative; }
	.rh-brodsmule a::after { content: ""; position: absolute; inset: -12px -8px; }
	.rh-bunn li { margin-bottom: 0; }
	.rh-v .rh-bunn li a:not(.rh-knapp), .rh-v .rh-bunn .rh-lenkeknapp { display: inline-flex; align-items: center; min-height: var(--touch); }
	.rh-info__liste { flex-wrap: wrap; justify-content: center; overflow: visible; white-space: normal; text-align: center; gap: 0; padding-block: var(--s1); }
	.rh-info__liste > li:not(:nth-child(2)) { display: none; }
	.rh-topp__rad { padding-block: var(--s2); gap: var(--s2) var(--s3); }
	.rh-handling { gap: 0; }
	.rh-logo img, .rh-v .rh-topp .rh-logo img { height: 20px; }
	.rh-logo { min-height: var(--touch); }   /* CLS 28.10: første linje i toppen er like høy som handlingene (44 px) også mens HTML-en kommer i biter og bare logoen er lest: logoen flyttet seg 12 px */
	.rh-v .rh-handling a { padding: 0 var(--s1); }
}

/* ---- Venstremeny i arbeidsflaten (/dash; Drift tegner den, valgene kommer fra Ordrebehandling): fast til venstre på PC og nettbrett, bunnlinje på mobil ---- */
.ds-meny { position: fixed; z-index: 20; inset: 0 auto 0 0; width: 220px; display: flex; flex-direction: column; gap: var(--s3); padding: var(--s3); background: var(--surface); border-right: 1px solid var(--border); overflow-y: auto; }
.ds-meny-merke img { display: block; width: 100%; height: auto; max-width: 100%; }
.ds-meny-merke strong { font-size: 18px; color: var(--navy); }
.ds-meny-liste { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--s1); }
.ds-side .ds-meny-valg { display: flex; align-items: center; min-height: 44px; padding: 0 var(--s3); border-radius: var(--r-md); color: var(--ink); font-weight: 700; font-size: 15px; text-decoration: none; }
.ds-side .ds-meny-valg:hover { background: var(--navy-tint); text-decoration: none; }
.ds-side .ds-meny-valg:focus-visible { outline: 3px solid var(--oransje); outline-offset: 2px; }
.ds-side .ds-meny-valg[aria-current="page"] { background: var(--navy); color: var(--surface); }
.ds-med-meny { padding-left: 220px; }
@media (max-width: 900px) {
	.ds-meny { width: 168px; }
	.ds-med-meny { padding-left: 168px; }
}
@media (max-width: 700px) {
	.ds-meny { inset: auto 0 0 0; width: auto; flex-direction: row; align-items: center; gap: 0; padding: var(--s1) var(--s2) calc(var(--s1) + env(safe-area-inset-bottom, 0px)); border-right: 0; border-top: 1px solid var(--border); overflow: auto hidden; }
	.ds-meny-merke { display: none; }
	.ds-meny-liste { flex-direction: row; gap: var(--s1); }
	.ds-side .ds-meny-valg { white-space: nowrap; padding: 0 var(--s4); }
	.ds-med-meny { padding-left: 0; padding-bottom: calc(60px + env(safe-area-inset-bottom, 0px)); }
}

/* Feilsiden «Side ikke funnet» (testagent B 26.10): søk og veier videre i stedet for temaets stockfoto */
.rh-feilside__sok { display: flex; gap: var(--s2); max-width: 32rem; margin-block: var(--s4); }
.rh-feilside__sok .rh-felt { flex: 1; min-width: 0; }
.rh-feilside__lenker { display: flex; flex-wrap: wrap; gap: var(--s3); margin-block: var(--s4); }

/* Hentested-/pakkeboksvalg i kassen (Frakt, hentested.js): fieldset under fraktvalgene; selve tilleggsfeltet er skjult */
.wc-block-components-text-input:has([id*="riktighandel-hentested"]), .wc-block-components-text-input:has([id*="riktighandel/hentested"]) { display: none !important; }
.rh-hs { margin: var(--s3) 0 var(--s1); padding: var(--s3) var(--s4); border: 1px solid var(--border); border-radius: var(--r-md); background: var(--surface); min-width: 0; }
.rh-hs__tittel { padding: 0 var(--s1); font-weight: 700; font-size: 16px; color: var(--navy); }
.rh-hs__valg { display: flex; gap: var(--s3); align-items: flex-start; padding: var(--s2) 0; min-height: 44px; cursor: pointer; font-size: 15px; line-height: 1.35; }
.rh-hs__valg + .rh-hs__valg { border-top: 1px solid var(--border); }
.rh-hs__valg input { margin-top: 3px; flex: none; width: 20px; height: 20px; }
.rh-hs__valg input:focus-visible { outline: 3px solid var(--oransje); outline-offset: 2px; }
.rh-hs__valg small { display: block; color: var(--ink-muted); }
.rh-hs[aria-invalid="true"] { border-color: var(--feil); }
.rh-hs__feil { margin: var(--s2) 0 0; color: var(--feil); font-weight: 700; font-size: 15px; }
.rh-hs__igjen { min-height: 44px; padding: 0 var(--s4); margin-top: var(--s2); border: 1px solid var(--border); border-radius: var(--r-md); background: var(--surface); color: var(--navy); font: inherit; font-weight: 700; cursor: pointer; }
.rh-hs__igjen:focus-visible { outline: 3px solid var(--oransje); outline-offset: 2px; }

/* ---- Kategoritekst (som live): ingress med overskrift, «Les mer om …» under ingressen, resten brettes ut under; bredde og størrelser ---- */
.rh-kattekst { max-width: 80ch; }
.rh-kattekst h2 { font-size: 22px; line-height: 1.3; margin: 0 0 var(--s2); color: var(--navy); }
.rh-kattekst h3 { font-size: 18px; line-height: 1.35; margin: var(--s4) 0 var(--s1); color: var(--navy); }
.rh-kattekst p { margin: 0 0 var(--s2); line-height: 1.6; }
.rh-kattekst__rest { margin-top: var(--s3); }
.rh-tekst .rh-kattekst__mer > summary::after { content: " \2193"; }
.rh-tekst .rh-kattekst__mer[open] > summary::after { content: " \2191"; }

/* ---- Ingen forvalg av fraktmåte: plassholderen «Velg fraktmåte» (kasse-og-betaling) er det Woo og blokk-kassen forhåndsvelger; den vises ikke, så ingen ekte fraktmåte står avkrysset ---- */
.wc-block-components-radio-control__option:has(input[value^="rh_velg"]),
.wc-block-components-radio-control-accordion-option:has(input[value^="rh_velg"]),
.wc-block-components-shipping-rates-control label:has(input[value^="rh_velg"]),
.woocommerce-shipping-methods li:has(input[value^="rh_velg"]) { display: none; }
/* Kassen 28.10: rammen rundt «Leveringsvalg» manglet (toppen) og skillelinjene ble kuttet. Årsak: plassholderen «Velg fraktmåte» er det valgte alternativet, og Woo gir gruppen klassen
   --first-selected (rammens topplinje fjernes og margin-top 2px, fordi det valgte alternativet skal tegne sin egen ramme). Plassholderen er skjult (display:none), så ingen ramme tegnes.
   Står plassholderen valgt, tegnes hele gruppens ramme på nytt (ingen høydeendring: samme boks, bare linjene). */
.rh-v .wc-block-components-radio-control--highlight-checked.wc-block-components-radio-control--highlight-checked:has(input[value^="rh_velg"]:checked)::after { border: 1px solid var(--border-strong); margin: 0; }
/* Bare Norge (kasse-og-betaling/inc/land.php): Woo kjenner bare ett land og tegner ikke landvalget. Denne linja er bare en sikring hvis en blokk-versjon likevel tegner det. */
.rh-v .wc-block-components-address-form__country, .rh-v .wc-block-components-country-input { display: none; }

/* Google-vurderingen (rh_gv_html): liten linje under kjøpsfeltet og i tillitsblokker. Ren tekst, ingen skript. */
.rh-gv { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: var(--s1); color: var(--ink-muted); font-size: 14px; line-height: 1.4; }
.rh-gv__lenke { color: inherit; text-decoration: none; }
.rh-gv__lenke:hover .rh-gv__tekst, .rh-gv__lenke:focus-visible .rh-gv__tekst { text-decoration: underline; }
.rh-gv__st { color: var(--oransje-ink); letter-spacing: 1px; }
.rh-gv strong { color: var(--ink); }
.rh-gv__n { color: var(--ink-subtle); }
.rh-kjopinfo__google { padding-top: var(--s2); }

/* ---- Drop-in: nytt salg (kunde øverst som stripe, søk i fokus, så mange linjer man vil, Vipps eller faktura). Alle farger fra tokens. ---- */
.rh-v .rh-dx [hidden] { display: none; }
.rh-v .rh-dx { display: grid; gap: var(--s3); margin: 0 0 var(--s5); }
.rh-v .rh-dx__inn { width: 100%; min-height: var(--touch); padding: 0 var(--s3); border: 1px solid var(--navy); border-radius: var(--r-md); font: inherit; box-sizing: border-box; background: var(--surface); color: var(--ink); }
.rh-v .rh-dx__stor { min-height: 56px; font-size: 20px; border-width: 2px; }
.rh-v .rh-dx__kunde { display: grid; gap: var(--s2); }
.rh-v .rh-dx__kundesok { display: flex; gap: var(--s2); position: relative; }
.rh-v .rh-dx__kundesok .rh-dx__inn { flex: 1; }
.rh-v .rh-dx__stripe { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s2) var(--s3); padding: var(--s2) var(--s3); background: var(--navy-tint); border: 1px solid var(--border-strong); border-radius: var(--r-md); min-height: var(--touch); }
.rh-v .rh-dx__stripe-navn { color: var(--navy); }
.rh-v .rh-dx__stripe-info { color: var(--ink-muted); }
.rh-v .rh-dx__stripe .rh-knapp { margin-left: auto; }
.rh-v .rh-dx__chip { display: inline-block; padding: 2px var(--s2); border-radius: var(--r-pill); background: var(--surface); border: 1px solid var(--border-strong); font-size: 13px; font-weight: 600; color: var(--navy); }
.rh-v .rh-dx__chip--ok { background: var(--suksess-tint); color: var(--suksess); }
.rh-v .rh-dx__chip--varsel { background: var(--note-tint); color: var(--note); }
.rh-v .rh-dx__nykunde { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--s2); align-items: end; }
.rh-v .rh-dx__nykunde label { display: block; font-size: 13px; font-weight: 600; color: var(--navy); }
.rh-v .rh-dx__nykunde .rh-dx__inn { margin-top: var(--s1); font-weight: 400; }
.rh-v .rh-dx__hent { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: var(--s2) var(--s3); }
.rh-v .rh-dx__hoved { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: var(--s4); align-items: start; }
.rh-v .rh-dx__varer { display: grid; gap: var(--s2); min-width: 0; }
.rh-v .rh-dx__sokrad { display: flex; flex-wrap: wrap; gap: var(--s2); position: relative; align-items: center; }
.rh-v .rh-dx__sokrad .rh-dx__stor { flex: 1 1 180px; width: auto; min-width: 0; }
.rh-v .rh-dx__antall { display: flex; align-items: center; gap: var(--s2); font-weight: 600; color: var(--navy); white-space: nowrap; }
.rh-v .rh-dx__antall input { width: 64px; min-height: 56px; text-align: center; font-size: 20px; border: 2px solid var(--navy); border-radius: var(--r-md); }
.rh-v .rh-dx__treff { position: absolute; z-index: 6; left: 0; right: 0; top: 100%; margin-top: var(--s1); background: var(--surface); border: 1px solid var(--navy); border-radius: var(--r-md); box-shadow: var(--shadow-control); max-height: 360px; overflow: auto; }
.rh-v .rh-dx__treff:empty { display: none; }
.rh-v .rh-dx__rad { display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; gap: var(--s3); align-items: center; width: 100%; text-align: left; padding: var(--s2) var(--s3); background: none; border: 0; border-bottom: 1px solid var(--border); font: inherit; color: var(--ink); cursor: pointer; }
.rh-v .rh-dx__rad:is(:hover, :focus-visible, [aria-selected="true"]) { background: var(--navy-tint); }
.rh-v .rh-dx__rad img, .rh-v .rh-dx__linjer img { width: 44px; height: 44px; object-fit: contain; background: var(--surface-grey); border-radius: var(--r-sm); }
.rh-v .rh-dx__rad small, .rh-v .rh-dx__linjer small { display: block; color: var(--ink-muted); font-size: 13px; }
.rh-v .rh-dx__rad--kunde { grid-template-columns: minmax(0, 1fr) auto; }
.rh-v .rh-dx__tabell { max-height: calc(100vh - 330px); min-height: 200px; overflow: auto; border: 1px solid var(--border); border-radius: var(--r-md); background: var(--surface); }
.rh-v .rh-dx__linjer { width: 100%; border-collapse: collapse; }
.rh-v .rh-dx__linjer th { position: sticky; top: 0; background: var(--surface-soft); text-align: left; font-size: 13px; color: var(--ink-muted); padding: var(--s2); border-bottom: 1px solid var(--border-strong); }
.rh-v .rh-dx__linjer td { padding: var(--s2); border-bottom: 1px solid var(--border); vertical-align: middle; }
.rh-v .rh-dx__linjer .rh-dx__t { text-align: right; white-space: nowrap; }
.rh-v .rh-dx__linjer td:nth-child(3) { white-space: nowrap; }
.rh-v .rh-dx__linjer input { min-height: 40px; border: 1px solid var(--navy); border-radius: var(--r-sm); padding: 0 var(--s2); font: inherit; box-sizing: border-box; }
.rh-v .rh-dx__linjer .rh-dx__a { width: 64px; text-align: center; }
.rh-v .rh-dx__linjer .rh-dx__p { width: 104px; text-align: right; }
.rh-v .rh-dx__linjer .rh-dx__f { width: 100%; }
.rh-v .rh-dx__pm, .rh-v .rh-dx__fjern { min-width: 40px; min-height: 40px; border: 1px solid var(--border-strong); background: var(--surface); border-radius: var(--r-sm); font: inherit; font-weight: 700; cursor: pointer; color: var(--navy); }
.rh-v .rh-dx__fjern { color: var(--feil); }
.rh-v .rh-dx__tom { margin: 0; padding: var(--s5); color: var(--ink-muted); text-align: center; }
.rh-v .rh-dx__kasse { display: grid; gap: var(--s3); padding: var(--s4); background: var(--surface); border: 1px solid var(--border-strong); border-radius: var(--r-md); }
.rh-v .rh-dx__sum { display: grid; grid-template-columns: 1fr auto; gap: var(--s1) var(--s3); margin: 0; }
.rh-v .rh-dx__sum dd { margin: 0; text-align: right; }
.rh-v .rh-dx__sum .rh-dx__stor-sum { font-size: 24px; font-weight: 800; color: var(--navy); }
.rh-v .rh-dx__betaling { border: 0; padding: 0; margin: 0; display: grid; gap: var(--s2); }
.rh-v .rh-dx__betaling legend { font-weight: 700; color: var(--navy); padding: 0; margin-bottom: var(--s1); }
.rh-v .rh-dx__valgrad { display: flex; align-items: center; gap: var(--s2); min-height: var(--touch); padding: 0 var(--s3); border: 2px solid var(--border-strong); border-radius: var(--r-md); cursor: pointer; font-weight: 600; }
.rh-v .rh-dx__valgrad:has(input:checked) { border-color: var(--navy); background: var(--navy-tint); }
.rh-v .rh-dx__valgrad input { width: 20px; height: 20px; accent-color: var(--navy); margin: 0; }
.rh-v .rh-dx__hint { margin: 0; color: var(--ink-muted); font-size: 14px; }
.rh-v .rh-dx__faktura { display: grid; gap: var(--s2); padding: var(--s3); background: var(--note-tint); border-radius: var(--r-md); }
.rh-v .rh-dx__faktura p { margin: 0; }
.rh-v .rh-dx__spm-knapper { display: flex; gap: var(--s2); flex-wrap: wrap; }
.rh-v .rh-dx__spm-knapper .rh-dx__valgrad input { flex: none; }
.rh-v .rh-dx__spm-knapper .rh-dx__valgrad { flex: 1; justify-content: center; padding: 0 var(--s2); background: var(--surface); }
.rh-v .rh-dx__mer summary { cursor: pointer; font-weight: 600; color: var(--navy); min-height: var(--touch); display: flex; align-items: center; }
.rh-v .rh-dx__mer label { display: block; margin: 0 0 var(--s2); font-weight: 600; color: var(--navy); font-size: 14px; }
.rh-v .rh-dx__mer .rh-dx__inn { margin-top: var(--s1); font-weight: 400; }
.rh-v .rh-dx__lagre { min-height: 56px; font-size: 18px; width: 100%; }
.rh-v .rh-dx__feil { margin: 0; color: var(--feil); font-weight: 600; }
.rh-v .rh-dx__sekundar { display: flex; flex-wrap: wrap; gap: var(--s2); }
@media (max-width: 960px) { .rh-v .rh-dx__hoved { grid-template-columns: 1fr; } .rh-v .rh-dx__nykunde { grid-template-columns: repeat(2, minmax(0, 1fr)); } .rh-v .rh-dx__tabell { max-height: none; } }

/* Innholdsparitet med live (27.10): kampanjeblokk, «Mest brukte grupper», kurvsum i toppen og logo i bunnen. Enkel stil med eksisterende tokens; finpuss kommer etter live. */
.rh-kampanje__rad { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: var(--s6); align-items: center; }
.rh-kampanje__tekst h1 { margin-block: 0 var(--s3); }
.rh-kampanje__tekst > p { color: var(--ink-inverse-muted); }
.rh-kampanje .rh-knapp--kontur { background: transparent; color: var(--ink-inverse); box-shadow: inset 0 0 0 2px var(--ink-inverse-muted); }
.rh-kampanje .rh-knapp--kontur:hover { background: var(--navy-hover); }
.rh-kampanje__tillit { list-style: none; padding: 0; margin: var(--s3) 0 0; display: flex; flex-wrap: wrap; gap: var(--s1) var(--s4); font-size: 14px; color: var(--ink-inverse-muted); }
.rh-kampanje__bilder { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s3); }
.rh-kampanje__bilder a { display: block; aspect-ratio: 1; padding: var(--s2); background: var(--surface); border-radius: var(--r-lg); }
.rh-kampanje__bilder img { display: block; width: 100%; height: 100%; object-fit: contain; }
.rh-snarv { display: flex; flex-wrap: wrap; gap: var(--s2); }
.rh-kurv { display: inline-flex; align-items: center; gap: var(--s1); }
.rh-kurv__antall { min-width: 20px; padding: 0 var(--s1); border-radius: var(--r-pill); background: var(--oransje); color: var(--navy); font-size: 12px; line-height: 20px; text-align: center; }
.rh-kurv__antall[hidden] { display: none; }
.rh-kurv__tekst { font-weight: 700; }
.rh-kurv__sum { font-weight: 400; white-space: nowrap; }
.rh-bunn__logo { display: block; max-width: 100%; height: auto; margin-bottom: var(--s3); }
.rh-bunn__om p { margin: 0; font-size: 13px; line-height: 1.6; color: var(--ink-inverse-muted); }
@media (max-width: 781px) { .rh-kampanje__rad { grid-template-columns: 1fr; } .rh-kurv__sum { display: none; } }
/* Avtalepris (Kunde og bedrift): merkelappen under prisen. Stilen eies av Utseende. */
.rh-avtalepris{display:block;font-size:13px;font-weight:600}

/* Nyhetsbrev nederst på alle sider (som live: rh-nbb) og betalingsikoner Vipps, PostNord og Faktura i bunnen */
.rh-nbb { border-top: 1px solid var(--navy-hover); padding-block: var(--s4); color: var(--ink-inverse); }
.rh-nbb__rad { display: grid; gap: var(--s3) var(--s8); grid-template-columns: 1fr 1.4fr; align-items: center; }
.rh-nbb p { margin: 0; font-size: 14px; color: var(--ink-inverse-muted); }
.rh-nbb .rh-nbb__tittel { font-size: 20px; font-weight: 700; color: var(--ink-inverse); margin-bottom: 4px; }
.rh-nbb__skjema { display: grid; gap: var(--s2); }
.rh-nbb__felt { display: flex; gap: var(--s2); }
.rh-nbb__felt .rh-felt { flex: 1; min-width: 0; }
.rh-nbb .rh-avkryss { display: flex; gap: var(--s2); align-items: flex-start; font-size: 13px; color: var(--ink-inverse-muted); }
.rh-nbb .rh-avkryss input { margin-top: 3px; width: 18px; height: 18px; flex: none; }
.rh-nbb .rh-melding { font-weight: 700; color: var(--ink); }   /* melding med lys bakgrunn (som resten av nettstedet), lesbar på mørk bunn */
@media (max-width: 700px) { .rh-nbb__rad { grid-template-columns: 1fr; } .rh-nbb__felt { flex-direction: column; } }
.rh-bunn__betaling { flex-wrap: wrap; align-items: center; }
.rh-bunn__betaling .rh-bk-bilde { background: var(--kort-hvit); border-radius: 4px; padding: 5px 8px; display: flex; align-items: center; min-height: 30px; box-sizing: border-box; }
.rh-bunn__betaling .rh-bk-bilde img { display: block; height: 20px; width: auto; max-width: 90px; object-fit: contain; }
.rh-bl-faktura .rh-bf-strek { fill: none; stroke: var(--navy); stroke-width: 1.2; }
.rh-bl-faktura .rh-bk { stroke: var(--navy); }
.rh-bl-faktura .rh-bf-tekst { fill: var(--navy); font: 700 9.5px Arial, Helvetica, sans-serif; }

/* ---- Kassen: ingen «Gratis» i oppsummeringen før fraktmåte er valgt (klassen settes av kasse-og-betaling/filer/kasse.js) ---- */
body.rh-uten-fraktvalg .wc-block-components-totals-shipping .wc-block-components-totals-item__value { visibility: hidden; }

/* Varekort, kompakt (Jørgen 28.10, forslag A): lavere kort, lagerprikk, pris og liten Kjøp-knapp på samme rad, grå flate mellom kortene */
.rh-rutenett--varer { gap: var(--s3); padding: var(--s3); background: var(--surface-grey); border-radius: var(--r-lg); }
.rh-kort--vare { padding: var(--s2); border-color: var(--border); box-shadow: var(--shadow-kort); }
.rh-kort--vare:hover { border-color: var(--oransje); box-shadow: var(--shadow-kort-hover); transform: translateY(-1px); }
.rh-kort--vare .rh-kort__bilde { aspect-ratio: 4 / 3; margin-bottom: var(--s2); }
.rh-kort--vare .rh-kort__merke { top: var(--s3); left: var(--s3); padding: 2px 6px; font-size: 11px; }
.rh-v .rh-kort--vare .rh-kort__tittel, .rh-v .rh-hoved .rh-kort--vare .rh-kort__tittel { font: 700 14px/1.3 var(--font-sans); margin: 0 0 var(--s1); min-height: 2.6em; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: anywhere; }
.rh-kort__lager { display: flex; align-items: center; gap: 6px; margin: 0 0 var(--s1); font: 600 12px/1.2 var(--font-sans); }
.rh-kort__lager i { flex: none; width: 9px; height: 9px; border-radius: 50%; }
.rh-kort__lager--ja { color: var(--suksess); }
.rh-kort__lager--ja i { background: var(--suksess); box-shadow: 0 0 0 3px var(--suksess-tint); }
.rh-kort__lager--nei { color: var(--varsel); }
.rh-kort__lager--nei i { background: var(--lager-gul); box-shadow: 0 0 0 3px var(--lager-gul-tint); }
.rh-kort--vare .rh-kort__rad { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s2); margin-top: auto; }
.rh-kort--vare .rh-kort__priser { min-width: 0; }
.rh-kort--vare .rh-prisrad { margin: 0; }
.rh-kort--vare .rh-kort__pris { font: 800 16px/1.15 var(--font-sans); }
.rh-kort--vare .rh-kort__for { font-size: 12px; }
.rh-kort--vare .rh-kort__mva { margin: 0; font: 400 11px/1.3 var(--font-sans); color: var(--ink-muted); }
.rh-kort--vare .rh-kort__kjop { display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 34px; min-height: 34px; margin: 0; padding: 0 var(--s3); font-size: 13px; white-space: nowrap; align-self: center; }
/* Pakke 20 (28.10, Jørgen: kort med gammelpris var 329 px mot 287 px fordi prisen brøt og Kjøp-knappen fikk egen rad): pris og gammelpris på ÉN linje, «inkl. mva» og Kjøp på rad to. Alle kort får lik høyde, også med og uten gammelpris. */
.rh-kort--vare .rh-kort__rad { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "pris pris" "mva kjop"; align-items: center; gap: var(--s1) var(--s2); }
.rh-kort--vare .rh-kort__priser { display: contents; }
.rh-kort--vare .rh-prisrad { grid-area: pris; display: flex; align-items: baseline; flex-wrap: nowrap; gap: 6px; min-width: 0; margin: 0; white-space: nowrap; overflow: hidden; height: 20px; }
.rh-kort--vare .rh-kort__for { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; font-size: 11px; }
.rh-kort--vare .rh-kort__mva { grid-area: mva; }
.rh-kort--vare .rh-kort__kjop { grid-area: kjop; }
.rh-kort--vare { container-type: inline-size; }
@container (min-width: 250px) {   /* bredt kort: knappen står til høyre for pris og «inkl. mva» (lavere kort) */
	.rh-kort--vare .rh-kort__rad { grid-template-areas: "pris kjop" "mva kjop"; }
}
@media (max-width: 480px) {
	.rh-rutenett--varer { gap: var(--s2); padding: var(--s2); }
	.rh-kort--vare .rh-kort__kjop { width: auto; }
}

/* Varesiden: antall-felt, Legg i handlekurv og Vipps-knappen er like høye (44 px), like runde og på linje (Jørgen 28.10). Vipps' logo og oppførsel er uendret. */
.rh-kjopsfelt form.cart { align-items: stretch; }
.rh-kjopsfelt form.cart .quantity { display: flex; margin: 0; }
.rh-kjopsfelt .quantity input.qty, .rh-kjopsfelt .single_add_to_cart_button, .rh-kjopsfelt form.cart .vipps-buy-now { box-sizing: border-box; height: var(--touch); min-height: var(--touch); margin: 0; border-radius: var(--r-md); }
.rh-kjopsfelt form.cart .vipps-buy-now { display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 0 var(--s5); font: 700 16px/1 var(--font-sans); white-space: nowrap; }
@media (max-width: 480px) {
	.rh-kjopsfelt form.cart .vipps-buy-now { flex: 1 1 100%; }
}
/* Pakke 20 (28.10, Jørgen: høyden er lik, men Vipps ligger på egen rad og har annen farge): alle tre på én rad og samme fargefamilie.
   Det gamle temaets rh-stil.css tvinger «Legg i handlekurv» til en mørk brunfarge med høyeste prioritet og gir Vipps-omslaget margin og polstring; her slås det av for kjøpsfeltet på varesiden.
   Kjøpsknappen får butikkens oransje med mørk marine tekst (5,5:1), tett på Vipps' egen oransje (merkevarefarge som ikke endres).
   TEMA-OVERSTYRING: de eneste tvungne reglene i denne filen utenom bevegelsesreglene; utseende_test teller dem separat og de forsvinner når det gamle temaet byttes ut. */
/* TEMA-OVERSTYRING start */
.single-product .rh-kjopsfelt form.cart .single_add_to_cart_button { background: var(--oransje) !important; color: var(--navy) !important; }
/* TEMA-OVERSTYRING slutt */
.single-product .rh-kjopsfelt form.cart .single_add_to_cart_button:hover { filter: brightness(.94); }
.rh-kjopsfelt form.cart .vipps_buy_now_wrapper { display: flex; flex: 0 0 auto; margin: 0; padding: 0; }
.rh-kjopsfelt form.cart .vipps-buy-now { padding: 0; }
.rh-kjopsfelt .quantity input.qty { width: 72px; }
@media (max-width: 480px) {
	.rh-kjopsfelt form.cart .vipps_buy_now_wrapper { flex: 1 1 100%; justify-content: flex-start; }
	.rh-kjopsfelt form.cart .vipps-buy-now { justify-content: flex-start; }
	.rh-kjopsfelt .quantity input.qty { width: 64px; }
	/* det gamle temaet gir antall og kjøpsknapp 52 px på mobil mens Vipps-knappen er 44: alle tre 44 px */
	.single-product .rh-kjopsfelt form.cart .single_add_to_cart_button, .single-product .rh-kjopsfelt form.cart .quantity input { height: var(--touch); min-height: var(--touch); }
}

/* Retur på nett (/a/<kode>, Kunde og bedrift 0.4.0): stilen ligger her, én eier for design */
.rh-retur{max-width:640px;margin:0 auto;padding:0 0 var(--s8)}
.rh-retur h2{font-size:1.15rem;margin:var(--s6) 0 var(--s2)}
.rh-retur__boks{background:var(--surface-soft);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--s4);margin:0 0 var(--s4)}
.rh-retur__liste{list-style:none;margin:0;padding:0}
.rh-retur__liste li{display:flex;justify-content:space-between;gap:var(--s4);padding:var(--s2) 0;border-bottom:1px solid var(--border)}
.rh-retur__liste li:last-child{border-bottom:0}
.rh-retur__rad{display:grid;grid-template-columns:1fr 88px;gap:var(--s3);align-items:center;padding:var(--s2) 0;border-bottom:1px solid var(--border)}
.rh-retur__rad:last-child{border-bottom:0}
.rh-retur__rad small{display:block;color:var(--ink-muted)}
.rh-retur__valg{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s4);margin:0 0 var(--s3);padding:0;border:0}
.rh-retur__valg label{display:inline-flex;align-items:center;gap:var(--s2);min-height:var(--touch)}
.rh-retur__feil{background:var(--feil-tint);color:var(--feil);border-radius:var(--r-md);padding:var(--s3) var(--s4);margin:0 0 var(--s4)}
.rh-retur__info{background:var(--note-tint);border-radius:var(--r-md);padding:var(--s3) var(--s4);margin:0 0 var(--s4)}
.rh-retur__ok{background:var(--suksess-tint);border-radius:var(--r-md);padding:var(--s3) var(--s4);margin:0 0 var(--s4)}
.rh-retur__knapprad{margin:var(--s4) 0 0}
.rh-retur__hjelp{color:var(--ink-muted);font-size:.9rem}
.rh-retur__kropp{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.rh-retur label.rh-retur__navn{display:block;font-weight:700;margin:0 0 var(--s1)}

/* Antallsvelger, én komponent (Jørgen 28.10: «knappene og tallene ser ikke bra ut»). Samme utseende i den klassiske kurven (.rh-kk__stepper), i kurv-blokken og i minikurv-skuffen (.wc-block-components-quantity-selector).
   ÉN kontroll: tre like høye celler (− / tall / +) i én ramme, samme bakgrunn på knappene, tall sentrert og tabellformet. Høyde 40 px (44 px med fingerstyring), cellebredde 40 + 44 + 40. Bare tokens. */
.rh-kk .rh-kk__stepper, body .wc-block-components-quantity-selector:has(input:not([type="hidden"])) {
	display: inline-flex; align-items: stretch; box-sizing: border-box; flex: none; width: auto; min-width: 0; height: var(--rh-steg-h); margin: 0; padding: 0;
	border: 1px solid var(--border-control); border-radius: var(--r-md); background: var(--surface); overflow: hidden; vertical-align: middle; font-family: var(--font-sans);
}
.rh-kk .rh-kk__stepper:focus-within, body .wc-block-components-quantity-selector:has(input:not([type="hidden"])):focus-within { border-color: var(--navy); outline: var(--bar) solid var(--focus); outline-offset: 1px; }
.rh-kk .rh-kk__stepper > p { display: contents; margin: 0; }   /* sikkerhetsnett mot wpautop-<p> rundt knappene */
.rh-kk .rh-kk__stepper .quantity { display: flex; float: none; margin: 0; padding: 0; }
.rh-kk .rh-kk__stepper input[type="number"], body .wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input {
	box-sizing: border-box; flex: 0 0 var(--rh-steg-felt); width: var(--rh-steg-felt); min-width: var(--rh-steg-felt); height: 100%; min-height: 0; margin: 0; padding: 0;
	border: 0; border-radius: 0; box-shadow: none; outline: 0; background: var(--surface); color: var(--ink);
	font: 700 16px/1 var(--font-sans); font-variant-numeric: tabular-nums; text-align: center; -moz-appearance: textfield; appearance: textfield;
}
.rh-kk .rh-kk__stepper input[type="number"]::-webkit-outer-spin-button, .rh-kk .rh-kk__stepper input[type="number"]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.rh-kk .rh-kk__stepper .rh-kk__steg, body .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button {
	display: none; align-items: center; justify-content: center; box-sizing: border-box; flex: 0 0 var(--rh-steg-b); width: var(--rh-steg-b); min-width: var(--rh-steg-b); height: 100%; min-height: 0; margin: 0; padding: 0;
	border: 0; border-radius: 0; box-shadow: none; outline: 0; background: var(--surface-grey); color: var(--navy); opacity: 1;
	font: 600 20px/1 var(--font-sans); text-align: center; cursor: pointer; -webkit-tap-highlight-color: transparent;
}
body .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button { display: inline-flex; }
/* CLS 28.10: html.rh-kk-js settes i <head> før første tegning (klassisk_kurv.php); .rh-kk--js (kurv_klassisk.js) er reserven. Uten JavaScript står bare tallfeltet igjen. Solgt enkeltvis: ingen knapper. */
html.rh-kk-js .rh-kk .rh-kk__stepper:not(.rh-kk__stepper--ett) .rh-kk__steg, .rh-kk.rh-kk--js .rh-kk__stepper:not(.rh-kk__stepper--ett) .rh-kk__steg { display: inline-flex; }
.rh-kk .rh-kk__stepper--ett { border-color: transparent; background: transparent; }
.rh-kk .rh-kk__stepper--ett .rh-kk__ett { display: inline-flex; align-items: center; justify-content: center; min-width: var(--rh-steg-felt); font: 700 16px/1 var(--font-sans); font-variant-numeric: tabular-nums; }
.rh-kk .rh-kk__stepper .rh-kk__steg:first-child, body .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button--minus { border-right: 1px solid var(--border-control); }
.rh-kk .rh-kk__stepper .rh-kk__steg:last-child, body .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button--plus { border-left: 1px solid var(--border-control); }
.rh-kk .rh-kk__stepper .rh-kk__steg:hover, body .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:hover:not(:disabled) { background: var(--surface-grey-2); opacity: 1; }
.rh-kk .rh-kk__stepper .rh-kk__steg:active, body .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:active:not(:disabled) { background: var(--border); }
.rh-kk .rh-kk__stepper .rh-kk__steg:focus-visible, body .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:focus-visible { outline: var(--bar) solid var(--focus); outline-offset: -3px; box-shadow: none; }
body .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:disabled { opacity: .45; cursor: default; }

/* Rull og metervare på varesiden (D-525, Katalog inc/metervare_vis.php) */
.rh-mv { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s3); margin: 0 0 var(--s3); }
.rh-mv[hidden], .rh-kjopsfelt form.cart .quantity[hidden], .variations_button .quantity[hidden] { display: none; }   /* metervare: Woos antallsfelt skjules (lengde × biter brukes) */
.rh-mv__felt { display: flex; flex-direction: column; gap: var(--s1); }
.rh-mv__l { font-size: 13px; font-weight: 700; color: var(--ink-muted); }
.rh-mv__felt .rh-felt { height: 48px; font-size: 16px; }
.rh-mv__skjot, .rh-mv__sum, .rh-mv__info, .rh-mv__feil { grid-column: 1 / -1; margin: 0; }
.rh-mv__skjot[hidden], .rh-mv__feil[hidden] { display: none; }
.rh-mv__info { font-size: 14px; color: var(--ink-muted); }
.rh-mv-enhet { font-size: .7em; font-weight: 600; color: var(--ink-muted); }

/* 0.9.102: hentested-kortet på sporingssiden (kundens sporingskode, endring før pakking) */
.ps-side .ps-sted .ps-frist { background: var(--oransje-tint, #fff2e8); border-radius: var(--r-md, 10px); padding: var(--s2) var(--s3); margin: var(--s2) 0; }
.ps-side .ps-sted-endret { color: var(--suksess, #17703a); font-weight: 800; }
.ps-side .ps-sted-feil { color: var(--feil, #b42318); font-weight: 800; }
.ps-side .ps-endre { margin-top: var(--s3); }
.ps-side .ps-endre > summary { list-style: none; cursor: pointer; }
.ps-side .ps-endre > summary::-webkit-details-marker { display: none; }
.ps-side .ps-endre-form { margin-top: var(--s3); display: flex; flex-direction: column; gap: var(--s3); }
.ps-side .ps-endre-hint { color: var(--ink-muted); font-size: .875rem; margin: 0; }
.ps-side .ps-valg { border: 0; padding: 0; margin: 0; display: flex; flex-direction: column; gap: var(--s2); }
.ps-side .ps-valg legend { font-weight: 800; margin-bottom: var(--s2); }
.ps-side .ps-valg-rad { display: flex; gap: var(--s3); align-items: flex-start; border: 1.5px solid var(--border-strong, #d5d7e0); border-radius: var(--r-md, 10px); padding: var(--s3); cursor: pointer; }
.ps-side .ps-valg-rad:has(input:checked) { border-color: var(--oransje, #fd6703); background: var(--oransje-tint, #fff2e8); }
.ps-side .ps-valg-rad input { width: 20px; height: 20px; margin-top: 2px; accent-color: var(--oransje, #fd6703); }
/* 30.10: global-styles (tema-CSS i databasen) gjør alle .rh-skjema label til rutenett, så «*» havnet på egen linje under navnet i kontaktskjemaet (Jørgen). Etiketten er blokk. */
.rh-skjema label.rh-etikett { display: block; }
/* NRK-banneret: bildet er et stillbilde med egen tekst i. Teksten og knappen legges over som ekte tekst, så de er skarpe. Under 640 px beskjæres bildet til høyre side og teksten ligger under. */
.rh-nrk { display: block; position: relative; container-type: inline-size; border-radius: 12px; overflow: hidden; border: 1px solid var(--border, #e3e5ec); background: #fff; color: #131648; text-decoration: none; }
.rh-nrk__bilde { display: block; position: relative; overflow: hidden; line-height: 0; }
.rh-nrk img { width: 100%; height: auto; display: block; }
.rh-nrk__tekst { position: absolute; left: 1.4%; top: 3%; width: 39%; height: 43.5%; box-sizing: border-box; padding: 2cqw 2.4cqw; background: #fff; display: flex; flex-direction: column; gap: 1cqw; line-height: 1.2; }
.rh-nrk__tekst strong { font-size: 3.1cqw; font-weight: 800; }
.rh-nrk__tekst em { font-style: normal; color: #e65c00; }
.rh-nrk__tekst > span { font-size: 2.1cqw; line-height: 1.3; }
.rh-nrk__tekst .rh-nrk__lenke { display: none; }
.rh-nrk__knapp { position: absolute; right: 1.2%; bottom: 2.5%; width: 14.6%; height: 9.5%; box-sizing: border-box; display: flex; align-items: center; justify-content: center; background: #fff; border: 2px solid #131648; font-size: 1.45cqw; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; line-height: 1; color: #131648; }
@container (max-width: 639px) {
	.rh-nrk__bilde img { width: 167%; max-width: none; margin-left: -66.5%; }
	.rh-nrk__knapp { right: 2%; bottom: 3%; width: 40%; height: 16%; font-size: 3.4cqw; }
	.rh-nrk__tekst { position: static; width: auto; height: auto; padding: 4cqw 4.5cqw 5cqw; gap: 2cqw; }
	.rh-nrk__tekst strong { font-size: 5.6cqw; }
	.rh-nrk__tekst > span { font-size: 4cqw; }
	.rh-nrk__tekst .rh-nrk__lenke { display: block; font-weight: 800; text-decoration: underline; }
}
.rh-nrk:focus-visible { outline: 3px solid currentColor; outline-offset: 3px; }

/* ===== Forsiden E3 (Jørgen 2.11, godkjent i forside-artifacten): utvalget først, tilbud for seg nederst =====
   Bare tokens. Alle bilder ligger i bokser med fast format og vises HELE (contain, aldri beskåret); bildene har width/height, så ingenting hopper (CLS 0). */
.rh-chip { display: inline-flex; align-items: center; min-height: 32px; padding: 0 var(--s3); border-radius: var(--r-pill); font: 600 13px/1 var(--font-sans); text-decoration: none; background: var(--surface); color: var(--navy); box-shadow: inset 0 0 0 1px var(--border-control); }
.rh-v a.rh-chip { color: var(--navy); }
.rh-v a.rh-chip:hover { background: var(--navy-tint); }
/* toppbanner: navy tekstflate med h1 og knapper, bruksbilde stort og to varebilder */
.rh-seksjon--tb { padding-block: var(--s4) var(--s2); }
.rh-tb { display: grid; gap: var(--s3); }
.rh-tb__tekst { display: flex; flex-direction: column; align-items: flex-start; gap: var(--s3); padding: var(--s6); border-radius: var(--r-xl); color: var(--ink-inverse); background: linear-gradient(135deg, var(--navy) 0%, var(--navy-hover) 100%); box-shadow: var(--shadow-control); }
.rh-tb__over { font: 800 11px/1 var(--font-sans); letter-spacing: .06em; text-transform: uppercase; color: var(--ink-inverse-muted); }
.rh-v .rh-hoved .rh-tb h1 { color: var(--ink-inverse); font-size: clamp(26px, 3.4vw, 34px); line-height: 1.12; margin: 0; }
.rh-tb__tekst p { margin: 0; color: var(--ink-inverse-soft); max-width: 46ch; }
.rh-tb__tekst .rh-knapp--kontur { background: transparent; color: var(--ink-inverse); box-shadow: inset 0 0 0 2px var(--ink-inverse); }
.rh-tb__tekst .rh-knapp--kontur:hover { background: var(--navy-hover); }
.rh-tb__bilder { display: grid; grid-template-columns: 2fr 1fr; grid-template-rows: 1fr 1fr; gap: var(--s2); aspect-ratio: 3 / 2; }
.rh-tb__bilde { position: relative; display: block; background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-lg); overflow: hidden; }
.rh-tb__bilde:first-child { grid-row: 1 / 3; }
.rh-tb__bilde img { position: absolute; inset: 2%; width: 96%; height: 96%; object-fit: contain; }
@media (min-width: 782px) { .rh-tb { grid-template-columns: 1.5fr 1fr; align-items: stretch; } .rh-tb__tekst { padding: var(--s8); justify-content: center; } .rh-tb__bilder { aspect-ratio: auto; } }
/* tillitsrad med fem punkter: grønn hake foran hvert, Google med fem gule stjerner (én enslig gul stjerne ser ut som en advarsel) */
.rh-seksjon--tillit { padding-block: var(--s2); }
.rh-tillitsrad--fem { background: var(--surface-soft); border-top: 0; border-radius: var(--r-lg); padding: var(--s4) var(--s5); grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rh-tillitsrad--fem li { position: relative; padding-left: var(--s5); }
.rh-tillitsrad--fem li::before { content: "✓"; position: absolute; left: 0; top: 0; color: var(--suksess); font-weight: 800; }
.rh-tillitsrad__st { color: var(--stjerne); letter-spacing: 1px; }
@media (min-width: 1000px) { .rh-tillitsrad--fem { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
/* finn riktig vare og guider: to like kort */
.rh-hjelp { display: grid; gap: var(--s3); }
.rh-hjelp__kort { display: flex; align-items: flex-start; gap: var(--s4); padding: var(--s4) var(--s5); background: var(--surface); border: 1px solid var(--border-strong); border-radius: var(--r-lg); box-shadow: var(--shadow-control); }
.rh-hjelp__kort--myk { background: var(--navy-tint); border-color: var(--navy-tint); box-shadow: none; }
.rh-hjelp__ikon { flex: none; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: var(--navy); color: var(--ink-inverse); font: 800 20px/1 var(--font-sans); }
.rh-hjelp__kort strong { display: block; font: 800 17px/1.2 var(--font-display); color: var(--navy); }
.rh-hjelp__kort span:not(.rh-hjelp__ikon) { display: block; color: var(--ink-muted); font-size: 14px; margin-top: 2px; }
.rh-hjelp__rad { display: flex; flex-wrap: wrap; gap: var(--s2); margin-top: var(--s2); }
.rh-hjelp__rad--lenker { gap: var(--s1) var(--s4); }
.rh-hjelp__rad--lenker a { font-weight: 700; font-size: 14px; }
@media (min-width: 782px) { .rh-hjelp { grid-template-columns: 1fr 1fr; } }
/* hele sortimentet: rader med bilde, navn, antall og en linje om innholdet (mobil: tre små ruter) */
.rh-katrader { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s2); }
.rh-katrad { display: flex; flex-direction: column; gap: var(--s1); text-decoration: none; min-width: 0; }
.rh-v a.rh-katrad { color: var(--navy); }
.rh-katrad__bilde { position: relative; display: block; aspect-ratio: 1 / 1; background: linear-gradient(180deg, var(--surface-soft), var(--surface-grey-2)); border-radius: var(--r-lg); overflow: hidden; }
.rh-katrad__bilde img { position: absolute; inset: 4%; width: 92%; height: 92%; object-fit: contain; mix-blend-mode: multiply; }
.rh-katrad__tekst { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.rh-katrad__tekst strong { font: 700 13px/1.2 var(--font-sans); }
.rh-katrad__tekst em { font-style: normal; font-weight: 700; font-size: 12px; color: var(--ink-muted); }
.rh-katrad__tekst small { display: none; color: var(--ink-muted); font-size: 12px; line-height: 1.35; }
@media (min-width: 640px) {
	.rh-katrader { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s3); }
	.rh-katrad { flex-direction: row; align-items: center; gap: var(--s3); padding: var(--s2) var(--s3) var(--s2) var(--s2); background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-lg); box-shadow: var(--shadow-control); transition: box-shadow .2s ease; }
	.rh-katrad:hover { box-shadow: var(--shadow-hover); }
	.rh-katrad__bilde { flex: none; width: 84px; border-radius: var(--r-md); }
	.rh-katrad__tekst strong { font-size: 15px; }
	.rh-katrad__tekst em { color: var(--navy); font-size: 13px; }
	.rh-katrad__tekst small { display: block; }
}
@media (min-width: 1100px) { .rh-katrader { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
/* festemiddelgruppene som piller (skjules på mobil: avdelingene over dekker det) */
.rh-katpiller { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s2); }
.rh-katpille { display: flex; align-items: center; gap: var(--s2); padding: var(--s1) var(--s4) var(--s1) var(--s1); background: var(--surface); border: 1px solid var(--border); border-radius: var(--r-pill); text-decoration: none; min-width: 0; }
.rh-v a.rh-katpille { color: var(--navy); }
.rh-katpille__bilde { position: relative; flex: none; width: 44px; height: 44px; border-radius: 50%; background: var(--surface-grey); overflow: hidden; }
.rh-katpille__bilde img { position: absolute; inset: 7%; width: 86%; height: 86%; object-fit: contain; mix-blend-mode: multiply; }
.rh-katpille strong { font: 700 13px/1.15 var(--font-sans); }
.rh-katpille small { color: var(--ink-muted); font-size: 12px; margin-left: auto; }
@media (max-width: 781px) { .rh-seksjon--piller { display: none; } }
@media (min-width: 782px) { .rh-katpiller { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .rh-katpiller { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
/* merkebanner (JBM) */
.rh-merkebanner { display: grid; gap: var(--s4); padding: var(--s5); border-radius: var(--r-xl); background: linear-gradient(135deg, var(--navy-tint) 0%, var(--surface-soft) 100%); border: 1px solid var(--border); }
.rh-merkebanner__tekst { display: flex; flex-direction: column; align-items: flex-start; gap: var(--s2); justify-content: center; }
.rh-merkebanner__over { font: 800 11px/1 var(--font-sans); letter-spacing: .06em; text-transform: uppercase; color: var(--ink-muted); }
.rh-v .rh-hoved .rh-merkebanner h2 { font-size: clamp(20px, 2.4vw, 26px); margin: 0; }
.rh-merkebanner__tekst p { margin: 0; color: var(--ink-muted); }
.rh-merkebanner__chips { display: flex; flex-wrap: wrap; gap: var(--s2); }
.rh-merkebanner__varer { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--s2); }
.rh-merkebanner__varer li:nth-child(n+5) { display: none; }
.rh-merkebanner__varer a { display: flex; flex-direction: column; gap: var(--s1); text-decoration: none; background: var(--surface); border-radius: var(--r-md); padding: var(--s1); box-shadow: var(--shadow-control); }
.rh-v .rh-merkebanner__varer a { color: var(--navy); }
.rh-merkebanner__bilde { position: relative; display: block; aspect-ratio: 1 / 1; }
.rh-merkebanner__bilde img { position: absolute; inset: 4%; width: 92%; height: 92%; object-fit: contain; }
.rh-merkebanner__varer strong { font: 700 11px/1.25 var(--font-sans); text-align: center; padding-bottom: var(--s1); }
@media (min-width: 782px) { .rh-merkebanner { grid-template-columns: .7fr 1.8fr; } .rh-merkebanner__varer { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--s3); } .rh-merkebanner__varer li:nth-child(n+5) { display: block; } .rh-merkebanner__varer strong { font-size: 12px; } }
/* bedriftsstripe */
.rh-seksjon--stripe { padding-block: var(--s2); }
.rh-stripe { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s3); padding: var(--s4) var(--s5); border: 2px solid var(--navy); border-radius: var(--r-lg); background: var(--surface); box-shadow: var(--shadow-control); }
.rh-stripe strong { display: block; font: 800 18px/1.2 var(--font-display); color: var(--navy); }
.rh-stripe span { color: var(--ink-muted); font-size: 14px; }
/* fjellkiler-kort og NRK-kort (ekstern side, tydelig merket) */
.rh-to { display: grid; gap: var(--s3); }
.rh-fjellkort { display: flex; align-items: center; gap: var(--s4); padding: var(--s3) var(--s5) var(--s3) var(--s3); background: var(--surface-grey); border-radius: var(--r-lg); text-decoration: none; }
.rh-fjellkort__bilde { position: relative; flex: none; width: 120px; aspect-ratio: 1 / 1; background: var(--surface); border-radius: var(--r-md); }
.rh-fjellkort__bilde img { position: absolute; inset: 4%; width: 92%; height: 92%; object-fit: contain; }
.rh-fjellkort__tekst { display: flex; flex-direction: column; align-items: flex-start; gap: var(--s1); }
.rh-fjellkort small { font: 800 11px/1 var(--font-sans); letter-spacing: .05em; text-transform: uppercase; color: var(--ink-muted); }
.rh-fjellkort strong { font: 800 20px/1.2 var(--font-display); color: var(--navy); }
.rh-fjellkort__tekst > span:not(.rh-knapp) { color: var(--ink-muted); font-size: 14px; }
.rh-fjellkort .rh-knapp { margin-top: var(--s2); min-height: 36px; }
.rh-eksternkort { display: flex; flex-direction: column; border: 1px solid var(--border-strong); border-radius: var(--r-lg); overflow: hidden; background: var(--surface); text-decoration: none; box-shadow: var(--shadow-control); }
.rh-eksternkort__merke { display: block; padding: var(--s2) var(--s4); background: var(--surface-grey); color: var(--ink-muted); font: 800 11px/1.2 var(--font-sans); letter-spacing: .05em; }
.rh-eksternkort__bilde { display: block; line-height: 0; background: var(--navy-deep); }
.rh-eksternkort__bilde img { width: 100%; height: auto; display: block; }
.rh-eksternkort__bunn { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); padding: var(--s3) var(--s4); }
.rh-eksternkort__bunn strong { display: block; font: 800 16px/1.2 var(--font-display); color: var(--navy); }
.rh-eksternkort__bunn span > span { display: block; color: var(--ink-muted); font-size: 12px; margin-top: 2px; }
.rh-eksternkort__bunn .rh-knapp { flex: none; min-height: 36px; }
@media (min-width: 782px) { .rh-to { grid-template-columns: 1fr 1fr; } .rh-fjellkort__bilde { width: 190px; } }
/* tilbud og outlet: egen rute først, så tilbudskort (mobil: bla sidelengs) */
.rh-tilbs { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(170px, 60vw); gap: var(--s3); overflow-x: auto; scroll-snap-type: x proximity; padding-bottom: var(--s2); }
.rh-tilbs > * { scroll-snap-align: start; }
.rh-tilbs__promo { display: flex; flex-direction: column; justify-content: space-between; gap: var(--s3); padding: var(--s5); border-radius: var(--r-lg); background: var(--navy); color: var(--ink-inverse); min-height: 160px; }
.rh-tilbs__promo strong { display: block; font: 800 22px/1.15 var(--font-display); }
.rh-tilbs__promo small { display: block; margin-top: var(--s2); color: var(--ink-inverse-muted); font-size: 13px; }
.rh-v .rh-tilbs__promo a, .rh-v .rh-tilbs__promo a:hover { color: var(--ink-inverse); font-weight: 800; }
@media (min-width: 1100px) { .rh-tilbs { grid-auto-flow: row; grid-template-columns: repeat(5, minmax(0, 1fr)); grid-auto-columns: auto; overflow: visible; } }
.rh-v a.rh-tilbs__alle { font-weight: 800; font-size: 14px; text-decoration: underline; }
/* forsiden E3: stjernene i tillitsraden er gule (slår den grå spantekstfargen), og seksjonene står tettere (mindre luft, Jørgen 2.11) */
.rh-tillitsrad .rh-tillitsrad__st { color: var(--stjerne); }
.rh-hoved:has(.rh-tb) > .rh-seksjon { padding-block: var(--s3); }
.rh-hoved:has(.rh-tb) > .rh-seksjon--myk { padding-block: var(--s5); margin-block: var(--s2); }
.rh-hoved:has(.rh-tb) .rh-seksjonshode { margin-bottom: var(--s3); }
.rh-v .rh-hoved:has(.rh-tb) .rh-seksjonshode h2 { font-size: clamp(20px, 2.2vw, 24px); }
@media (max-width: 781px) { .rh-tb__bilder { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: auto; aspect-ratio: 3 / 1; } .rh-tb__bilde:first-child { grid-row: auto; } }   /* mobil: tre små bilder i én rad, ikke en hel skjerm med bilder */
/* topp og meny på 780–1200 bredde (Jørgen 2.11): kampanjelinja og menyen ligger på én linje (de brøt på 1024). Smalere avstand i menyen, ingen dobbel sidemarg i kampanjelinja, og de minst viktige delene går først når det blir trangt. */
@media (min-width: 782px) and (max-width: 1199px) {
	.rh-info__liste { padding-inline: 0; gap: var(--s1) var(--s5); }
	.rh-info__rad { flex-wrap: nowrap; }
	.rh-meny__liste > li > a, .rh-mega > summary { padding-inline: calc(var(--s2) + 2px); }
}
@media (min-width: 782px) and (max-width: 979px) { .rh-info__liste > li:nth-child(4) { display: none; } }
@media (min-width: 782px) and (max-width: 899px) { .rh-info__lenker { display: none; } }
@media (min-width: 782px) and (max-width: 1014px) { .rh-meny__liste > li > a, .rh-mega > summary { font-size: 14px; padding-inline: var(--s2); } }   /* trangt: litt mindre skrift, så menyen fortsatt får plass på én linje helt ned mot 930 */
