/* Nøstehuset: only what theme.json cannot express. */

:root { --nh-radius: 16px; --nh-shadow: 0 18px 40px -26px rgb(42 34 48 / .5); }

body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
h1, h2, h3 { font-optical-sizing: auto; text-wrap: balance; }
p { text-wrap: pretty; }

/* Focus: visible on every surface */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--wp--preset--color--rogn);
	outline-offset: 3px;
	border-radius: 4px;
}
:where(.nh-konsept, .nh-guide, .nh-footer) :focus-visible { outline-color: var(--wp--preset--color--sand); }

/* Concept bar */
.nh-konsept { font-size: var(--wp--preset--font-size--liten); }
.nh-konsept p { margin: 0; }
.nh-konsept a { color: inherit; }
.nh-konsept strong { letter-spacing: .06em; color: var(--wp--preset--color--sand); }

/* Header */
.nh-header { border-bottom: 1px solid var(--wp--preset--color--linje); }
.nh-header .wp-block-navigation a { text-decoration: none; }
.nh-header .wp-block-navigation a:hover { text-decoration: underline; text-underline-offset: 6px; }
.nh-header__right { gap: 1.25rem; }
.nh-logo { display: inline-flex; align-items: center; gap: .6rem; text-decoration: none; color: inherit; font-family: var(--wp--preset--font-family--fraunces); font-weight: 620; font-size: 1.45rem; letter-spacing: -.01em; }
.nh-logo em { font-style: normal; font-weight: 400; color: var(--wp--preset--color--lyng); }
.nh-logo svg { width: 38px; height: 38px; flex: none; }

/* Buttons and cards */
.wp-block-button.is-style-kontur .wp-block-button__link { background: transparent; color: var(--wp--preset--color--lyng-mork); box-shadow: inset 0 0 0 2px currentColor; }
.wp-block-button.is-style-kontur .wp-block-button__link:hover { color: var(--wp--preset--color--rogn); }
.is-style-kort { background: var(--wp--preset--color--kvit); border: 1px solid var(--wp--preset--color--linje); border-radius: var(--nh-radius); padding: clamp(1.25rem, 1rem + 1vw, 2rem); }

.nh-eyebrow { font-size: var(--wp--preset--font-size--liten); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--rogn); margin-bottom: .25rem; }

/* Hero */
.nh-hero h1 { max-width: 12ch; }
.nh-hero__image img { width: 100%; height: auto; }

/* Promises */
.nh-usp__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: .75rem 2rem; font-size: var(--wp--preset--font-size--liten); }
.nh-usp__list li { padding-left: 1.6rem; position: relative; }
.nh-usp__list li::before { content: ""; position: absolute; left: 0; top: .35em; width: .9rem; height: .9rem; border-radius: 50%; background: var(--wp--preset--color--lyng); box-shadow: inset 0 0 0 3px var(--wp--preset--color--sand), 0 0 0 1px var(--wp--preset--color--lyng); }
.nh-usp__list strong { display: block; font-size: var(--wp--preset--font-size--normal); }

/* Category tiles */
.nh-kategorier { gap: 1.25rem; }
.nh-kategori { display: flex; flex-direction: column; gap: .2rem; text-decoration: none; color: inherit; background: var(--wp--preset--color--kvit); border: 1px solid var(--wp--preset--color--linje); border-radius: var(--nh-radius); overflow: hidden; padding-bottom: 1.1rem; transition: box-shadow .2s, transform .2s; }
.nh-kategori img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; margin-bottom: .6rem; }
.nh-kategori__navn { font-family: var(--wp--preset--font-family--fraunces); font-size: 1.4rem; font-weight: 560; padding: 0 1.1rem; }
.nh-kategori__tekst { color: var(--wp--preset--color--dempet); font-size: var(--wp--preset--font-size--liten); padding: 0 1.1rem; }
.nh-kategori:hover { box-shadow: var(--nh-shadow); transform: translateY(-2px); }
.nh-kategori:hover .nh-kategori__navn { text-decoration: underline; text-underline-offset: 5px; }
@media (prefers-reduced-motion: reduce) { .nh-kategori { transition: none; } .nh-kategori:hover { transform: none; } }

/* Guide band and footer */
.nh-guide a:where(:not(.wp-element-button)) { color: var(--wp--preset--color--kvit); }
.nh-footer a { color: var(--wp--preset--color--krem); }
.nh-footer a:hover { color: var(--wp--preset--color--sand); }
.nh-footer .wp-block-list { list-style: none; padding: 0; }
.nh-footer .wp-block-list li { margin: .3rem 0; }
.nh-credits { font-size: var(--wp--preset--font-size--liten); opacity: .85; }

/* WooCommerce: product cards (block and classic loops) */
.woocommerce ul.products li.product, .wc-block-product { text-align: left; }
.woocommerce ul.products li.product a img, .wc-block-components-product-image img, .woocommerce div.product div.images img { border-radius: var(--nh-radius); background: var(--wp--preset--color--sand); }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-family: var(--wp--preset--font-family--fraunces); font-size: 1.25rem; font-weight: 560; padding: .6rem 0 .2rem; }
.woocommerce ul.products li.product .price, .wc-block-components-product-price { color: var(--wp--preset--color--blekk); font-weight: 700; }
.woocommerce ul.products li.product .button, .woocommerce a.button, .woocommerce button.button, .wc-block-components-button:not(.is-link) {
	background: var(--wp--preset--color--lyng); color: var(--wp--preset--color--kvit); border-radius: 999px; font-weight: 700; padding: .65rem 1.2rem;
}
.woocommerce ul.products li.product .button:hover, .woocommerce a.button:hover, .woocommerce button.button:hover { background: var(--wp--preset--color--lyng-mork); color: var(--wp--preset--color--kvit); }
.woocommerce span.onsale, .star-rating, .wc-block-components-product-rating { display: none !important; }
.woocommerce .stock.in-stock { color: var(--wp--preset--color--mose); font-weight: 600; }
.woocommerce .stock.out-of-stock { color: var(--wp--preset--color--rogn); font-weight: 600; }
.woocommerce-breadcrumb, .wc-block-breadcrumbs { font-size: var(--wp--preset--font-size--liten); color: var(--wp--preset--color--dempet); }
.term-description { max-width: 44rem; font-size: var(--wp--preset--font-size--ingress); }

/* Yarn facts and colour swatches (Nøstehuset Core) */
.nh-garnfakta { margin: 1.25rem 0; border: 1px solid var(--wp--preset--color--linje); border-radius: var(--nh-radius); background: var(--wp--preset--color--kvit); padding: .4rem 1.1rem; }
.nh-garnfakta dl { display: grid; grid-template-columns: max-content 1fr; gap: .45rem 1.25rem; margin: .6rem 0; }
.nh-garnfakta dt { font-weight: 700; }
.nh-garnfakta dd { margin: 0; }
.nh-garnfakta__tittel { font-family: var(--wp--preset--font-family--fraunces); font-size: 1.2rem; font-weight: 560; margin: .5rem 0 0; }
.nh-farger { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; padding: 0; margin: .5rem 0 1rem; }
.nh-farger li { display: inline-flex; align-items: center; gap: .4rem; font-size: var(--wp--preset--font-size--liten); background: var(--wp--preset--color--kvit); border: 1px solid var(--wp--preset--color--linje); border-radius: 999px; padding: .25rem .7rem .25rem .3rem; }
.nh-farger li.is-utsolgt { color: var(--wp--preset--color--dempet); text-decoration: line-through; }
.nh-swatch { width: 1.2rem; height: 1.2rem; border-radius: 50%; box-shadow: inset 0 0 0 1px rgb(42 34 48 / .25); flex: none; }

/* The static copy: shopping happens in the interactive demo */
.nh-demo-boks { border: 2px dashed var(--wp--preset--color--lyng); border-radius: var(--nh-radius); padding: 1.1rem 1.25rem; background: var(--wp--preset--color--kvit); margin: 1rem 0; }
.nh-demo-boks p { margin: 0 0 .75rem; }
.nh-demo-boks .wp-element-button, .nh-demo-lenke { display: inline-block; background: var(--wp--preset--color--lyng); color: var(--wp--preset--color--kvit); border-radius: 999px; font-weight: 700; padding: .7rem 1.3rem; text-decoration: none; }
.nh-demo-boks .wp-element-button:hover, .nh-demo-lenke:hover { background: var(--wp--preset--color--lyng-mork); color: var(--wp--preset--color--kvit); }
.nh-handlekurv-lenke { display: inline-flex; align-items: center; gap: .4rem; font-weight: 600; text-decoration: none; color: inherit; }
.nh-handlekurv-lenke svg { width: 26px; height: 26px; }
