/*
Theme Name: Nordic Harmony
Theme URI: https://nordicharmony.dk
Author: Sommer Systems
Author URI: https://sommersystems.com
Description: Custom WooCommerce-tema til Nordic Harmony. Rolig, nordisk æstetik bygget op om produktets to terapier – kold arktisk teal og varm rav – på en birke-hvid baggrund. Fraunces til overskrifter, Manrope til brødtekst. Selv-hostede fonte, ingen eksterne kald.
Version: 1.1.0
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 8.1
License: GNU General Public License v2 or later
Text Domain: nordicharmony
*/

/* ==========================================================================
   1. Designtokens
   ========================================================================== */
:root {
	--nh-bg: #F7F4EF;        /* birk */
	--nh-sand: #EEE8DF;      /* sand – sektionsbånd */
	--nh-white: #FFFFFF;
	--nh-ink: #14201F;       /* dyb gran */
	--nh-ink-2: #34423F;
	--nh-mute: #6B7775;
	--nh-line: rgba(20, 32, 31, .12);
	--nh-line-strong: rgba(20, 32, 31, .28);

	--nh-cold: #2C8EA3;      /* arktisk teal */
	--nh-cold-deep: #1F6B7C;
	--nh-cold-soft: #DCEEF2;
	--nh-warm: #D8743F;      /* rav */
	--nh-warm-deep: #B85A2B;
	--nh-warm-soft: #F7E5D8;

	--nh-serif: "Fraunces", "Iowan Old Style", Georgia, serif;
	--nh-sans: "Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;

	--nh-radius: 20px;
	--nh-radius-sm: 12px;
	--nh-radius-pill: 999px;
	--nh-shadow: 0 20px 50px -20px rgba(20, 32, 31, .28);
	--nh-shadow-sm: 0 8px 24px -12px rgba(20, 32, 31, .25);
	--nh-container: 1240px;
	--nh-gutter: clamp(20px, 4vw, 48px);
	--nh-section: clamp(72px, 10vw, 140px);
	--nh-ease: cubic-bezier(.2, .7, .2, 1);
}

/* ==========================================================================
   2. Fonte (selv-hostede, variable)
   ========================================================================== */
@font-face {
	font-family: "Fraunces";
	font-style: normal;
	font-weight: 300 700;
	font-display: swap;
	src: url("assets/fonts/fraunces-normal-latin.woff2") format("woff2");
}
@font-face {
	font-family: "Fraunces";
	font-style: italic;
	font-weight: 300 700;
	font-display: swap;
	src: url("assets/fonts/fraunces-italic-latin.woff2") format("woff2");
}
@font-face {
	font-family: "Manrope";
	font-style: normal;
	font-weight: 400 800;
	font-display: swap;
	src: url("assets/fonts/manrope-normal-latin.woff2") format("woff2");
}

/* ==========================================================================
   3. Reset & base
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 90px; }
body {
	margin: 0;
	background: var(--nh-bg);
	color: var(--nh-ink);
	font-family: var(--nh-sans);
	font-size: 17px;
	line-height: 1.6;
	font-feature-settings: "ss01", "cv11";
	-webkit-font-smoothing: antialiased;
	overflow-x: clip;
}
img, video { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
p { margin: 0 0 1em; }
ul, ol { margin: 0; padding: 0; }
h1, h2, h3, h4 { margin: 0; font-weight: 500; line-height: 1.1; letter-spacing: -.01em; }
button { font: inherit; color: inherit; cursor: pointer; }
input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 3px solid var(--nh-cold); outline-offset: 3px; border-radius: 4px; }
.nh-skip { position: absolute; left: -999px; top: 8px; background: var(--nh-ink); color: #fff; padding: 10px 16px; border-radius: 8px; z-index: 100; }
.nh-skip:focus { left: 8px; }
.screen-reader-text { position: absolute !important; clip: rect(1px,1px,1px,1px); width: 1px; height: 1px; overflow: hidden; }

.nh-container { width: min(100% - 2 * var(--nh-gutter), var(--nh-container)); margin-inline: auto; }
.nh-container--narrow { max-width: 760px; }

/* Typografi ---------------------------------------------------------- */
.nh-display, .nh-h1, .nh-h2, .nh-h3, .nh-quote {
	font-family: var(--nh-serif);
	font-variation-settings: "opsz" 144, "SOFT" 30;
	font-weight: 450;
	text-wrap: balance;
}
.nh-display { font-size: clamp(2.6rem, 6vw, 4.8rem); line-height: 1.02; letter-spacing: -.025em; }
.nh-h1 { font-size: clamp(2.2rem, 4.5vw, 3.4rem); letter-spacing: -.02em; }
.nh-h2 { font-size: clamp(1.9rem, 3.6vw, 2.8rem); letter-spacing: -.02em; }
.nh-h3 { font-size: clamp(1.35rem, 2.2vw, 1.7rem); }
.nh-display em, .nh-h1 em, .nh-h2 em { font-style: italic; font-weight: 400; color: var(--nh-cold-deep); }
.nh-lead { font-size: clamp(1.05rem, 1.4vw, 1.25rem); color: var(--nh-ink-2); max-width: 56ch; text-wrap: pretty; }
.nh-eyebrow {
	display: inline-flex; align-items: center; gap: 8px;
	font-size: .78rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
	color: var(--nh-cold-deep); margin-bottom: 18px;
}
.nh-eyebrow .nh-icon { width: 16px; height: 16px; }
.nh-eyebrow .nh-icon--flame { color: var(--nh-warm); }
.nh-icon { width: 22px; height: 22px; flex: none; }

/* Knapper -------------------------------------------------------------- */
.nh-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	padding: 15px 26px; border-radius: var(--nh-radius-pill);
	font-weight: 700; font-size: .98rem; line-height: 1; letter-spacing: .01em;
	border: 1.5px solid transparent; transition: transform .25s var(--nh-ease), box-shadow .25s, background .25s, color .25s;
	white-space: nowrap;
}
.nh-btn .nh-icon { width: 18px; height: 18px; }
.nh-btn--primary { background: var(--nh-ink); color: #fff; box-shadow: 0 10px 24px -12px rgba(20,32,31,.6); }
.nh-btn--primary:hover { background: var(--nh-cold-deep); transform: translateY(-2px); box-shadow: 0 16px 30px -12px rgba(31,107,124,.6); }
.nh-btn--warm { background: var(--nh-warm); color: #fff; }
.nh-btn--warm:hover { background: var(--nh-warm-deep); transform: translateY(-2px); }
.nh-btn--ghost { background: transparent; color: var(--nh-ink); border-color: var(--nh-line-strong); }
.nh-btn--ghost:hover { border-color: var(--nh-ink); background: rgba(255,255,255,.6); }
.nh-btn--block { width: 100%; }
.nh-btn__price { padding: 6px 12px; margin: -6px -10px -6px 4px; border-radius: var(--nh-radius-pill); background: rgba(255,255,255,.14); font-weight: 600; }
.nh-btn__price .woocommerce-Price-amount { font-weight: 700; }
.nh-link { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; color: var(--nh-cold-deep); border-bottom: 1.5px solid transparent; transition: border-color .2s, gap .2s; }
.nh-link:hover { border-color: currentColor; gap: 10px; }
.nh-link .nh-icon { width: 18px; height: 18px; }

/* Lister ------------------------------------------------------------ */
.nh-list { list-style: none; display: grid; gap: 10px; }
.nh-list li { display: flex; align-items: flex-start; gap: 10px; }
.nh-list .nh-icon { width: 20px; height: 20px; color: var(--nh-cold); margin-top: 3px; }
.nh-list--tight { gap: 6px; font-size: .95rem; }

/* Accordion ---------------------------------------------------------- */
.nh-acc { border-top: 1px solid var(--nh-line); }
.nh-acc:last-child { border-bottom: 1px solid var(--nh-line); }
.nh-acc summary {
	list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 16px;
	padding: 20px 0; font-family: var(--nh-serif); font-size: 1.2rem; font-weight: 500;
}
.nh-acc summary::-webkit-details-marker { display: none; }
.nh-acc summary::after {
	content: ""; flex: none; width: 28px; height: 28px; border-radius: 50%; border: 1.5px solid var(--nh-line-strong);
	background: center / 12px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M6 1v10M1 6h10' stroke='%2314201F' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
	transition: transform .3s var(--nh-ease), background-color .2s;
}
.nh-acc[open] summary::after { transform: rotate(45deg); background-color: var(--nh-cold-soft); }
.nh-acc__body { padding: 0 0 22px; color: var(--nh-ink-2); max-width: 62ch; }
.nh-acc__body p:last-child { margin-bottom: 0; }
.nh-acc__body ol { padding-left: 20px; display: grid; gap: 8px; }

/* Prosa (sidetekster) ------------------------------------------------ */
.nh-prose { color: var(--nh-ink-2); font-size: 1.05rem; }
.nh-prose--lg { font-size: 1.15rem; }
.nh-prose h2, .nh-prose h3 { font-family: var(--nh-serif); color: var(--nh-ink); margin: 2em 0 .6em; font-weight: 500; }
.nh-prose h2 { font-size: 1.7rem; }
.nh-prose h3 { font-size: 1.3rem; }
.nh-prose p { margin-bottom: 1.2em; }
.nh-prose ul, .nh-prose ol { padding-left: 1.3em; margin-bottom: 1.2em; }
.nh-prose li { margin-bottom: .4em; }
.nh-prose a { color: var(--nh-cold-deep); text-decoration: underline; text-underline-offset: 3px; }
.nh-prose strong { color: var(--nh-ink); }
.nh-prose b { color: var(--nh-ink); font-weight: 700; }

/* ==========================================================================
   4. Topbar + header
   ========================================================================== */
.nh-topbar { background: var(--nh-ink); color: rgba(255,255,255,.85); font-size: .8rem; font-weight: 600; letter-spacing: .02em; overflow: hidden; }
.nh-topbar__track { display: flex; width: max-content; animation: nh-ticker 38s linear infinite; }
.nh-topbar__group { display: flex; gap: 44px; padding: 9px 22px; }
.nh-topbar__group span { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; }
.nh-topbar .nh-icon { width: 15px; height: 15px; color: #8CCBD9; }
@keyframes nh-ticker { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .nh-topbar__track { animation: none; } }

.nh-header {
	position: sticky; top: 0; z-index: 50;
	background: color-mix(in srgb, var(--nh-bg) 82%, transparent);
	backdrop-filter: saturate(160%) blur(14px); -webkit-backdrop-filter: saturate(160%) blur(14px);
	border-bottom: 1px solid transparent; transition: border-color .3s, box-shadow .3s;
}
.nh-header.is-scrolled { border-color: var(--nh-line); box-shadow: 0 10px 30px -20px rgba(20,32,31,.35); }
.nh-header__inner { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; height: 72px; gap: 20px; }
.nh-logo { display: inline-flex; align-items: center; gap: 10px; grid-column: 2; grid-row: 1; }
.nh-logo__word { font-family: var(--nh-sans); font-weight: 700; font-size: 1.35rem; letter-spacing: -.02em; }
.nh-logo__word em { font-style: normal; font-weight: 400; }
.nh-logo__img { height: 36px; width: auto; }
.nh-mark { flex: none; }
.nh-nav { grid-column: 1; grid-row: 1; }
.nh-nav__list { list-style: none; display: flex; gap: 30px; }
.nh-nav__list a { font-weight: 600; font-size: .95rem; position: relative; padding: 6px 0; }
.nh-nav__list a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--nh-cold); transform: scaleX(0); transform-origin: left; transition: transform .3s var(--nh-ease); }
.nh-nav__list a:hover::after, .nh-nav__list .current-menu-item a::after { transform: scaleX(1); }
.nh-header__actions { grid-column: 3; grid-row: 1; display: flex; justify-content: flex-end; gap: 6px; }
.nh-account, .nh-cart { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 50%; position: relative; transition: background .2s; }
.nh-account:hover, .nh-cart:hover { background: rgba(20,32,31,.06); }
.nh-cart__count { position: absolute; top: 4px; right: 2px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: var(--nh-warm); color: #fff; font-size: .7rem; font-weight: 800; display: none; align-items: center; justify-content: center; }
.nh-cart__count.is-visible { display: inline-flex; }
.nh-burger { display: none; grid-column: 1; grid-row: 1; width: 42px; height: 42px; border: 0; background: none; border-radius: 50%; align-items: center; justify-content: center; }
.nh-burger__close { display: none; }
body.nh-nav-open .nh-burger__open { display: none; }
body.nh-nav-open .nh-burger__close { display: block; }

@media (max-width: 900px) {
	.nh-header__inner { height: 64px; grid-template-columns: auto 1fr auto; gap: 8px; }
	.nh-logo { justify-self: center; }
	.nh-burger { display: inline-flex; }
	.nh-header__actions { gap: 0; }
	/* Headeren har backdrop-filter og er derfor containing block – derfor absolute under headeren, ikke fixed. */
	.nh-nav { position: absolute; top: 100%; left: 0; right: 0; height: calc(100dvh - 64px); overflow: auto; background: var(--nh-bg); padding: 24px var(--nh-gutter) 48px; transform: translateY(-8px); opacity: 0; pointer-events: none; transition: opacity .25s, transform .25s var(--nh-ease); z-index: 49; border-top: 1px solid var(--nh-line); }
	body.nh-nav-open .nh-nav { opacity: 1; transform: none; pointer-events: auto; }
	body.nh-nav-open { overflow: hidden; }
	.nh-nav__list { flex-direction: column; gap: 4px; }
	.nh-nav__list a { display: block; padding: 16px 0; font-family: var(--nh-serif); font-size: 1.6rem; font-weight: 500; border-bottom: 1px solid var(--nh-line); }
	.nh-nav__list a::after { display: none; }
}

/* ==========================================================================
   5. Forside
   ========================================================================== */
.nh-hero { position: relative; padding: clamp(40px, 6vw, 90px) 0 clamp(40px, 6vw, 80px); overflow: hidden; }
.nh-hero::before {
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background:
		radial-gradient(60% 60% at 85% 20%, rgba(44,142,163,.16), transparent 70%),
		radial-gradient(50% 50% at 10% 90%, rgba(216,116,63,.14), transparent 70%);
}
.nh-hero__grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(32px, 6vw, 80px); align-items: center; }
.nh-hero__copy .nh-lead { margin: 22px 0 32px; }
.nh-hero__cta { display: flex; flex-wrap: wrap; gap: 14px; }
.nh-hero__note { margin-top: 22px; font-size: .9rem; color: var(--nh-mute); display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.nh-hero__note .nh-icon { width: 16px; height: 16px; color: var(--nh-cold); }
.nh-hero__media { position: relative; }
.nh-arch { border-radius: 300px 300px var(--nh-radius) var(--nh-radius); overflow: hidden; aspect-ratio: 4 / 4.6; box-shadow: var(--nh-shadow); }
.nh-arch img { width: 100%; height: 100%; object-fit: cover; object-position: 55% 68%; transform: scale(1.02); }
.nh-chip {
	position: absolute; display: flex; align-items: center; gap: 10px; padding: 10px 16px 10px 12px;
	background: rgba(255,255,255,.9); backdrop-filter: blur(8px); border-radius: var(--nh-radius-pill);
	box-shadow: var(--nh-shadow-sm); font-size: .88rem; line-height: 1.2;
	animation: nh-float 6s ease-in-out infinite;
}
.nh-chip b { display: block; font-weight: 800; }
.nh-chip .nh-icon { width: 30px; height: 30px; padding: 6px; border-radius: 50%; color: #fff; }
.nh-chip--cold { left: -18px; top: 22%; }
.nh-chip--cold .nh-icon { background: var(--nh-cold); }
.nh-chip--warm { right: -14px; bottom: 16%; animation-delay: -3s; }
.nh-chip--warm .nh-icon { background: var(--nh-warm); }
@keyframes nh-float { 50% { transform: translateY(-8px); } }
@media (prefers-reduced-motion: reduce) { .nh-chip { animation: none; } }

@media (max-width: 900px) {
	.nh-hero__grid { grid-template-columns: 1fr; }
	.nh-hero__media { order: -1; max-width: 460px; margin: 0 auto; width: 100%; }
	.nh-arch { aspect-ratio: 4 / 4.2; border-radius: 200px 200px var(--nh-radius) var(--nh-radius); }
	.nh-chip--cold { left: -6px; }
	.nh-chip--warm { right: -6px; }
	.nh-hero__cta .nh-btn { flex: 1 1 auto; }
}

/* USP'er ------------------------------------------------------------- */
.nh-usps { border-block: 1px solid var(--nh-line); background: rgba(255,255,255,.5); }
.nh-usps__grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.nh-usp { display: flex; gap: 14px; align-items: center; padding: 22px 20px; border-left: 1px solid var(--nh-line); }
.nh-usp:first-child { border-left: 0; padding-left: 0; }
.nh-usp .nh-icon { width: 30px; height: 30px; color: var(--nh-cold-deep); }
.nh-usp strong { display: block; font-size: .95rem; }
.nh-usp span { font-size: .85rem; color: var(--nh-mute); }
@media (max-width: 900px) {
	.nh-usps__grid { grid-template-columns: 1fr 1fr; }
	.nh-usp { padding: 18px 14px; border-left: 0; }
	.nh-usp:nth-child(-n+2) { border-bottom: 1px solid var(--nh-line); }
	.nh-usp:nth-child(2n) { border-left: 1px solid var(--nh-line); }
	.nh-usp:first-child { padding-left: 0; }
}
@media (max-width: 480px) {
	.nh-logo__word { font-size: 1.15rem; }
	.nh-mark { width: 28px; height: 28px; }
	.nh-account, .nh-cart, .nh-burger { width: 38px; height: 38px; }
	.nh-usps__grid { grid-template-columns: 1fr; }
	.nh-usp, .nh-usp:nth-child(2n) { border-left: 0; padding-left: 0; padding-right: 0; border-bottom: 1px solid var(--nh-line); }
	.nh-usp:last-child { border-bottom: 0; }
}

/* Sektioner ---------------------------------------------------------- */
.nh-section { padding-block: var(--nh-section); }
.nh-section--sand { background: var(--nh-sand); }
.nh-section--dark { background: var(--nh-ink); color: #fff; }
.nh-section--dark .nh-eyebrow { color: #8CCBD9; }
.nh-section--dark .nh-h2 em { color: #9AD3DF; }
.nh-section--dark .nh-lead { color: rgba(255,255,255,.75); }
.nh-section__head { max-width: 760px; margin-bottom: clamp(36px, 5vw, 64px); }

/* De to terapier ----------------------------------------------------- */
.nh-duo { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(20px, 3vw, 36px); }
.nh-therapy { display: grid; grid-template-rows: auto 1fr; background: var(--nh-white); border-radius: var(--nh-radius); overflow: hidden; box-shadow: var(--nh-shadow-sm); border: 1px solid var(--nh-line); }
.nh-therapy__media { aspect-ratio: 4 / 3; overflow: hidden; position: relative; }
.nh-therapy__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--nh-ease); }
.nh-therapy:hover .nh-therapy__media img { transform: scale(1.04); }
.nh-therapy__media::after { content: ""; position: absolute; inset: 0; mix-blend-mode: multiply; opacity: .35; }
.nh-therapy--warm .nh-therapy__media::after { background: linear-gradient(180deg, transparent 50%, var(--nh-warm)); }
.nh-therapy--cold .nh-therapy__media::after { background: linear-gradient(180deg, transparent 50%, var(--nh-cold)); }
.nh-therapy--warm .nh-therapy__media img { object-position: 50% 40%; }
.nh-therapy__body { padding: clamp(24px, 3vw, 40px); }
.nh-therapy__body p { color: var(--nh-ink-2); }
.nh-therapy__badge { display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px 6px 8px; border-radius: var(--nh-radius-pill); font-size: .8rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; margin-bottom: 16px; }
.nh-therapy__badge .nh-icon { width: 18px; height: 18px; }
.nh-therapy--warm .nh-therapy__badge { background: var(--nh-warm-soft); color: var(--nh-warm-deep); }
.nh-therapy--cold .nh-therapy__badge { background: var(--nh-cold-soft); color: var(--nh-cold-deep); }
.nh-therapy--warm .nh-list .nh-icon { color: var(--nh-warm); }
.nh-therapy .nh-h3 { margin-bottom: 12px; }
.nh-therapy .nh-list { margin-top: 18px; }
@media (max-width: 760px) { .nh-duo { grid-template-columns: 1fr; } }

/* Video ---------------------------------------------------------------- */
.nh-video { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(32px, 5vw, 72px); align-items: center; }
.nh-video__frame { border-radius: var(--nh-radius); overflow: hidden; box-shadow: 0 40px 80px -30px rgba(0,0,0,.7); border: 1px solid rgba(255,255,255,.1); background: #000; }
.nh-video__frame video { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.nh-stats { display: flex; gap: 32px; margin: 32px 0 0; padding-top: 28px; border-top: 1px solid rgba(255,255,255,.14); }
.nh-stats div { display: grid; gap: 2px; }
.nh-stats dt { font-family: var(--nh-serif); font-size: 2.2rem; font-weight: 400; line-height: 1; color: #9AD3DF; }
.nh-stats dd { margin: 0; font-size: .85rem; color: rgba(255,255,255,.65); }
@media (max-width: 900px) { .nh-video { grid-template-columns: 1fr; } }

/* Fordele ------------------------------------------------------------- */
.nh-benefits { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.nh-benefit { padding: 30px 28px; background: var(--nh-white); border: 1px solid var(--nh-line); border-radius: var(--nh-radius); transition: transform .35s var(--nh-ease), box-shadow .35s; }
.nh-benefit:hover { transform: translateY(-4px); box-shadow: var(--nh-shadow-sm); }
.nh-benefit__icon { display: inline-flex; width: 52px; height: 52px; border-radius: 16px; align-items: center; justify-content: center; background: var(--nh-cold-soft); color: var(--nh-cold-deep); margin-bottom: 20px; }
.nh-benefit:nth-child(3n+2) .nh-benefit__icon { background: var(--nh-warm-soft); color: var(--nh-warm-deep); }
.nh-benefit__icon .nh-icon { width: 26px; height: 26px; }
.nh-benefit h3 { font-family: var(--nh-serif); font-size: 1.3rem; margin-bottom: 8px; }
.nh-benefit p { margin: 0; color: var(--nh-ink-2); font-size: .97rem; }
@media (max-width: 900px) { .nh-benefits { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .nh-benefits { grid-template-columns: 1fr; } }

/* Produkt-spotlight --------------------------------------------------- */
.nh-spot { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(24px, 4vw, 56px); align-items: center; }
.nh-spot__media { border-radius: var(--nh-radius); overflow: hidden; aspect-ratio: 4 / 3; box-shadow: var(--nh-shadow); }
.nh-spot__media img { width: 100%; height: 100%; object-fit: cover; }
.nh-spot__card { background: var(--nh-white); border-radius: var(--nh-radius); padding: clamp(28px, 4vw, 48px); border: 1px solid var(--nh-line); box-shadow: var(--nh-shadow-sm); }
.nh-spot__price { font-family: var(--nh-serif); font-size: 2.2rem; margin: 14px 0 18px; }
.nh-spot__price small { font-family: var(--nh-sans); font-size: .85rem; color: var(--nh-mute); margin-left: 6px; }
.nh-spot__form { margin: 24px 0 14px; }
.nh-spot__trust { display: flex; gap: 8px; align-items: center; margin: 16px 0 0; font-size: .85rem; color: var(--nh-mute); }
.nh-spot__trust .nh-icon { width: 18px; height: 18px; color: var(--nh-cold); }
@media (max-width: 900px) { .nh-spot { grid-template-columns: 1fr; } }

/* FAQ ----------------------------------------------------------------- */
.nh-faq { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(32px, 5vw, 80px); }
.nh-faq__head { position: sticky; top: 100px; align-self: start; }
.nh-faq__head p { color: var(--nh-ink-2); margin-top: 14px; }
@media (max-width: 860px) { .nh-faq { grid-template-columns: 1fr; } .nh-faq__head { position: static; } }

/* Om os (forside) ----------------------------------------------------- */
.nh-about { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 5vw, 80px); align-items: center; }
.nh-about__media { border-radius: 300px 300px var(--nh-radius) var(--nh-radius); overflow: hidden; aspect-ratio: 4 / 4.4; box-shadow: var(--nh-shadow); }
.nh-about__media img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 45%; }
.nh-about__quote { margin: 0; }
.nh-quote { font-size: clamp(1.5rem, 2.6vw, 2.1rem); line-height: 1.25; font-style: italic; font-weight: 400; margin-bottom: 20px; }
.nh-about__quote footer { color: var(--nh-mute); font-size: .95rem; margin-bottom: 28px; }
@media (max-width: 860px) { .nh-about { grid-template-columns: 1fr; } .nh-about__media { max-width: 420px; } }

/* Nyhedsbrev ---------------------------------------------------------- */
.nh-newsletter { padding-block: clamp(56px, 7vw, 100px); }
.nh-newsletter__inner { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 5vw, 72px); align-items: center; padding: clamp(28px, 4vw, 56px); border-radius: var(--nh-radius); background: linear-gradient(120deg, var(--nh-cold-soft), var(--nh-warm-soft)); border: 1px solid rgba(255,255,255,.7); }
.nh-newsletter__inner p { color: var(--nh-ink-2); margin: 0; }
.nh-newsletter__inner .nh-h2 { margin-bottom: 10px; font-size: clamp(1.6rem, 2.8vw, 2.2rem); }
.nh-newsletter__form { display: grid; gap: 10px; }
.nh-newsletter__form .nh-nl-row { display: flex; gap: 8px; }
.nh-newsletter__form .nh-nl-row > p { flex: 1; margin: 0; }
.nh-newsletter__form input[type="email"] { width: 100%; height: 54px; padding: 0 20px; border-radius: var(--nh-radius-pill); border: 1.5px solid rgba(20,32,31,.15); background: #fff; }
.nh-newsletter__form .wpcf7-submit { height: 54px; padding: 0 26px; border: 0; border-radius: var(--nh-radius-pill); background: var(--nh-ink); color: #fff; font-weight: 700; white-space: nowrap; }
.nh-newsletter__form .wpcf7-submit:hover { background: var(--nh-cold-deep); }
.nh-newsletter__form small { font-size: .8rem; color: var(--nh-mute); }
@media (max-width: 860px) { .nh-newsletter__inner { grid-template-columns: 1fr; } .nh-newsletter__form .nh-nl-row { flex-direction: column; } }

/* Reveal ------------------------------------------------------------- */
.nh-reveal { opacity: 0; transform: translateY(18px); transition: opacity .7s var(--nh-ease), transform .7s var(--nh-ease); }
.nh-reveal.is-in { opacity: 1; transform: none; }
.nh-benefits .nh-benefit:nth-child(2) { transition-delay: .08s; }
.nh-benefits .nh-benefit:nth-child(3) { transition-delay: .16s; }
.nh-therapy--cold { transition-delay: .12s; }

/* ==========================================================================
   6. Sider
   ========================================================================== */
.nh-page-head { padding: clamp(40px, 6vw, 80px) 0 clamp(24px, 4vw, 48px); }
.nh-page-head .nh-lead { margin-top: 16px; }
.nh-page-head--center { text-align: center; max-width: 900px; }
.nh-page-head--center .nh-lead { margin-inline: auto; }
.nh-page .nh-prose { padding-bottom: var(--nh-section); }
.nh-page__thumb { margin-bottom: 40px; }
.nh-page__thumb img { border-radius: var(--nh-radius); }
.nh-404 { text-align: center; padding: var(--nh-section) 0; max-width: 700px; }
.nh-404 .nh-lead { margin: 20px auto 30px; }
.nh-404 .nh-hero__cta { justify-content: center; }

/* Kontakt ------------------------------------------------------------- */
.nh-contact__grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: clamp(28px, 5vw, 72px); padding-bottom: var(--nh-section); align-items: start; }
.nh-contact__card { background: var(--nh-white); border: 1px solid var(--nh-line); border-radius: var(--nh-radius); padding: clamp(24px, 3vw, 36px); position: sticky; top: 100px; }
.nh-contact__card .nh-h3 { margin-bottom: 20px; }
.nh-contact__list { list-style: none; display: grid; gap: 20px; }
.nh-contact__list li { display: flex; gap: 14px; }
.nh-contact__list .nh-icon { color: var(--nh-cold-deep); margin-top: 2px; }
.nh-contact__list strong { display: block; font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; color: var(--nh-mute); margin-bottom: 2px; }
.nh-contact__list a { font-weight: 700; color: var(--nh-ink); }
.nh-contact__list small { display: block; color: var(--nh-mute); margin-top: 4px; font-size: .85rem; }
.nh-contact__usps { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 26px; padding-top: 22px; border-top: 1px solid var(--nh-line); }
.nh-contact__usps span { display: inline-flex; gap: 6px; align-items: center; font-size: .8rem; font-weight: 700; padding: 6px 12px; border-radius: var(--nh-radius-pill); background: var(--nh-bg); }
.nh-contact__usps .nh-icon { width: 16px; height: 16px; color: var(--nh-cold); }
@media (max-width: 860px) { .nh-contact__grid { grid-template-columns: 1fr; } .nh-contact__card { position: static; } }

/* Contact Form 7 -------------------------------------------------------- */
.nh-form { display: grid; gap: 18px; }
.nh-form .nh-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.nh-form label { display: grid; gap: 6px; font-size: .85rem; font-weight: 700; letter-spacing: .02em; }
.nh-form .wpcf7-form-control-wrap { display: block; }
.nh-form input:not([type="submit"]), .nh-form textarea, .nh-form select {
	width: 100%; padding: 14px 16px; border-radius: var(--nh-radius-sm); border: 1.5px solid var(--nh-line-strong); background: var(--nh-white); font-weight: 500; transition: border-color .2s, box-shadow .2s;
}
.nh-form input:focus, .nh-form textarea:focus { outline: none; border-color: var(--nh-cold); box-shadow: 0 0 0 4px var(--nh-cold-soft); }
.nh-form textarea { min-height: 160px; resize: vertical; }
.nh-form .wpcf7-submit { justify-self: start; padding: 16px 30px; border: 0; border-radius: var(--nh-radius-pill); background: var(--nh-ink); color: #fff; font-weight: 700; }
.nh-form .wpcf7-submit:hover { background: var(--nh-cold-deep); }
.nh-form .wpcf7-not-valid-tip { font-size: .8rem; color: var(--nh-warm-deep); font-weight: 600; }
.wpcf7 form .wpcf7-response-output { margin: 16px 0 0; padding: 14px 18px; border: 1.5px solid var(--nh-line-strong); border-radius: var(--nh-radius-sm); font-size: .95rem; }
.wpcf7 form.sent .wpcf7-response-output { border-color: var(--nh-cold); background: var(--nh-cold-soft); }
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.failed .wpcf7-response-output { border-color: var(--nh-warm); background: var(--nh-warm-soft); }
.wpcf7-spinner { display: none; }
@media (max-width: 600px) { .nh-form .nh-form__row { grid-template-columns: 1fr; } }

/* Om os (side) ---------------------------------------------------------- */
.nh-aboutpage__hero { border-radius: var(--nh-radius); overflow: hidden; aspect-ratio: 21 / 9; box-shadow: var(--nh-shadow); margin-bottom: clamp(40px, 6vw, 80px); }
.nh-aboutpage__hero img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; }
.nh-aboutpage__grid { display: grid; grid-template-columns: .7fr 1.3fr; gap: clamp(32px, 5vw, 80px); padding-bottom: var(--nh-section); align-items: start; }
.nh-values { position: sticky; top: 100px; background: var(--nh-white); border: 1px solid var(--nh-line); border-radius: var(--nh-radius); padding: 28px; }
.nh-values .nh-h3 { margin-bottom: 18px; }
.nh-values ul { list-style: none; display: grid; gap: 16px; }
.nh-values li { display: grid; gap: 2px; padding-left: 16px; border-left: 3px solid var(--nh-cold); }
.nh-values li:nth-child(2) { border-color: var(--nh-warm); }
.nh-values li:nth-child(3) { border-color: var(--nh-ink); }
.nh-values span { font-size: .92rem; color: var(--nh-ink-2); }
.nh-aboutpage .nh-prose--lg > p:first-child { font-family: var(--nh-serif); font-size: 1.5rem; line-height: 1.35; color: var(--nh-ink); }
@media (max-width: 860px) { .nh-aboutpage__grid { grid-template-columns: 1fr; } .nh-values { position: static; } .nh-aboutpage__hero { aspect-ratio: 4 / 3; } }

/* Blog-kort ----------------------------------------------------------- */
.nh-posts { display: grid; gap: 20px; padding-bottom: var(--nh-section); }
.nh-post-card { padding: 28px; background: var(--nh-white); border: 1px solid var(--nh-line); border-radius: var(--nh-radius); }
.nh-post-card time { font-size: .8rem; color: var(--nh-mute); }
.nh-post-card p { color: var(--nh-ink-2); margin: 8px 0 0; }

/* ==========================================================================
   7. Footer
   ========================================================================== */
.nh-footer { background: var(--nh-ink); color: rgba(255,255,255,.78); padding: clamp(56px, 7vw, 96px) 0 32px; }
.nh-footer__grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1.2fr; gap: 40px; padding-bottom: 48px; border-bottom: 1px solid rgba(255,255,255,.12); }
.nh-footer .nh-logo { color: #fff; margin-bottom: 18px; }
.nh-footer__brand p { max-width: 38ch; font-size: .95rem; }
.nh-footer h3 { font-family: var(--nh-sans); font-size: .8rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: #fff; margin-bottom: 18px; }
.nh-footer__list { list-style: none; display: grid; gap: 10px; font-size: .95rem; }
.nh-footer__list a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.nh-footer__contact li { display: flex; gap: 10px; align-items: flex-start; }
.nh-footer__contact .nh-icon { width: 18px; height: 18px; margin-top: 3px; color: #8CCBD9; }
.nh-footer__contact small { color: rgba(255,255,255,.5); }
.nh-footer__bottom { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; padding-top: 24px; font-size: .82rem; color: rgba(255,255,255,.5); }
.nh-footer__bottom p { margin: 0; }
@media (max-width: 900px) { .nh-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .nh-footer__grid { grid-template-columns: 1fr; gap: 30px; } }

/* Betalingsbadges ----------------------------------------------------- */
.nh-pay { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.nh-pay__badge { display: inline-flex; align-items: center; justify-content: center; height: 28px; min-width: 46px; padding: 0 8px; border-radius: 6px; background: #fff; color: #14201F; font-size: .68rem; font-weight: 800; letter-spacing: .02em; }
.nh-pay__badge--visa { color: #1A1F71; font-style: italic; letter-spacing: .04em; }
.nh-pay__badge--mc { gap: 0; }
.nh-pay__badge--mc i { width: 14px; height: 14px; border-radius: 50%; background: #EB001B; }
.nh-pay__badge--mc i + i { background: #F79E1B; margin-left: -6px; mix-blend-mode: multiply; }
.nh-pay__badge--dk { color: #E2001A; }
.nh-pay__badge--mp { background: #5A78FF; color: #fff; }
.nh-pay__badge--ap { background: #000; color: #fff; }

/* ==========================================================================
   8. WooCommerce
   ========================================================================== */
.nh-wc { padding-bottom: var(--nh-section); }
.nh-wc .nh-page-head { width: min(100% - 2 * var(--nh-gutter), var(--nh-container)); margin-inline: auto; }
.nh-wc .product, .nh-wc .products, .nh-wc .woocommerce-notices-wrapper, .nh-wc .woocommerce-pagination { width: min(100% - 2 * var(--nh-gutter), var(--nh-container)); margin-inline: auto; }
.nh-page-head--wc { padding-bottom: 8px; }

/* Notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-notice {
	list-style: none; display: flex; flex-wrap: wrap; align-items: center; gap: 12px; justify-content: space-between;
	padding: 16px 20px; margin: 24px auto; border-radius: var(--nh-radius-sm); border: 1.5px solid var(--nh-cold); background: var(--nh-cold-soft); font-weight: 600;
}
.woocommerce-error { border-color: var(--nh-warm); background: var(--nh-warm-soft); flex-direction: column; align-items: flex-start; }
.woocommerce-message .button, .woocommerce-info .button { order: 2; }
.woocommerce-notices-wrapper:empty { display: none; }

/* Knapper i Woo */
.woocommerce .button, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button, .woocommerce #respond input#submit, .nh-wc .button, .nh-wc button[type="submit"], .woocommerce-MyAccount-content .button {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 14px 24px; border-radius: var(--nh-radius-pill);
	background: var(--nh-ink); color: #fff; border: 1.5px solid var(--nh-ink); font-weight: 700; font-size: .95rem; line-height: 1; text-decoration: none; transition: background .2s, transform .2s;
}
.woocommerce .button:hover, .nh-wc .button:hover, .nh-wc button[type="submit"]:hover { background: var(--nh-cold-deep); border-color: var(--nh-cold-deep); color: #fff; transform: translateY(-1px); }
.woocommerce .button.alt, .nh-wc .single_add_to_cart_button, .nh-wc #place_order, .nh-wc .checkout-button { background: var(--nh-warm); border-color: var(--nh-warm); font-size: 1.02rem; padding: 17px 30px; }
.woocommerce .button.alt:hover, .nh-wc .single_add_to_cart_button:hover, .nh-wc #place_order:hover, .nh-wc .checkout-button:hover { background: var(--nh-warm-deep); border-color: var(--nh-warm-deep); }
.nh-wc .button:disabled, .nh-wc .button.disabled { opacity: .5; cursor: not-allowed; transform: none; }

/* Formularfelter i Woo */
.nh-wc .input-text, .nh-wc select, .nh-wc textarea, .nh-wc .select2-container--default .select2-selection--single {
	width: 100%; min-height: 50px; padding: 12px 16px; border-radius: var(--nh-radius-sm); border: 1.5px solid var(--nh-line-strong); background: var(--nh-white); transition: border-color .2s, box-shadow .2s;
}
.nh-wc .input-text:focus, .nh-wc select:focus, .nh-wc textarea:focus { outline: none; border-color: var(--nh-cold); box-shadow: 0 0 0 4px var(--nh-cold-soft); }
.nh-wc .select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 24px; padding: 0; }
.nh-wc .select2-container--default .select2-selection--single .select2-selection__arrow { top: 12px; right: 10px; }
.nh-wc .form-row { margin: 0 0 16px; }
.nh-wc .form-row label { display: block; font-size: .85rem; font-weight: 700; margin-bottom: 6px; }
.nh-wc .form-row .required { color: var(--nh-warm); text-decoration: none; }
.nh-wc .form-row.woocommerce-invalid .input-text { border-color: var(--nh-warm); }
.nh-wc .form-row-first, .nh-wc .form-row-last { width: calc(50% - 8px); display: inline-block; vertical-align: top; }
.nh-wc .form-row-first { margin-right: 16px; }
.nh-wc .woocommerce-input-wrapper { display: block; }
.nh-wc .password-input { display: block; position: relative; }
.nh-wc .show-password-input { position: absolute; right: 14px; top: 14px; width: 20px; height: 20px; cursor: pointer; }
.nh-wc .show-password-input::before { content: "👁"; }
@media (max-width: 600px) { .nh-wc .form-row-first, .nh-wc .form-row-last { width: 100%; margin-right: 0; } }

/* Priser */
.woocommerce-Price-amount { white-space: nowrap; }
.price del { color: var(--nh-mute); font-weight: 400; margin-right: 8px; }
.price ins { text-decoration: none; }

/* Shop-grid --------------------------------------------------------- */
.nh-wc ul.products { list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 12px; }
.nh-wc ul.products li.product { display: flex; flex-direction: column; background: var(--nh-white); border: 1px solid var(--nh-line); border-radius: var(--nh-radius); overflow: hidden; transition: transform .35s var(--nh-ease), box-shadow .35s; }
.nh-wc ul.products li.product:hover { transform: translateY(-4px); box-shadow: var(--nh-shadow-sm); }
.nh-wc ul.products li.product .woocommerce-loop-product__link { display: block; }
.nh-wc ul.products li.product img { aspect-ratio: 4 / 5; object-fit: cover; width: 100%; }
.nh-wc ul.products li.product .woocommerce-loop-product__title { font-family: var(--nh-serif); font-size: 1.25rem; padding: 20px 22px 4px; }
.nh-wc ul.products li.product .price { padding: 0 22px; font-weight: 700; }
.nh-wc ul.products li.product .button { margin: 16px 22px 22px; align-self: flex-start; }
.nh-wc ul.products li.product .onsale { position: absolute; left: 14px; top: 14px; padding: 6px 12px; border-radius: var(--nh-radius-pill); background: var(--nh-warm); color: #fff; font-size: .75rem; font-weight: 800; }
.nh-wc ul.products li.product .woocommerce-loop-product__link { position: relative; }
@media (max-width: 900px) { .nh-wc ul.products { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .nh-wc ul.products { grid-template-columns: 1fr; } }

/* Produktside ------------------------------------------------------- */
.nh-product-top { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(28px, 5vw, 72px); padding-top: clamp(28px, 4vw, 56px); align-items: start; }
.nh-product-top > .woocommerce-product-gallery { grid-column: 1; grid-row: 1; position: relative; }
.nh-product-top > .summary { grid-column: 2; grid-row: 1; position: sticky; top: 96px; }
.nh-wc .woocommerce-product-gallery__wrapper { margin: 0; }
.nh-wc .woocommerce-product-gallery__image { border-radius: var(--nh-radius); overflow: hidden; }
.nh-wc .woocommerce-product-gallery__image img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.nh-wc .woocommerce-product-gallery__trigger { position: absolute; right: 14px; top: 14px; z-index: 5; width: 42px; height: 42px; border-radius: 50%; background: rgba(255,255,255,.9); display: flex; align-items: center; justify-content: center; text-indent: -999px; overflow: hidden; }
.nh-wc .woocommerce-product-gallery__trigger::before { content: ""; position: absolute; inset: 0; background: center / 18px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2314201F' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-4-4M11 8v6M8 11h6'/%3E%3C/svg%3E"); }
.nh-wc .flex-control-thumbs { list-style: none; display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; margin-top: 12px; }
.nh-wc .flex-control-thumbs li img { border-radius: var(--nh-radius-sm); aspect-ratio: 1; object-fit: cover; cursor: pointer; opacity: .55; border: 2px solid transparent; transition: opacity .2s, border-color .2s; }
.nh-wc .flex-control-thumbs li img.flex-active, .nh-wc .flex-control-thumbs li img:hover { opacity: 1; border-color: var(--nh-cold); }
.nh-wc .product.type-product .summary .product_title { font-family: var(--nh-serif); font-size: clamp(1.9rem, 3.4vw, 2.7rem); font-weight: 450; letter-spacing: -.02em; margin-bottom: 14px; }
.nh-wc .product.type-product .summary .price { font-family: var(--nh-serif); font-size: 2rem; font-weight: 400; margin-bottom: 18px; display: flex; align-items: baseline; gap: 10px; }
.nh-wc .product.type-product .summary .price::after { content: "inkl. moms · fri fragt"; font-family: var(--nh-sans); font-size: .82rem; color: var(--nh-mute); }
.nh-wc .woocommerce-product-details__short-description { color: var(--nh-ink-2); margin-bottom: 24px; }
.nh-wc .woocommerce-product-details__short-description br + br { display: none; }
.nh-wc form.cart { display: flex; gap: 12px; align-items: stretch; margin-bottom: 26px; }
.nh-wc form.cart .quantity { display: flex; align-items: center; border: 1.5px solid var(--nh-line-strong); border-radius: var(--nh-radius-pill); background: #fff; padding: 0 8px; }
.nh-wc form.cart .quantity .qty { width: 58px; text-align: center; border: 0; background: none; font-weight: 700; font-size: 1rem; -moz-appearance: textfield; }
.nh-wc form.cart .quantity .qty::-webkit-inner-spin-button { opacity: 1; }
.nh-wc form.cart .single_add_to_cart_button { flex: 1; }
.nh-wc .stock { font-size: .9rem; font-weight: 700; color: var(--nh-cold-deep); margin-bottom: 12px; }
.nh-wc .stock.out-of-stock { color: var(--nh-warm-deep); }
.nh-product-usps { list-style: none; display: grid; gap: 10px; padding: 22px 0 0; border-top: 1px solid var(--nh-line); font-size: .92rem; color: var(--nh-ink-2); }
.nh-product-usps li { display: flex; gap: 10px; align-items: center; }
.nh-product-usps .nh-icon { width: 20px; height: 20px; color: var(--nh-cold-deep); }
.summary .nh-pay { margin-top: 20px; }
.summary .nh-pay__badge { border: 1px solid var(--nh-line); }
.nh-product-details { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 5vw, 80px); margin-top: clamp(48px, 7vw, 96px); padding-top: clamp(40px, 5vw, 64px); border-top: 1px solid var(--nh-line); }
.nh-product-details .nh-h2 { margin-bottom: 18px; }
@media (max-width: 900px) {
	.nh-product-top { grid-template-columns: 1fr; }
	.nh-product-top > .summary { grid-column: 1; grid-row: 2; position: static; }
	.nh-product-details { grid-template-columns: 1fr; }
}

/* Kurv -------------------------------------------------------------- */
.nh-wc .woocommerce-cart-form { margin-top: 12px; }
.nh-wc .shop_table { width: 100%; border-collapse: collapse; background: var(--nh-white); border: 1px solid var(--nh-line); border-radius: var(--nh-radius); overflow: hidden; }
.nh-wc .shop_table th, .nh-wc .shop_table td { padding: 18px 16px; text-align: left; border-bottom: 1px solid var(--nh-line); vertical-align: middle; }
.nh-wc .shop_table thead th { font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; color: var(--nh-mute); background: var(--nh-bg); }
.nh-wc .shop_table tbody tr:last-child td { border-bottom: 0; }
.nh-wc .shop_table .product-thumbnail img { width: 72px; border-radius: var(--nh-radius-sm); }
.nh-wc .shop_table .product-name a { font-weight: 700; }
.nh-wc .shop_table .product-remove a { display: inline-flex; width: 30px; height: 30px; border-radius: 50%; align-items: center; justify-content: center; color: var(--nh-mute); border: 1px solid var(--nh-line); font-weight: 700; text-decoration: none; }
.nh-wc .shop_table .product-remove a:hover { color: #fff; background: var(--nh-warm); border-color: var(--nh-warm); }
.nh-wc .shop_table .quantity { display: inline-flex; border: 1.5px solid var(--nh-line-strong); border-radius: var(--nh-radius-pill); padding: 0 6px; }
.nh-wc .shop_table .quantity .qty { width: 54px; text-align: center; border: 0; background: none; font-weight: 700; padding: 8px 0; }
.nh-wc .shop_table td.actions { background: var(--nh-bg); text-align: right; }
.nh-wc .shop_table td.actions::after { content: ""; display: table; clear: both; }
.nh-wc .shop_table td.actions .coupon { float: left; display: flex; gap: 8px; }
.nh-wc .shop_table td.actions .coupon .input-text { min-height: 46px; width: 200px; }
.nh-wc .shop_table td.actions .coupon .button, .nh-wc .shop_table td.actions > .button { background: transparent; color: var(--nh-ink); border-color: var(--nh-line-strong); }
.nh-wc .shop_table td.actions > .button:hover { background: var(--nh-ink); color: #fff; }
.nh-wc .cart-collaterals { margin-top: 24px; display: flex; justify-content: flex-end; }
.nh-wc .cart_totals { width: 100%; max-width: 440px; background: var(--nh-white); border: 1px solid var(--nh-line); border-radius: var(--nh-radius); padding: 26px; }
.nh-wc .cart_totals h2 { font-family: var(--nh-serif); font-size: 1.5rem; margin-bottom: 14px; }
.nh-wc .cart_totals .shop_table { border: 0; border-radius: 0; background: none; }
.nh-wc .cart_totals .shop_table th, .nh-wc .cart_totals .shop_table td { padding: 12px 0; }
.nh-wc .cart_totals .order-total td, .nh-wc .cart_totals .order-total th { font-size: 1.15rem; font-weight: 800; border-bottom: 0; }
.nh-wc .cart_totals .woocommerce-shipping-methods, .nh-wc .woocommerce-checkout-review-order-table .woocommerce-shipping-methods { list-style: none; display: grid; gap: 8px; }
.nh-wc .woocommerce-shipping-methods li { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.nh-wc .woocommerce-shipping-methods label { margin: 0; cursor: pointer; flex: 1 1 0; min-width: 0; }
.nh-wc .woocommerce-shipping-methods input[type="radio"] { flex: none; }
.nh-wc .woocommerce-shipping-methods input[type="radio"] { accent-color: var(--nh-cold-deep); width: 16px; height: 16px; }
.nh-wc .cart_totals .shipping td { text-align: left; }
.nh-wc .woocommerce-shipping-calculator { margin-top: 6px; }
.nh-wc .shipping-calculator-button { font-size: .85rem; font-weight: 700; color: var(--nh-cold-deep); }
.nh-wc .cart_totals .shop_table th { width: 38%; vertical-align: top; }
.nh-wc .wc-proceed-to-checkout { margin-top: 18px; }
.nh-wc .wc-proceed-to-checkout .button { width: 100%; }
.nh-wc .cart-empty { text-align: center; font-family: var(--nh-serif); font-size: 1.6rem; padding-top: 40px; }
.nh-wc .return-to-shop { text-align: center; }
.nh-wc .woocommerce-shipping-destination { font-size: .85rem; color: var(--nh-mute); }
@media (max-width: 760px) {
	.nh-wc .woocommerce-cart-form .shop_table thead { display: none; }
	.nh-wc .woocommerce-cart-form .shop_table tr { display: grid; grid-template-columns: auto 1fr; gap: 6px 14px; padding: 16px; border-bottom: 1px solid var(--nh-line); }
	.nh-wc .woocommerce-cart-form .shop_table td { display: block; padding: 0; border: 0; }
	.nh-wc .woocommerce-cart-form .shop_table td.product-thumbnail { grid-row: 1 / 5; }
	.nh-wc .woocommerce-cart-form .shop_table td.product-remove { grid-column: 2; justify-self: end; }
	.nh-wc .woocommerce-cart-form .shop_table td::before { content: attr(data-title) ": "; font-size: .78rem; color: var(--nh-mute); }
	.nh-wc .woocommerce-cart-form .shop_table td.product-name::before, .nh-wc .woocommerce-cart-form .shop_table td.product-thumbnail::before, .nh-wc .woocommerce-cart-form .shop_table td.product-remove::before, .nh-wc .woocommerce-cart-form .shop_table td.actions::before { content: none; }
	.nh-wc .woocommerce-cart-form .shop_table td.actions { grid-column: 1 / -1; display: grid; gap: 10px; }
	.nh-wc .woocommerce-cart-form .shop_table td.actions .coupon { float: none; }
	.nh-wc .woocommerce-cart-form .shop_table td.actions .coupon .input-text { width: 100%; }
	.nh-wc .cart-collaterals { justify-content: stretch; }
	.nh-wc .cart_totals { max-width: none; }
}

/* Checkout --------------------------------------------------------- */
.nh-wc .woocommerce-checkout { margin-top: 12px; }
.nh-wc .woocommerce-form-coupon-toggle .woocommerce-info { margin-top: 0; }
.nh-wc form.checkout { display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(24px, 4vw, 56px); align-items: start; }
.nh-wc form.checkout #customer_details { display: grid; gap: 28px; }
.nh-wc form.checkout .col-1, .nh-wc form.checkout .col-2 { width: 100%; }
.nh-wc form.checkout h3 { font-family: var(--nh-serif); font-size: 1.5rem; margin-bottom: 18px; }
.nh-wc form.checkout h3 label { font-family: var(--nh-sans); font-size: 1rem; display: flex; gap: 10px; align-items: center; }
.nh-wc form.checkout #order_review_heading { display: none; }
.nh-wc form.checkout #order_review { position: sticky; top: 96px; background: var(--nh-white); border: 1px solid var(--nh-line); border-radius: var(--nh-radius); padding: 26px; }
.nh-wc form.checkout #order_review::before { content: "Din ordre"; display: block; font-family: var(--nh-serif); font-size: 1.5rem; margin-bottom: 14px; }
.nh-wc form.checkout .shop_table { border: 0; border-radius: 0; background: none; }
.nh-wc form.checkout .shop_table th, .nh-wc form.checkout .shop_table td { padding: 12px 0; }
.nh-wc form.checkout .shop_table thead th { background: none; }
.nh-wc form.checkout .shop_table .order-total th, .nh-wc form.checkout .shop_table .order-total td { font-size: 1.15rem; font-weight: 800; border-bottom: 0; }
.nh-wc form.checkout .shop_table .product-quantity { color: var(--nh-mute); font-weight: 400; }
.nh-wc #payment { margin-top: 18px; }
.nh-wc #payment .wc_payment_methods { list-style: none; display: grid; gap: 8px; margin-bottom: 18px; }
.nh-wc #payment .wc_payment_method { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; border: 1.5px solid var(--nh-line); border-radius: var(--nh-radius-sm); padding: 12px 14px; transition: border-color .2s; }
.nh-wc #payment .wc_payment_method:has(input:checked) { border-color: var(--nh-cold); }
.nh-wc #payment .wc_payment_method > input[type="radio"] { margin: 0; width: 18px; height: 18px; accent-color: var(--nh-cold-deep); }
.nh-wc #payment .wc_payment_method > label { flex: 1; display: flex; align-items: center; gap: 6px; font-weight: 700; cursor: pointer; margin: 0; }
.nh-wc #payment .wc_payment_method img { max-height: 24px; width: auto; }
.nh-wc #payment .payment_box { flex-basis: 100%; margin-top: 4px; font-size: .92rem; color: var(--nh-ink-2); background: var(--nh-bg); border-radius: 8px; padding: 12px 14px; }
.nh-wc #payment .payment_box p:last-child { margin: 0; }
.nh-wc #payment .woocommerce-privacy-policy-text { font-size: .82rem; color: var(--nh-mute); }
.nh-wc #payment .woocommerce-terms-and-conditions-wrapper { margin: 14px 0; font-size: .9rem; }
.nh-wc #payment .form-row.place-order { margin: 0; }
.nh-wc #place_order { width: 100%; }
.nh-checkout-trust { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 14px 0 0; font-size: .82rem; color: var(--nh-mute); text-align: center; }
.nh-checkout-trust .nh-icon { width: 16px; height: 16px; color: var(--nh-cold); }
.nh-wc .woocommerce-additional-fields h3 { font-size: 1.2rem; }
.nh-wc .woocommerce-checkout-review-order-table .woocommerce-shipping-methods { list-style: none; }
@media (max-width: 860px) { .nh-wc form.checkout { grid-template-columns: 1fr; } .nh-wc form.checkout #order_review { position: static; } }

/* Ordre modtaget / min konto -------------------------------------- */
.nh-wc .woocommerce-order { margin-top: 24px; }
.nh-wc .woocommerce-thankyou-order-received { font-family: var(--nh-serif); font-size: clamp(1.6rem, 3vw, 2.4rem); margin-bottom: 24px; }
.nh-wc .woocommerce-order-overview { list-style: none; display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 32px; }
.nh-wc .woocommerce-order-overview li { padding: 14px 18px; background: var(--nh-white); border: 1px solid var(--nh-line); border-radius: var(--nh-radius-sm); font-size: .85rem; color: var(--nh-mute); }
.nh-wc .woocommerce-order-overview strong { display: block; color: var(--nh-ink); font-size: 1rem; }
.nh-wc .woocommerce-order-details__title, .nh-wc .woocommerce-column__title { font-family: var(--nh-serif); font-size: 1.4rem; margin: 30px 0 14px; }
.nh-wc .woocommerce-customer-details address { font-style: normal; padding: 18px; background: var(--nh-white); border: 1px solid var(--nh-line); border-radius: var(--nh-radius-sm); }
.nh-wc .woocommerce-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.nh-wc .woocommerce-MyAccount-navigation { margin-top: 12px; }
.nh-wc .woocommerce-MyAccount-navigation ul { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; padding-bottom: 20px; border-bottom: 1px solid var(--nh-line); }
.nh-wc .woocommerce-MyAccount-navigation a { display: inline-block; padding: 8px 16px; border-radius: var(--nh-radius-pill); border: 1px solid var(--nh-line); font-weight: 600; font-size: .9rem; }
.nh-wc .woocommerce-MyAccount-navigation .is-active a { background: var(--nh-ink); color: #fff; border-color: var(--nh-ink); }
.nh-wc .woocommerce-MyAccount-content { margin-top: 28px; }
.nh-wc .woocommerce-MyAccount-content .woocommerce-Address { padding: 18px; background: var(--nh-white); border: 1px solid var(--nh-line); border-radius: var(--nh-radius-sm); }
.nh-wc .woocommerce-MyAccount-content address { font-style: normal; }
.nh-wc form.login, .nh-wc form.register, .nh-wc .woocommerce-ResetPassword { max-width: 480px; margin-top: 16px; padding: 30px; background: var(--nh-white); border: 1px solid var(--nh-line); border-radius: var(--nh-radius); }
.nh-wc form.login .woocommerce-form-login__rememberme { display: flex; gap: 8px; align-items: center; margin-bottom: 14px; }
.nh-wc .woocommerce-LostPassword { font-size: .9rem; margin: 14px 0 0; }
.nh-wc .u-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
@media (max-width: 760px) { .nh-wc .woocommerce-columns, .nh-wc .u-columns { grid-template-columns: 1fr; } }

/* Diverse Woo ------------------------------------------------------- */
.nh-wc .woocommerce-breadcrumb { display: none; }
.blockUI.blockOverlay { border-radius: var(--nh-radius); }
.pswp { z-index: 999 !important; }

/* ==========================================================================
   9. Integrationer: Shipmondo (pakkeshop-vælger) & QuickPay (betalingsikoner)
   ========================================================================== */
.nh-wc .shipmondo-original { flex-basis: 100%; margin: 2px 0 6px 24px; }
.nh-wc .shipmondo_service_point_selection h3.service_point_title { font-family: var(--nh-sans); font-size: .82rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--nh-mute); margin: 0 0 8px; }
.nh-wc .shipmondo_service_point_selection .selected_service_point { border: 1.5px solid var(--nh-line-strong); border-radius: var(--nh-radius-sm); background: var(--nh-white); padding: 12px 40px 12px 14px; transition: border-color .2s, box-shadow .2s; }
.nh-wc .shipmondo_service_point_selection .selected_service_point:hover, .nh-wc .shipmondo_service_point_selection .selected_service_point.selector_open { border-color: var(--nh-cold); box-shadow: 0 0 0 4px var(--nh-cold-soft); background: var(--nh-white); }
.nh-wc .shipmondo_service_point_selection .selected_service_point.has-error { border-color: var(--nh-warm); }
.nh-wc .shipmondo_service_point_selection .service_point .header .name { font-size: .95rem; font-weight: 700; color: var(--nh-ink); }
.nh-wc .shipmondo_service_point_selection .service_point .location { font-size: .85rem; color: var(--nh-ink-2); }
.nh-wc .shipmondo_service_point_selection .service_point .location .distance { color: var(--nh-mute); }
.nh-wc .shipmondo_service_point_selection .service_points_dropdown { border: 1.5px solid var(--nh-line-strong); border-radius: var(--nh-radius-sm); background: var(--nh-white); max-height: 320px; box-shadow: var(--nh-shadow-sm); }
.nh-wc .shipmondo_service_point_selection .service_points_dropdown .service_point { padding: 12px 14px; }
.nh-wc .shipmondo_service_point_selection .service_points_dropdown .service_point:not(:last-child) { border-bottom: 1px solid var(--nh-line); }
.nh-wc .shipmondo_service_point_selection .service_point:hover { background: var(--nh-bg); }
.nh-wc .shipmondo_service_point_selection .service_points_dropdown .service_point.selected { background: var(--nh-cold-soft); }
.nh-wc .shipmondo_service_point_selection .powered_by_shipmondo { font-size: .72rem; color: var(--nh-mute); text-align: right; margin: 6px 0 0; }
.nh-wc .shipmondo_service_point_selection .service_points_dropdown .powered_by_shipmondo { display: none; }
/* Modal-varianten (kræver Google Maps-nøgle) */
.nh-wc .shipmondo_service_point_selection .service_points_modal .shipmondo-modal_content { border-radius: var(--nh-radius); }
.nh-wc .shipmondo_service_point_selection .service_points_modal .shipmondo-modal_header h4 { font-family: var(--nh-serif); font-size: 1.6rem; }

/* QuickPay: kort-ikoner ved betalingsvalg */
.nh-wc #payment .wc_payment_method > label img { display: inline-block; max-height: 22px; width: auto; margin-left: 4px; vertical-align: middle; }
.nh-wc #payment .wc_payment_method > label img:first-of-type { margin-left: auto; }

/* Checkout-ordreboks: tabellen lægges om til flex-rækker, så fragtvalg og
   pakkeshop-vælger kan få hele bredden (en <tr> kan ikke spænde over kolonner). */
.nh-wc form.checkout .woocommerce-checkout-review-order-table, .nh-wc form.checkout .woocommerce-checkout-review-order-table thead, .nh-wc form.checkout .woocommerce-checkout-review-order-table tbody, .nh-wc form.checkout .woocommerce-checkout-review-order-table tfoot { display: block; }
.nh-wc form.checkout .woocommerce-checkout-review-order-table tr { display: flex; justify-content: space-between; align-items: baseline; gap: 14px; padding: 12px 0; border-bottom: 1px solid var(--nh-line); }
.nh-wc form.checkout .woocommerce-checkout-review-order-table th, .nh-wc form.checkout .woocommerce-checkout-review-order-table td { display: block; padding: 0; border: 0; }
.nh-wc form.checkout .woocommerce-checkout-review-order-table th { flex: 1; text-align: left; }
.nh-wc form.checkout .woocommerce-checkout-review-order-table td { text-align: right; }
.nh-wc form.checkout .woocommerce-checkout-review-order-table td.product-name { flex: 1; text-align: left; }
.nh-wc form.checkout .woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals { flex-direction: column; align-items: stretch; gap: 8px; }
.nh-wc form.checkout .woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals td { text-align: left; }
.nh-wc form.checkout .woocommerce-checkout-review-order-table tr.order-total { border-bottom: 0; }
.nh-wc form.checkout .woocommerce-checkout-review-order-table .woocommerce-shipping-methods li { padding: 4px 0; }
