/* NP Customer Webshop Theme — base. Matcher Nikita-designet (Lato/Inter/Inter Display, firkantet, sort).
   Farger/font via CSS-variabler fra functions.php (npcw_options). */

/* Inter Display — self-hostet (Nikita deklarerer den uten å laste den; vi laster). */
@font-face { font-family: 'Inter Display'; font-style: normal; font-weight: 500; font-display: swap; src: url('../fonts/InterDisplay-Medium.woff2') format('woff2'); }
@font-face { font-family: 'Inter Display'; font-style: normal; font-weight: 600; font-display: swap; src: url('../fonts/InterDisplay-SemiBold.woff2') format('woff2'); }
@font-face { font-family: 'Inter Display'; font-style: normal; font-weight: 700; font-display: swap; src: url('../fonts/InterDisplay-Bold.woff2') format('woff2'); }
@font-face { font-family: 'Inter Display'; font-style: normal; font-weight: 800; font-display: swap; src: url('../fonts/InterDisplay-ExtraBold.woff2') format('woff2'); }

/* ÉN kilde for farge + font: functions.php skriver ut ALLE --np-*-farge/font-variabler
   fra npcw_options (pluginen). Her bor KUN layout-tokens som ikke er branding, så å
   endre en kundes farger gjøres ett sted (NP Customer Webshop → innstillinger). */
:root {
	--np-maxw: 1320px;
	--np-header-h: 110px;
}

* { box-sizing: border-box; }
/* Scroll-snap MÅ ligge på scroll-containeren (html), ikke body. */
html { scroll-padding-top: calc(var(--np-header-h) + 54px); scroll-snap-type: y proximity; }
body {
	margin: 0; background: var(--np-page-bg); color: var(--np-text-soft);
	font-family: var(--np-font); font-size: 16px; line-height: 1.6; -webkit-font-smoothing: antialiased;
	letter-spacing: .005em; /* Flatsome-arven på Nikita (0.08px @16px) — arves av all tekst */
}
a { color: inherit; }
img { max-width: 100%; height: auto; }
h1, h2, h3 { font-family: var(--np-font-head); }

.np-container { width: 100%; max-width: var(--np-maxw); margin: 0 auto; padding: 0 48px; }
@media (max-width: 720px) { .np-container { padding: 0 24px; } }
/* Nikita FAQ-container: 880px med 48px sidepadding */
.np-container--narrow { max-width: 880px; padding: 0 48px; }
@media (max-width: 720px) { .np-container--narrow { padding: 0 24px; } }

/* ===== Header (sticky, sort, auto-kontrast) ===== */
.np-site-header {
	background: var(--np-header-bg); color: var(--np-header-text);
	position: sticky; top: 0; z-index: 50;
}
/* Innholdet bredde-begrenses og sentreres (matcher Nikitas Flatsome-container,
   site-bredde 1320px) — ellers spres logo/kurv helt ut til kantene på ultrawide. */
.np-site-header__inner { max-width: var(--np-maxw); margin: 0 auto; min-height: var(--np-header-h); padding: 10px 48px; display: flex; align-items: center; gap: 36px; }
.np-site-header__brand { flex: 0 0 auto; display: flex; align-items: center; }
/* display:block + font-props matcher Nikitas logo-element (Flatsome-h1-arv på img-en) */
.np-site-header__brand img, .np-site-header__brand .custom-logo { display: block; height: 64px; width: auto; max-width: 260px; filter: var(--np-logo-filter, none); font-family: var(--np-font); font-size: 32px; line-height: 32px; font-weight: 700; text-transform: uppercase; }
.np-site-header__title { font-family: var(--np-font-head); font-weight: 800; font-size: 1.4rem; letter-spacing: .02em; text-decoration: none; color: var(--np-header-text); }
.np-site-header__nav { flex: 1 1 auto; }
.np-menu { list-style: none; display: flex; gap: 30px; margin: 0; padding: 0; }
/* Meny + kurvlenke = Flatsome-chrome på Nikita: Lato 12.8px/700/UPPERCASE/ls .02em, pad 10px 0 */
/* Nikita-meny: Lato 12.8/700/UPPERCASE (harness-målt W 80 på «PRODUKTER» — en tidligere
   engangs-probe traff en skjult tom lenke og konkluderte feilaktig med normal-case) */
.np-menu a { display: inline-flex; align-items: center; font-family: var(--np-font); text-decoration: none; font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .02em; padding: 10px 0; opacity: 1; }
.np-menu a:hover { color: rgba(255,255,255,.7); opacity: 1; }
.np-header-login { font-family: var(--np-font); text-decoration: none; font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .02em; padding: 10px 0; margin-right: 24px; white-space: nowrap; }
.np-header-login:hover { color: rgba(255,255,255,.7); }
/* Wrapper er BLOCK (ikke flex) — flex-forelder blockifiserer barnet og gjør inline-flex → flex */
.np-site-header__cart { flex: 0 0 auto; position: relative; display: block; }
.np-cart-link { display: inline-flex; align-items: center; text-decoration: none; font-family: var(--np-font); font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .02em; padding: 10px 0; cursor: pointer; }
.np-cart-link__sep { opacity: .9; margin: 0 3px; }
.np-cart-link__total { opacity: 1; }
.np-cart-link__count { display: inline-flex; align-items: center; justify-content: center; min-width: 34px; height: 34px; padding: 0 8px; margin-left: 6px; background: var(--np-card-bg); color: var(--np-text); font-size: .82rem; font-weight: 600; }

/* ===== Mini-kurv dropdown (hover + auto-vis ved add) — portet fra Nikita ===== */
/* Wrapper: transparent bro (padding-top) så musa kan flytte fra lenke til panel
   uten at dropdownen lukkes. Selve panelet er .widget_shopping_cart_content. */
/* Geometri målt mot fasit (probe_minicart.py 2026-06-12): Flatsome-dropdownen er
   404px bred m/ 20px padding + 2px #ddd-ramme + skygge 1px 1px 15px, og widgeten
   (16px padding) ligger inni → total innholds-inset 36px, innhold 328px. Panelet
   starter RETT ved triggeren (ingen gap). Vi har ett panel-lag: 404/36px. */
.np-cart-dropdown {
	position: absolute; top: 100%; right: -15px; width: 404px; max-width: 92vw; padding-top: 0;
	z-index: 60; opacity: 0; visibility: hidden; transform: translateY(8px); pointer-events: none;
	transition: opacity .22s var(--np-ease, ease), transform .22s var(--np-ease, ease), visibility .22s;
}
.np-site-header__cart:hover .np-cart-dropdown,
.np-cart-dropdown.is-open { opacity: 1; visibility: visible; transform: translateY(0); pointer-events: auto; }
/* Panel: flex-kolonne; selve listen scroller (50vh) mens subtotal + knapper står fast under. */
.np-cart-dropdown .widget_shopping_cart_content {
	background: var(--np-card-bg); color: var(--np-text); border: 2px solid var(--np-border);
	box-shadow: 1px 1px 15px rgba(0,0,0,.15); padding: 36px; max-height: 70vh; overflow: hidden;
	display: flex; flex-direction: column; font-family: var(--np-font); text-align: left;
}

/* Liste — eksplisitt hvit bg (fasit måler hvit på liste+navn+sum).
   !important mot WC-kjernens .woocommerce ul.product_list_widget li { padding: 4px 0 }
   som ellers vinner på spesifisitet og kollapser rad-luften (målt 2026-06-12). */
.np-mini-cart { list-style: none !important; margin: 0 !important; padding: 0 !important; background: var(--np-card-bg); max-height: 50vh; overflow-y: auto; flex: 1 1 auto; min-height: 0; }
.np-mini-cart__name, .np-mini-cart__total { background: var(--np-card-bg); }
.np-mini-cart__group { display: flex !important; align-items: flex-start; gap: 12px; margin: 0 !important; padding: 14px 0 !important; border-bottom: 1px solid var(--np-border); }
.np-mini-cart__group::before, .np-mini-cart__group::after { content: none !important; display: none !important; }
.np-mini-cart__group:first-child { padding-top: 0 !important; }
.np-mini-cart__group:last-child { border-bottom: 0; padding-bottom: 14px !important; }
.np-mini-cart__thumb { flex: 0 0 56px; display: block; width: 56px; height: 56px; overflow: hidden; background: var(--np-stone, #f3f2ef); align-self: flex-start; }
/* Nøytraliser WooCommerce sine widget-defaults inne i dropdownen
   (float:right + 32px på img, ::before/::after-bullets, padding). */
.np-cart-dropdown .product_list_widget li::before,
.np-cart-dropdown .product_list_widget li::after { content: none; display: none; }
.np-mini-cart__thumb img,
.np-cart-dropdown .product_list_widget li img.np-mini-cart__img {
	float: none !important; width: 56px !important; height: 56px !important; margin: 0 !important;
	object-fit: cover; display: block; max-width: 56px;
}
.np-mini-cart__body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.np-mini-cart__head { display: grid; grid-template-columns: 1fr auto 22px; align-items: center; gap: 8px; }
/* !important på vekt: WC sin product_list_widget gjør produktlenker bold (700) */
.np-mini-cart__name { font-family: var(--np-font-head); font-size: .875rem; font-weight: 600 !important; color: var(--np-text); text-decoration: none; line-height: 1.25; letter-spacing: -.005em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.np-mini-cart__name:hover { opacity: .7; }
.np-mini-cart__total { font-family: var(--np-font-head); font-size: .8125rem; font-weight: 600; color: var(--np-text); white-space: nowrap; line-height: 1.33; }
/* Fjern-X: 22px sirkel m/ pseudo-kryss (teksten &times; nulles med font-size 0).
   !important på display/vekt: WC sin .product_list_widget li a setter block/700.
   color #000 + bg #fff = fasitens målte verdier (Nikitas brede #header-regel
   overstyrer deres egen transparent; font-size 0 gjør teksten usynlig uansett). */
.np-mini-cart__remove {
	display: inline-flex !important; align-items: center; justify-content: center; width: 22px; height: 22px;
	flex-shrink: 0; font-size: 0; line-height: 1; letter-spacing: normal; font-weight: 400 !important;
	color: var(--np-text); background: var(--np-card-bg);
	border: 1px solid var(--np-faint); border-radius: 50%; text-decoration: none; position: relative;
	transition: border-color .2s ease, background .2s ease;
}
.np-mini-cart__remove::before,
.np-mini-cart__remove::after {
	content: ""; position: absolute; width: 9px; height: 1px; background: var(--np-text-soft);
	top: 50%; left: 50%; transform: translate(-50%, -50%) rotate(45deg); transition: background .2s ease;
}
.np-mini-cart__remove::after { transform: translate(-50%, -50%) rotate(-45deg); }
.np-mini-cart__remove:hover { border-color: var(--np-accent); background: var(--np-accent); opacity: 1; }
.np-mini-cart__remove:hover::before,
.np-mini-cart__remove:hover::after { background: var(--np-card-bg); }

/* Variant-liste (XS ×1, S ×2, …) */
.np-mini-cart__variants { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 10px; }
.np-mini-cart__variant { display: inline-flex; align-items: baseline; gap: 4px; font-size: .75rem; line-height: 1.3; color: var(--np-muted-2, #5a5a57); }
.np-mini-cart__variant-size { font-family: var(--np-font-head); font-weight: 700; font-size: .75rem; color: var(--np-text); }
.np-mini-cart__variant-qty { color: var(--np-muted-2, #5a5a57); font-size: .75rem; }
.np-mini-cart__simple-meta { display: flex; align-items: center; font-size: .75rem; color: var(--np-muted-2, #5a5a57); }

/* Subtotal — «Delsum:» i normal sak, samme rad-rytme som varelinjene.
   gap 15px / border-bottom 2px #ececec / hvit bg / text-align center = fasitens
   målte Flatsome-arv på .woocommerce-mini-cart__total (2026-06-11). */
.np-mini-cart__subtotal { display: flex; justify-content: space-between; align-items: baseline; gap: 15px; margin: 0; padding: 14px 0; font-size: .875rem; font-weight: 600; text-align: center; background: var(--np-card-bg); border-top: 1px solid var(--np-border); border-bottom: 2px solid var(--np-stone); flex-shrink: 0; }
.np-mini-cart__subtotal strong { font-weight: 600; color: var(--np-text); }
.np-mini-cart__subtotal .woocommerce-Price-amount { color: var(--np-text); font-weight: 600; }

/* Knapper: Vis handlekurv + Kasse, begge sort brand-stil. Inter 500 / lh 40px = målt fasit. */
.np-mini-cart__buttons { display: flex; gap: 8px; margin: 0; padding: 0; flex-shrink: 0; background: var(--np-card-bg); }
.np-mini-cart__btn {
	flex: 1 1 0; display: flex; align-items: center; justify-content: center; height: 40px;
	padding: 0 12px; border-radius: 0; font-family: var(--np-font-ui); font-size: .75rem; font-weight: 500;
	letter-spacing: .1em; text-transform: uppercase; text-decoration: none; line-height: 40px; text-align: center;
	background: var(--np-accent); color: var(--np-accent-contrast); border: 1px solid var(--np-accent); transition: background .2s ease, color .2s ease;
}
.np-mini-cart__btn:hover { background: var(--np-card-bg); color: var(--np-text); opacity: 1; }

/* Tom kurv */
.np-mini-cart__empty { margin: 0; padding: 20px 0; text-align: center; color: var(--np-muted); font-size: .9rem; }

@media (max-width: 900px) {
	/* På mobil: ikke hover-dropdown — kurv-lenken går rett til /handlekurv/. */
	.np-cart-dropdown { display: none; }
}

/* ===== Kategori-tabs (sticky, FIRKANTET, lys ramme) — verdier fra nikita main.css ===== */
.np-shop-cats { background: var(--np-page-bg); border-bottom: 1px solid var(--np-border); position: sticky; top: var(--np-header-h); z-index: 40; }
.np-shop-cats__inner { max-width: var(--np-maxw); margin: 0 auto; padding: 12px 48px; display: flex; gap: 12px; flex-wrap: wrap; justify-content: center; }
.np-shop-cat {
	display: inline-flex; align-items: center; gap: 8px;
	font-family: var(--np-font-ui); text-decoration: none; font-size: .75rem; font-weight: 500; text-transform: uppercase;
	letter-spacing: .06em; padding: 10px 22px; border: 1px solid var(--np-border); color: var(--np-text); transition: .25s; white-space: nowrap; background: transparent;
}
.np-shop-cat:hover { background: var(--np-accent); color: var(--np-accent-contrast); border-color: var(--np-accent); transform: translateY(-1px); }
.np-shop-cat.is-active { background: var(--np-accent); color: var(--np-accent-contrast); border-color: var(--np-accent); }
.np-shop-cat span { color: var(--np-muted); font-weight: 400; font-size: .75rem; letter-spacing: .04em; opacity: 1; }
.np-shop-cat:hover span, .np-shop-cat.is-active span { color: rgba(255,255,255,.7); }

/* ===== Shop hero (fullskjerm brand-moment) ===== */
.np-shop-hero {
	min-height: clamp(420px, 56vh, 540px); display: flex; align-items: center;
	background: var(--np-accent) center 30% / cover no-repeat; color: var(--np-accent-contrast); position: relative;
}
.np-shop-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.35) 0%, rgba(0,0,0,.65) 70%, rgba(0,0,0,.85) 100%); pointer-events: none; z-index: 1; }
.np-shop-hero__inner { position: relative; z-index: 2; max-width: var(--np-maxw); width: 100%; margin: 0 auto; padding: 96px 48px; display: grid; gap: 16px; }
/* Nikita: inline-block, opacity 1, muted som default — lys variant overstyrer */
.np-eyebrow { display: inline-block; font-family: var(--np-font-ui); text-transform: uppercase; letter-spacing: .22em; font-size: .875rem; font-weight: 500; color: var(--np-muted); opacity: 1; }
.np-shop-hero .np-eyebrow { color: rgba(255,255,255,.75); }
.np-home-hero .np-eyebrow { color: rgba(255,255,255,.75); }
.np-home-cta .np-eyebrow { color: rgba(255,255,255,.85); }
.np-shop-hero__title { font-family: var(--np-font-head); font-size: clamp(3rem, 7vw, 6.5rem); font-weight: 800; line-height: 1; letter-spacing: -.04em; margin: 0; }
.np-shop-hero__lede { font-size: clamp(1.0625rem, 1.4vw, 1.375rem); font-weight: 300; color: rgba(255,255,255,.85); opacity: 1; margin: 0; max-width: 56ch; }

/* Skjul WC sin resultattelling/sortering i liste-modus */
.np-layout-liste .woocommerce-result-count, .np-layout-liste .woocommerce-ordering { display: none; }

/* ===== Produktliste: full-bredde vekslende storbilde (scroll-snap) ===== */
.woocommerce ul.products, .np-layout-liste ul.products { list-style: none; margin: 0; padding: 0; max-width: none; display: block; }
/* Bulletproof: slå WooCommerce sin li.product-margin (gav grå stripe). Spesifisitet 0,4,2 > WC 0,3,2 */
.woocommerce ul.products li.product.np-prod-row { width: 100%; margin: 0; padding: 0; float: none; clear: both; }
.np-layout-liste .woocommerce ul.products::before, .np-layout-liste .woocommerce ul.products::after { content: none; }
/* Flex som Nikita (ikke grid): bilde = flex-basis 60 %, partall = row-reverse + #fafaf8-bakgrunn */
.np-prod-row {
	display: flex; align-items: stretch; min-height: 80vh;
	background: var(--np-card-bg); border: 0; border-bottom: 1px solid var(--np-border); margin: 0; padding: 0; scroll-snap-align: start;
}
.np-prod-row:nth-of-type(even) { flex-direction: row-reverse; background: var(--np-page-bg); }
.np-prod-row__media { position: relative; flex: 0 0 60%; overflow: hidden; min-height: 360px; align-self: stretch; }
.np-prod-row__media img { width: 100%; height: 100%; object-fit: cover; display: block; transform: scale(1.04); }
.np-prod-row__badge {
	position: absolute; top: 32px; left: 32px; z-index: 2; background: rgba(0,0,0,.85); color: var(--np-accent-contrast);
	font-family: var(--np-font-ui); font-size: .7rem; font-weight: 500; letter-spacing: .22em; padding: 10px 18px; text-transform: uppercase;
}
/* Vertikal rytme matchet eksakt mot Nikita (1440/1920): num→tittel 24, tittel→desc 20,
   desc→pris 12, pris→størrelser 48, label→grid 12, grid→knapp 20. */
.np-prod-row__body { flex: 1; min-width: 0; display: flex; flex-direction: column; justify-content: center; gap: 24px; padding: 80px 72px; }
.np-prod-row__num { display: inline-block; font-family: var(--np-font-ui); font-size: .875rem; font-weight: 500; color: var(--np-muted); letter-spacing: .15em; margin-bottom: 24px; }
.np-prod-row__title { font-family: var(--np-font-head); font-size: clamp(2rem, 4vw, 60px); font-weight: 800; line-height: .98; letter-spacing: -.035em; color: var(--np-text); margin: 0 0 20px; }
/* Ingen letter-spacing-reset: arver body .005em som Nikita */
.np-prod-row__desc { font-family: var(--np-font-ui); font-size: 17px; color: var(--np-text-soft); line-height: 1.6; margin: 0 0 12px; }
.np-prod-row__price { font-family: var(--np-font-head); font-weight: 700; font-size: 28px; color: var(--np-text); letter-spacing: -.01em; margin: 8px 0 0; }

/* ===== Størrelse-rutenett — portet 1:1 fra nikita-b2b/css (shop-sidebar-fix.css) ===== */
/* NØKKEL: hele variant-skjemaet capper på 580px. Da strekkes størrelse-gridet ALDRI
   fullbredde uansett hvor bredt produkt-kortet blir → kontrollene "flytter" seg ikke. */
.np-prod-row__cart--variable { display: flex; flex-direction: column; align-items: flex-start; width: 100%; max-width: 580px; gap: 20px; }
.np-sizes { width: 100%; }
.np-sizes__label { font-family: var(--np-font-ui); font-size: 12px; font-weight: 500; text-transform: uppercase; letter-spacing: .18em; color: var(--np-muted); margin-bottom: 12px; }
.np-sizes__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(96px, 1fr)); gap: 8px; width: 100%; }

/* Boks: navn-celle øverst + stepper under, lys ramme rundt hele. is-active (antall>0) = sort. */
.np-size { display: flex; flex-direction: column; align-items: stretch; border: 1px solid var(--np-border); background: var(--np-card-bg); position: relative; overflow: hidden; box-sizing: border-box; transition: border-color .2s ease, box-shadow .2s ease; }
.np-size:hover { border-color: var(--np-muted); }
.np-size.is-active { border-color: var(--np-accent); box-shadow: inset 0 0 0 1px var(--np-accent); }
.np-size__name { display: block; text-align: center; font-family: var(--np-font-head); font-size: 13px; font-weight: 700; letter-spacing: .05em; color: var(--np-text); background: var(--np-page-bg); padding: 8px 4px; border-bottom: 1px solid var(--np-border); transition: background .2s ease, color .2s ease, border-color .2s ease; user-select: none; }
.np-size.is-active .np-size__name { background: var(--np-accent); color: var(--np-accent-contrast); border-bottom-color: var(--np-accent); }
.np-variant-dark .np-size__name { background: rgba(255,255,255,.04); }

/* Stepper-rad: knapper 28px uten ramme, tallet skilt fra +/- med tynne linjer */
.np-size__qty-wrap { display: flex; align-items: stretch; height: 40px; width: 100%; }
.np-size__qty-wrap .np-qty__minus,
.np-size__qty-wrap .np-qty__plus { flex: 0 0 28px; width: 28px; height: 100%; border: 0; background: transparent; color: var(--np-text); font-family: var(--np-font-ui); font-size: 15px; font-weight: 400; padding: 0; cursor: pointer; line-height: 1; transition: background .2s ease; }
.np-size__qty-wrap .np-qty__minus:hover,
.np-size__qty-wrap .np-qty__plus:hover { background: var(--np-stone); }
.np-size__qty-wrap .np-size__qty { flex: 1; width: auto; min-width: 0; height: 100%; border: 0; border-left: 1px solid var(--np-border); border-right: 1px solid var(--np-border); margin: 0; text-align: center; font-family: var(--np-font-head); font-size: 15px; font-weight: 700; padding: 0; background: transparent; color: var(--np-text); border-radius: 0; -moz-appearance: textfield; appearance: textfield; }
.np-size__qty-wrap .np-size__qty:focus { background: rgba(0,0,0,.02); outline: none; }

/* Cart-bar (enkelt produkt): 60px høy, hvit qty-boks m/ 1.5px sort ramme — fra nikita shop-sidebar-fix.css */
.np-cart-bar__qty-wrap { display: inline-flex; align-items: stretch; height: 100%; border: 1.5px solid var(--np-accent); background: var(--np-card-bg); flex: 0 0 auto; }
.np-cart-bar__qty-wrap .np-cart-bar__qty { width: 60px; height: 100%; text-align: center; padding: 0; border: 0; border-left: 1px solid var(--np-border); border-right: 1px solid var(--np-border); margin: 0; background: transparent; color: var(--np-text); font-family: var(--np-font-head); font-size: 1.125rem; font-weight: 700; -moz-appearance: textfield; appearance: textfield; }
.np-cart-bar__qty-wrap .np-qty__minus,
.np-cart-bar__qty-wrap .np-qty__plus { width: 48px; height: 100%; border: 0; background: transparent; color: var(--np-text); cursor: pointer; font-size: 1.25rem; font-weight: 400; padding: 0; margin: 0; line-height: 1; letter-spacing: 0; }
.np-cart-bar__qty-wrap .np-qty__minus:hover, .np-cart-bar__qty-wrap .np-qty__plus:hover { background: var(--np-stone); color: var(--np-text); }

/* Skjul nettleserens spin-knapper på alle antall-felt */
.np-qty__input::-webkit-outer-spin-button, .np-qty__input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* Knapper: firkantet, sort, versaler */
.np-prod-row__btn, .np-cart-bar__btn, .woocommerce a.button, .woocommerce button.button,
.woocommerce #respond input#submit, .woocommerce input.button,
.woocommerce .button.alt, .woocommerce #place_order, .woocommerce a.checkout-button,
.woocommerce .wc-proceed-to-checkout a.button, .woocommerce button[name="update_cart"], .woocommerce input.button.alt {
	background: var(--np-accent); color: var(--np-accent-contrast); border: none; border-radius: 0;
	padding: 18px 36px; font-family: var(--np-font-ui); font-weight: 600; cursor: pointer; font-size: .875rem;
	text-decoration: none; display: inline-block; transition: .15s; letter-spacing: .14em; text-transform: uppercase; line-height: 1;
}
.woocommerce button[name="update_cart"][disabled] { opacity: .4; }
.np-cart-bar__btn:hover, .woocommerce a.button:hover, .woocommerce button.button:hover { background: var(--np-accent-hover); }
/* WC sin .button.alt er lilla (#7f54b3) og slår den generiske regelen på spesifisitet (button.button.alt = 0,3,1).
   Tving brand-sort overalt (single add-to-cart, gå-til-kasse osv.). Disabled = brand-sort dempet (leses som disabled, ikke ødelagt). */
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt, .woocommerce .single_add_to_cart_button {
	background: var(--np-accent) !important; color: var(--np-accent-contrast) !important; border-color: var(--np-accent) !important;
}
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .woocommerce input.button.alt:hover, .woocommerce .single_add_to_cart_button:hover {
	background: var(--np-accent-hover) !important;
}
.woocommerce button.button.alt.disabled, .woocommerce button.button.alt:disabled, .woocommerce .single_add_to_cart_button.disabled {
	background: var(--np-disabled) !important; color: var(--np-accent-contrast) !important; opacity: 1 !important; cursor: not-allowed;  /* dempet sort-knapp, hvit tekst klarer AA */
}
/* Rad-knappen: Nikita = h64, 2px sort border, hover-INVERT + løft. display:block + lh 2.4em
   (Flatsome-knappemønster — <button> sentrerer innholdet vertikalt selv). */
.np-prod-row__btn {
	display: block; height: 64px; padding: 0 36px; line-height: 2.4em;
	border: 2px solid var(--np-accent); background: var(--np-accent); color: var(--np-accent-contrast); font-size: 15px; text-align: center;
	transition: background .32s ease, color .32s ease, transform .32s ease;
}
.np-prod-row__btn:hover { background: transparent; color: var(--np-text); transform: translateY(-1px); }
/* Knappen capper på 480px (Nikita) — strekkes ALDRI forbi, selv på brede skjermer */
.np-prod-row__btn--full { width: 100%; max-width: 480px; margin-top: 20px; letter-spacing: .14em; }
/* Cart-bar: flex, 60px høy, maxw 540, gap 12 (nikita shop-sidebar-fix.css) */
.np-cart-bar { display: flex; gap: 12px; align-items: stretch; height: 60px; max-width: 540px; width: 100%; margin-top: 8px; background: transparent; border: none; }
.np-cart-bar__btn {
	display: block; flex: 1 1 auto; max-width: calc(100% - 184px); height: 100%; line-height: 2.4em; text-align: center;
	background: var(--np-accent); color: var(--np-accent-contrast); border: 1px solid var(--np-accent);
	font-family: var(--np-font-ui); font-weight: 600; font-size: .8125rem; letter-spacing: .14em; text-transform: uppercase;
	padding: 0 28px; cursor: pointer;
}
.np-cart-bar__btn:hover { background: var(--np-card-bg); color: var(--np-text); }
/* Butikk-/kategorisider: Nikitas "nuclear"-override — bredere knapp, 14px, ls .1em, pad 24 */
.post-type-archive-product .np-cart-bar__btn,
.tax-product_cat .np-cart-bar__btn { min-width: 200px; padding: 0 24px; font-size: .875rem; letter-spacing: .1em; }
/* Cart-wrap rundt cart-bar + feedback: flex-kolonne m/ gap 8 (fasit H 76 = 8 bar-margin + 60 + 8 gap + tom feedback).
   Skopet til IKKE-variable så --variable-regelen (gap 20, maxw 580) beholder sine verdier. */
.np-prod-row__cart:not(.np-prod-row__cart--variable) { display: flex; flex-direction: column; gap: 16px; margin: 24px 0 0; width: 100%; }
.np-prod-row__cart--variable { margin: 24px 0 0; }
/* Fasit H 76 = 60 bar + 16 gap (cart-bar har IKKE egen topp-margin i rad-konteksten) */
.np-prod-row__cart .np-cart-bar { margin-top: 0; }
/* Som Nikita: ingen min-height — tom feedback tar null plass (usynlig til add skjer) */
.np-prod-row__feedback { display: block; font-family: var(--np-font-ui); font-size: .875rem; color: var(--np-text-soft); margin: 0; }
.np-prod-row__feedback.is-success { color: var(--np-success); font-weight: 500; }
.np-prod-row__feedback.is-error { color: var(--np-danger); }

/* ===== Katalog-modus (tradisjonell) — klassisk klikk-inn-grid =====
   Bildeledet, rammeløst kort (ramme kun rundt bilde-flisen). Avgrenser arkiv-innholdet
   via main.site-main (temaet har ingen .woocommerce-wrapper). Drevet av WC columns-N. */
.np-layout-katalog.post-type-archive-product main.site-main,
.np-layout-katalog.tax-product_cat main.site-main { max-width: var(--np-maxw); margin: 0 auto; padding: 36px 48px 96px; box-sizing: border-box; }
.np-layout-katalog.single-product main.site-main { max-width: var(--np-maxw); margin: 0 auto; padding: 0 48px 96px; box-sizing: border-box; }

/* Sidehode (kompakt — katalog er «mindre scrolling») */
.np-layout-katalog .woocommerce-breadcrumb { margin: 0 0 20px; padding: 0; font-family: var(--np-font-ui); font-size: .75rem; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; color: var(--np-muted); }
.np-layout-katalog .woocommerce-breadcrumb a { color: var(--np-muted); text-decoration: none; }
.np-layout-katalog .woocommerce-breadcrumb a:hover { color: var(--np-text); }
.np-layout-katalog .woocommerce-products-header { margin: 0 0 4px; padding: 0; }
.np-layout-katalog .woocommerce-products-header__title.page-title { font-family: var(--np-font-head); font-weight: 800; font-size: clamp(2.25rem, 4.2vw, 3.5rem); line-height: 1.04; letter-spacing: -.035em; color: var(--np-text); margin: 0; }

/* Verktøylinje: antall + sortering (wrappes i .np-cat-toolbar av pluginen) */
.np-cat-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 22px 0 0; padding: 18px 0 0; border-top: 1px solid var(--np-border); }
.np-layout-katalog .woocommerce-result-count { margin: 0; float: none; font-family: var(--np-font-ui); font-size: .8125rem; color: var(--np-muted); }
.np-layout-katalog .woocommerce-ordering { margin: 0; float: none; }
.np-layout-katalog .woocommerce-ordering select.orderby { font-family: var(--np-font-ui); font-size: .8125rem; color: var(--np-text); border: 1px solid var(--np-border); background: var(--np-card-bg); padding: 9px 14px; border-radius: 0; cursor: pointer; }

/* Grid — kolonner styres av WC sin columns-N (konfig-drevet), responsivt nedover */
.np-layout-katalog ul.products { list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); gap: 48px 32px; max-width: none; margin: 34px 0 0; padding: 0; }
.np-layout-katalog ul.products::before, .np-layout-katalog ul.products::after { content: none !important; display: none !important; }
.np-layout-katalog ul.products.columns-1 { grid-template-columns: 1fr; }
.np-layout-katalog ul.products.columns-2 { grid-template-columns: repeat(2, 1fr); }
.np-layout-katalog ul.products.columns-3 { grid-template-columns: repeat(3, 1fr); }
.np-layout-katalog ul.products.columns-4 { grid-template-columns: repeat(4, 1fr); }
.np-layout-katalog ul.products.columns-5 { grid-template-columns: repeat(5, 1fr); }
.np-layout-katalog ul.products.columns-6 { grid-template-columns: repeat(6, 1fr); }
.np-layout-katalog ul.products li.product.np-cat-card { width: auto !important; margin: 0 !important; float: none !important; padding: 0; background: none; border: 0; }

/* Kort */
.np-cat-card__link { display: flex; flex-direction: column; height: 100%; text-decoration: none; color: inherit; }
.np-cat-card__media { position: relative; overflow: hidden; background: var(--np-card-bg); box-shadow: inset 0 0 0 1px var(--np-border); aspect-ratio: 1 / 1; margin-bottom: 16px; }
.np-cat-card__img { width: 100% !important; height: 100% !important; object-fit: cover !important; display: block; margin: 0 !important; box-shadow: none !important; transition: transform .6s cubic-bezier(.2,.55,.2,1); }
.np-cat-card:hover .np-cat-card__img { transform: scale(1.05); }
.np-cat-card__cta { position: absolute; left: 0; right: 0; bottom: 0; display: flex; align-items: center; justify-content: center; gap: 8px; padding: 13px; background: var(--np-accent); color: var(--np-accent-contrast); font-family: var(--np-font-ui); font-size: .6875rem; font-weight: 600; text-transform: uppercase; letter-spacing: .16em; transform: translateY(101%); transition: transform .35s cubic-bezier(.2,.6,.2,1); }
.np-cat-card:hover .np-cat-card__cta { transform: translateY(0); }
.np-cat-card__body { display: flex; flex-direction: column; gap: 4px; }
.np-cat-card__cat { font-family: var(--np-font-ui); font-size: .6875rem; font-weight: 500; text-transform: uppercase; letter-spacing: .16em; color: var(--np-muted); }
/* Naturlig høyde (ingen min-height-reservasjon) — tittel+pris grupperes tett. Clamp 2 = guard mot
   ekstremt lange navn; korte/1-linjers titler får IKKE en fantomlinje. Uflukne priser ved sjeldne
   2-linjers navn er korrekt (tomrommet havner under prisen, usynlig). */
.np-cat-card__title { font-family: var(--np-font-head); font-weight: 600; font-size: 1.0625rem; line-height: 1.3; letter-spacing: -.01em; color: var(--np-text); margin: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.np-cat-card:hover .np-cat-card__title { text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.np-cat-card__price { font-family: var(--np-font-head); font-weight: 600; font-size: 1rem; color: var(--np-text); letter-spacing: -.01em; margin: 6px 0 0; }
.np-cat-card__price del { color: var(--np-muted); font-weight: 400; margin-right: 6px; }
.np-cat-card__price ins { text-decoration: none; }

/* Paginering — skarpe sorte tiles */
.np-layout-katalog .woocommerce-pagination { margin: 64px 0 0; padding: 40px 0 0; border-top: 1px solid var(--np-border); text-align: center; }
.np-layout-katalog .woocommerce-pagination ul.page-numbers { display: inline-flex; gap: 8px; border: 0; margin: 0; padding: 0; }
.np-layout-katalog .woocommerce-pagination ul li { margin: 0; display: inline-flex; border: 0; }
.np-layout-katalog .woocommerce-pagination .page-numbers { display: flex; align-items: center; justify-content: center; min-width: 46px; height: 46px; padding: 0 8px; border: 1px solid var(--np-border); font-family: var(--np-font-ui); font-size: .875rem; font-weight: 600; color: var(--np-text); text-decoration: none; background: var(--np-card-bg); transition: background .2s ease, color .2s ease, border-color .2s ease; }
.np-layout-katalog .woocommerce-pagination .page-numbers.current { background: var(--np-accent); color: var(--np-accent-contrast); border-color: var(--np-accent); }
.np-layout-katalog .woocommerce-pagination a.page-numbers:hover { background: var(--np-accent); color: var(--np-accent-contrast); border-color: var(--np-accent); }
.np-layout-katalog .woocommerce-pagination .page-numbers.dots { border-color: transparent; background: none; min-width: auto; }

/* Responsiv (kapper kolonner nedover uansett konfig) */
@media (max-width: 1100px) { .np-layout-katalog ul.products[class*="columns-"] { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 760px) {
	.np-layout-katalog.post-type-archive-product main.site-main,
	.np-layout-katalog.tax-product_cat main.site-main { padding: 24px 20px 64px; }
	.np-layout-katalog ul.products[class*="columns-"] { grid-template-columns: repeat(2, 1fr); gap: 30px 18px; }
}
@media (max-width: 380px) { .np-layout-katalog ul.products[class*="columns-"] { gap: 26px 14px; } }

/* ===== Katalog-modus: single product (klassisk klikk-inn-destinasjon) ===== */
.np-layout-katalog.single-product .woocommerce-breadcrumb { margin: 28px 0 26px; }

/* Produkt-topp: galleri | summary (flex); faner + relaterte full bredde under */
.np-layout-katalog div.product { display: flex; flex-wrap: wrap; align-items: flex-start; column-gap: 64px; row-gap: 72px; }
.np-layout-katalog div.product::before, .np-layout-katalog div.product::after { content: none !important; display: none !important; }
.np-layout-katalog div.product > .woocommerce-product-gallery { flex: 1 1 52%; max-width: 54%; min-width: 0; margin: 0 !important; float: none !important; width: auto !important; }
.np-layout-katalog div.product > .summary, .np-layout-katalog div.product > .entry-summary { flex: 1 1 40%; min-width: 0; margin: 0 !important; float: none !important; width: auto !important; }
.np-layout-katalog div.product > .woocommerce-tabs, .np-layout-katalog div.product > .related, .np-layout-katalog div.product > .up-sells { flex: 0 0 100%; width: 100%; margin: 0 !important; }

/* Galleri — bilde på nøytral flate */
.np-layout-katalog .woocommerce-product-gallery { margin: 0; }
.np-layout-katalog .woocommerce-product-gallery__wrapper { margin: 0; background: var(--np-stone); }
.np-layout-katalog .woocommerce-product-gallery img { width: 100% !important; height: auto !important; display: block; margin: 0 !important; }
.np-layout-katalog .flex-control-thumbs { display: flex; flex-wrap: wrap; gap: 10px; margin: 12px 0 0; padding: 0; list-style: none; }
.np-layout-katalog .flex-control-thumbs li { width: auto; margin: 0; }
.np-layout-katalog .flex-control-thumbs img { width: 72px; height: 72px; object-fit: cover; opacity: .55; cursor: pointer; transition: opacity .2s ease; }
.np-layout-katalog .flex-control-thumbs img.flex-active, .np-layout-katalog .flex-control-thumbs img:hover { opacity: 1; }

/* Summary */
.np-pdp-eyebrow { display: block; font-family: var(--np-font-ui); font-size: .75rem; font-weight: 500; text-transform: uppercase; letter-spacing: .18em; color: var(--np-muted); margin: 0 0 14px; }
.np-layout-katalog .product_title { font-family: var(--np-font-head); font-weight: 800; font-size: clamp(1.9rem, 3vw, 2.75rem); line-height: 1.06; letter-spacing: -.025em; color: var(--np-text); margin: 0 0 16px; }
.np-layout-katalog .entry-summary > .price { font-family: var(--np-font-head); font-weight: 600; font-size: 1.5rem; color: var(--np-text); margin: 0 0 24px; }
.np-layout-katalog .entry-summary .price del { color: var(--np-muted); font-weight: 400; margin-right: 8px; }
.np-layout-katalog .entry-summary .price ins { text-decoration: none; }
/* WC core farger single-prisen oliven (.woocommerce:where() div.product p.price = 0,2,2) — tving brand-sort. */
.np-layout-katalog .entry-summary .price, .np-layout-katalog .entry-summary .price .woocommerce-Price-amount, .np-layout-katalog .entry-summary .price bdi,
.np-layout-katalog .woocommerce-variation-price .price, .np-layout-katalog .woocommerce-variation-price .woocommerce-Price-amount, .np-layout-katalog .woocommerce-variation-price bdi { color: var(--np-text) !important; }
.np-layout-katalog .woocommerce-product-details__short-description { font-family: var(--np-font-ui); font-size: 1rem; line-height: 1.65; color: var(--np-text-soft); max-width: 52ch; margin: 0 0 28px; }
.np-layout-katalog .woocommerce-product-details__short-description p { margin: 0 0 12px; }
.np-layout-katalog .woocommerce-product-details__short-description :last-child { margin-bottom: 0; }

/* Variant-form */
.np-layout-katalog .variations { margin: 0 0 18px; border: 0; background: none; width: auto; }
.np-layout-katalog .variations tbody, .np-layout-katalog .variations tr { display: block; }
.np-layout-katalog .variations th, .np-layout-katalog .variations td { display: block; text-align: left; padding: 0; border: 0; }
.np-layout-katalog .variations .label label { font-family: var(--np-font-ui); font-size: .75rem; font-weight: 600; text-transform: uppercase; letter-spacing: .14em; color: var(--np-muted); margin: 0 0 8px; display: block; }
.np-layout-katalog .variations select { font-family: var(--np-font-ui); font-size: .95rem; color: var(--np-text); border: 1px solid var(--np-border); background: var(--np-card-bg); border-radius: 0; padding: 13px 16px; width: 100%; cursor: pointer; margin: 0 0 6px; }
.np-layout-katalog .reset_variations { font-family: var(--np-font-ui); font-size: .8125rem; color: var(--np-muted); }
.np-layout-katalog .woocommerce-variation-price .price { font-family: var(--np-font-head); font-weight: 600; font-size: 1.25rem; color: var(--np-text); margin: 6px 0 14px; }

/* Legg-til-rad: KUN selve rad-en flexes (ikke hele variant-skjemaet) */
.np-layout-katalog form.cart:not(.variations_form) { display: flex; align-items: stretch; gap: 12px; flex-wrap: wrap; margin: 10px 0 0; }
.np-layout-katalog .woocommerce-variation-add-to-cart { display: flex; align-items: stretch; gap: 12px; flex-wrap: wrap; margin: 10px 0 0; }
.np-layout-katalog form.cart .quantity input.qty { width: 74px; min-height: 52px; text-align: center; border: 1px solid var(--np-border); border-radius: 0; background: var(--np-card-bg); font-family: var(--np-font-head); font-weight: 600; font-size: 1rem; padding: 0 8px; -moz-appearance: textfield; appearance: textfield; }
.np-layout-katalog form.cart .quantity input.qty::-webkit-outer-spin-button, .np-layout-katalog form.cart .quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.np-layout-katalog form.cart .single_add_to_cart_button { flex: 1 1 auto; min-width: 220px; }

/* Variable produkter: størrelse/antall-rutenett (multi-add) erstatter WC sin variant-dropdown.
   Selve grid-/flis-/knappe-stilen arves fra .np-sizes/.np-size/.np-prod-row__btn (delt med
   hurtigbestilling) — her settes kun plassering i summary-kolonnen. */
.np-layout-katalog div.product > .summary .np-pdp-cart,
.np-layout-katalog div.product > .entry-summary .np-pdp-cart { margin: 4px 0 0; width: 100%; max-width: 480px; }

/* Meta (SKU / kategori) */
.np-layout-katalog .product_meta { margin: 30px 0 0; padding: 22px 0 0; border-top: 1px solid var(--np-border); font-family: var(--np-font-ui); font-size: .8125rem; color: var(--np-muted); }
.np-layout-katalog .product_meta > span { display: block; margin-bottom: 5px; }
.np-layout-katalog .product_meta a { color: var(--np-text); text-decoration: none; }
.np-layout-katalog .product_meta a:hover { text-decoration: underline; }

/* Faner */
.np-layout-katalog .woocommerce-tabs ul.tabs { display: flex; flex-wrap: wrap; gap: 32px; list-style: none; margin: 0 0 28px; padding: 0; border-bottom: 1px solid var(--np-border); }
.np-layout-katalog .woocommerce-tabs ul.tabs::before, .np-layout-katalog .woocommerce-tabs ul.tabs::after { content: none !important; display: none !important; }
.np-layout-katalog .woocommerce-tabs ul.tabs li { margin: 0; padding: 0; background: none !important; border: 0 !important; border-radius: 0; }
.np-layout-katalog .woocommerce-tabs ul.tabs li::before, .np-layout-katalog .woocommerce-tabs ul.tabs li::after { content: none !important; }
.np-layout-katalog .woocommerce-tabs ul.tabs li a { font-family: var(--np-font-ui); font-size: .8125rem; font-weight: 600; text-transform: uppercase; letter-spacing: .12em; color: var(--np-muted); text-decoration: none; padding: 0 0 14px; display: inline-block; border-bottom: 2px solid transparent; transition: color .2s ease, border-color .2s ease; }
.np-layout-katalog .woocommerce-tabs ul.tabs li.active a, .np-layout-katalog .woocommerce-tabs ul.tabs li a:hover { color: var(--np-text); border-bottom-color: var(--np-accent); }
.np-layout-katalog .woocommerce-tabs .panel { font-family: var(--np-font-ui); color: var(--np-text-soft); line-height: 1.65; margin: 0; max-width: 760px; }
.np-layout-katalog .woocommerce-tabs .panel > h2 { display: none; } /* fanen merker allerede innholdet — unngå duplikat-overskrift */
.np-layout-katalog .shop_attributes { border: 0; width: 100%; max-width: 560px; border-collapse: collapse; }
.np-layout-katalog .shop_attributes th, .np-layout-katalog .shop_attributes td { border: 0; border-bottom: 1px solid var(--np-border); padding: 12px 0; text-align: left; font-size: .9rem; background: none; }
.np-layout-katalog .shop_attributes th { font-family: var(--np-font-head); font-weight: 600; color: var(--np-text); width: 40%; font-style: normal; }
/* WC rendrer attributtverdier grå kursiv (default) — normaliser til brand-tekst */
.np-layout-katalog .shop_attributes td, .np-layout-katalog .shop_attributes td p { font-style: normal !important; color: var(--np-text-soft); margin: 0; }

/* Relaterte: heading (kortene styles av grid-CSS over) */
.np-layout-katalog .related.products > h2, .np-layout-katalog .up-sells > h2 { font-family: var(--np-font-head); font-weight: 800; font-size: clamp(1.5rem, 2.4vw, 2rem); letter-spacing: -.02em; color: var(--np-text); margin: 0 0 28px; }

/* Single responsiv: stable galleri over summary */
@media (max-width: 860px) {
	.np-layout-katalog div.product { display: block; }
	.np-layout-katalog div.product > .woocommerce-product-gallery, .np-layout-katalog div.product > .entry-summary { max-width: none; width: auto; }
	.np-layout-katalog div.product > .entry-summary { margin-top: 32px !important; }
	.np-layout-katalog.single-product main.site-main { padding: 0 20px 64px; }
}

/* ===== Checkout: gruppert variant-liste — verdier fra nikita shop-sidebar-fix.css ===== */
.np-review__name { display: block; font-family: var(--np-font-head); font-weight: 600; font-size: 1rem; color: var(--np-text); letter-spacing: -.005em; margin-bottom: 6px; }
.np-review__variants { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 16px; line-height: 1.3; color: var(--np-text); }
.np-review__variants li { display: inline-flex; gap: 6px; font-size: .875rem; color: var(--np-text-soft); line-height: 1.3; }
.np-review__size { font-family: var(--np-font-head); font-weight: 600; color: var(--np-text); }
.np-review__qty { color: var(--np-text-soft); }
/* Frakt-notis: hvit boks m/ SOLID lys ramme (Nikita) — div arver body-fonten, p/strong styles under */
.np-checkout-shipping-notice { background: var(--np-card-bg); border: 1px solid var(--np-border); padding: 14px 16px; margin: 16px 0 0; }
.np-checkout-shipping-notice > strong { display: block; font-family: var(--np-font-head); font-size: .6875rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--np-text); margin-bottom: 6px; }
.np-checkout-shipping-notice p { margin: 0; font-family: var(--np-font-ui); font-size: .8125rem; line-height: 1.5; color: var(--np-text-soft); }
.np-checkout-shipping-notice p strong { display: inline; font-family: inherit; font-size: inherit; font-weight: 600; letter-spacing: 0; text-transform: none; color: var(--np-text); margin: 0; }

/* ===== Generelt innhold ===== */
.np-main { padding: 56px 0; }
.np-page__title, .np-entry__title { margin-top: 0; font-family: var(--np-font-head); font-weight: 800; }
.woocommerce-cart #content { max-width: var(--np-maxw); margin: 0 auto; padding: 32px 24px; }
.woocommerce-checkout #content { max-width: var(--np-maxw); margin: 0 auto; padding: 0 40px 80px; }
.woocommerce-cart h1, .woocommerce-checkout h1 { font-family: var(--np-font-head); font-weight: 800; }

/* ===== Steg-tråd (Handlekurv → Leveringsdetaljer → Bestilling fullført) =====
   Erstatter den store sidetittelen på kurv/kasse (som Nikita). */
.woocommerce-cart .np-page__title, .woocommerce-checkout .np-page__title { display: none; }
.woocommerce-cart .np-main--page, .woocommerce-checkout .np-main--page { padding-top: 0; }
/* Stepper: nummererte markører + fremdriftslinje. Fullført = sort markør m/ hake;
   aktiv = sort markør m/ nummer + myk ring («du er her»); kommende = rammet, dempet.
   Skarpe markører (radius 0) holder merkets signatur. */
.np-steps { grid-column: 1 / -1; margin: 0 auto; padding: 40px 16px 36px; max-width: 600px; width: 100%; box-sizing: border-box; }
.np-steps__list { display: flex; align-items: flex-start; justify-content: space-between; list-style: none; margin: 0; padding: 0; }
.np-step { position: relative; flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 12px; }
/* Fremdriftslinje: ::before tegner segmentet som leder INN i steget (forrige→dette),
   sentrert på markøren (16px). Sort når steget er nådd (done/active), ellers dempet. */
.np-step::before { content: ""; position: absolute; top: 15px; right: 50%; width: 100%; height: 2px; background: var(--np-border); z-index: 0; }
.np-step:first-child::before { display: none; }
.np-step.is-done::before, .np-step.is-active::before { background: var(--np-accent, #000); }
.np-step__marker { position: relative; z-index: 1; width: 32px; height: 32px; display: grid; place-items: center; box-sizing: border-box; border: 2px solid var(--np-border); background: var(--np-card-bg, #fff); color: var(--np-muted); font-family: var(--np-font-head); font-weight: 700; font-size: 13px; line-height: 1; transition: background .2s ease, border-color .2s ease, color .2s ease, box-shadow .2s ease; }
.np-step__check { display: block; }
.np-step.is-done .np-step__marker { background: var(--np-accent, #000); border-color: var(--np-accent, #000); color: var(--np-accent-contrast, #fff); }
.np-step.is-active .np-step__marker { background: var(--np-accent, #000); border-color: var(--np-accent, #000); color: var(--np-accent-contrast, #fff); box-shadow: 0 0 0 4px color-mix(in srgb, var(--np-accent, #000) 12%, transparent); }
.np-step__label { font-family: var(--np-font-ui); font-size: .8125rem; font-weight: 500; letter-spacing: .03em; line-height: 1.3; color: var(--np-muted); max-width: 16ch; }
.np-step.is-done .np-step__label { color: var(--np-text); }
.np-step.is-active .np-step__label { color: var(--np-text); font-weight: 600; }
@media (max-width: 600px) {
	.np-steps { padding: 28px 8px 24px; }
	.np-step { gap: 10px; }
	.np-step__marker { width: 28px; height: 28px; font-size: 12px; }
	.np-step::before { top: 13px; }
	.np-step__label { font-size: .6875rem; letter-spacing: .01em; max-width: 12ch; }
}

/* ===== Footer — tynn én-linje à la Nikita (48px, © sentrert venstre, dempet hvit) ===== */
.np-site-footer { background: var(--np-footer-bg); color: var(--np-footer-text); }
.np-site-footer__inner { max-width: var(--np-maxw); margin: 0 auto; min-height: 48px; display: flex; align-items: center; padding: 0 24px; }
.np-site-footer__copy { font-size: .8125rem; margin: 0; }
.np-site-footer__copy a { color: var(--np-footer-text); text-decoration: underline; text-underline-offset: 2px; }
.np-site-footer__copy a:hover { opacity: .7; }

/* ===== Responsiv ===== */
@media (max-width: 900px) {
	/* Flex-stabling (radene er flex nå, ikke grid!) — bilde øverst, full bredde */
	.np-prod-row, .np-prod-row:nth-of-type(even) { flex-direction: column; min-height: auto; }
	.np-prod-row__media { flex: none; width: 100%; aspect-ratio: 4/3; min-height: 0; }
	.np-prod-row__body { padding: 40px 24px; gap: 20px; }
	/* Nikita mobil: 4 størrelsesbokser per rad (~78px) */
	.np-sizes__grid { grid-template-columns: repeat(auto-fit, minmax(72px, 1fr)); }
	.np-shop-hero { min-height: 0; padding: 0; }
	.np-shop-hero__inner { padding: 48px 24px; }
	.np-shop-cats__inner { padding: 24px; }
	.np-site-header__inner { flex-wrap: wrap; gap: 14px; padding: 12px 20px; }
	.np-site-header__nav { order: 3; width: 100%; }
	.np-menu { gap: 18px; }
	.np-shop-cats { position: static; }
	.np-shop-cats__inner { justify-content: flex-start; overflow-x: auto; flex-wrap: nowrap; }
}

/* ============================================================
   FORSIDE — portet fra nikita-b2b/css/main.css (verdier, ikke Flatsome-hacks)
   ============================================================ */
.np-eyebrow--light { color: rgba(255,255,255,.75); opacity: 1; }

/* Knapper (forside) */
.np-btn { display: inline-block; background: var(--np-accent); color: var(--np-accent-contrast); border: 2px solid var(--np-accent); border-radius: 0; padding: 18px 40px; font-family: var(--np-font-head); font-weight: 600; font-size: 14px; letter-spacing: .12em; text-transform: uppercase; line-height: 1; cursor: pointer; transition: background .25s var(--np-ease, ease), color .25s ease, transform .25s ease; }
.np-btn:hover { transform: translateY(-2px); }
.np-btn--light { background: var(--np-card-bg); color: var(--np-text); border-color: var(--np-card-bg); }
.np-btn--light:hover { background: transparent; color: #fff; border-color: #fff; }

/* Hero */
.np-home-hero { position: relative; min-height: 86vh; display: flex; align-items: flex-end; background-color: var(--np-primary); background-size: cover; background-position: center 35%; overflow: hidden; color: #fff; }
.np-home-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.25) 0%, rgba(0,0,0,.55) 60%, rgba(0,0,0,.92) 100%); z-index: 1; pointer-events: none; }
.np-home-hero__inner { position: relative; z-index: 2; max-width: var(--np-maxw); width: 100%; margin: 0 auto; padding: 96px 40px; display: grid; gap: 24px; }
.np-home-hero__title { font-family: var(--np-font-head); font-size: clamp(3rem, 8vw, 7.5rem); font-weight: 800; letter-spacing: -.045em; line-height: .95; color: #fff; margin: 0; max-width: 16ch; }
.np-home-hero__lede { color: rgba(255,255,255,.85); font-size: clamp(1.0625rem, 1.5vw, 1.4rem); max-width: 54ch; line-height: 1.5; font-weight: 300; margin: 0; }
.np-home-hero__cta { margin-top: 8px; }

/* Seksjoner */
.np-home-section { padding: clamp(72px, 11vh, 140px) 0; border-bottom: 1px solid var(--np-border); }
.np-home-section--tight { padding: clamp(56px, 8vh, 96px) 0; }
.np-home-section__head { margin-bottom: 40px; }
.np-home-section__head .np-eyebrow { display: block; color: var(--np-muted); margin-bottom: 10px; }
.np-home-section__title { font-family: var(--np-font-head); font-size: clamp(2rem, 4vw, 3.25rem); font-weight: 800; letter-spacing: -.03em; line-height: 1.05; color: var(--np-text); margin: 0; }

/* Kategori-liste (typografisk, hover-skyv) */
.np-cats-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--np-border); }
.np-cats-list li { border-bottom: 1px solid var(--np-border); }
.np-cats-list a { display: grid; grid-template-columns: 56px 1fr auto auto; align-items: baseline; gap: 24px; padding: 32px 12px; color: var(--np-text); text-decoration: none; transition: padding .3s var(--np-ease, ease), background .3s ease; }
.np-cats-list a:hover { padding-left: 24px; background: rgba(0,0,0,.03); }
.np-cats-num { font-family: var(--np-font-ui); font-size: .875rem; font-weight: 500; color: var(--np-muted); letter-spacing: .15em; }
.np-cats-name { font-family: var(--np-font-head); font-size: clamp(1.625rem, 3vw, 3rem); font-weight: 700; letter-spacing: -.025em; line-height: 1; color: var(--np-text); }
.np-cats-count { color: var(--np-muted); font-size: .875rem; letter-spacing: .04em; }
.np-cats-arrow { font-family: var(--np-font); font-size: 1.4rem; color: var(--np-text); transition: transform .3s ease; }
.np-cats-list a:hover .np-cats-arrow { transform: translateX(8px); }

/* Slik bestiller du (3 steg) */
.np-home-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 48px; }
.np-home-step { border-top: 2px solid var(--np-text); padding: 24px 0 0; }
.np-home-step__num { font-family: var(--np-font-head); font-size: 1.5rem; font-weight: 800; color: var(--np-text); display: block; margin-bottom: 20px; }
.np-home-step h3 { font-family: var(--np-font-head); font-size: 1.375rem; font-weight: 700; letter-spacing: -.01em; margin: 0 0 12px; color: var(--np-text); }
.np-home-step p { color: var(--np-muted); margin: 0; max-width: 38ch; line-height: 1.6; }

/* CTA-banner */
.np-home-cta { position: relative; min-height: 56vh; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; background-color: var(--np-primary); background-size: cover; background-position: center; color: #fff; overflow: hidden; }
.np-home-cta::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.85) 0%, rgba(0,0,0,.45) 100%); z-index: 1; }
.np-home-cta > .np-container { position: relative; z-index: 2; }
.np-home-cta__title { font-family: var(--np-font-head); color: #fff; font-size: clamp(2rem, 5vw, 4rem); font-weight: 800; letter-spacing: -.03em; max-width: 18ch; margin: 0 0 16px; }
.np-home-cta__lede { color: rgba(255,255,255,.85); font-size: 1.125rem; max-width: 50ch; margin: 0 0 32px; }

@media (max-width: 900px) {
	.np-home-hero { min-height: 72vh; }
	.np-home-hero__inner { padding: 56px 24px; }
	.np-cats-list a { grid-template-columns: 40px 1fr auto; grid-template-rows: auto auto; gap: 8px 16px; padding: 24px 0; }
	.np-cats-count { grid-column: 2; }
	.np-cats-arrow { grid-row: 1 / span 2; align-self: center; }
	.np-home-steps { gap: 32px; }
}

/* ============================================================
   INNHOLDSSIDER (FAQ, Kontakt) — portet fra nikita-b2b nk-faq
   ============================================================ */
.np-main--page { padding: clamp(96px, 13vh, 128px) 0 96px; }
/* Sidetittel = Flatsome-h1 på Nikita (FAQ målt: Lato 80px/700/-.035em/lh 1.3) */
.np-page__title { font-family: var(--np-font); font-size: clamp(2.5rem, 6vw, 5rem); font-weight: 700; letter-spacing: -.035em; line-height: 1.3; margin: 12px 0 24px; color: var(--np-text-soft); }
.np-page__content { font-size: 1rem; line-height: 1.65; color: var(--np-text-soft); }
.np-page__content a { color: var(--np-text); text-decoration: underline; }
.np-page__lede { font-size: 1.25rem; line-height: 1.5; color: var(--np-text); max-width: 50ch; margin: 0 0 40px; }

/* FAQ-trekkspill (details/summary — ingen JS) */
.np-faq { border-top: 1px solid var(--np-border); }
.np-faq__item { border-bottom: 1px solid var(--np-border); }
.np-faq__item summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: 56px 1fr auto; align-items: baseline; gap: 24px; padding: 32px 0; transition: color .18s ease; }
.np-faq__item summary::-webkit-details-marker { display: none; }
.np-faq__item summary::marker { content: ""; }
.np-faq__item summary:hover .np-faq__q { color: var(--np-text); }
.np-faq__num { font-family: var(--np-font-ui); font-size: .875rem; font-weight: 500; color: var(--np-muted); letter-spacing: .15em; }
.np-faq__q { font-family: var(--np-font-head); font-size: clamp(1.125rem, 1.8vw, 1.5rem); font-weight: 600; letter-spacing: -.01em; color: var(--np-text); line-height: 1.3; }
.np-faq__icon { font-size: 2rem; color: var(--np-text); font-weight: 200; line-height: 1; transition: transform .32s var(--np-ease, ease); align-self: center; }
.np-faq__item[open] .np-faq__icon { transform: rotate(45deg); }
.np-faq__a { padding: 0 24px 48px calc(56px + 24px); max-width: 64ch; }
.np-faq__a p { color: var(--np-text-soft); font-size: 1.0625rem; line-height: 1.65; margin: 0 0 12px; }
.np-faq__a p:last-child { margin-bottom: 0; }

/* Kontakt */
.np-contact { margin-top: 8px; }
.np-contact__rows { border-top: 1px solid var(--np-border); margin-bottom: 32px; }
.np-contact__row { display: grid; grid-template-columns: 160px 1fr; gap: 16px; padding: 22px 0; border-bottom: 1px solid var(--np-border); align-items: baseline; }
.np-contact__row dt { font-family: var(--np-font-head); font-size: .82rem; font-weight: 500; text-transform: uppercase; letter-spacing: .12em; color: var(--np-muted); margin: 0; }
.np-contact__row dd { margin: 0; font-size: 1.125rem; color: var(--np-text); }
.np-contact__row dd a { color: var(--np-text); text-decoration: underline; }

@media (max-width: 720px) {
	.np-faq__item summary { grid-template-columns: 36px 1fr auto; gap: 12px; padding: 24px 0; }
	.np-faq__a { padding-left: 0; padding-right: 0; padding-bottom: 24px; }
	.np-contact__row { grid-template-columns: 1fr; gap: 4px; }
}

/* ============================================================
   TOAST — "lagt til"-varsel (portet fra nikita-b2b). Animert inn fra
   bunn-høyre; erstatter WooCommerce sine inline-varselbokser.
   ============================================================ */
.np-toast {
	position: fixed; bottom: 32px; right: 32px; z-index: 99999;
	background: var(--np-accent); color: var(--np-accent-contrast); padding: 0; min-width: 320px; max-width: 420px;
	transform: translateY(120%); transition: transform 480ms cubic-bezier(.22,1,.36,1);
	font-family: var(--np-font); pointer-events: none;
}
.np-toast.is-visible { transform: translateY(0); pointer-events: auto; }
.np-toast__inner { display: flex; align-items: center; gap: 16px; padding: 20px 24px; }
.np-toast__icon { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; background: var(--np-card-bg); color: var(--np-text); font-size: 1rem; font-weight: 700; flex-shrink: 0; }
.np-toast__text { display: flex; flex-direction: column; }
.np-toast__text strong { font-family: var(--np-font-head); font-weight: 600; font-size: .9375rem; letter-spacing: -.005em; }
.np-toast__text span { color: rgba(255,255,255,.7); font-size: .8125rem; margin-top: 2px; }
.np-toast__action { display: inline-flex; align-items: center; font-family: var(--np-font); font-size: .8125rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--np-accent-contrast); text-decoration: none; padding: 8px 14px; border: 1px solid rgba(255,255,255,.4); margin-left: auto; flex-shrink: 0; transition: .2s; }
.np-toast__action:hover { background: var(--np-card-bg); color: var(--np-text); border-color: var(--np-card-bg); }
@media (max-width: 600px) {
	.np-toast { left: 16px; right: 16px; bottom: 16px; max-width: none; min-width: 0; }
}

/* ============================================================
   HANDLEKURV — portet fra nikita-b2b/css/cart.css (tilpasset np-* + Woo-shortcode)
   ============================================================ */
/* Bredde + 2-kolonne (vareliste + sticky totals) */
.woocommerce-cart .np-container--narrow { max-width: var(--np-maxw); }
/* Varelisten flyter (1fr), totals-boks fast 320px, MODERAT gap (56px) — ikke pinnet mot
   hver kant (det ga en ~268px tom kanal i midten på brede skjermer). Hele paret kappes
   til 1040px og sentreres → vareliste og total står tett, balansert. */
.woocommerce-cart .woocommerce { display: grid; grid-template-columns: minmax(0, 1fr) 320px; justify-content: normal; column-gap: 56px; row-gap: 0; align-items: start; max-width: 1040px; margin: 0 auto; }
.woocommerce-cart .woocommerce-notices-wrapper { grid-column: 1 / -1; }
.woocommerce-cart form.woocommerce-cart-form { grid-column: 1; min-width: 0; }
.woocommerce-cart .cart-collaterals { grid-column: 2; width: 100%; position: sticky; top: calc(var(--np-header-h) + 20px); }
.woocommerce-cart .cart-collaterals .cross-sells { display: none; }

/* Tabell → block-flow. Åpen liste (ingen WC-boks rundt varene) — !important + table.shop_table
   for å slå WC sin `.woocommerce table.shop_table { border }` (høyere spesifisitet). */
.woocommerce-cart table.shop_table, .woocommerce-cart .shop_table, .woocommerce-cart .shop_table tbody { display: block; width: 100%; border: none !important; border-radius: 0 !important; box-shadow: none !important; margin: 0; }
/* !important: WC setter text-align:left med høy spesifisitet; fasit har start (aldri overstyrt) */
.woocommerce-cart table.shop_table, .woocommerce-cart .shop_table td, .woocommerce-cart .shop_table th, .woocommerce-cart .shop_table tr { text-align: start !important; }
.woocommerce-cart .shop_table tr.np-cart-row .product-subtotal { text-align: right !important; }
/* Fasit: td=start (aldri satt), navn/varianter/størrelse/antall=left (egne regler hos Nikita) */
.woocommerce-checkout .woocommerce-checkout-review-order-table tbody td, .woocommerce-checkout .woocommerce-checkout-review-order-table tbody th { text-align: start !important; }
.np-review__name, .np-review__variants, .np-review__variants li, .np-review__size, .np-review__qty { text-align: left; }
.woocommerce-checkout #payment div.payment_box, .woocommerce-checkout #payment .payment_box { text-align: start !important; }
.woocommerce-cart .woocommerce-cart-form .shop_table thead { display: none; }

/* Hver kurv-rad */
.woocommerce-cart .shop_table tr.np-cart-row { display: grid; grid-template-columns: 80px 1fr auto; grid-template-areas: "thumb name total" "vars vars vars"; column-gap: 20px; row-gap: 12px; padding: 24px 16px; border-bottom: 1px solid var(--np-border); width: 100%; position: relative; background: transparent; }
.woocommerce-cart .shop_table tr.np-cart-row td { display: block; padding: 0; border: none; background: transparent; width: auto; vertical-align: top; }
.woocommerce-cart .shop_table tr.np-cart-row .product-thumbnail { grid-area: thumb; width: 80px; align-self: start; }
.woocommerce-cart .shop_table tr.np-cart-row .product-thumbnail img { width: 80px; height: 80px; object-fit: cover; display: block; margin: 0; }
.woocommerce-cart .shop_table tr.np-cart-row .product-name { grid-area: name; min-width: 0; align-self: center; }
.woocommerce-cart .shop_table tr.np-cart-row .product-name, .woocommerce-cart .shop_table tr.np-cart-row .product-name a { font-family: var(--np-font-head); font-size: 1.0625rem; font-weight: 600; line-height: 1.3; color: var(--np-text); text-decoration: none; letter-spacing: -.005em; }
.woocommerce-cart .shop_table tr.np-cart-row .product-subtotal { grid-area: total; align-self: center; justify-self: end; font-family: var(--np-font-head); font-size: 1.0625rem; font-weight: 700; color: var(--np-text); text-align: right; white-space: nowrap; }

/* Grupperte rader: skjul original pris/antall/fjern (variant-listen erstatter) */
.woocommerce-cart .shop_table tr.np-cart-grouped .product-price,
.woocommerce-cart .shop_table tr.np-cart-grouped .product-quantity,
.woocommerce-cart .shop_table tr.np-cart-grouped .product-remove,
.woocommerce-cart .shop_table tr.np-cart-row .mobile-product-price { display: none; }
.woocommerce-cart .shop_table tr.np-cart-row--hidden { display: none; }

/* Gruppert parent-rad: egen kolonne for gruppe-× (fjern HELE produktet). Pris + ×
   står side om side til høyre — speiler variant-linjenes [sum][×]-mønster. */
.woocommerce-cart .shop_table tr.np-cart-grouped { grid-template-columns: 80px 1fr auto 36px; grid-template-areas: "thumb name total remove" "vars vars vars vars"; }
.woocommerce-cart .shop_table tr.np-cart-grouped .product-subtotal { grid-area: total; }
.woocommerce-cart .np-cart-group-remove { grid-area: remove; align-self: center; justify-self: end; display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border: 1px solid var(--np-faint); border-radius: 50%; background: transparent; position: relative; text-decoration: none; cursor: pointer; font-size: 0; line-height: 0; color: transparent; letter-spacing: normal; transition: border-color .2s ease, background .2s ease; }
.woocommerce-cart .np-cart-group-remove::before, .woocommerce-cart .np-cart-group-remove::after { content: ""; position: absolute; width: 12px; height: 1.5px; background: var(--np-text-soft); top: 50%; left: 50%; transform: translate(-50%, -50%) rotate(45deg); transition: background .2s ease; }
.woocommerce-cart .np-cart-group-remove::after { transform: translate(-50%, -50%) rotate(-45deg); }
.woocommerce-cart .np-cart-group-remove:hover { border-color: var(--np-accent); background: var(--np-accent); }
.woocommerce-cart .np-cart-group-remove:hover::before, .woocommerce-cart .np-cart-group-remove:hover::after { background: var(--np-card-bg); }

/* Enkelt produkt (np-cart-simple): én ren, vertikalt sentrert linje:
   thumb | navn | antall | sum | sirkel-× — samme kontroll-stil som variant-radene. */
.woocommerce-cart .shop_table tr.np-cart-simple {
	grid-template-columns: 80px 1fr auto auto 36px;
	grid-template-areas: "thumb name qty total remove";
	align-items: center; row-gap: 0;
}
.woocommerce-cart .shop_table tr.np-cart-simple .product-thumbnail { align-self: center; }
.woocommerce-cart .shop_table tr.np-cart-simple .product-name { align-self: center; }
.woocommerce-cart .shop_table tr.np-cart-simple .product-price { display: none; } /* enhetspris redundant ved sum */
.woocommerce-cart .shop_table tr.np-cart-simple .product-quantity { grid-area: qty; margin: 0; display: flex; align-items: center; }
.woocommerce-cart .shop_table tr.np-cart-simple .product-quantity .quantity { margin: 0; }
/* Antallsfeltet wrappes i .np-cart-mini-qty av npcw-ux.js → arver [− n +]-stilen
   fra variant-radene (samme høyde/ramme/steppere). */
.woocommerce-cart .shop_table tr.np-cart-simple .product-subtotal { grid-area: total; justify-self: end; align-self: center; }
.woocommerce-cart .shop_table tr.np-cart-simple .product-remove { grid-area: remove; display: flex; align-items: center; justify-content: center; }
/* Default WC-× → samme sirkel som variant-fjern */
.woocommerce-cart .shop_table tr.np-cart-simple .product-remove a.remove {
	display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px;
	border: 1px solid var(--np-faint); border-radius: 50%; background: transparent !important;
	color: transparent !important; font-size: 0 !important; text-decoration: none; position: relative;
	padding: 0; margin: 0; overflow: hidden; transition: .2s;
}
.woocommerce-cart .shop_table tr.np-cart-simple .product-remove a.remove::before,
.woocommerce-cart .shop_table tr.np-cart-simple .product-remove a.remove::after {
	content: ""; position: absolute; width: 12px; height: 1.5px; background: var(--np-text-soft); top: 50%; left: 50%;
	transform: translate(-50%, -50%) rotate(45deg); transition: background .2s ease;
}
.woocommerce-cart .shop_table tr.np-cart-simple .product-remove a.remove::after { transform: translate(-50%, -50%) rotate(-45deg); }
.woocommerce-cart .shop_table tr.np-cart-simple .product-remove a.remove:hover { border-color: var(--np-accent); background: var(--np-accent) !important; }
.woocommerce-cart .shop_table tr.np-cart-simple .product-remove a.remove:hover::before,
.woocommerce-cart .shop_table tr.np-cart-simple .product-remove a.remove:hover::after { background: var(--np-card-bg); }

/* Variant-liste — UL arver Lato/body-ls (målt fasit); LINJENE er Inter */
.woocommerce-cart .np-cart-variants { grid-area: vars; margin-top: 12px; width: 100%; display: flex; flex-direction: column; gap: 0; list-style: none; padding: 0; }
.woocommerce-cart .np-cart-variant-line { display: flex; align-items: center; gap: 16px; padding: 14px 0; border-top: 1px solid var(--np-stone); width: 100%; font-size: .875rem; font-family: var(--np-font-ui); }
.woocommerce-cart .np-cart-variant-size { flex: 0 0 44px; text-align: center; font-family: var(--np-font-head); font-size: .9375rem; font-weight: 700; color: var(--np-text); letter-spacing: .02em; }
.woocommerce-cart .np-cart-variant-qty-wrap { flex: 0 0 auto; }
.woocommerce-cart .np-cart-variant-subtotal { flex: 1 1 auto; text-align: right !important; font-family: var(--np-font-head); font-size: .9375rem; font-weight: 600; color: var(--np-text); white-space: nowrap; }
.woocommerce-cart .np-cart-variant-remove-wrap { flex: 0 0 36px; display: flex; align-items: center; justify-content: center; }

/* Mini-stepper (variant) */
.woocommerce-cart .np-cart-mini-qty { display: inline-flex; align-items: stretch; height: 40px; border: 1.5px solid var(--np-accent); background: var(--np-card-bg); box-sizing: border-box; }
.woocommerce-cart .np-cart-mini-qty .minus, .woocommerce-cart .np-cart-mini-qty .plus { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 100%; background: transparent; border: none; margin: 0; color: var(--np-text); font-family: var(--np-font); font-size: .9375rem; font-weight: 400; cursor: pointer; padding: 0; line-height: 1; }
.woocommerce-cart .np-cart-mini-qty .minus:hover, .woocommerce-cart .np-cart-mini-qty .plus:hover { background: var(--np-stone); }
.woocommerce-cart .np-cart-mini-qty input.qty { width: 56px; height: 100%; border: none; border-left: 1px solid var(--np-border); border-right: 1px solid var(--np-border); margin: 0; text-align: center !important; background: transparent; color: var(--np-text); font-family: var(--np-font-head); font-weight: 700; font-size: .9375rem; padding: 0; -moz-appearance: textfield; box-sizing: border-box; }
.woocommerce-cart .np-cart-mini-qty input.qty::-webkit-outer-spin-button, .woocommerce-cart .np-cart-mini-qty input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* Sirkel-fjern (variant) */
.woocommerce-cart a.np-cart-variant-remove { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border: 1px solid var(--np-faint); border-radius: 50%; background: transparent !important; color: transparent !important; font-size: 0 !important; font-family: var(--np-font-ui); font-weight: 400; letter-spacing: normal; text-decoration: none; padding: 0; margin: 0; position: relative; cursor: pointer; text-indent: -9999px; overflow: hidden; transition: border-color .2s ease, background .2s ease; }
.woocommerce-cart .np-cart-variant-remove::before, .woocommerce-cart .np-cart-variant-remove::after { content: ""; position: absolute; width: 12px; height: 1.5px; background: var(--np-text-soft); top: 50%; left: 50%; transform: translate(-50%, -50%) rotate(45deg); transition: background .2s ease; }
.woocommerce-cart .np-cart-variant-remove::after { transform: translate(-50%, -50%) rotate(-45deg); }
.woocommerce-cart .np-cart-variant-remove:hover { border-color: var(--np-accent); background: var(--np-accent); }
.woocommerce-cart .np-cart-variant-remove:hover::before, .woocommerce-cart .np-cart-variant-remove:hover::after { background: var(--np-card-bg); }

/* Actions-raden skjules helt: kurven oppdateres fortløpende (ingen "Oppdater handlekurv"-knapp).
   Knappen blir liggende i DOM (display:none) slik at WC sin AJAX-handler kan trigges programmatisk. */
.woocommerce-cart .actions { display: none; }
/* Subtil tilbakemelding mens WC-AJAX oppdaterer kurven etter antallsendring */
.woocommerce-cart .np-cart-updating .shop_table { opacity: .5; pointer-events: none; transition: opacity .15s ease; }

/* Totals-boks (matcher WC sin .cart-collaterals .cart_totals-spesifisitet for å overstyre width:48%) */
.woocommerce-cart .cart-collaterals .cart_totals { width: 100%; max-width: 100%; float: none; margin: 0; padding: 24px; background: var(--np-page-bg); border: 1px solid var(--np-border); }
.woocommerce-cart .cart_totals { width: 100%; max-width: 100%; margin: 0; padding: 24px; background: var(--np-page-bg); border: 1px solid var(--np-border); }
/* SYNLIG tittel (fase 3-skjermbildet viser den hos Nikita — harness-proben traff et skjult
   Flatsome-duplikat og sa «skjult»; bildet er fasit) */
.woocommerce-cart .cart_totals h2 { font-family: var(--np-font-head); font-size: .875rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--np-text); margin: 0 0 20px; padding: 0 0 16px; border-bottom: 1px solid var(--np-border); line-height: 1.2; }
.woocommerce-cart .cart_totals { text-align: start !important; }
.woocommerce-cart .cart_totals .shop_table { border: none; margin: 0 0 16px; }
.woocommerce-cart .cart_totals .shop_table tr { display: flex; justify-content: space-between; padding: 6px 0; }
.woocommerce-cart .cart_totals .shop_table th, .woocommerce-cart .cart_totals .shop_table td { display: block; border: none; padding: 4px 0; font-family: var(--np-font-ui); font-size: .9375rem; background: transparent; }
.woocommerce-cart .cart_totals .shop_table th { text-align: left; font-weight: 400; color: var(--np-muted); }
/* Beløpene er SVARTE hos Nikita (Delsum-verdien var grå hos oss — fase 3-funn) */
.woocommerce-cart .cart_totals .shop_table td { text-align: right; color: var(--np-text); }
.woocommerce-cart .cart_totals .shop_table td .woocommerce-Price-amount, .woocommerce-cart .cart_totals .shop_table td bdi { color: var(--np-text); }
.woocommerce-cart .cart_totals .order-total { border-top: 1px solid var(--np-border); margin-top: 8px; padding-top: 12px; }
/* WC-core/Flatsome legger en SEGMENTERT border-top på order-total sin th OG td hver for seg
   (#e9e6ed) — pga space-between rendres de som «linje | hull | linje». Drep dem; den ene
   rene heldekkende streken bor på <tr> (over). !important fordi WC-regelen vinner spesifisitet. */
.woocommerce-cart .cart_totals .order-total th,
.woocommerce-cart .cart_totals .order-total td { border-top: none !important; }
.woocommerce-cart .cart_totals .order-total th, .woocommerce-cart .cart_totals .order-total td { font-family: var(--np-font-head); font-weight: 700; font-size: 1.125rem; color: var(--np-text); }
.woocommerce-cart .cart_totals .wc-proceed-to-checkout { padding: 0; margin: 16px 0 0; }
.woocommerce-cart .cart_totals .checkout-button { width: 100% !important; height: 52px !important; padding: 0 !important; font-size: .8125rem !important; letter-spacing: .1em !important; font-weight: 500 !important; border: 1px solid var(--np-accent) !important; display: flex !important; align-items: center; justify-content: center; }

/* Skjul kupong (B2B bruker ikke) */
.woocommerce-cart .coupon, .woocommerce-cart .woocommerce-form-coupon-toggle, .woocommerce-cart .actions .coupon { display: none; }

@media (max-width: 980px) {
	.woocommerce-cart .woocommerce { grid-template-columns: 1fr; gap: 24px; }
	.woocommerce-cart form.woocommerce-cart-form, .woocommerce-cart .cart-collaterals { grid-column: 1; }
	.woocommerce-cart .cart-collaterals { position: static; }
}
/* Mobil kurv — fasit-MÅLTE verdier 390px (Nikitas CSS-fil lyver; deres ≤720-regler taper):
   qty-boksene beholder desktop-størrelser; tabellen 0.9em; radpadding 20/16; variantlinje gap 10/pad 12 */
@media (max-width: 720px) {
	.woocommerce-cart .shop_table { font-size: .9em; }
	.woocommerce-cart .shop_table tr.np-cart-row { padding: 20px 16px; }
	.woocommerce-cart .np-cart-variant-line { gap: 10px; padding: 12px 0; }
	.woocommerce-cart .np-cart-variant-remove-wrap { text-align: right; }
	/* Fasit-målt mobil: tekstene følger ≤720-reglene, qty-boksene beholder desktop-mål */
	.woocommerce-cart .np-cart-variant-size { flex: 0 0 32px; font-size: .875rem; }
	.woocommerce-cart .np-cart-variant-subtotal { font-size: .875rem; }
	/* Kurv: fasit har content-bredde 358 (padding 24/16) og kolonner med 15px sidepadding — IKKE dobbel container */
	.woocommerce-cart #content { padding: 24px 16px; }
	.woocommerce-cart .np-container--narrow { padding: 0; }
	.woocommerce-cart form.woocommerce-cart-form { padding: 0 31px; }
	.woocommerce-cart .cart-collaterals { padding: 0 15px; }
}

/* WooCommerce sin `shop_table_responsive` slår inn ≤768px og injiserer data-title-
   etiketter (`td::before` = «Produkt:/Pris:/Delsum:»), `text-align:right` og blokk-td
   som KOLLIDERER med vårt grid-baserte kurv-oppsett: etikett-lekkasje, navnekolonne
   klemt til 0 (varer kolliderer), og «Oppdater handlekurv» dukker opp igjen. Vi har
   eget responsivt grid — nøytraliser WC sin responstabell helt. */
@media (max-width: 768px) {
	.woocommerce-cart .shop_table td::before { content: none !important; display: none !important; }
	.woocommerce-cart .shop_table tr.np-cart-row td,
	.woocommerce-cart .shop_table tr.np-cart-simple td { text-align: left !important; }
	.woocommerce-cart .shop_table tr.np-cart-row .product-subtotal,
	.woocommerce-cart .shop_table tr.np-cart-simple .product-subtotal { text-align: right !important; }
	.woocommerce-cart .actions { display: none !important; }
	/* WC sin responstabell skjuler produktbildet (`td.product-thumbnail{display:none}`),
	   men gridet vårt reserverer fortsatt 80px-kolonnen → tom luke. Vis bildet i stedet
	   (bedre gjenkjenning + ingen fantomplass). Bildestørrelse arves fra .np-cart-row-regelen. */
	.woocommerce-cart .shop_table tr.np-cart-row .product-thumbnail,
	.woocommerce-cart .shop_table tr.np-cart-simple .product-thumbnail { display: block !important; }

	/* Enkelt-produkt: 5 kolonner (thumb·navn·antall·sum·fjern) får ikke plass på 390px →
	   navnet klippes og stepperen overlapper. Bryt i 2 rader, som variant-kortet:
	   rad 1 = thumb | navn | sum, rad 2 = thumb | antall | fjern. */
	.woocommerce-cart .shop_table tr.np-cart-simple {
		grid-template-columns: 80px 1fr auto;
		grid-template-areas:
			"thumb name  total"
			"thumb qty   remove";
		row-gap: 14px;
	}
	.woocommerce-cart .shop_table tr.np-cart-simple .product-thumbnail { align-self: start; }
}

/* ============================================================
   KASSE — portet fra nikita-b2b/css/checkout.css (np-* + Woo-shortcode)
   ============================================================ */
.woocommerce-checkout .np-container--narrow { max-width: var(--np-maxw); }

/* 2-kolonne: kundedetaljer venstre (630), sidekolonne høyre (420, sticky) — målt mot Nikita.
   .np-checkout-sidebar = Nikitas Flatsome col-inner has-border: 2px sort ramme + 30px padding
   rundt heading + gråboks + personvern (innerbredde 356, som fasit). Wrapperen åpnes/lukkes
   av hooks i checkout-restrictions.php. */
.woocommerce-checkout form.checkout { display: grid; grid-template-columns: minmax(0, 630px) 420px; justify-content: space-between; grid-template-areas: "details review"; gap: 0 48px; align-items: start; }
.woocommerce-checkout #customer_details { grid-area: details; }
.woocommerce-checkout .np-checkout-sidebar { grid-area: review; border: 2px solid var(--np-accent); padding: 30px; background: transparent; position: sticky; top: calc(var(--np-header-h) + 20px); }
.woocommerce-checkout #order_review_heading { margin-top: 0; }
.woocommerce-checkout .col2-set { display: block; }
.woocommerce-checkout .col2-set .col-1, .woocommerce-checkout .col2-set .col-2 { width: 100%; float: none; max-width: 100%; padding: 0; }
.woocommerce-checkout .woocommerce-shipping-fields { margin-top: 48px; }

/* Seksjons-titler */
.woocommerce-checkout h3, .woocommerce-checkout #order_review_heading {
	font-family: var(--np-font-head); font-size: .875rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--np-text); margin: 0 0 24px; padding: 0 0 12px; border-bottom: 1px solid var(--np-border); line-height: 1.2;
}

/* Felt-grid (4 kolonner) */
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper, .woocommerce-checkout .woocommerce-shipping-fields__field-wrapper { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px 20px; }
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row, .woocommerce-checkout .woocommerce-shipping-fields__field-wrapper > .form-row { width: auto; margin: 0; padding: 0; float: none; grid-column: 1 / -1; display: block; }
/* Halv-felter har 7.5px sidepadding hos Nikita (Flatsome form-row) — gir input 290 i 630-kolonne */
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row-first, .woocommerce-checkout .woocommerce-shipping-fields__field-wrapper > .form-row-first { grid-column: 1 / 3; padding: 0 7.5px; }
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row-last, .woocommerce-checkout .woocommerce-shipping-fields__field-wrapper > .form-row-last { grid-column: 3 / -1; padding: 0 7.5px; }
/* Postnr (smal) + poststed (bred) på samme linje */
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .np-field-postcode, .woocommerce-checkout .woocommerce-shipping-fields__field-wrapper > .np-field-postcode { grid-column: 1 / 2; }
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .np-field-city, .woocommerce-checkout .woocommerce-shipping-fields__field-wrapper > .np-field-city { grid-column: 2 / -1; }

/* Labels (form-element i selektor for å slå WC sin line-height:2-regel) */
.woocommerce-checkout .form-row { color: var(--np-text-soft); }
.woocommerce-checkout form .form-row label, .woocommerce-checkout .form-row label, .woocommerce-checkout label.checkbox { display: block; font-family: var(--np-font-ui); font-size: .75rem; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; color: var(--np-text-soft); margin: 0 0 8px; padding: 0; line-height: 1.2 !important; }
.woocommerce-checkout .form-row label .required, .woocommerce-checkout .form-row label abbr.required { color: var(--np-text); text-decoration: none; font-weight: 700; margin-left: 2px; }
/* «(valgfritt)» — liten, lys, normal sak (nikita checkout.css) */
.woocommerce-checkout .form-row label .optional { color: var(--np-faint); font-style: normal; text-transform: none; letter-spacing: .02em; font-size: .6875rem; font-weight: 400; margin-left: 4px; }

/* Inputs */
.woocommerce-checkout .form-row input.input-text, .woocommerce-checkout .form-row input[type="text"], .woocommerce-checkout .form-row input[type="email"], .woocommerce-checkout .form-row input[type="tel"], .woocommerce-checkout .form-row input[type="password"], .woocommerce-checkout .form-row textarea, .woocommerce-checkout .form-row select, .woocommerce-checkout .select2-container--default .select2-selection--single {
	display: inline-block; width: 100%; height: 48px; padding: 0 16px; margin: 0; border: 1px solid var(--np-border); border-radius: 0; background: var(--np-card-bg); color: var(--np-text); font-family: var(--np-font-ui); font-size: .9375rem; font-weight: 400; line-height: 48px; letter-spacing: normal; box-shadow: none; outline: none; -webkit-appearance: none; appearance: none; transition: border-color .2s ease; box-sizing: border-box;
}
/* Ett-lands-oppsett: WC rendrer landet som <strong> i stedet for select — style som felt-boks (Nikita viser boks) */
.woocommerce-checkout #billing_country_field .woocommerce-input-wrapper > strong,
.woocommerce-checkout #shipping_country_field .woocommerce-input-wrapper > strong {
	display: flex; align-items: center; width: 100%; height: 48px; padding: 0 16px;
	border: 1px solid var(--np-border); background: var(--np-card-bg); color: var(--np-text);
	font-family: var(--np-font-ui); font-size: .9375rem; font-weight: 400; letter-spacing: normal; box-sizing: border-box;
}
/* Land-select eksplisitt (wc-country-select kan re-rendre feltet) — samme boks som inputs */
.woocommerce-checkout select.country_select, .woocommerce-checkout select#billing_country, .woocommerce-checkout select#shipping_country {
	display: block; width: 100%; height: 48px !important; padding: 0 16px !important; margin: 0;
	border: 1px solid var(--np-border) !important; border-radius: 0 !important; background: var(--np-card-bg); color: var(--np-text);
	font-family: var(--np-font-ui) !important; font-size: .9375rem; font-weight: 400; line-height: 48px;
	letter-spacing: normal; box-shadow: none; outline: none; -webkit-appearance: none; appearance: none; box-sizing: border-box;
}
.woocommerce-checkout .form-row textarea { height: auto; min-height: 96px; line-height: 1.5; padding: 12px 16px; resize: vertical; }
.woocommerce-checkout .form-row input:hover, .woocommerce-checkout .form-row textarea:hover, .woocommerce-checkout .form-row select:hover { border-color: var(--np-muted); }
.woocommerce-checkout .form-row input:focus, .woocommerce-checkout .form-row textarea:focus, .woocommerce-checkout .form-row select:focus { border-color: var(--np-accent); }
.woocommerce-checkout .form-row input::placeholder { color: var(--np-faint); opacity: 1; }
.woocommerce-checkout .form-row.woocommerce-invalid input, .woocommerce-checkout .form-row.woocommerce-invalid select { border-color: var(--np-danger); }

/* Ordre-review */
.woocommerce-checkout #order_review { background: var(--np-page-bg); border: 1px solid var(--np-border); padding: 28px; }
.woocommerce-checkout #order_review_heading { font-size: 1rem; letter-spacing: .12em; margin-bottom: 20px; padding-bottom: 16px; }
/* !important på border: WC sin table.shop_table-ramme (1px rgba) lakk gjennom og ga «boks»-utseende */
.woocommerce-checkout .woocommerce-checkout-review-order-table { border: none !important; margin: 0 0 16px; width: 100%; }
.woocommerce-checkout .woocommerce-checkout-review-order-table thead th { font-family: var(--np-font-ui); font-size: .6875rem; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; color: var(--np-muted); background: transparent; border-bottom: 1px solid var(--np-border); padding: 12px 0; text-align: left; }
.woocommerce-checkout .woocommerce-checkout-review-order-table thead th.product-total { text-align: right; }
.woocommerce-checkout .woocommerce-checkout-review-order-table, .woocommerce-checkout .woocommerce-checkout-review-order-table tbody tr { text-align: start !important; }
.woocommerce-checkout .woocommerce-checkout-review-order-table tbody td { padding: 12px 0; border-top: none !important; border-bottom: 1px solid var(--np-border) !important; vertical-align: top; background: transparent; color: var(--np-text); font-family: var(--np-font-ui); font-size: .9375rem; }
.woocommerce-checkout .woocommerce-checkout-review-order-table tbody td.product-total { text-align: right; white-space: nowrap; }
/* tfoot: border-kill m/ !important (WC setter border-top på alle celler), th venstrejustert (WC sentrerer),
   beløp vekt 400 — alt målt mot fasit 2026-06-11 */
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot th, .woocommerce-checkout .woocommerce-checkout-review-order-table tfoot td { padding: 10px 0; border: none !important; background: transparent; font-family: var(--np-font-ui); font-size: .9375rem; }
/* Flatsome-arv hos fasit: th lh 1.05 + letter-spacing normal, td lh 1.3 (målt 2026-06-11).
   !important: WC-kjernens `.woocommerce table.shop_table td` (0,2,2) slår oss ellers på line-height. */
.woocommerce-checkout .woocommerce-checkout-review-order-table th { letter-spacing: normal; line-height: 1.05 !important; }
.woocommerce-checkout .woocommerce-checkout-review-order-table td { line-height: 1.3 !important; }
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot th { text-align: left !important; }
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot td { text-align: right; color: var(--np-text); font-weight: 400; white-space: nowrap; }
/* !important: WC core bolder tfoot-celler med regel som ellers vinner */
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.cart-subtotal td { font-weight: 400 !important; }
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.order-total th, .woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.order-total td { font-family: var(--np-font-head); font-weight: 700; font-size: 1.125rem; border-top: 1px solid var(--np-border) !important; padding-top: 14px; }

/* Betaling */
.woocommerce-checkout #payment { background: transparent; margin: 16px 0 0; padding: 0; border-radius: 0; }
.woocommerce-checkout #payment ul.payment_methods { background: var(--np-card-bg); border: 1px solid var(--np-border); padding: 16px; margin: 0; list-style: none; }
.woocommerce-checkout #payment ul.payment_methods::before { display: none; }
.woocommerce-checkout #payment ul.payment_methods li { background: transparent; padding: 0; margin: 0; border: none; }
.woocommerce-checkout #payment ul.payment_methods li label { font-family: var(--np-font-head); font-weight: 600; font-size: .9375rem; color: var(--np-text); text-transform: none; letter-spacing: -.005em; margin-left: 8px; cursor: pointer; }
/* div.payment_box i selektor: WC sin default-regel (#payment div.payment_box) har element+id-spesifisitet */
.woocommerce-checkout #payment div.payment_box, .woocommerce-checkout #payment .payment_box { background: transparent !important; border: none !important; border-radius: 0 !important; margin: 8px 0 0 !important; padding: 8px 0 0 28px !important; font-family: var(--np-font-ui); font-size: .875rem !important; color: var(--np-text-soft) !important; line-height: 1.5; }
.woocommerce-checkout #payment div.payment_box::before, .woocommerce-checkout #payment .payment_box::before { display: none; }
.woocommerce-checkout #payment .payment_box p { margin: 0; }

/* Place order — 1px sort border + vekt 500 + inline-block (målt fasit).
   Dobbel-ID-selektor: WC har #payment #place_order { display:block } = (2,0,0)-spesifisitet. */
.woocommerce-checkout #payment #place_order,
.woocommerce-checkout #place_order { float: none !important; display: inline-block !important; width: 100%; height: 56px !important; padding: 0 !important; font-size: .875rem !important; font-weight: 500 !important; letter-spacing: .14em !important; margin-top: 12px; border: 1px solid var(--np-accent) !important; line-height: 1; }
.woocommerce-checkout #payment .form-row.place-order { padding: 0; margin: 0; }
.woocommerce-checkout .woocommerce-privacy-policy-text { font-size: .8125rem; line-height: 1.5; color: var(--np-text-soft); margin: 16px 0 0; }

/* Mobil kasse — fasit: content-padding 15, fulle felt 360, INGEN dobbel container */
@media (max-width: 720px) {
	.woocommerce-checkout #content { padding: 0 15px 56px; }
	.woocommerce-checkout .np-container--narrow { padding: 0; }
	.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row-first,
	.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper > .form-row-first,
	.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row-last,
	.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper > .form-row-last { padding: 0; }
	.woocommerce-checkout .woocommerce-checkout-review-order-table,
	.woocommerce-checkout .woocommerce-checkout-review-order-table tbody tr { font-size: .9rem; line-height: 1.6; }
	.woocommerce-checkout .woocommerce-checkout-review-order-table tbody td { font-size: .9rem; line-height: 1.6; }
	.woocommerce-checkout .np-review__name { line-height: 1.3; }
}
@media (max-width: 980px) {
	.woocommerce-checkout form.checkout { grid-template-columns: 1fr; grid-template-areas: "details" "review"; }
	.woocommerce-checkout .np-checkout-sidebar { position: static; margin-top: 24px; }
	.woocommerce-checkout .woocommerce-billing-fields__field-wrapper, .woocommerce-checkout .woocommerce-shipping-fields__field-wrapper { grid-template-columns: repeat(2, 1fr); gap: 14px 12px; }
	.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row-first, .woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row-last { grid-column: 1 / -1; }
}

/* ============================================================
   SINGLE-PRODUKT — portet fra nikita-b2b/css/single-product.css (np-*)
   Hero (bilde 60% / info 40%) + "Mer fra kategorien" (rad-liste).
   ============================================================ */
/* Full bredde: nullstill WC/temaets container på single */
.single-product #content, .single-product .np-container, .single-product .np-container--narrow, .single-product .woocommerce { max-width: none; width: 100%; padding-left: 0; padding-right: 0; margin: 0; }
.single-product .np-main--page, .single-product .np-main { padding: 0; }
/* Skjul WC sin standard single-chrome KUN i liste-modus (liste rendrer egen hero/single).
   Katalog-modus trenger nettopp disse (breadcrumb, meta, faner, relaterte) — derfor scoped. */
.np-layout-liste.single-product .woocommerce-breadcrumb, .np-layout-liste.single-product .product_meta, .np-layout-liste.single-product .woocommerce-tabs, .np-layout-liste.single-product .related.products, .np-layout-liste.single-product .up-sells { display: none; }

.np-product-page { display: block; width: 100%; }
.np-product-hero { background: var(--np-card-bg); width: 100%; border-bottom: 1px solid var(--np-border); }
.np-product-hero__inner { display: flex; align-items: stretch; width: 100%; min-height: 80vh; }
.np-product-hero__media { flex: 0 0 60%; position: relative; overflow: hidden; background: var(--np-stone, #f3f2ef); align-self: stretch; }
.np-product-hero__media img, .np-product-hero__img { width: 100%; height: 100%; object-fit: cover; display: block; margin: 0; transform: scale(1.04); }
.np-product-hero__body { flex: 1; display: flex; flex-direction: column; justify-content: center; gap: 24px; padding: 80px 72px; min-width: 0; }
.np-product-hero__crumbs { font-family: var(--np-font-ui); font-size: .75rem; letter-spacing: .16em; text-transform: uppercase; color: var(--np-muted); display: flex; align-items: center; gap: 10px; }
.np-product-hero__crumbs a { color: var(--np-muted); text-decoration: none; }
.np-product-hero__crumbs a:hover { color: var(--np-text); }
.np-product-hero__crumbs span { color: var(--np-faint); }
.np-product-hero__title { font-family: var(--np-font-head); font-size: clamp(2rem, 4vw, 3.75rem); font-weight: 800; line-height: .98; letter-spacing: -.035em; color: var(--np-text); margin: 0; max-width: 16ch; }
.np-product-hero__desc { font-family: var(--np-font-ui); font-size: 1.0625rem; line-height: 1.6; color: var(--np-text-soft); max-width: 52ch; }
.np-product-hero__desc p { margin: 0 0 .6em; }
.np-product-hero__price { font-family: var(--np-font-head); font-size: 1.75rem; font-weight: 700; color: var(--np-text); letter-spacing: -.01em; margin-top: 8px; }
.np-product-hero__cart { margin-top: 8px; width: 100%; max-width: 540px; }

.np-product-more { background: var(--np-card-bg); padding: 80px 0 40px; width: 100%; }
.np-product-more__head { max-width: var(--np-maxw); margin: 0 auto 32px; padding: 0 40px; }
.np-product-more__head .np-eyebrow { display: block; font-size: .75rem; letter-spacing: .18em; color: var(--np-muted); margin-bottom: 8px; }
.np-product-more__title { font-family: var(--np-font-head); font-size: clamp(1.75rem, 3vw, 2.5rem); font-weight: 800; line-height: 1.1; letter-spacing: -.02em; color: var(--np-text); margin: 0; }
/* ul.products i selektor for å slå `.woocommerce ul.products { display:block }` */
.np-product-more__list, .woocommerce ul.products.np-product-more__list { display: flex; flex-direction: column; gap: 0; list-style: none; margin: 0; padding: 0; max-width: none; }
.np-product-more__list::before, .np-product-more__list::after { display: none; content: none; }

@media (max-width: 850px) {
	.np-product-hero__inner { flex-direction: column; min-height: 0; }
	.np-product-hero__media { flex: none; width: 100%; aspect-ratio: 4/3; }
	.np-product-hero__body { padding: 40px 24px; gap: 20px; }
	.np-product-hero__title { font-size: 2rem; }
	.np-product-more { padding: 56px 0 24px; }
	.np-product-more__head { padding: 0 20px; margin-bottom: 24px; }
}

/* ============================================================
   SCROLL-PROGRESS — 2px hvit linje øverst (portet fra nikita animations.js)
   ============================================================ */
.np-progress { position: fixed; top: 0; left: 0; height: 2px; width: 0; background: var(--np-card-bg); z-index: 9999; transition: width 80ms linear; pointer-events: none; }

/* ============================================================
   KURV: "Fortsett å handle" — sort knapp under varelisten (Nikita)
   ============================================================ */
.np-cart-continue { margin-top: 24px; }
.np-cart-continue .np-cart-continue__btn {
	display: inline-flex; align-items: center; gap: 10px; background: var(--np-accent); color: var(--np-accent-contrast);
	border: 2px solid var(--np-accent); padding: 0 28px; height: 52px; font-family: var(--np-font-ui);
	font-size: .8125rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase;
	text-decoration: none; transition: background .2s ease, color .2s ease;
}
.np-cart-continue .np-cart-continue__btn:hover { background: transparent; color: var(--np-text); }

/* ============================================================
   MOBIL HEADER — burger venstre, logo sentrert, kurv høyre (à la Flatsome/Nikita)
   ============================================================ */
.np-burger { display: none; }
@media (max-width: 900px) {
	.np-site-header__inner { min-height: 80px; padding: 0 16px; gap: 0; flex-wrap: nowrap; display: grid; grid-template-columns: 48px 1fr auto; align-items: center; }
	.np-burger { display: inline-flex; flex-direction: column; justify-content: center; gap: 5px; width: 40px; height: 40px; padding: 8px; background: transparent; border: 0; cursor: pointer; }
	.np-burger span { display: block; height: 2px; width: 100%; background: var(--np-header-text); transition: transform .2s ease, opacity .2s ease; }
	.np-menu-open .np-burger span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
	.np-menu-open .np-burger span:nth-child(2) { opacity: 0; }
	.np-menu-open .np-burger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
	.np-site-header__brand { justify-content: center; }
	.np-site-header__brand img, .np-site-header__brand .custom-logo { height: 44px; }
	.np-site-header__nav { display: none; position: fixed; top: 80px; left: 0; right: 0; bottom: 0; z-index: 49; background: var(--np-accent); padding: 24px; order: 0; width: auto; overflow-y: auto; }
	.np-menu-open .np-site-header__nav { display: block; }
	.np-site-header__nav .np-menu { flex-direction: column; gap: 0; }
	.np-site-header__nav .np-menu a { display: block; padding: 16px 0; font-size: 1rem; border-bottom: 1px solid rgba(255,255,255,.12); color: var(--np-accent-contrast); }
	.np-header-login { display: none; }
	.np-menu-open .np-site-header__nav .np-header-login--mobile { display: block; padding: 16px 0; font-size: 1rem; color: var(--np-accent-contrast); margin: 0; }
	/* Mobil: kun teller-boksen (fasit: lenke-padding 10px, H 56 → teller 36px) */
	.np-cart-link__label, .np-cart-link__sep, .np-cart-link__total { display: none; }
	.np-cart-link { text-transform: none; letter-spacing: inherit; padding: 10px 0; }
	.np-cart-link__count { min-width: 28px; height: 36px; padding: 0 4px; margin-left: 0; }
	.np-site-header__brand { text-align: center; }
	.np-site-header__brand img, .np-site-header__brand .custom-logo { text-align: center; }
}
