/* =========================================================
   KniTime – finpuss og WooCommerce-styling
   Farger og typografi styres i theme.json / Stiler-panelet.
   ========================================================= */

/* ---------- Varsellinje ---------- */

/* ---------- Klistret topplinje ---------- */

.knitime-header {
	background: var(--wp--preset--color--base);
}

/* ---------- Kategorikort ---------- */

.knitime-card {
	background: var(--wp--preset--color--surface);
	border-radius: 18px;
	overflow: hidden;
	transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.knitime-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 12px 28px color-mix(in srgb, var(--wp--preset--color--contrast) 14%, transparent);
}

.knitime-card__img, .knitime-card__img a, .knitime-card__img img {
	display: block;
	width: 100%;
}

.knitime-card__img img {
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: 0;
}

.knitime-card__title {
	margin: 0;
	padding: 0.8rem 0.5rem 1rem;
	font-size: 1.25rem;
}

.knitime-card__title a {
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
}

.knitime-card__title a:hover {
	opacity: 0.7;
}

/* ---------- App-chips ---------- */

.knitime-chip {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--tint);
	border-radius: 16px;
	padding: 1.1rem 1.2rem;
}

/* ---------- Knappevarianter ---------- */

.wp-block-button.is-style-outline .wp-block-button__link {
	border: 2px solid var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--contrast);
	background: transparent;
}

.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: var(--wp--preset--color--contrast);
	color: #fff;
}

/* ---------- Søkefelt ---------- */

.wp-block-search__input {
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 25%, transparent);
	border-radius: 999px;
	padding: 0.5em 1em;
	background: #fff;
}

.wp-block-search__button {
	border-radius: 999px;
}

/* ---------- Footer ---------- */

.knitime-footer a {
	color: inherit;
	text-decoration: none;
}

.knitime-footer a:hover {
	opacity: 0.7;
}

.knitime-footer-bottom {
	opacity: 0.6;
	font-size: 0.8rem;
}

/* =========================================================
   WooCommerce – klassiske maler i temaets drakt
   ========================================================= */

/* ---------- Produktrutenett (butikk, kategorier, «Nyeste») ---------- */

.woocommerce ul.products, .woocommerce-page ul.products {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
	gap: 1.75rem 1.5rem;
	margin: 0 0 1.5rem;
	padding: 0;
	list-style: none;
}

.woocommerce ul.products::before, .woocommerce ul.products::after, .woocommerce-page ul.products::before, .woocommerce-page ul.products::after {
	content: none;
}

.woocommerce ul.products li.product, .woocommerce-page ul.products li.product {
	float: none !important;
	width: auto !important;
	margin: 0 !important;
	text-align: left;
}

.woocommerce ul.products li.product a img {
	border-radius: 16px;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	margin-bottom: 0.75rem;
	transition: transform 0.18s ease;
}

.woocommerce ul.products li.product:hover a img {
	transform: scale(1.02);
}

.woocommerce ul.products li.product .button {
	margin-top: 0.25rem;
}

/* ---------- Tittel og verktøylinje på butikksider ---------- */

.woocommerce-products-header__title.page-title {
	font-size: var(--wp--preset--font-size--x-large);
	margin-bottom: 1.5rem;
}

.woocommerce .woocommerce-result-count {
	color: color-mix(in srgb, var(--wp--preset--color--contrast) 70%, transparent);
	font-size: 0.9375rem;
}

.woocommerce .woocommerce-ordering select {
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 25%, transparent);
	border-radius: 999px;
	padding: 0.45em 2em 0.45em 1em;
	background-color: #fff;
}

/* ---------- Knapper ---------- */

.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit, .woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt, .woocommerce button.button.alt.disabled, .wc-block-components-button:not(.is-link) {
	background-color: var(--wp--preset--color--tint);
	color: #fff;
	border: 2px solid var(--wp--preset--color--tint);
	border-radius: 999px;
	padding: 0.75em 1.5em;
	font-weight: 500;
	font-family: inherit;
	transition: background-color 0.15s ease, color 0.15s ease;
}

.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover, .woocommerce #respond input#submit:hover, .woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .woocommerce input.button.alt:hover, .wc-block-components-button:not(.is-link):hover {
	background-color: #fff;
	color: var(--wp--preset--color--tint);
	border-color: var(--wp--preset--color--tint);
}

/* ---------- Tilbudsmerke ---------- */

.woocommerce span.onsale {
	background: var(--wp--preset--color--accent);
	color: #fff;
	border-radius: 999px;
	min-height: 0;
	min-width: 0;
	line-height: 1;
	padding: 0.5em 0.9em;
	font-weight: 700;
	top: 0.75rem;
	left: 0.75rem;
}

/* ---------- Enkeltprodukt ---------- */

.woocommerce div.product div.images img {
	border-radius: 16px;
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before {
	border-color: color-mix(in srgb, var(--wp--preset--color--contrast) 15%, transparent);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: transparent;
	border: none;
	border-radius: 0;
	margin: 0 1.25rem 0 0;
	padding: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after {
	display: none;
}

/* ---------- Brødsmulesti ---------- */

/* ---------- Stjerner ---------- */

.woocommerce .star-rating span::before, .woocommerce p.stars a {
	color: var(--wp--preset--color--accent);
}

/* ---------- Meldinger og varsler ---------- */

.woocommerce-message, .woocommerce-info, .woocommerce-error {
	border-top-color: var(--wp--preset--color--tint);
	background-color: var(--wp--preset--color--surface);
	border-radius: 12px;
	color: var(--wp--preset--color--contrast);
}

.woocommerce-error {
	border-top-color: var(--wp--preset--color--accent);
}

.woocommerce-message a.button, .woocommerce-info a.button, .woocommerce-error a.button {
	background: var(--wp--preset--color--tint);
	color: #fff;
}

/* ---------- Skjema (kasse, Min side, kuponger) ---------- */

.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select, .woocommerce-page form .form-row input.input-text, .woocommerce-cart table.cart td.actions .coupon .input-text, .wc-block-components-text-input input {
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 25%, transparent);
	border-radius: 10px;
	padding: 0.65em 0.9em;
	background: #fff;
}

.woocommerce form .form-row label {
	font-weight: 500;
	font-size: 0.9375rem;
}

/* ---------- Tabeller (handlekurv, ordrer, nedlastinger) ---------- */

.woocommerce table.shop_table {
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 12%, transparent);
	border-radius: 14px;
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
}

/* ---------- Min side-meny ---------- */

.woocommerce-MyAccount-navigation ul {
	list-style: none;
	padding-left: 0;
}

.woocommerce-MyAccount-navigation li {
	margin-bottom: 0.35rem;
}

.woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 0.5em 0.9em;
	border-radius: 999px;
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
}

.woocommerce-MyAccount-navigation li.is-active a, .woocommerce-MyAccount-navigation li a:hover {
	background: var(--wp--preset--color--tint);
	color: var(--wp--preset--color--contrast);
}

/* ---------- Minihandlekurv i toppen ---------- */

.wc-block-mini-cart__button {
	color: var(--wp--preset--color--contrast);
}

.wc-block-mini-cart__badge {
	background: var(--wp--preset--color--tint);
	color: #fff;
	border: none;
}

/* =========================================================
   Tilgjengelighet og bevegelse
   ========================================================= */

:focus-visible {
	outline: 2px solid var(--wp--preset--color--contrast);
	outline-offset: 2px;
	border-radius: 4px;
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
	}
}

/* ---------- Menylinje: meny | logo | ikoner ---------- */

.knitime-headerbar {
	display: grid !important;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 1rem;
}

.knitime-headerbar > .knitime-headericons {
	justify-self: end;
}

.knitime-header .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content, .knitime-header .wp-block-navigation .current-menu-ancestor > .wp-block-navigation-item__content, .knitime-header .wp-block-navigation .wp-block-navigation-item__content:hover {
	color: var(--wp--preset--color--contrast);
}

.knitime-header .wp-block-search__button {
	background: transparent;
	color: var(--wp--preset--color--contrast);
	border: none;
	padding: 0.35em;
}

.knitime-header .wp-block-search__button:hover {
	background: transparent;
	color: var(--wp--preset--color--contrast);
}

.knitime-header .wc-block-customer-account a {
	color: var(--wp--preset--color--contrast);
}

/* ---------- Store produktkort på forsiden (Nyeste-blokka) ---------- */

.wc-block-grid__product-price {
	color: var(--wp--preset--color--contrast);
	font-weight: 600;
	font-size: 1.05rem;
}

.wc-block-grid__product-onsale {
	background: var(--wp--preset--color--accent);
	color: #fff;
	border: 0;
	border-radius: 999px;
}

@media (max-width: 720px) {
	.wc-block-grid__products {
		grid-template-columns: 1fr;
	}
}

.knitime-header .wp-block-woocommerce-customer-account a {
	color: var(--wp--preset--color--contrast);
}

/* ---------- Tynnere detaljer ---------- */

.wp-block-details summary {
	font-weight: 500;
}

.knitime-footer {
	font-size: 0.85rem;
	font-weight: 300;
	line-height: 1.5;
}

.knitime-footer p {
	margin: 0;
}

.knitime-footer-tagline {
	opacity: 0.8;
	max-width: 46ch;
	margin-inline: auto;
}

.knitime-footer-links a {
	font-weight: 400;
}

.knitime-sep {
	opacity: 0.35;
	margin: 0 0.25rem;
}

.knitime-footer .wp-block-social-links {
	margin: 0.15rem 0 0;
}

.knitime-footer .wp-block-social-link {
	margin: 0 0.15rem;
}

/* ---------- Apper-siden: telefonrammer, tags og sort knapp ---------- */

.knitime-phone img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 24px;
}

.knitime-phone p {
	margin: 0;
	text-align: center;
}

.knitime-tag {
	display: inline-block;
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	background: var(--wp--preset--color--tint);
	color: #fff;
	border-radius: 999px;
	padding: 0.3em 0.9em;
}

.knitime-appbtn .wp-block-button__link {
	background: var(--wp--preset--color--contrast);
	color: #fff;
}

.knitime-appbtn .wp-block-button__link:hover {
	background: transparent;
	color: var(--wp--preset--color--contrast);
	box-shadow: inset 0 0 0 2px var(--wp--preset--color--contrast);
}

.knitime-appicon {
	margin: 0 auto;
}

.knitime-appicon img {
	border-radius: 22%;
	display: block;
	margin: 0 auto;
}

.knitime-phone .knitime-shot, .knitime-phone .knitime-shot img {
	width: 100%;
	height: 100%;
	margin: 0;
}

.knitime-phone .knitime-shot img {
	object-fit: cover;
	object-position: top center;
	border-radius: 30px;
}

/* ---------- Apper: ikon ved siden av navnet, funksjonsliste ---------- */

.knitime-features li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.62em;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--wp--preset--color--tint);
}

.knitime-appbtn.is-style-outline .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--contrast);
	border: 2px solid var(--wp--preset--color--contrast);
}

.knitime-appbtn.is-style-outline .wp-block-button__link:hover {
	background: var(--wp--preset--color--contrast);
	color: #fff;
	box-shadow: none;
}

/* ---------- Ingen understreker ---------- */

a, a:hover, .wp-block-post-title a, .woocommerce a, .woocommerce ul.products li.product a {
	text-decoration: none;
}

/* ---------- Butikk: kategoristriper og finpuss ---------- */

.knitime-shopintro {
	margin-bottom: 1.75rem;
}

.knitime-catpills {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	list-style: none;
	margin: 0 0 1.75rem;
	padding: 0;
}

.knitime-catpills a {
	display: inline-block;
	padding: 0.45em 1.1em;
	border-radius: 999px;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--tint) 70%, transparent);
	color: var(--wp--preset--color--contrast);
	font-size: 0.9rem;
	transition: background-color 0.15s ease, color 0.15s ease;
}

.knitime-catpills a:hover, .knitime-catpills .aktiv a {
	background: var(--wp--preset--color--tint);
	color: #fff;
	border-color: var(--wp--preset--color--tint);
}

.knitime-catpills .antall {
	opacity: 0.55;
	margin-left: 0.35em;
	font-size: 0.85em;
}

/* Andre produktbilde ved hover */

.woocommerce ul.products li.product .knitime-thumbwrap {
	position: relative;
	display: block;
	border-radius: 16px;
	overflow: hidden;
	aspect-ratio: 1 / 1;
	background: var(--wp--preset--color--surface);
}

.woocommerce ul.products li.product .knitime-thumbwrap img {
	margin: 0;
	border-radius: 0;
}

.woocommerce ul.products li.product .knitime-thumbwrap img.knitime-hoverimg {
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity 0.25s ease;
}

.woocommerce ul.products li.product:hover .knitime-thumbwrap img.knitime-hoverimg {
	opacity: 1;
}

/* «Ny»-merke */

.knitime-nytt {
	position: absolute;
	top: 0.7rem;
	left: 0.7rem;
	z-index: 2;
	background: var(--wp--preset--color--tint);
	color: #fff;
	border-radius: 999px;
	padding: 0.35em 0.85em;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

/* ---------- Produktside: galleri og valg ---------- */

.woocommerce div.product .flex-control-thumbs img {
	border-radius: 10px;
	opacity: 0.65;
	transition: opacity 0.15s ease;
}

.woocommerce div.product .flex-control-thumbs img:hover, .woocommerce div.product .flex-control-thumbs img.flex-active {
	opacity: 1;
	box-shadow: 0 0 0 2px var(--wp--preset--color--tint);
}

.woocommerce div.product form.cart .variations {
	margin-bottom: 1rem;
}

.woocommerce div.product form.cart .variations td, .woocommerce div.product form.cart .variations th {
	padding: 0.35rem 0 0.35rem 0;
}

.woocommerce div.product form.cart .variations label {
	font-weight: 600;
	font-size: 0.95rem;
}

.woocommerce div.product form.cart .variations select {
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 25%, transparent);
	border-radius: 999px;
	padding: 0.5em 2em 0.5em 1em;
	background-color: #fff;
	min-width: 200px;
}

/* ---------- Små lenker under appene ---------- */

.knitime-applenker a {
	color: var(--wp--preset--color--contrast);
}

.knitime-applenker a:hover {
	color: var(--wp--preset--color--tint);
}

.knitime-footer-legal {
	opacity: 0.7;
	margin-bottom: 0.5rem !important;
}

/* ---------- Tekstsider: support, personvern, vilkår, kontakt ---------- */

.knitime-sideintro {
	font-size: 1.15rem;
	max-width: 60ch;
}

.knitime-oppdatert {
	font-size: 0.85rem;
	opacity: 0.6;
	margin-top: -0.5rem;
}

.knitime-kort {
	background: var(--wp--preset--color--surface);
	border-radius: 16px;
	padding: 1.25rem 1.4rem;
}

.knitime-kort h3 {
	margin-top: 0;
	font-size: 1.15rem;
}

.knitime-kort p:last-child {
	margin-bottom: 0;
}

.knitime-hjelpeliste {
	list-style: none;
	padding-left: 0;
}

.knitime-hjelpeliste li {
	position: relative;
	padding-left: 1.4rem;
	margin-bottom: 0.5rem;
}

.knitime-hjelpeliste li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.62em;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--wp--preset--color--tint);
}

.knitime-appstripe {
	background: var(--wp--preset--color--surface);
	border-radius: 16px;
	padding: 1.1rem 1.3rem;
	font-size: 0.95rem;
}

.knitime-appstripe p {
	margin: 0;
}

/* =========================================================
   Overstyrer Elementors globale lenkefarge.
   Elementor setter «.elementor-kit-NNN a» så lenge programtillegget
   er aktivt, og det slår temaets egne regler. Når Elementor er
   slettet, kan hele denne blokken fjernes.
   ========================================================= */

body .wp-site-blocks a {
	color: var(--wp--preset--color--contrast);
}

body .wp-site-blocks a:hover {
	color: var(--wp--preset--color--tint);
}

body .wp-element-button, body .wp-block-button__link, body .woocommerce a.button, body .woocommerce button.button, body .woocommerce input.button, body .woocommerce a.button.alt, body .woocommerce button.button.alt, body .wc-block-components-button:not(.is-link) {
	color: #fff;
}

body .wp-element-button:hover, body .wp-block-button__link:hover, body .woocommerce a.button:hover, body .woocommerce button.button:hover, body .woocommerce input.button:hover, body .woocommerce a.button.alt:hover, body .woocommerce button.button.alt:hover, body .wc-block-components-button:not(.is-link):hover {
	color: var(--wp--preset--color--tint);
	background-color: #fff;
}

/* Sorte knapper (App Store) beholder hvit tekst */

body .knitime-appbtn .wp-block-button__link:hover {
	color: var(--wp--preset--color--contrast);
	background: transparent;
	box-shadow: inset 0 0 0 2px var(--wp--preset--color--contrast);
}

body .knitime-appbtn.is-style-outline .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--contrast);
}

body .knitime-appbtn.is-style-outline .wp-block-button__link:hover {
	background: var(--wp--preset--color--contrast);
	color: #fff;
}

/* Footer og kort beholder sine egne farger */

body .knitime-footer a, body .knitime-footer a:hover {
	color: inherit;
}

body .knitime-card__title a {
	color: var(--wp--preset--color--contrast);
}

body .knitime-catpills a:hover, body .knitime-catpills .aktiv a {
	color: #fff;
}

/* =========================================================
   Butikkflyt: handlekurv, kasse og Min side
   ========================================================= */

/* Hold innholdet innenfor sidebredden – blokkene til WooCommerce
   flyter ellers helt ut i kantene. */

.woocommerce-cart .wp-block-post-content > *, .woocommerce-checkout .wp-block-post-content > *, .woocommerce-account .wp-block-post-content > * {
	max-width: 100%;
}

.woocommerce-account .woocommerce-MyAccount-navigation, .woocommerce-account .woocommerce-MyAccount-content {
	width: auto !important;
	float: none !important;
	margin: 0 !important;
}

@media (max-width: 780px) {
	.woocommerce-account .woocommerce {
		grid-template-columns: 1fr;
		gap: 1.5rem;
	}
}

/* Meldingsbokser (tom handlekurv, «lagt i kurven» osv.) */

.wc-block-components-notice-banner {
	border-radius: 12px;
	border-color: var(--wp--preset--color--tint);
	background: var(--wp--preset--color--surface);
}

/* Handlekurv- og kasseblokkene */

.wc-block-cart, .wc-block-checkout {
	margin-top: 1rem;
}

.wc-block-cart-items__header {
	font-size: 0.85rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.wc-block-cart-item__image img {
	border-radius: 10px;
}

.wc-block-components-sidebar .wc-block-components-totals-wrapper, .wc-block-components-order-summary {
	background: var(--wp--preset--color--surface);
	border-radius: 16px;
}

.wc-block-components-sidebar {
	padding-left: 0;
}

.wc-block-components-text-input input, .wc-block-components-textarea {
	border-radius: 10px;
}

/* =========================================================
   Produktgalleri: WooCommerce tvinger 25 % bredde på
   miniatyrene, som klemmer dem sammen i rutenettet vårt.
   ========================================================= */

.woocommerce div.product .flex-control-thumbs li {
	width: auto !important;
	float: none !important;
	margin: 0;
	padding: 0 !important;
}

/* =========================================================
   Ikonene i headeren: lik størrelse, jevn avstand
   ========================================================= */

.knitime-headericons > * {
	display: flex;
	align-items: center;
	margin: 0;
}

/* Kontoikonet rendres uten mål fra WooCommerce – gi det størrelse */

.knitime-header .wp-block-woocommerce-customer-account svg, .knitime-header .wc-block-customer-account svg {
	display: block;
	width: 22px;
	height: 22px;
	fill: currentColor;
}

.knitime-header .wp-block-woocommerce-customer-account a, .knitime-header .wc-block-customer-account a {
	display: flex;
	align-items: center;
	padding: 0;
	color: var(--wp--preset--color--contrast);
}

/* Søk og handlekurv i samme størrelse */

.knitime-header .wp-block-search__button svg, .knitime-header .wc-block-mini-cart__button svg {
	width: 22px;
	height: 22px;
}

.knitime-header .wc-block-mini-cart__button {
	padding: 0;
	display: flex;
	align-items: center;
	gap: 0.2rem;
}

.knitime-header .wp-block-search__button:hover svg, .knitime-header .wc-block-mini-cart__button:hover svg {
	opacity: 0.65;
}

/* =========================================================
   Klassisk handlekurvtabell (kortkoden [woocommerce_cart])
   ========================================================= */

.woocommerce-cart table.cart img, .woocommerce table.shop_table td.product-thumbnail img {
	width: 72px;
	height: 72px;
	object-fit: cover;
	border-radius: 10px;
}

.woocommerce table.shop_table th, .woocommerce table.shop_table td {
	padding: 0.9rem 0.75rem;
	vertical-align: middle;
}

.woocommerce table.shop_table th {
	background: var(--wp--preset--color--surface);
	font-size: 0.8rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	font-weight: 600;
	white-space: nowrap;
}

.woocommerce table.shop_table td.product-remove {
	width: 2.5rem;
	text-align: center;
}

.woocommerce table.shop_table td.product-remove a.remove {
	color: var(--wp--preset--color--contrast) !important;
	opacity: 0.45;
	font-size: 1.2rem;
	background: none !important;
}

.woocommerce table.shop_table td.product-remove a.remove:hover {
	opacity: 1;
}

.woocommerce table.shop_table td.product-name a {
	font-weight: 600;
}

.woocommerce-cart .cart_totals table.shop_table {
	border: 0;
	background: transparent;
}

/* Mobil: tabellen legger seg i kort */

@media (max-width: 700px) {
	.woocommerce table.shop_table thead {
		display: none;
	}

	.woocommerce table.shop_table tr {
		display: block;
		border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 10%, transparent);
		padding: 0.5rem 0;
	}

	.woocommerce table.shop_table td {
		display: flex;
		justify-content: space-between;
		align-items: center;
		border: 0;
		padding: 0.35rem 0.75rem;
	}
}

/* =========================================================
   Header: ikonene på linje, litt større
   ========================================================= */

.knitime-headericons {
	align-items: center;
	gap: 1.4rem;
}

.knitime-headericons > *, .knitime-headericons .wp-block-search, .knitime-headericons .wp-block-search__inside-wrapper {
	display: flex !important;
	align-items: center;
	line-height: 0;
}

/* =========================================================
   Forsiden: kvadratiske produktbilder i «Nyeste oppskrifter»
   ========================================================= */

.wc-block-grid__product-image img {
	border-radius: 16px;
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

.wc-block-grid__product .wp-block-button {
	margin-top: 0.6rem;
}

/* =========================================================
   Butikken: introtekst og fremhevet oppskrift
   ========================================================= */

.knitime-shopintro p {
	margin: 0 0 1.5rem;
	max-width: 58ch;
	color: color-mix(in srgb, var(--wp--preset--color--contrast) 78%, transparent);
	font-size: 1.05rem;
}

.knitime-featured {
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: center;
	background: var(--wp--preset--color--surface);
	border-radius: 20px;
	overflow: hidden;
	margin-bottom: 2.25rem;
}

.knitime-featured img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 4 / 3;
	display: block;
}

.knitime-featured__txt {
	padding: 2rem;
}

.knitime-featured__eyebrow {
	font-size: 0.75rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	opacity: 0.6;
	margin: 0 0 0.4rem;
}

.knitime-featured__txt h2 {
	margin: 0 0 0.4rem;
	font-size: 1.6rem;
}

.knitime-featured__txt p.beskrivelse {
	margin-bottom: 1.1rem;
}

@media (max-width: 760px) {
	.knitime-featured {
		grid-template-columns: 1fr;
	}
}

/* Forsiden: venstrestilte produktkort */

.wc-block-grid__product, .wc-block-grid__product-title, .wc-block-grid__product-price, .wc-block-grid__product-add-to-cart {
	text-align: left !important;
}

.wc-block-grid__product {
	border: 0;
	padding: 0;
	margin: 0;
	max-width: none;
	text-align: left;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

/* =========================================================
   FINPUSS – runde 2
   ========================================================= */

/* --- Varsellinje: smalere og tynnere --- */

/* --- Meny: tynn og sort, valgt punkt sort og tykk --- */

.knitime-header .wp-block-navigation .wp-block-navigation-item__content:hover {
	color: var(--wp--preset--color--tint);
}

.knitime-header .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content, .knitime-header .wp-block-navigation .current-menu-ancestor > .wp-block-navigation-item__content, .knitime-header .wp-block-navigation .current_page_item > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--contrast);
	font-weight: 700;
}

/* --- Logo: skarp og større --- */

.knitime-header .wp-block-site-logo img {
	width: 300px;
	max-width: 100%;
	height: auto;
	image-rendering: auto;
}

/* --- Handlekurvmerket i headeren --- */

.knitime-header .wc-block-mini-cart {
	position: relative;
}

/* --- Forsiden og butikken: store bilder --- */

.wc-block-grid__products {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 2.5rem 2rem;
	padding: 0;
	margin: 0;
	list-style: none;
}

.wc-block-grid__product-image img, .woocommerce ul.products li.product .knitime-thumbwrap img {
	width: 100%;
	border-radius: 18px;
}

.wc-block-grid__product-title {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.35rem;
	font-weight: 500;
	line-height: 1.15;
	color: var(--wp--preset--color--contrast);
	margin: 1rem 0 0.2rem;
}

.woocommerce ul.products {
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 2.75rem 2rem;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title, .woocommerce ul.products li.product h2 {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.3rem;
	font-weight: 500;
	padding: 0;
	margin: 0.9rem 0 0.15rem;
	color: var(--wp--preset--color--contrast);
}

.woocommerce ul.products li.product .price {
	color: var(--wp--preset--color--contrast);
	font-weight: 600;
	font-size: 1.05rem;
	margin-bottom: 0.75rem;
}

/* Butikkens verktøylinje: luftigere */

.woocommerce .woocommerce-result-count, .woocommerce .woocommerce-ordering {
	margin-bottom: 2rem;
}

/* --- Produktside: luft mellom miniatyrbildene --- */

/* --- Knapper: kun én kant --- */

.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce a.button.alt, .woocommerce button.button.alt, body .wp-element-button, body .wp-block-button__link {
	border: 2px solid var(--wp--preset--color--tint);
	box-shadow: none;
	outline: none;
}

body .knitime-appbtn .wp-block-button__link {
	color: #fff;
	background: var(--wp--preset--color--contrast);
	border-color: var(--wp--preset--color--contrast);
}

/* --- Handlekurv: totalboksen til høyre, ryddig knapp --- */

.woocommerce-cart .cart-collaterals {
	margin-top: 2rem;
	display: flex;
	justify-content: flex-end;
}

.woocommerce-cart .cart-collaterals .cart_totals {
	width: min(420px, 100%);
	float: none;
}

.woocommerce-cart .cart_totals .wc-proceed-to-checkout a.checkout-button {
	display: block;
	text-align: center;
	margin: 0;
	font-size: 1rem;
}

/* Klarna-stripa skal ikke ligge oppå knappen */

.woocommerce-cart .cart_totals .wc-proceed-to-checkout > *:not(.checkout-button) {
	display: block;
	margin-bottom: 0.9rem;
}

/* Produktbilde i handlekurven */

.woocommerce table.shop_table td.product-thumbnail {
	width: 96px;
}

.woocommerce table.shop_table td.product-thumbnail a {
	display: block;
}

/* --- Kasse (blokkbasert): lettere kanter --- */

.wc-block-checkout .wc-block-components-text-input input, .wc-block-checkout .wc-block-components-address-card, .wc-block-checkout .wc-block-components-radio-control-accordion-option, .wc-block-checkout__payment-method .wc-block-components-radio-control {
	border-radius: 12px;
	border-color: color-mix(in srgb, var(--wp--preset--color--contrast) 15%, transparent);
}

.wc-block-components-express-payment {
	border-radius: 14px;
	border-color: color-mix(in srgb, var(--wp--preset--color--contrast) 12%, transparent);
}

.wc-block-components-title, .wc-block-checkout__form h2 {
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 500;
}

.wc-block-components-order-summary, .wc-block-components-totals-wrapper {
	border-radius: 16px;
}

/* --- Min side: ryddigere meny --- */

/* =========================================================
   Forsiden: nyeste oppskrifter med store bilder
   ========================================================= */

.knitime-nyeste {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 3rem 2.5rem;
	margin-bottom: 2rem;
}

.knitime-nyeste__kort {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

.knitime-nyeste__bilde {
	display: block;
	width: 100%;
	border-radius: 20px;
	overflow: hidden;
	background: var(--wp--preset--color--surface);
}

.knitime-nyeste__bilde img {
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	display: block;
	transition: transform 0.25s ease;
}

.knitime-nyeste__kort:hover .knitime-nyeste__bilde img {
	transform: scale(1.03);
}

.knitime-nyeste__kort h3 {
	font-size: 1.6rem;
	margin: 1.1rem 0 0.35rem;
}

.knitime-nyeste__kort h3 a {
	color: var(--wp--preset--color--contrast);
}

.knitime-nyeste__tekst {
	margin: 0 0 1.1rem;
	color: color-mix(in srgb, var(--wp--preset--color--contrast) 75%, transparent);
}

.knitime-nyeste .button {
	background: var(--wp--preset--color--tint);
	color: #fff;
	border: 2px solid var(--wp--preset--color--tint);
	border-radius: 999px;
	padding: 0.7em 1.6em;
	font-weight: 500;
}

.knitime-nyeste .button:hover {
	background: #fff;
	color: var(--wp--preset--color--tint);
}

/* =========================================================
   Handlekurvmerket: sirkel som ligger delvis over ikonet
   ========================================================= */

.knitime-header .wc-block-mini-cart__quantity-badge {
	position: relative;
	display: flex;
	align-items: center;
}

/* Gjeldende menypunkt: sort og tykk */

.knitime-header .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content, .knitime-header .wp-block-navigation li.current-menu-item a {
	color: var(--wp--preset--color--contrast) !important;
	font-weight: 700 !important;
}

/* Logoen hentes i 600 px og vises i 300 – skarp på skjermer med
   dobbel pikseltetthet. */

.knitime-header .wp-block-site-logo, .knitime-header .wp-block-site-logo a, .knitime-header .wp-block-site-logo img {
	width: 300px !important;
	max-width: 100%;
	height: auto;
}

/* Forsidens rader skal bryte ut av innholdsbredden og gå kant til kant */

/* =========================================================
   Header: skarpere og litt større meny, større ikoner
   ========================================================= */

.knitime-header .wp-block-search__button svg, .knitime-header .wc-block-mini-cart__button svg, .knitime-header .wp-block-woocommerce-customer-account svg, .knitime-header .wc-block-customer-account svg {
	width: 30px !important;
	height: 30px !important;
	display: block;
}

.knitime-header .wp-block-search__button, .knitime-header .wc-block-mini-cart__button, .knitime-header .wp-block-woocommerce-customer-account a, .knitime-header .wc-block-customer-account a {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 30px;
	padding: 0;
	margin: 0;
	line-height: 0;
}

/* Merket: sirkelen skal ligge i hjørnet av vogna */

.knitime-header .wc-block-mini-cart__badge {
	background: var(--wp--preset--color--tint) !important;
	color: #fff !important;
	border: 0 !important;
	font-size: 0.66rem !important;
	font-weight: 700 !important;
	min-width: 19px !important;
	height: 19px !important;
	line-height: 1 !important;
	padding: 0 !important;
	border-radius: 50% !important;
	margin: 0 !important;
	position: absolute !important;
	top: -4px !important;
	left: auto !important;
	right: -7px !important;
	width: 19px !important;
	max-width: 19px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
}

/* WordPress legger inn tomme avsnitt mellom elementene i raden.
   De skal ikke telle som en kolonne. */

.knitime-rad > p:empty, .knitime-rader > p:empty, .knitime-rad > br {
	display: none !important;
}

/* =========================================================
   Headerens ikoner
   ========================================================= */

.knitime-ikoner {
	position: relative;
	display: flex;
	align-items: center;
	gap: 1.5rem;
}

.knitime-ikon {
	display: flex;
	align-items: center;
	justify-content: center;
	background: none;
	border: 0;
	padding: 0;
	cursor: pointer;
	color: var(--wp--preset--color--contrast);
	position: relative;
	line-height: 0;
}

.knitime-ikon svg {
	width: 28px;
	height: 28px;
	display: block;
}

.knitime-ikon:hover {
	color: var(--wp--preset--color--tint);
}

.knitime-antall {
	position: absolute;
	top: -5px;
	right: -8px;
	width: 19px;
	height: 19px;
	border-radius: 50%;
	background: var(--wp--preset--color--tint);
	color: #fff;
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.68rem;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
}

.knitime-sokfelt {
	position: absolute;
	top: calc(100% + 0.9rem);
	right: 0;
	z-index: 60;
	background: #fff;
	padding: 0.9rem;
	border-radius: 14px;
	box-shadow: 0 12px 30px rgba(0, 0, 0, 0.12);
	width: min(320px, 80vw);
}

.knitime-sokfelt .wp-block-search__inside-wrapper {
	display: flex;
	gap: 0.5rem;
}

/* =========================================================
   Forsiden: to og to store kort med avrundede hjørner
   ========================================================= */

.knitime-produktkort {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	min-width: 0;
	box-sizing: border-box;
	background: transparent;
}

.knitime-produktkort__bilde img {
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	display: block;
	transition: transform 0.3s ease;
}

.knitime-produktkort:hover .knitime-produktkort__bilde img {
	transform: scale(1.03);
}

body .wp-site-blocks .knitime-produktkort__knapp {
	display: inline-block;
	background: var(--wp--preset--color--tint);
	color: #fff;
	border: 2px solid var(--wp--preset--color--tint);
	border-radius: 999px;
	padding: 0.6em 1.2em;
	font-size: 0.9rem;
	font-weight: 500;
	letter-spacing: normal;
	text-transform: none;
}

body .wp-site-blocks .knitime-produktkort__knapp:hover {
	background: #fff;
	color: var(--wp--preset--color--tint);
}

@media (max-width: 780px) {
	.knitime-rader {
		grid-template-columns: 1fr;
		gap: 2.5rem;
	}
}

/* =========================================================
   Mobil: meny og header
   ========================================================= */

@media (max-width: 860px) {
	.knitime-headerbar {
		grid-template-columns: auto 1fr auto;
		gap: 0.75rem;
	}

	.knitime-header .wp-block-site-logo,
	.knitime-header .wp-block-site-logo img {
		width: 200px !important;
	}

	.knitime-ikoner {
		gap: 1.1rem;
	}

	.knitime-ikon svg {
		width: 24px;
		height: 24px;
	}
}

.wp-block-navigation__responsive-container.is-menu-open {
	background: var(--wp--preset--color--base) !important;
	padding: clamp(2rem, 8vw, 3.5rem) 1.5rem;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-size: 1.5rem !important;
	color: var(--wp--preset--color--contrast) !important;
	padding: 0.5rem 0;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	gap: 0.5rem;
}

.wp-block-navigation__responsive-container-close, .wp-block-navigation__responsive-container-open {
	color: var(--wp--preset--color--contrast);
}

/* =========================================================
   Handlekurv: knapper og Klarna
   ========================================================= */

.woocommerce-cart .cart_totals .wc-proceed-to-checkout > * {
	position: static !important;
	float: none !important;
	margin: 0 !important;
	width: 100%;
}

/* Sekundære knapper: hvit med mint kant */

.woocommerce a.button:not(.alt):not(.checkout-button), .woocommerce button.button:not(.alt), .woocommerce input.button:not(.alt), .wc-block-mini-cart__footer-actions .wc-block-components-button.outlined {
	background: #fff;
	color: var(--wp--preset--color--tint);
	border: 2px solid var(--wp--preset--color--tint);
}

.woocommerce a.button:not(.alt):not(.checkout-button):hover, .woocommerce button.button:not(.alt):hover, .woocommerce input.button:not(.alt):hover {
	background: var(--wp--preset--color--tint);
	color: #fff;
}

/* Hovedknapper: mint med hvit tekst */

.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt, .woocommerce .checkout-button {
	background: var(--wp--preset--color--tint);
	color: #fff;
	border: 2px solid var(--wp--preset--color--tint);
}

.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .woocommerce .checkout-button:hover {
	background: #fff;
	color: var(--wp--preset--color--tint);
}

/* =========================================================
   Kasse: bort med rammene i skjemaet
   ========================================================= */

.wc-block-checkout .wc-block-components-text-input input, .wc-block-checkout .wc-block-components-textarea, .wc-block-checkout .wc-block-components-country-input select, .wc-block-checkout .wc-block-components-state-input select {
	border: 0 !important;
	border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 18%, transparent) !important;
	border-radius: 0 !important;
	background: transparent !important;
	padding-left: 0 !important;
}

.wc-block-checkout .wc-block-components-address-card, .wc-block-checkout .wc-block-components-express-payment, .wc-block-checkout .wc-block-components-radio-control-accordion-option, .wc-block-checkout .wc-block-components-radio-control__option {
	border: 0 !important;
	background: var(--wp--preset--color--surface);
	border-radius: 14px;
}

.wc-block-components-express-payment__title-container::before, .wc-block-components-express-payment__title-container::after, .wc-block-components-checkout-step__description ~ hr, .wc-block-checkout hr {
	display: none !important;
}

.wc-block-components-checkout-place-order-button {
	background: var(--wp--preset--color--tint) !important;
	color: #fff !important;
	border-radius: 999px !important;
}

/* Ingen bakgrunnsfarge bak produktbilder */

.knitime-produktkort__bilde, .woocommerce ul.products li.product .knitime-thumbwrap, .wc-block-grid__product-image {
	background: transparent !important;
}

/* Varsellinja: mindre og tynnere */

/* Skulle en eldre versjon av headeren ligge lagret i databasen,
   skal ikke WooCommerce sine egne ikoner vises i tillegg. */

.knitime-header .wc-block-mini-cart, .knitime-header .wp-block-woocommerce-customer-account, .knitime-header > .wp-block-group > .wp-block-search {
	display: none !important;
}

/* Ingen bakgrunn bak forsidekortene */

.knitime-produktkort, .knitime-produktkort__bilde {
	background: transparent !important;
}

/* Headeren skal bruke hele bredden, så ikonene havner ytterst til høyre */

.knitime-header .knitime-headerbar {
	max-width: none !important;
	width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

/* Menyen: tydeligere når den ikke er valgt, tykkere når den er det */

.knitime-header .wp-block-navigation .wp-block-navigation-item__content {
	color: var(--wp--preset--color--contrast);
	font-weight: 600;
	font-size: 1.25rem;
	letter-spacing: 0.1em;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.knitime-header .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content {
	font-weight: 800 !important;
}

/* Varsellinja: litt større og litt tykkere */

/* Ikonene skal stå ytterst til høyre i headeren */

.knitime-headerbar > .knitime-ikoner, .knitime-headerbar > p:has(.knitime-ikoner), .knitime-headerbar > *:last-child {
	justify-self: end;
	margin-left: auto;
}

.knitime-headerbar > .wp-block-navigation {
	justify-self: start;
	margin-right: auto;
}

.knitime-headerbar > .wp-block-site-logo {
	justify-self: center;
}

/* Titlene på forsidekortene: sorte, som i designforslaget */

body .wp-site-blocks .knitime-produktkort h2 a {
	color: var(--wp--preset--color--contrast);
	font-weight: 600;
}

body .wp-site-blocks .knitime-produktkort h2 a:hover {
	color: var(--wp--preset--color--tint);
}

/* Kjøp-knappene i butikkrutenettet skal være mint med hvit tekst */

.woocommerce ul.products li.product a.button, .woocommerce ul.products li.product a.add_to_cart_button, .wc-block-grid__product .wp-block-button__link {
	background: var(--wp--preset--color--tint) !important;
	color: #fff !important;
	border: 2px solid var(--wp--preset--color--tint) !important;
}

.woocommerce ul.products li.product a.button:hover, .woocommerce ul.products li.product a.add_to_cart_button:hover, .wc-block-grid__product .wp-block-button__link:hover {
	background: #fff !important;
	color: var(--wp--preset--color--tint) !important;
}

/* «Se oppskriften» i Månedens oppskrift: mint med hvit tekst */

.knitime-featured .button, .knitime-featured a.button {
	background: var(--wp--preset--color--tint) !important;
	color: #fff !important;
	border: 2px solid var(--wp--preset--color--tint) !important;
}

.knitime-featured .button:hover, .knitime-featured a.button:hover {
	background: #fff !important;
	color: var(--wp--preset--color--tint) !important;
}

/* =========================================================
   Varsellinja – nøyaktig som i designforslaget:
   Karla, 0.9375rem, vanlig vekt, 0.55rem polstring
   ========================================================= */

.knitime-notice {
	padding-top: 0.55rem;
	padding-bottom: 0.55rem;
}

.knitime-notice p {
	margin: 0;
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.9375rem;
	font-weight: 400;
	line-height: 1.65;
	letter-spacing: normal;
	color: var(--wp--preset--color--contrast);
}

/* =========================================================
   Forsidekortene – nøyaktig som i designforslaget:
   innholdsbredde 1192 px, to kolonner fra 480 px, 2 rem mellomrom.
   Hvert kort blir 580 px bredt, bildet 580 × 580.
   ========================================================= */

.knitime-rader {
	width: 100%;
	max-width: 1192px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(480px, 100%), 1fr));
	gap: 2.5rem 2rem;
	box-sizing: border-box;
}

.knitime-produktkort h2 {
	font-size: 1.75rem;
	margin: 1.2rem 0 0.4rem;
	line-height: 1.1;
	margin-top: 1rem;
	margin-bottom: 0.3rem;
}

.knitime-produktkort p {
	margin: 0 0 1.4rem;
	font-size: 1rem;
	margin-bottom: 1.1rem;
}

.knitime-produktkort__bilde {
	display: block;
	width: 100%;
	border-radius: 16px;
	overflow: hidden;
}

/* =========================================================
   Produktsiden: antallsfelt og Kjøp-knapp like høye
   (språkvalget røres ikke)
   ========================================================= */

.woocommerce div.product form.cart .variations, .woocommerce div.product form.cart .woocommerce-variation, .woocommerce div.product form.cart .vi-wpvs-variation-wrap {
	flex: 0 0 100%;
}

/* =========================================================
   Produktsiden – verdiene hentet fra designforslaget
   ========================================================= */

/* To like kolonner med 2,5 rem mellomrom */

.woocommerce div.product {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2.5rem;
	align-items: start;
}

.woocommerce div.product > .woocommerce-tabs, .woocommerce div.product > .related, .woocommerce div.product > .upsells, .woocommerce div.product > .woocommerce-product-gallery + .summary ~ * {
	grid-column: 1 / -1;
}

.woocommerce div.product div.images, .woocommerce div.product div.summary {
	width: 100% !important;
	float: none !important;
	margin: 0 !important;
}

/* Hovedbildet: kvadratisk med 16 px hjørner */

.woocommerce div.product div.images .woocommerce-product-gallery__image:first-child img {
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: 16px;
}

/* Miniatyrene: fire i bredden, 10 px hjørner, dempet til de velges */

.woocommerce div.product .flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0.6rem;
	margin-top: 0.6rem;
	padding: 0;
	list-style: none;
}

.woocommerce div.product .flex-control-thumbs li img {
	width: 100% !important;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: 10px;
	opacity: 0.6;
	box-shadow: none;
	transition: opacity 0.15s ease, box-shadow 0.15s ease;
}

.woocommerce div.product .flex-control-thumbs li img:hover, .woocommerce div.product .flex-control-thumbs li img.flex-active {
	opacity: 1;
	box-shadow: 0 0 0 2px var(--wp--preset--color--tint);
}

/* Tittel og pris */

.woocommerce div.product .product_title {
	font-size: var(--wp--preset--font-size--x-large);
	margin-bottom: 0.25rem;
}

.woocommerce div.product p.price, .woocommerce div.product span.price {
	color: var(--wp--preset--color--contrast);
	font-size: 1.5rem;
	font-weight: 600;
	margin: 0.25rem 0 1rem;
}

/* Kategorilinja */

.woocommerce div.product .product_meta {
	font-size: 0.9375rem;
	opacity: 0.75;
	margin-top: 1.25rem;
}

/* Fanene */

.woocommerce div.product .woocommerce-tabs ul.tabs {
	padding-left: 0;
	margin-bottom: 0;
	margin-top: 3rem;
	border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 15%, transparent);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	padding: 0.6em 0.15em;
	font-weight: 500;
	color: color-mix(in srgb, var(--wp--preset--color--contrast) 65%, transparent);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	color: var(--wp--preset--color--contrast);
	box-shadow: inset 0 -3px 0 var(--wp--preset--color--contrast);
}

.woocommerce div.product .woocommerce-tabs .panel {
	padding: 1.25rem 0 0;
}

/* Brødsmulesti */

.woocommerce .woocommerce-breadcrumb {
	font-size: 0.875rem;
	color: color-mix(in srgb, var(--wp--preset--color--contrast) 60%, transparent);
	margin-bottom: 1rem;
	opacity: 0.65;
}

.woocommerce .woocommerce-breadcrumb a {
	color: inherit;
	font-weight: 500;
}

/* «Du liker kanskje også» */

.woocommerce div.product .related > h2, .woocommerce div.product .upsells > h2 {
	margin-top: 3.5rem;
	margin-bottom: 1.5rem;
}

@media (max-width: 800px) {
	.woocommerce div.product {
		grid-template-columns: 1fr;
	}
}

/* =========================================================
   Produktsiden: kjøpsraden
   ========================================================= */

/* Antall og Kjøp på samme linje */

.woocommerce div.product form.cart {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-bottom: 1.25rem;
}

.woocommerce div.product form.cart::before, .woocommerce div.product form.cart::after {
	content: none !important;
}

.woocommerce div.product form.cart div.quantity {
	margin: 0;
	float: none;
	display: flex;
	flex: 0 0 auto;
	width: auto;
}

.woocommerce div.product form.cart div.quantity .qty {
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 25%, transparent);
	border-radius: 999px;
	padding: 0 0.6em;
	height: 54px;
	line-height: 54px;
	box-sizing: border-box;
	text-align: center;
	width: 84px;
}

.woocommerce div.product form.cart .single_add_to_cart_button {
	height: 54px;
	line-height: 1;
	margin: 0;
	padding: 0 2em;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	flex: 0 0 auto;
	min-width: 150px;
}

/* Ekspresskassen: samme høyde og full bredde under */

.woocommerce div.product .wc-stripe-product-checkout-container, .woocommerce div.product .wcpay-payment-request-wrapper, .woocommerce div.product .wc-block-components-express-payment {
	flex: 0 0 100%;
	margin-top: 0.25rem;
}

.woocommerce div.product .wcpay-payment-request-wrapper button, .woocommerce div.product .wc-stripe-product-checkout-container button, .woocommerce div.product .gpay-card-info-container, .woocommerce div.product .apple-pay-button {
	height: 54px !important;
	min-height: 54px !important;
	border-radius: 999px !important;
}

/* Mindre luft mellom språkvalg og kjøpsrad */

.woocommerce div.product .vi-wpvs-variation-wrap, .woocommerce div.product .woocommerce-variation-add-to-cart {
	margin-top: 0.5rem;
}

.woocommerce div.product .woocommerce-variation.single_variation {
	margin-bottom: 0.5rem;
}

.woocommerce div.product .reset_variations, .woocommerce div.product .vi-wpvs-variation-reset {
	font-size: 0.85rem;
	opacity: 0.6;
}

/* Kategorilinja uten produktnummer */

.woocommerce div.product .product_meta .sku_wrapper {
	display: none !important;
}

/* =========================================================
   Produktsiden: bort med Klarna-stripa og fanene
   ========================================================= */

.woocommerce div.product .summary .klarna-placement, .woocommerce div.product .summary klarna-placement, .woocommerce div.product .summary [id*="klarna"], .woocommerce div.product .summary [class*="klarna"], .woocommerce div.product .summary [class*="onsite-messaging"], .woocommerce div.product .summary .wc-stripe-bnpl-message, .woocommerce div.product .summary .wcpay-bnpl-message, .woocommerce div.product .summary .woocommerce-bnpl-message {
	display: none !important;
}

.woocommerce div.product .woocommerce-tabs, .woocommerce div.product .woocommerce-tabs ul.tabs, .woocommerce div.product #reviews, .woocommerce div.product .woocommerce-Tabs-panel {
	display: none !important;
}

/* =========================================================
   Klarna-stripa fra Stripe (ligger i en iframe med fast id)
   ========================================================= */

#payment-method-message, .summary #payment-method-message, div[id^="payment-method-message"] {
	display: none !important;
}

/* =========================================================
   Variable produkter: antall og Kjøp på samme linje.
   Knappen ligger inne i .single_variation_wrap, ikke rett i skjemaet.
   ========================================================= */

.woocommerce div.product form.cart .single_variation_wrap {
	flex: 0 0 100%;
	width: 100%;
}

.woocommerce div.product form.cart .woocommerce-variation-add-to-cart {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.75rem;
}

.woocommerce div.product form.cart .woocommerce-variation-add-to-cart::before, .woocommerce div.product form.cart .woocommerce-variation-add-to-cart::after {
	content: none !important;
}

.woocommerce div.product form.cart .woocommerce-variation-add-to-cart div.quantity {
	flex: 0 0 auto;
	margin: 0;
	float: none;
}

.woocommerce div.product form.cart .woocommerce-variation-add-to-cart .single_add_to_cart_button {
	flex: 0 0 auto;
	margin: 0;
	min-width: 150px;
	height: 54px;
}

/* Variasjonstabellen (språkvalget) tar hele bredden over kjøpsraden */

.woocommerce div.product form.cart table.variations {
	flex: 0 0 100%;
	width: 100%;
	margin-bottom: 0.75rem;
}

/* =========================================================
   Luft i produktgalleriet
   WooCommerce nullstiller marginene, så disse må ha forrang.
   ========================================================= */

.woocommerce div.product div.images .flex-control-thumbs {
	margin-top: 1.5rem !important;
	gap: 1rem !important;
	padding: 0 !important;
}

.woocommerce div.product div.images .flex-control-thumbs li {
	margin: 0 !important;
	padding: 0 !important;
}

.woocommerce div.product div.images .woocommerce-product-gallery__wrapper {
	margin-bottom: 0 !important;
}

.woocommerce div.product div.images .woocommerce-product-gallery__image {
	margin: 0 !important;
}

.woocommerce div.product div.images {
	margin-bottom: 1rem !important;
}

/* =========================================================
   Kjøp-knappen på produktkortene (butikkrutenettet og
   «Du liker kanskje også») – liten variant som i designforslaget:
   0.9rem skrift, 0.6em/1.2em polstring, 2px kant ≈ 38 px høy.
   ========================================================= */

.woocommerce ul.products li.product a.button, .woocommerce ul.products li.product a.add_to_cart_button, .woocommerce div.product .related ul.products li.product a.button, .woocommerce div.product .upsells ul.products li.product a.button, .wc-block-grid__product .wp-block-button__link {
	font-size: 0.9rem !important;
	padding: 0.6em 1.2em !important;
	line-height: 1.2 !important;
	height: auto !important;
	min-height: 0 !important;
	border-width: 2px !important;
	display: inline-block !important;
}

/* =========================================================
   Handlekurven – verdiene hentet fra designforslaget:
   tabell til venstre (1.6fr), oppsummering til høyre (1fr).
   ========================================================= */

.woocommerce-cart .woocommerce .cart-collaterals {
	grid-column: 2;
	display: block;
	width: auto;
	margin: 0;
}

.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper {
	grid-column: 1 / -1;
}

/* Tabellen */

.woocommerce-cart table.shop_table th {
	background: var(--wp--preset--color--surface);
	text-align: left;
	font-weight: 600;
	padding: 0.85rem 1rem;
	font-size: 0.95rem;
	text-transform: none;
	letter-spacing: normal;
}

.woocommerce-cart table.shop_table td {
	padding: 0.85rem 1rem;
	border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 8%, transparent);
	vertical-align: middle;
}

.woocommerce-cart table.shop_table td.product-thumbnail img {
	width: 56px;
	height: 56px;
	object-fit: cover;
	border-radius: 10px;
}

.woocommerce-cart table.shop_table td.product-remove a.remove {
	opacity: 0.45;
	font-size: 1.1rem;
}

/* Rabattkodefeltet */

.woocommerce-cart table.cart td.actions .coupon .button, .woocommerce-cart table.cart td.actions > .button {
	font-size: 0.9rem !important;
	padding: 0.6em 1.2em !important;
	white-space: nowrap;
}

/* Oppsummeringsboksen */

.woocommerce-cart .cart_totals {
	background: var(--wp--preset--color--surface);
	border-radius: 16px;
	padding: 1.4rem;
	width: 100%;
}

.woocommerce-cart .cart_totals h2 {
	font-size: 1.15rem;
	margin-top: 0;
	margin-bottom: 0.9rem;
}

.woocommerce-cart .cart_totals table {
	width: 100%;
	border: 0;
	margin: 0;
	font-size: 0.95rem;
}

.woocommerce-cart .cart_totals table th, .woocommerce-cart .cart_totals table td {
	background: transparent;
	border: 0;
	padding: 0.45rem 0;
	text-transform: none;
	letter-spacing: normal;
	font-size: 0.95rem;
}

.woocommerce-cart .cart_totals table th {
	font-weight: 400;
	width: auto;
}

.woocommerce-cart .cart_totals table td {
	text-align: right;
}

.woocommerce-cart .cart_totals table tr.order-total th, .woocommerce-cart .cart_totals table tr.order-total td {
	border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 15%, transparent);
	padding-top: 0.8rem;
	font-weight: 700;
	font-size: 1.05rem;
}

/* Knappene i oppsummeringen */

@media (max-width: 820px) {
	.woocommerce-cart .woocommerce {
		grid-template-columns: 1fr;
	}

	.woocommerce-cart .woocommerce form.woocommerce-cart-form,
	.woocommerce-cart .woocommerce .cart-collaterals {
		grid-column: 1;
	}
}

/* =========================================================
   Handlekurven: bredder og kanter
   ========================================================= */

/* Alt regnes innenfor bredden */

.woocommerce-cart .woocommerce, .woocommerce-cart .woocommerce * {
	box-sizing: border-box;
}

/* Tabellen skal fylle sin kolonne */

.woocommerce-cart .woocommerce form.woocommerce-cart-form {
	grid-column: 1;
	margin: 0 !important;
	width: 100% !important;
	max-width: none !important;
	padding: 0 !important;
}

/* Ingen dobbel kant: bare ytterrammen og tynne linjer mellom radene */

.woocommerce-cart table.shop_table th, .woocommerce-cart table.shop_table td {
	border-left: 0 !important;
	border-right: 0 !important;
	border-bottom: 0 !important;
}

.woocommerce-cart table.shop_table thead th {
	border-top: 0 !important;
}

.woocommerce-cart table.shop_table tbody tr:first-child td {
	border-top: 0 !important;
}

/* Smalere kolonner for kryss og bilde */

.woocommerce-cart table.shop_table td.product-remove, .woocommerce-cart table.shop_table th.product-remove {
	width: 48px;
	text-align: center;
	padding-left: 0.5rem;
	padding-right: 0.5rem;
}

.woocommerce-cart table.shop_table td.product-thumbnail, .woocommerce-cart table.shop_table th.product-thumbnail {
	width: 88px;
	padding-right: 0;
}

/* Oppsummeringsboksen og knappene skal holde seg innenfor */

.woocommerce-cart .cart_totals, .woocommerce-cart .cart_totals * {
	box-sizing: border-box;
	max-width: 100%;
}

.woocommerce-cart .cart_totals .wc-proceed-to-checkout .checkout-button, .woocommerce-cart .cart_totals .wc-proceed-to-checkout > div, .woocommerce-cart .cart_totals .wc-proceed-to-checkout > div > * {
	width: 100% !important;
	box-sizing: border-box !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

/* =========================================================
   Bredder: butikkflyten og sider med kolonner skal bruke
   samme brede flate som designforslaget (1240 px).
   ========================================================= */

.woocommerce-cart .wp-block-post-content, .woocommerce-checkout .wp-block-post-content, .woocommerce-account .wp-block-post-content {
	max-width: 1240px !important;
	margin-inline: auto;
}

/* Sider med kolonner (Kontakt, Apper) får bruke hele bredden */

.wp-block-post-content > .wp-block-columns, .wp-block-post-content > .wp-block-group.knitime-tags {
	max-width: 1240px !important;
	width: 100%;
}

/* Tabellen og oppsummeringen fyller sine kolonner */

.woocommerce-cart .woocommerce {
	display: grid;
	grid-template-columns: 1.6fr 1fr;
	gap: 2rem;
	align-items: start;
	width: 100%;
	max-width: none;
}

/* =========================================================
   Handlekurvraden: bilde og navn i samme kolonne,
   kryss ytterst til høyre – som i designforslaget.
   ========================================================= */

.knitime-kurvrad__bilde img {
	width: 56px;
	height: 56px;
	object-fit: cover;
	border-radius: 10px;
	display: block;
}

.knitime-kurvrad__navn a, .knitime-kurvrad__navn {
	font-weight: 600;
	color: var(--wp--preset--color--contrast);
}

.knitime-kurvrad__meta, .knitime-kurvrad__meta p, .knitime-kurvrad__meta dl {
	font-size: 0.9rem;
	opacity: 0.6;
	margin: 0;
}

.knitime-kurvrad__meta dt, .knitime-kurvrad__meta dd {
	display: inline;
	margin: 0;
	font-weight: 400;
}

.knitime-kurvrad__meta dt::after {
	content: ": ";
}

/* Kolonnebredder */

.woocommerce-cart table.shop_table th.product-price, .woocommerce-cart table.shop_table td.product-price, .woocommerce-cart table.shop_table th.product-quantity, .woocommerce-cart table.shop_table td.product-quantity, .woocommerce-cart table.shop_table th.product-subtotal, .woocommerce-cart table.shop_table td.product-subtotal {
	width: 120px;
	text-align: left;
}

/* Rabattkode og oppdater på samme rad */

/* =========================================================
   Oppsummeringen i handlekurven – som i designforslaget
   ========================================================= */

/* Knappen tar sin egen bredde, ikke hele boksen */

.woocommerce-cart .cart_totals .wc-proceed-to-checkout {
	padding: 1rem 0 0;
	display: block;
	flex-direction: column;
	gap: 0.75rem;
}

.woocommerce-cart .cart_totals .wc-proceed-to-checkout .checkout-button {
	order: -1;
	margin: 0;
	font-size: 1rem !important;
	padding: 0.8em 1.6em !important;
	display: inline-block;
	width: auto !important;
}

/* Ekspressknappene hører hjemme i kassen, ikke i oppsummeringen */

.woocommerce-cart .cart_totals .wc-proceed-to-checkout > div:not(.checkout-button), .woocommerce-cart .cart_totals .wcpay-payment-request-wrapper, .woocommerce-cart .cart_totals .wc-stripe-product-checkout-container, .woocommerce-cart .cart_totals #wc-stripe-express-checkout-element {
	display: none !important;
}

/* Hjelpeteksten under knappen */

.knitime-kurvnotis {
	margin: 0.9rem 0 0;
	font-size: 0.9375rem;
	opacity: 0.7;
	line-height: 1.5;
}

/* Skjul MVA-tillegget i totalen, som i eksempelet */

.woocommerce-cart .cart_totals .order-total .includes_tax {
	display: block;
	font-size: 0.85rem;
	font-weight: 400;
	opacity: 0.65;
}

/* =========================================================
   Handlekurvtabellen: faste kolonnebredder i prosent, så
   navnekolonnen får plassen den skal ha.
   ========================================================= */

.woocommerce-cart table.shop_table {
	width: 100% !important;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 12%, transparent);
	border-radius: 14px;
	font-size: 0.95rem;
	margin: 0;
	max-width: none !important;
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
	table-layout: fixed;
}

.woocommerce-cart table.shop_table th.product-quantity, .woocommerce-cart table.shop_table td.product-quantity {
	width: 16% !important;
}

.woocommerce-cart table.shop_table th.product-subtotal, .woocommerce-cart table.shop_table td.product-subtotal {
	width: 16% !important;
}

/* Teksten skal bruke bredden den får */

.knitime-kurvrad {
	display: flex;
	align-items: center;
	gap: 0.9rem;
	min-width: 0;
}

.knitime-kurvrad__bilde {
	flex: 0 0 auto;
}

.knitime-kurvrad__tekst {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	flex: 1 1 auto;
	min-width: 0;
}

.knitime-kurvrad__navn {
	line-height: 1.3;
}

/* Handlingsraden i full bredde */

/* =========================================================
   Meldingslinja («… er lagt i handlekurven») – som i eksempelet
   ========================================================= */

.woocommerce-message, .woocommerce-info, .woocommerce-error, .wc-block-components-notice-banner {
	background: var(--wp--preset--color--surface) !important;
	border: 0 !important;
	border-top: 3px solid var(--wp--preset--color--tint) !important;
	border-radius: 12px !important;
	padding: 0.9rem 1.1rem !important;
	font-size: 0.95rem !important;
	font-family: var(--wp--preset--font-family--body);
	color: var(--wp--preset--color--contrast) !important;
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin-bottom: 1.5rem !important;
}

.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before {
	display: none !important;
}

.woocommerce-message .button {
	margin-left: auto;
	font-size: 0.9rem !important;
	padding: 0.6em 1.2em !important;
}

/* =========================================================
   Kurvtabellen: metalinje, kanter og kolonner uten antall
   ========================================================= */

.knitime-kurvrad__meta {
	font-size: 0.9rem;
	opacity: 0.6;
	font-family: var(--wp--preset--font-family--body);
}

.woocommerce-cart table.shop_table th.product-price, .woocommerce-cart table.shop_table td.product-price, .woocommerce-cart table.shop_table th.product-subtotal, .woocommerce-cart table.shop_table td.product-subtotal {
	width: 18% !important;
}

/* Antallsfeltet skal ikke ha ramme (og vises ikke lenger i kurven) */

.woocommerce div.product form.cart div.quantity, .woocommerce-cart td.product-quantity {
	display: none !important;
}

.woocommerce .quantity .qty {
	width: 4.5rem;
	text-align: center;
	border: 0 !important;
	background: transparent !important;
}

/* Skillelinja skal gå helt over tabellen */

.woocommerce-cart table.cart td.actions {
	padding: 1rem;
	background: transparent;
	display: table-cell !important;
	align-items: center;
	gap: 0.75rem;
	flex-wrap: wrap;
	width: 100%;
	border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 8%, transparent) !important;
}

.woocommerce-cart table.cart td.actions .coupon {
	display: inline-flex;
	gap: 0.5rem;
	align-items: center;
	float: none;
	width: auto;
	flex: 1;
	min-width: 0;
	margin-right: 0.75rem;
}

.woocommerce-cart table.cart td.actions .coupon .input-text {
	flex: 0 0 auto;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 25%, transparent);
	border-radius: 999px;
	padding: 0.55em 1em;
	background: #fff;
	width: 220px;
	min-width: 0;
}

/* =========================================================
   Blokkvarselet som dukker opp når noe legges i kurven.
   Det får tastaturfokus automatisk, derfor må fokusrammen
   dempes her – ellers tegnes en tykk sort ring rundt.
   ========================================================= */

.wc-block-store-notices, .wc-block-components-notice-banner, .wc-block-components-notice-banner.is-success, .wc-block-components-notice-banner.is-info, .wc-block-components-notice-banner.is-error {
	background: var(--wp--preset--color--surface) !important;
	border: 0 !important;
	border-top: 3px solid var(--wp--preset--color--tint) !important;
	border-radius: 12px !important;
	color: var(--wp--preset--color--contrast) !important;
	padding: 0.9rem 1.1rem !important;
	font-size: 0.95rem !important;
	font-family: var(--wp--preset--font-family--body) !important;
	box-shadow: none !important;
	align-items: center;
	gap: 0.75rem;
}

.wc-block-components-notice-banner:focus, .wc-block-components-notice-banner:focus-visible, .wc-block-store-notices:focus, .wc-block-store-notices:focus-visible, .woocommerce-message:focus, .woocommerce-message:focus-visible {
	outline: none !important;
	box-shadow: none !important;
}

/* Det grønne haken-ikonet i mint */

.wc-block-components-notice-banner > svg {
	fill: var(--wp--preset--color--tint) !important;
	background: transparent !important;
	flex: 0 0 auto;
	width: 22px;
	height: 22px;
}

.wc-block-components-notice-banner .wc-block-components-notice-banner__content {
	color: var(--wp--preset--color--contrast) !important;
}

/* «Vis handlekurv» som liten sekundærknapp */

.wc-block-components-notice-banner a.wc-forward, .wc-block-components-notice-banner .wc-block-components-button {
	margin-left: auto;
	background: #fff !important;
	color: var(--wp--preset--color--tint) !important;
	border: 2px solid var(--wp--preset--color--tint) !important;
	border-radius: 999px !important;
	font-size: 0.9rem !important;
	padding: 0.6em 1.2em !important;
	white-space: nowrap;
}

.wc-block-components-notice-banner a.wc-forward:hover, .wc-block-components-notice-banner .wc-block-components-button:hover {
	background: var(--wp--preset--color--tint) !important;
	color: #fff !important;
}

/* Tomme varselbeholdere skal ikke vises */

.wc-block-store-notices:empty, .woocommerce-notices-wrapper:empty, .wc-block-components-notice-banner:empty {
	display: none !important;
	padding: 0 !important;
	border: 0 !important;
	margin: 0 !important;
	background: none !important;
}

.wc-block-store-notices:not(:has(.wc-block-components-notice-banner)) {
	display: none !important;
	background: none !important;
	border: 0 !important;
	padding: 0 !important;
}

/* Siste rad uten kantlinje – tabellen avsluttes med den runde rammen */

.woocommerce-cart table.shop_table tbody tr:last-child td {
	border-bottom: 0 !important;
}

.woocommerce-cart table.shop_table tbody tr.knitime-handlingsrad td {
	padding: 1rem;
}

/* =========================================================
   Kurvtabell uten antall og sum: to kolonner + kryss
   ========================================================= */

.woocommerce-cart table.shop_table th.product-name, .woocommerce-cart table.shop_table td.product-name {
	width: 64% !important;
	text-align: left;
}

.woocommerce-cart table.shop_table th.product-price, .woocommerce-cart table.shop_table td.product-price {
	width: 24% !important;
}

.woocommerce-cart table.shop_table th.product-remove, .woocommerce-cart table.shop_table td.product-remove {
	width: 12% !important;
	text-align: center;
}

/* Rabattkoden under tabellen, i full bredde */

.knitime-kupong {
	display: flex;
	gap: 0.75rem;
	align-items: center;
	margin-top: 1.25rem;
}

.knitime-kupong .input-text {
	flex: 1;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 22%, transparent);
	border-radius: 999px;
	padding: 0.85em 1.25em;
	background: #fff;
	font-size: 1rem;
	min-width: 0;
}

.knitime-kupong .button {
	flex: 0 0 auto;
	background: var(--wp--preset--color--tint) !important;
	color: #fff !important;
	border: 2px solid var(--wp--preset--color--tint) !important;
	border-radius: 999px !important;
	padding: 0.85em 2em !important;
	font-size: 1rem !important;
}

.knitime-kupong .button:hover {
	background: #fff !important;
	color: var(--wp--preset--color--tint) !important;
}

/* =========================================================
   Sideveksling – enkel: bare tall, ingen bokser
   ========================================================= */

.woocommerce nav.woocommerce-pagination {
	margin: 3rem 0 1rem;
	text-align: center;
}

.woocommerce nav.woocommerce-pagination ul, .woocommerce nav.woocommerce-pagination ul li {
	display: inline-flex;
	align-items: center;
	border: 0 !important;
	margin: 0;
	padding: 0;
	list-style: none;
	overflow: visible;
}

.woocommerce nav.woocommerce-pagination ul {
	gap: 1.5rem;
}

.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span {
	background: none !important;
	border: 0 !important;
	padding: 0 !important;
	min-width: 0;
	font-size: 1rem;
	font-weight: 400;
	color: var(--wp--preset--color--contrast) !important;
	line-height: 1;
}

.woocommerce nav.woocommerce-pagination ul li a:hover {
	color: var(--wp--preset--color--tint) !important;
}

.woocommerce nav.woocommerce-pagination ul li span.current {
	font-weight: 700;
	color: var(--wp--preset--color--contrast) !important;
}

.woocommerce nav.woocommerce-pagination ul li span.dots {
	opacity: 0.4;
}

.wp-block-group.alignfull:has(.knitime-apphead) > .wp-block-columns.alignwide, .wp-block-group.alignfull:has(.knitime-phone) > .wp-block-columns.alignwide {
	max-width: 1400px !important;
	width: 100%;
	gap: clamp(2rem, 4vw, 4rem);
}

/* Litt større telefonramme når det er plass */

/* Teksten får puste */

.knitime-apphead + p, .knitime-features {
	max-width: 62ch;
}

/* =========================================================
   Kassen (klassisk) – som i designforslaget:
   skjema til venstre, bestilling i mintdis boks til høyre.
   ========================================================= */

.woocommerce-checkout form.checkout {
	display: grid;
	grid-template-columns: 1.6fr 1fr;
	gap: 2.5rem;
	align-items: start;
}

.woocommerce-checkout form.checkout #customer_details {
	grid-column: 1;
	width: 100%;
}

.woocommerce-checkout form.checkout #customer_details .col-1, .woocommerce-checkout form.checkout #customer_details .col-2 {
	width: 100%;
	float: none;
}

.woocommerce-checkout form.checkout h3#order_review_heading {
	display: none;
}

.woocommerce-checkout form.checkout #order_review {
	grid-column: 2;
	background: var(--wp--preset--color--surface);
	border-radius: 16px;
	padding: 1.4rem;
	width: 100%;
}

.woocommerce-checkout #customer_details h3 {
	font-size: 1.4rem;
	margin: 0 0 1rem;
}

/* Feltene */

.woocommerce-checkout .form-row {
	padding: 0;
	margin-bottom: 1.1rem;
}

.woocommerce-checkout .form-row label {
	font-weight: 600;
	font-size: 0.95rem;
	margin-bottom: 0.35rem;
	display: block;
}

.woocommerce-checkout .form-row input.input-text, .woocommerce-checkout .form-row textarea, .woocommerce-checkout .select2-container .select2-selection, .woocommerce-checkout .form-row select {
	width: 100%;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 22%, transparent);
	border-radius: 12px;
	padding: 0.85em 1.1em;
	background: #fff;
	font-size: 1rem;
	height: auto;
}

.woocommerce-checkout .form-row .description {
	font-size: 0.9rem;
	opacity: 0.7;
	margin-top: 0.4rem;
}

.woocommerce-checkout .form-row-first, .woocommerce-checkout .form-row-last {
	width: calc(50% - 0.5rem);
	float: none;
	display: inline-block;
	vertical-align: top;
}

.woocommerce-checkout .form-row-first {
	margin-right: 1rem;
}

/* Bestillingsboksen */

.woocommerce-checkout #order_review table.shop_table {
	border: 0;
	background: transparent;
	width: 100%;
	margin: 0;
}

.woocommerce-checkout #order_review table.shop_table th, .woocommerce-checkout #order_review table.shop_table td {
	border: 0;
	padding: 0.45rem 0;
	background: transparent;
	font-size: 0.95rem;
	text-transform: none;
	letter-spacing: normal;
}

.woocommerce-checkout #order_review table.shop_table td {
	text-align: right;
}

.woocommerce-checkout #order_review table.shop_table tfoot .order-total th, .woocommerce-checkout #order_review table.shop_table tfoot .order-total td {
	border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 15%, transparent);
	padding-top: 0.8rem;
	font-weight: 700;
	font-size: 1.05rem;
}

.woocommerce-checkout #order_review .product-quantity {
	display: none;
}

/* Betalingsvalg */

.woocommerce-checkout #payment {
	background: transparent;
	border-radius: 0;
	margin-top: 1.25rem;
}

.woocommerce-checkout #payment ul.payment_methods {
	border: 0;
	padding: 0;
	margin: 0 0 1rem;
	list-style: none;
}

.woocommerce-checkout #payment ul.payment_methods li {
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 15%, transparent);
	border-radius: 12px;
	padding: 0.9rem 1.1rem;
	margin-bottom: 0.6rem;
	background: #fff;
}

.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method input:checked + label {
	font-weight: 700;
}

.woocommerce-checkout #payment div.payment_box {
	background: transparent;
	padding: 0.5rem 0 0;
	font-size: 0.9rem;
	margin: 0;
}

.woocommerce-checkout #payment div.payment_box::before {
	display: none;
}

.woocommerce-checkout #place_order {
	width: 100%;
	font-size: 1rem !important;
	padding: 0.9em 1.6em !important;
	margin-top: 0.5rem;
}

.knitime-vilkarnotis {
	margin: 1.75rem 0 0;
	font-size: 0.9rem;
	opacity: 0.7;
	line-height: 1.5;
}

@media (max-width: 860px) {
	.woocommerce-checkout form.checkout {
		grid-template-columns: 1fr;
	}

	.woocommerce-checkout form.checkout #customer_details,
	.woocommerce-checkout form.checkout #order_review {
		grid-column: 1;
	}
}

/* =========================================================
   MIN SIDE – bygget som i designforslaget.
   Flexbox i stedet for grid, så WooCommerce sine egne
   rutenettregler ikke kan overstyre kolonnene.
   ========================================================= */

body.woocommerce-account .wp-block-post-content .woocommerce {
	display: flex !important;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 2.5rem;
	grid-template-columns: none !important;
}

body.woocommerce-account .woocommerce-MyAccount-navigation {
	flex: 0 0 220px !important;
	width: 220px !important;
	max-width: 100%;
	float: none !important;
	margin: 0 !important;
}

body.woocommerce-account .woocommerce-MyAccount-content {
	padding-top: 0.2rem;
	flex: 1 1 0 !important;
	width: auto !important;
	min-width: 0;
	float: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* Menyen: piller under hverandre uten store luker */

body.woocommerce-account .woocommerce-MyAccount-navigation ul {
	display: block !important;
	list-style: none;
	margin: 0 !important;
	padding: 0 !important;
	gap: 0 !important;
}

body.woocommerce-account .woocommerce-MyAccount-navigation li {
	display: block !important;
	margin: 0 0 0.25rem !important;
	padding: 0 !important;
	border: 0 !important;
}

body.woocommerce-account .woocommerce-MyAccount-navigation li a {
	font-size: 1rem;
	padding: 0.6em 1.1em;
	display: block;
	border-radius: 999px;
	color: var(--wp--preset--color--contrast) !important;
	text-decoration: none !important;
	line-height: 1.3;
}

body.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a, body.woocommerce-account .woocommerce-MyAccount-navigation li a:hover {
	background: var(--wp--preset--color--tint);
	color: #fff !important;
}

/* Innholdet */

body.woocommerce-account .woocommerce-MyAccount-content h2, body.woocommerce-account .woocommerce-MyAccount-content h3 {
	margin-top: 0;
	font-size: 1.4rem;
}

/* Nedlastingene som liste, ikke tabell */

.woocommerce-account table.shop_table.order_details, .woocommerce-account table.woocommerce-table--order-downloads, .woocommerce-account table.shop_table {
	border: 0 !important;
	width: 100%;
	font-size: 1rem;
}

.woocommerce-account table.woocommerce-table--order-downloads thead, .woocommerce-account table.shop_table.order_details thead {
	display: none;
}

.woocommerce-account table.woocommerce-table--order-downloads td, .woocommerce-account table.shop_table td {
	border: 0 !important;
	border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 8%, transparent) !important;
	padding: 1rem 0 !important;
	background: transparent !important;
	vertical-align: middle;
}

.woocommerce-account table.woocommerce-table--order-downloads td.download-remaining, .woocommerce-account table.woocommerce-table--order-downloads td.download-expires, .woocommerce-account table.woocommerce-table--order-downloads th.download-remaining, .woocommerce-account table.woocommerce-table--order-downloads th.download-expires {
	display: none !important;
}

.woocommerce-account table.woocommerce-table--order-downloads td.download-product a {
	font-weight: 600;
	color: var(--wp--preset--color--contrast);
}

.woocommerce-account table.woocommerce-table--order-downloads td.download-file {
	text-align: right;
	white-space: nowrap;
}

.woocommerce-account table.woocommerce-table--order-downloads td.download-file a.button {
	font-size: 0.9rem !important;
	padding: 0.6em 1.4em !important;
}

@media (max-width: 780px) {
	body.woocommerce-account .woocommerce-MyAccount-navigation {
		flex: 0 0 100% !important;
		width: 100% !important;
	}
}

/* Sideinnholdet spenner over hele bredden, mens vanlige blokker
   fortsatt holdes på lesebredde. Da kan seksjoner med «full bredde»
   – som app-radene – faktisk bruke hele flaten. */

.wp-block-post-content.alignfull {
	max-width: none !important;
	width: 100%;
}

/* =========================================================
   Sider: hovedområdet har ingen sidepolstring, så seksjoner
   i full bredde treffer skjermkanten. Vanlig innhold får
   luften sin lokalt i stedet.
   ========================================================= */

.wp-block-post-content.alignfull > *:not(.alignfull), main.wp-block-group > .wp-block-post-title, main.wp-block-group > *:not(.wp-block-post-content) {
	padding-left: var(--wp--preset--spacing--md);
	padding-right: var(--wp--preset--spacing--md);
	box-sizing: border-box;
}

.wp-block-post-content.alignfull > *:not(.alignfull):not(.alignwide) {
	max-width: calc(var(--wp--style--global--content-size) + (2 * var(--wp--preset--spacing--md)));
	margin-left: auto;
	margin-right: auto;
}

.wp-block-post-content.alignfull > .alignwide {
	max-width: calc(var(--wp--style--global--wide-size) + (2 * var(--wp--preset--spacing--md)));
	margin-left: auto;
	margin-right: auto;
}

.wp-block-post-content.alignfull > .alignfull {
	max-width: none !important;
	width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

/* =========================================================
   Full bredde-seksjoner: start på null, og hold innholdet
   sentrert med god margin til kantene.
   ========================================================= */

body .wp-site-blocks .wp-block-post-content.alignfull > .alignfull, body .wp-site-blocks main .alignfull {
	margin-left: 0 !important;
	margin-right: 0 !important;
	left: auto !important;
	right: auto !important;
	width: 100% !important;
	max-width: 100% !important;
}

/* Ingressen under appnavnet */

.knitime-apphead + p {
	margin: 0 0 1rem;
	font-size: 1.05rem;
	line-height: 1.6;
}

/* Kulepunktene */

.knitime-features {
	padding-left: 0;
	list-style: none;
	font-size: 0.95rem;
	margin: 0 0 0.25rem;
}

.knitime-features li {
	position: relative;
	padding-left: 1.4rem;
	margin-bottom: 0.45rem;
	line-height: 1.55;
}

/* Merkene */

.knitime-tags {
	gap: 0.5rem;
	margin: 0.75rem 0 1.1rem;
}

/* Knappene */

.knitime-appbtn {
	margin-bottom: 0;
}

/* Lenkene nederst */

.knitime-applenker {
	font-size: 0.85rem;
	margin-top: 0.9rem;
	opacity: 0.75;
}

/* StitchRuler-telefonen står på mintdis bakgrunn, så selve
   rammen skal være hvit for å skille seg fra flaten. */

body .wp-block-group.alignfull:has(.knitime-apphead) > .wp-block-columns {
	max-width: 1240px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	gap: 3rem !important;
	align-items: center;
}

.knitime-phone {
	width: min(240px, 80%);
	aspect-ratio: 9 / 19;
	margin: 0 auto;
	background: var(--wp--preset--color--surface);
	border: 7px solid var(--wp--preset--color--contrast);
	border-radius: 38px;
	padding: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
	box-shadow: 0 18px 40px rgba(0, 0, 0, 0.15);
	overflow: hidden;
	margin-left: auto;
	margin-right: auto;
}

/* Telefonen på mintdis rader er hvit, på hvite rader mintdis */

.wp-block-group.has-surface-background-color .knitime-phone {
	background: #fff;
}

/* =========================================================
   APPER-SIDEN – bygget som prototypen, verdi for verdi.
   Rad: 1.5rem sidepolstring, innhold maks 1240 px sentrert,
   to kolonner 2fr/3fr med 3 rem mellomrom. Speilvendt i
   annenhver rad.
   ========================================================= */

.knitime-approw {
	padding: clamp(2.5rem, 5vw, 3.5rem) 1.5rem;
}

.knitime-approw--alt .knitime-approw__inner {
	grid-template-columns: 3fr 2fr;
}

/* Telefonen */

.knitime-approw--alt .knitime-phone {
	background: #fff;
}

.knitime-phone--tom {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.5rem;
	opacity: 0.75;
	background: #fff;
	font-size: 0.9rem;
	text-align: center;
}

/* Teksten */

.knitime-apphead {
	align-items: center;
	margin-bottom: 0.75rem;
}

.knitime-apphead .knitime-appicon, .knitime-apphead .knitime-appicon img {
	margin: 0;
	flex: 0 0 auto;
}

.knitime-apphead .knitime-appicon img {
	border-radius: 22%;
}

.knitime-apptekst > p {
	margin: 0 0 1rem;
	font-size: 1.05rem;
	line-height: 1.6;
}

.knitime-apptekst .knitime-features {
	margin: 0 0 0.75rem;
	font-size: 0.95rem;
}

.knitime-apptekst .knitime-tags {
	gap: 0.5rem;
	margin: 0 0 1.1rem;
}

.knitime-apptekst .wp-block-buttons {
	margin: 0;
}

.knitime-apptekst .knitime-applenker {
	margin: 0.9rem 0 0;
}

@media (max-width: 820px) {
	.knitime-approw__inner,
	.knitime-approw--alt .knitime-approw__inner {
		grid-template-columns: 1fr;
		gap: 2rem;
	}

	.knitime-approw--alt .knitime-apptekst {
		order: 2;
	}
}

/* =========================================================
   Apper-siden: trappetrinn. Telefonen flytter seg gradvis
   mot høyre nedover siden, og teksten holdes i en smalere
   blokk nær telefonen.
   ========================================================= */

/* Teksten i en rolig lesebredde, ikke over hele kolonnen */

.knitime-apptekst {
	min-width: 0;
	max-width: 46ch;
}

/* Trinn 1 og 2: telefonen i venstre kolonne */

.knitime-approw--trinn1 .knitime-approw__inner, .knitime-approw--trinn2 .knitime-approw__inner {
	grid-template-columns: 2fr 3fr;
}

/* Trinn 3 og 4: telefonen i høyre kolonne */

/* Telefonens plassering i sin egen kolonne – ett steg per rad */

.knitime-approw--trinn1 .knitime-phone {
	margin-left: 0;
	margin-right: auto;
}

.knitime-approw--trinn2 .knitime-phone {
	margin-left: auto;
	margin-right: 0;
}

.knitime-approw--trinn3 .knitime-phone {
	margin-left: 0;
	margin-right: auto;
}

.knitime-approw--trinn4 .knitime-phone {
	margin-left: auto;
	margin-right: 0;
}

/* Teksten legger seg mot telefonen */

.knitime-approw--trinn1 .knitime-apptekst, .knitime-approw--trinn2 .knitime-apptekst {
	margin-right: auto;
}

@media (max-width: 820px) {
	.knitime-apptekst {
		max-width: none;
		margin: 0 !important;
	}

	.knitime-phone {
		margin: 0 auto !important;
	}
}

/* =========================================================
   Apper-siden: fast avstand mellom telefon og tekst.
   Raden bruker flex med telefonen i fast bredde, og hele
   paret forskyves ett trinn per rad.
   ========================================================= */

.knitime-approw .knitime-phone {
	width: 240px;
	aspect-ratio: 9 / 19;
	margin: 0 !important;
	background: var(--wp--preset--color--surface);
	border: 7px solid var(--wp--preset--color--contrast);
	border-radius: 38px;
	padding: 0;
	overflow: hidden;
	box-shadow: 0 18px 40px rgba(0, 0, 0, 0.15);
	flex: 0 0 240px;
}

.knitime-approw .knitime-apptekst {
	flex: 1 1 auto;
	max-width: 46ch;
	margin: 0 !important;
	min-width: 0;
}

/* Trinn 1 og 2: telefonen til venstre, forskjøvet ett hakk */

.knitime-approw--trinn1 .knitime-approw__inner {
	padding-left: 0;
}

.knitime-approw--trinn2 .knitime-approw__inner {
	padding-left: 120px;
}

/* Trinn 3 og 4: telefonen til høyre, forskjøvet ett hakk */

.knitime-approw--trinn3 .knitime-approw__inner {
	padding-right: 120px;
}

.knitime-approw--trinn4 .knitime-approw__inner {
	padding-right: 0;
}

@media (max-width: 900px) {
	.knitime-approw__inner,
	.knitime-approw--trinn3 .knitime-approw__inner,
	.knitime-approw--trinn4 .knitime-approw__inner {
		flex-direction: column;
		padding-left: 0 !important;
		padding-right: 0 !important;
		gap: 2rem;
	}

	.knitime-approw .knitime-phone {
		flex: 0 0 auto;
		margin: 0 auto !important;
	}

	.knitime-approw .knitime-apptekst {
		max-width: none;
	}
}

/* =========================================================
   Apper-siden: mer luft, og teksten til venstre for telefonen
   i de to nederste radene.
   ========================================================= */

.knitime-approw__inner {
	max-width: 1240px;
	margin-left: auto;
	margin-right: auto;
	display: flex !important;
	grid-template-columns: none !important;
	gap: 4.5rem;
	align-items: center;
	box-sizing: border-box;
}

/* Trinn 3 og 4: teksten står først, telefonen skyves mot høyre */

.knitime-approw--trinn3 .knitime-approw__inner, .knitime-approw--trinn4 .knitime-approw__inner {
	grid-template-columns: 3fr 2fr;
	flex-direction: row !important;
}

.knitime-approw--trinn3 .knitime-phone, .knitime-approw--trinn4 .knitime-phone {
	margin-left: auto !important;
}

.knitime-approw--trinn3 .knitime-apptekst, .knitime-approw--trinn4 .knitime-apptekst {
	margin-left: auto;
	margin-right: 0 !important;
}

@media (max-width: 900px) {
	.knitime-approw__inner {
		gap: 2rem;
	}

	.knitime-approw--trinn3 .knitime-phone,
	.knitime-approw--trinn4 .knitime-phone {
		margin: 0 auto !important;
	}
}

/* =========================================================
   FORSIDESTRIPE – appene i én rolig boks
   ========================================================= */

.knitime-stripe__rutenett {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1.25rem;
}

.knitime-stripe__rute {
	background: #fff;
	border-radius: 18px;
	padding: 1.1rem;
	display: flex;
	gap: 0.9rem;
	align-items: center;
	transition: transform 0.18s ease, box-shadow 0.18s ease;
	color: var(--wp--preset--color--contrast) !important;
}

.knitime-stripe__rute:hover {
	transform: translateY(-3px);
	box-shadow: 0 12px 26px rgba(0, 0, 0, 0.08);
}

.knitime-stripe__rute img, .knitime-stripe__tom {
	width: 52px;
	height: 52px;
	border-radius: 22%;
	flex: 0 0 auto;
}

.knitime-stripe__tom {
	background: var(--wp--preset--color--surface);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.3rem;
}

.knitime-stripe__ord strong {
	display: block;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.05rem;
	font-weight: 600;
}

.knitime-stripe__ord span {
	display: block;
	font-size: 0.85rem;
	opacity: 0.7;
	line-height: 1.35;
}

@media (max-width: 820px) {
	.knitime-stripe {
		grid-template-columns: 1fr;
	}

	.knitime-stripe__rutenett {
		grid-template-columns: 1fr;
	}
}

/* =========================================================
   APP-SIDER
   ========================================================= */

.knitime-appside {
	--kant: color-mix(in srgb, var(--wp--preset--color--contrast) 10%, transparent);
}

.knitime-appside__hero {
	background: var(--wp--preset--color--surface);
	border-radius: 28px;
	padding: clamp(2rem, 5vw, 4rem);
	margin-bottom: clamp(3rem, 6vw, 5rem);
}

.knitime-appside__heroin {
	display: grid;
	grid-template-columns: 1.1fr 0.9fr;
	gap: clamp(2rem, 5vw, 4rem);
	align-items: center;
}

.knitime-appside__merke {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin-bottom: 1.25rem;
}

.knitime-appside__merke img {
	width: 72px;
	height: 72px;
	border-radius: 22%;
}

.knitime-appside h1 {
	font-size: clamp(2.4rem, 5vw, 3.6rem);
	margin: 0;
}

.knitime-appside__lofte {
	font-size: 1.25rem;
	opacity: 0.85;
	margin: 0.2rem 0 1.25rem;
}

.knitime-appside__ingress {
	max-width: 46ch;
	margin: 0 0 1.75rem;
}

.knitime-knapp {
	display: inline-block;
	border-radius: 999px;
	padding: 0.8em 1.8em;
	font-weight: 500;
	font-size: 0.95rem;
	border: 2px solid transparent;
}

.knitime-knapp--sort {
	background: var(--wp--preset--color--contrast);
	color: #fff !important;
	border-color: var(--wp--preset--color--contrast);
}

.knitime-knapp--sort:hover {
	background: transparent;
	color: var(--wp--preset--color--contrast) !important;
}

.knitime-knapp--kant {
	background: transparent;
	color: var(--wp--preset--color--contrast) !important;
	border-color: var(--wp--preset--color--contrast);
}

.knitime-knapp--kant:hover {
	background: var(--wp--preset--color--contrast);
	color: #fff !important;
}

.knitime-appside__mockup {
	display: flex;
	justify-content: center;
}

.knitime-appside__tlf {
	width: 250px;
	aspect-ratio: 9 / 19;
	border: 8px solid var(--wp--preset--color--contrast);
	border-radius: 40px;
	overflow: hidden;
	box-shadow: 0 24px 50px rgba(0, 0, 0, 0.18);
	background: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	font-size: 0.9rem;
	opacity: 1;
}

.knitime-appside__tlf img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.knitime-appside__tall {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1rem;
	margin-top: 2.5rem;
}

.knitime-appside__tall div {
	background: #fff;
	border-radius: 16px;
	padding: 1.1rem;
	text-align: center;
}

.knitime-appside__tall b {
	display: block;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.6rem;
	font-weight: 600;
}

.knitime-appside__tall span {
	font-size: 0.85rem;
	opacity: 0.7;
}

.knitime-appside__seksjon {
	margin-bottom: clamp(3rem, 6vw, 5rem);
}

.knitime-appside__seksjon > h2 {
	text-align: center;
	font-size: clamp(1.7rem, 3vw, 2.2rem);
	margin-bottom: 2rem;
}

.knitime-appside__funk {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 1.5rem;
}

.knitime-appside__funk div {
	border: 1px solid var(--kant);
	border-radius: 20px;
	padding: 1.5rem;
}

.knitime-appside__funk h3 {
	font-size: 1.15rem;
	margin: 0 0 0.4rem;
}

.knitime-appside__funk p {
	margin: 0;
	font-size: 0.95rem;
	opacity: 0.75;
}

.knitime-appside__steg {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem;
	counter-reset: knitimesteg;
}

.knitime-appside__steg div {
	counter-increment: knitimesteg;
}

.knitime-appside__steg div::before {
	content: counter(knitimesteg);
	display: flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: var(--wp--preset--color--tint);
	color: #fff;
	font-weight: 700;
	margin-bottom: 0.8rem;
}

.knitime-appside__steg strong {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.05rem;
}

.knitime-appside__steg p {
	margin: 0.3rem 0 0;
	opacity: 0.75;
	font-size: 0.95rem;
}

.knitime-appside__faq {
	max-width: 760px;
	margin-left: auto;
	margin-right: auto;
}

.knitime-appside__faq details {
	background: var(--wp--preset--color--surface);
	border-radius: 14px;
	padding: 1rem 1.25rem;
	margin-bottom: 0.75rem;
}

.knitime-appside__faq summary {
	cursor: pointer;
	font-weight: 600;
	list-style: none;
}

.knitime-appside__faq summary::-webkit-details-marker {
	display: none;
}

.knitime-appside__faq p {
	margin: 0.75rem 0 0;
}

.knitime-appside__cta {
	background: var(--wp--preset--color--surface);
	border-radius: 28px;
	padding: clamp(2.5rem, 5vw, 4rem);
	text-align: center;
}

.knitime-appside__cta h2 {
	margin-bottom: 0.5rem;
}

.knitime-appside__cta > p {
	opacity: 0.8;
	margin-bottom: 1.5rem;
}

.knitime-appside__cta .knitime-appside__smaa {
	margin-top: 1.5rem;
}

@media (max-width: 820px) {
	.knitime-appside__heroin,
	.knitime-appside__steg,
	.knitime-appside__tall {
		grid-template-columns: 1fr;
	}
}

/* =========================================================
   Forsiden: appstripe med ikonrekke
   ========================================================= */

.knitime-stripe__tekst h2 {
	font-size: clamp(1.9rem, 3.5vw, 2.6rem);
	margin: 0 0 0.6rem;
}

.knitime-stripe__tekst p {
	opacity: 0.8;
	margin: 0 0 1.5rem;
	max-width: 40ch;
}

.knitime-stripe__knapp {
	display: inline-block;
	background: var(--wp--preset--color--contrast);
	color: #fff !important;
	border: 2px solid var(--wp--preset--color--contrast);
	border-radius: 999px;
	padding: 0.75em 1.8em;
	font-weight: 500;
	font-size: 0.95rem;
}

.knitime-stripe__knapp:hover {
	background: transparent;
	color: var(--wp--preset--color--contrast) !important;
}

.knitime-mini:hover {
	transform: translateY(-3px);
	box-shadow: 0 10px 24px rgba(0, 0, 0, 0.08);
}

.knitime-mini img {
	width: 52px;
	height: 52px;
	border-radius: 22%;
	flex: 0 0 auto;
}

.knitime-mini__tom {
	width: 52px;
	height: 52px;
	border-radius: 22%;
	background: var(--wp--preset--color--surface);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.3rem;
	flex: 0 0 auto;
	opacity: 0.6;
}

@media (max-width: 820px) {
	.knitime-stripe {
		grid-template-columns: 1fr;
	}

	.knitime-stripe__ikoner {
		grid-template-columns: 1fr;
	}
}

/* =========================================================
   APP-SIDER – egne salgssider per app
   ========================================================= */

.knitime-appside-hero {
	background: var(--wp--preset--color--surface);
	padding: clamp(3rem, 6vw, 5rem) var(--wp--preset--spacing--md);
}

.knitime-appside-hero__inner {
	max-width: 1240px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1.1fr 0.9fr;
	gap: clamp(2rem, 5vw, 4rem);
	align-items: center;
}

.knitime-appside-hero__merke {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin-bottom: 1.25rem;
}

.knitime-appside-hero__merke img {
	width: 72px;
	height: 72px;
	border-radius: 22%;
}

.knitime-appside-hero h1 {
	font-size: clamp(2.4rem, 5vw, 3.6rem);
	margin: 0;
}

.knitime-appside__undertittel {
	font-size: 1.25rem;
	opacity: 0.8;
	margin: 0.2rem 0 1.5rem;
}

.knitime-appside__knapper {
	display: flex;
	gap: 0.75rem;
	flex-wrap: wrap;
	margin-bottom: 1rem;
	margin: 1.5rem 0 1rem;
}

.knitime-appside__smaa {
	font-size: 0.85rem;
	opacity: 0.65;
	margin: 0;
}

.knitime-appside-hero .knitime-phone {
	margin: 0 auto;
}

/* Funksjonskort */

.knitime-funk {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 1.5rem;
	margin-top: 2.5rem;
}

.knitime-funk > .wp-block-group {
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 10%, transparent);
	border-radius: 20px;
	padding: 1.5rem;
}

.knitime-funk h3 {
	font-size: 1.15rem;
	margin: 0 0 0.4rem;
}

.knitime-funk p {
	margin: 0;
	font-size: 0.95rem;
	opacity: 0.75;
}

/* Steg */

.knitime-steg {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem;
	margin-top: 2.5rem;
	counter-reset: knitime-steg;
	align-items: start;
}

.knitime-steg > .wp-block-group {
	counter-increment: knitime-steg;
}

.knitime-steg > .wp-block-group::before {
	content: counter(knitime-steg);
	display: flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: var(--wp--preset--color--tint);
	color: #fff;
	font-weight: 700;
	margin-bottom: 0.8rem;
}

.knitime-steg h3 {
	font-size: 1.1rem;
	margin: 0 0 0.3rem;
}

.knitime-steg p {
	margin: 0;
	opacity: 0.75;
	font-size: 0.95rem;
}

/* Sitat og avslutning */

.knitime-sitat {
	background: var(--wp--preset--color--surface);
	border-radius: 24px;
	padding: clamp(2rem, 4vw, 3rem);
	text-align: center;
	margin-top: 3rem;
}

.knitime-sitat p:first-child {
	font-size: 1.25rem;
	max-width: 52ch;
	margin: 0 auto 1rem;
}

.knitime-appside-cta {
	background: var(--wp--preset--color--surface);
	text-align: center;
	padding: clamp(3rem, 6vw, 4.5rem) var(--wp--preset--spacing--md);
	margin-top: 3.5rem;
}

.knitime-appside-cta h2 {
	margin-bottom: 0.5rem;
}

@media (max-width: 820px) {
	.knitime-appside-hero__inner,
	.knitime-steg {
		grid-template-columns: 1fr;
	}
}

/* App-sidene har egen tittel i toppseksjonen – skjul sidetittelen */

body:has(.knitime-appside-hero) .wp-block-post-title {
	display: none;
}

body:has(.knitime-appside-hero) main.wp-block-group {
	padding-top: 0;
}

/* Toppseksjonen og avslutningen går i full bredde */

.knitime-appside-hero, .knitime-appside-cta {
	width: 100%;
	max-width: none;
}

/* Innholdet mellom dem holdes på lesebredde */

body:has(.knitime-appside-hero) .wp-block-post-content > h2, body:has(.knitime-appside-hero) .wp-block-post-content > p, body:has(.knitime-appside-hero) .wp-block-post-content > .wp-block-details, body:has(.knitime-appside-hero) .wp-block-post-content > .knitime-funk, body:has(.knitime-appside-hero) .wp-block-post-content > .knitime-steg, body:has(.knitime-appside-hero) .wp-block-post-content > .knitime-sitat {
	max-width: 1240px;
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--wp--preset--spacing--md);
	padding-right: var(--wp--preset--spacing--md);
	box-sizing: border-box;
}

body:has(.knitime-appside-hero) .wp-block-post-content > h2 {
	text-align: center;
	margin-top: 3.5rem;
}

body:has(.knitime-appside-hero) .wp-block-post-content > h2 + p {
	text-align: center;
	max-width: 60ch;
	opacity: 0.8;
}

/* =========================================================
   Appstripen: strammere kort, som i forslaget
   ========================================================= */

.knitime-stripe {
	background: var(--wp--preset--color--surface);
	border-radius: 28px;
	padding: clamp(2rem, 4vw, 3.5rem);
	display: grid;
	grid-template-columns: minmax(280px, 1fr) 1.4fr;
	gap: clamp(2rem, 4vw, 4rem);
	align-items: center;
	box-sizing: border-box;
	max-width: 1240px;
	margin: 0 auto;
}

.knitime-stripe__ikoner {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1rem;
	align-content: center;
}

.knitime-mini img, .knitime-mini__tom {
	width: 48px;
	height: 48px;
}

.knitime-mini__tom svg {
	width: 24px;
	height: 24px;
	color: var(--wp--preset--color--contrast);
	opacity: 0.55;
}

.knitime-mini__tekst {
	display: flex;
	flex-direction: column;
	gap: 0.1rem;
	min-width: 0;
}

.knitime-mini__tekst strong {
	display: block;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.25;
}

.knitime-mini__tekst span {
	display: block;
	font-size: 0.85rem;
	opacity: 0.7;
	line-height: 1.3;
}

@media (max-width: 640px) {
	.knitime-stripe__ikoner {
		grid-template-columns: 1fr;
	}
}

/* Sikkerhetsnett: linjeskift som WordPress måtte legge inn
   i stripen skal ikke bryte opp kortene. */

.knitime-mini br, .knitime-stripe br {
	display: none !important;
}

.knitime-mini {
	background: #fff;
	border-radius: 18px;
	padding: 0.9rem 1.1rem;
	display: flex;
	gap: 0.85rem;
	align-items: center;
	transition: transform 0.18s ease, box-shadow 0.18s ease;
	color: var(--wp--preset--color--contrast) !important;
	min-height: 0;
	flex-wrap: nowrap;
}

/* Avslutningsseksjonen på app-sidene: knappen midtstilles */

.knitime-appside-cta .wp-block-buttons, .knitime-appside-cta .knitime-appside__knapper {
	justify-content: center;
	display: flex;
	gap: 0.75rem;
	flex-wrap: wrap;
	margin-top: 1.5rem;
	margin-bottom: 0;
	margin-left: auto !important;
	margin-right: auto !important;
	width: fit-content;
	max-width: 100%;
}

.knitime-appside-cta > * {
	max-width: 60ch;
	margin-left: auto;
	margin-right: auto;
}

/* Stegene: tallsirkelen og teksten på samme linje i alle tre */
.knitime-steg > .wp-block-group {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

.knitime-steg > .wp-block-group::before {
	flex: 0 0 auto;
	margin-bottom: 0.9rem;
}

.knitime-steg h3 {
	margin-top: 0;
	min-height: 2.6em;
	display: flex;
	align-items: flex-start;
}

.knitime-steg p {
	margin-top: 0;
}

/* WordPress legger automatisk toppmarg på alle blokker unntatt
   den første. I rutenett gir det skjeve kolonner – avstanden
   kommer allerede fra rutenettet. */
.knitime-steg > *,
.knitime-funk > *,
.knitime-stripe__ikoner > *,
.knitime-approw__inner > * {
	margin-top: 0 !important;
	margin-block-start: 0 !important;
}


/* =========================================================
   Telefon med sveipbare skjermbilder og prikker under
   ========================================================= */
.knitime-telefon {
	width: min(280px, 100%);
	margin: 0 auto;
	border: 8px solid var(--wp--preset--color--contrast);
	border-radius: 42px;
	overflow: hidden;
	background: #fff;
	box-shadow: 0 20px 45px rgba(0, 0, 0, 0.16);
}

.knitime-telefon__skjerm {
	display: flex;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	aspect-ratio: 9 / 19;
}

.knitime-telefon__skjerm::-webkit-scrollbar {
	display: none;
}

.knitime-telefon__skjerm img {
	flex: 0 0 100%;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top center;
	scroll-snap-align: start;
	border-radius: 0;
	display: block;
}

.knitime-prikker {
	display: flex;
	justify-content: center;
	gap: 0.5rem;
	margin-top: 1.1rem;
}

.knitime-prikk {
	width: 9px;
	height: 9px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: color-mix(in srgb, var(--wp--preset--color--contrast) 22%, transparent);
	cursor: pointer;
	transition: background-color 0.18s ease, transform 0.18s ease;
}

.knitime-prikk:hover {
	background: color-mix(in srgb, var(--wp--preset--color--tint) 70%, transparent);
}

.knitime-prikk.er-valgt {
	background: var(--wp--preset--color--tint);
	transform: scale(1.25);
}

/* I toppseksjonen erstatter telefonen den gamle rammen */
.knitime-appside-hero .knitime-telefon {
	width: min(300px, 100%);
}

/* Telefon og prikker hører sammen – prikkene rett under rammen */
.knitime-telefonblokk {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1rem;
	width: 100%;
}

.knitime-telefonblokk .knitime-prikker {
	margin-top: 0;
}


/* =========================================================
   Menyen i headeren (bygget i temaet, følger språket)
   ========================================================= */
.knitime-meny ul {
	display: flex;
	align-items: center;
	gap: 1.6rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.knitime-meny li {
	margin: 0;
}

.knitime-meny a {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.1rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--wp--preset--color--contrast) !important;
	-webkit-font-smoothing: antialiased;
}

.knitime-meny a:hover {
	color: var(--wp--preset--color--tint) !important;
}

.knitime-meny .current-menu-item a {
	font-weight: 800;
}

@media (max-width: 860px) {
		.knitime-meny ul {
		gap: 0.9rem;
	}

	.knitime-meny a {
		font-size: 0.9rem;
		letter-spacing: 0.05em;
	}
}

/* =========================================================
   Kassen: «Fullfør kjøpet» skal ligge rolig i flyten.
   WooCommerce gir knappen float:right, som gjør at den
   faller ut av boksen og blir vanskelig å treffe.
   ========================================================= */
.woocommerce-checkout #payment .form-row.place-order {
	display: flex;
	flex-direction: column;
	padding: 0;
	margin: 0;
}

.woocommerce-checkout #place_order {
	float: none !important;
	display: block !important;
	width: 100% !important;
	margin: 0.5rem 0 0 !important;
	min-height: 56px;
	box-sizing: border-box;
	position: relative;
	z-index: 1;
}

/* Vilkårsboksen over knappen skal være lett å treffe */
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper {
	margin-bottom: 1rem;
}

.woocommerce-checkout .validate-required .woocommerce-form__label-for-checkbox {
	display: flex;
	align-items: flex-start;
	gap: 0.6rem;
	cursor: pointer;
	line-height: 1.4;
}

.woocommerce-checkout .validate-required .woocommerce-form__input-checkbox {
	width: 20px;
	height: 20px;
	margin: 0.1rem 0 0;
	flex: 0 0 auto;
	cursor: pointer;
}

/* Elementors globale knappestil gir ikonene i headeren en flate.
   Ikonene er knapper teknisk sett, men skal se ut som ikoner.
   Kan fjernes når Elementor er slettet. */
body .knitime-ikoner .knitime-ikon,
body .knitime-header .knitime-ikon,
body .knitime-ikon--sok {
	background: none !important;
	background-color: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	padding: 0 !important;
	box-shadow: none !important;
}

/* =========================================================
   Min side: ordrelista
   Ordrenummeret ligger i en th-celle, som ellers arver
   overskriftsstilen med mintdis flate og fet skrift.
   ========================================================= */
.woocommerce-account table.woocommerce-orders-table {
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 10%, transparent);
	border-radius: 14px;
	overflow: hidden;
	width: 100%;
	font-size: 0.95rem;
}

.woocommerce-account table.woocommerce-orders-table thead th {
	background: var(--wp--preset--color--surface);
	font-weight: 600;
	font-size: 0.8rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-align: left;
	padding: 0.85rem 1rem !important;
	border: 0 !important;
}

.woocommerce-account table.woocommerce-orders-table tbody th,
.woocommerce-account table.woocommerce-orders-table tbody td {
	background: transparent !important;
	font-weight: 400;
	text-align: left;
	padding: 0.9rem 1rem !important;
	border: 0 !important;
	border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 8%, transparent) !important;
	vertical-align: middle;
	text-transform: none;
	letter-spacing: normal;
}

.woocommerce-account table.woocommerce-orders-table tbody th {
	font-weight: 600;
}

.woocommerce-account table.woocommerce-orders-table .woocommerce-orders-table__cell-order-actions {
	text-align: right;
	white-space: nowrap;
}

.woocommerce-account table.woocommerce-orders-table .button {
	font-size: 0.85rem !important;
	padding: 0.5em 1.2em !important;
}

/* Varselboksen over lista */
.woocommerce-account .woocommerce-info {
	align-items: center;
}

/* Underkategorier som WooCommerce legger inn i produktlista */
.woocommerce ul.products li.product-category {
	display: none !important;
}

/* =========================================================
   Sorteringsvelgeren – rolig og i temaets drakt
   ========================================================= */
.woocommerce .woocommerce-ordering select {
	appearance: none;
	-webkit-appearance: none;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 18%, transparent);
	border-radius: 999px;
	background-color: #fff;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 1rem center;
	background-size: 16px;
	padding: 0.65em 2.6em 0.65em 1.2em;
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.95rem;
	color: var(--wp--preset--color--contrast);
	cursor: pointer;
	box-shadow: none;
	outline: none;
	min-height: 44px;
}

.woocommerce .woocommerce-ordering select:hover {
	border-color: var(--wp--preset--color--tint);
}

.woocommerce .woocommerce-ordering select:focus-visible {
	border-color: var(--wp--preset--color--tint);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--wp--preset--color--tint) 35%, transparent);
}

/* =========================================================
   Juridiske sider – personvern og vilkår.
   Bare typografi og luft; ordlyden røres ikke.
   ========================================================= */
.knitime-juridisk .wp-block-post-content > p:first-of-type,
body.page .wp-block-post-content > p:first-child:not([class]) {
	font-size: 0.9rem;
	opacity: 0.6;
	margin-bottom: 2rem;
}

/* Nummererte overskrifter får luft og en rolig strek over */
body.page .wp-block-post-content > h2 {
	font-size: 1.35rem;
	margin-top: 2.75rem;
	margin-bottom: 0.6rem;
	padding-top: 1.5rem;
	border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 8%, transparent);
}

body.page .wp-block-post-content > h2:first-of-type {
	border-top: 0;
	padding-top: 0;
	margin-top: 2rem;
}

body.page .wp-block-post-content > h3 {
	font-size: 1.1rem;
	margin-top: 1.75rem;
	margin-bottom: 0.4rem;
}

/* Brødtekst med god linjeavstand og lesebredde */
body.page .wp-block-post-content > p {
	line-height: 1.75;
	max-width: 68ch;
	margin-bottom: 1.1rem;
}

body.page .wp-block-post-content > ul {
	line-height: 1.75;
	max-width: 68ch;
	margin-bottom: 1.5rem;
}

body.page .wp-block-post-content > ul li {
	margin-bottom: 0.5rem;
}

/* Kontaktavsnittet nederst løftes fram */
body.page .wp-block-post-content > h2:last-of-type {
	border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 8%, transparent);
}

body.page .wp-block-post-content > p:last-child {
	background: var(--wp--preset--color--surface);
	border-radius: 16px;
	padding: 1.25rem 1.5rem;
	margin-top: 0.5rem;
}

/* App-sidene: toppseksjonen skal starte rett under headeren.
   Malen har toppolstring fra en innebygd stil, derfor !important. */
body:has(.knitime-appside-hero) main.wp-block-group {
	padding-top: 0 !important;
}

body:has(.knitime-appside-hero) .wp-block-post-content {
	margin-top: 0 !important;
}

body:has(.knitime-appside-hero) .wp-block-post-content > .knitime-appside-hero:first-child {
	margin-top: 0 !important;
}

/* Appnavn og ikon på Apper-siden er lenker til hver app-side */
.knitime-apphead h2 a {
	color: var(--wp--preset--color--contrast);
	font-weight: inherit;
}

.knitime-apphead h2 a:hover {
	color: var(--wp--preset--color--tint);
}

.knitime-appicon a {
	display: block;
	transition: transform 0.18s ease;
}

.knitime-appicon a:hover {
	transform: translateY(-2px);
}

/* Kjøp-knappen skal ha samme høyde som Apple Pay og Google Pay,
   som WooPayments tegner i 48 px. */
.woocommerce div.product form.cart .single_add_to_cart_button,
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart .single_add_to_cart_button {
	height: 48px;
	min-height: 48px;
}

.woocommerce div.product form.cart div.quantity .qty {
	height: 48px;
	line-height: 48px;
}

.woocommerce div.product .wcpay-express-checkout-wrapper,
.woocommerce div.product .wcpay-payment-request-wrapper {
	margin-top: 0.75rem;
}

/* =========================================================
   Produktgalleriet: skjul bildene under hovedbildet til
   galleriet er ferdig lastet. Uten dette ser man dem rulle
   forbi før det lander på hovedbildet.
   ========================================================= */
.woocommerce div.product .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:not(:first-child) {
	display: none;
}

.woocommerce div.product .flex-viewport .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image {
	display: block;
}

.woocommerce div.product .woocommerce-product-gallery {
	opacity: 1;
}

/* Juridiske lenker nederst i footeren – diskret, men tilgjengelig */
.knitime-footer-legal {
	font-size: 0.85rem;
	opacity: 0.7;
	margin-top: 0.35rem;
}

/* =========================================================
   Min side: innlogging og registrering
   ========================================================= */

/* Knappene skal være tydelige – dette er inngangen til kontoen */
.woocommerce-account form.login button[type="submit"],
.woocommerce-account form.register button[type="submit"],
.woocommerce form.lost_reset_password button[type="submit"] {
	background: var(--wp--preset--color--tint) !important;
	color: #fff !important;
	border: 2px solid var(--wp--preset--color--tint) !important;
	border-radius: 999px;
	padding: 0.7em 2em !important;
	font-size: 0.95rem !important;
	font-weight: 500;
}

.woocommerce-account form.login button[type="submit"]:hover,
.woocommerce-account form.register button[type="submit"]:hover,
.woocommerce form.lost_reset_password button[type="submit"]:hover {
	background: #fff !important;
	color: var(--wp--preset--color--tint) !important;
}

/* Personvernmerknaden er en fotnote, ikke brødtekst */
.woocommerce-privacy-policy-text,
.woocommerce-privacy-policy-text p,
.woocommerce-form__label-for-checkbox ~ .woocommerce-privacy-policy-text p {
	font-size: 0.85rem;
	line-height: 1.55;
	opacity: 0.7;
	margin-bottom: 1rem;
}

.woocommerce-privacy-policy-text a {
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* Skjemaboksene får litt mer luft */
.woocommerce-account .u-column1,
.woocommerce-account .u-column2 {
	padding: 1.75rem;
}

/* Forsidens H1 – samme uttrykk som sidetitlene ellers */
.knitime-forsidetittel {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 2.9rem;
	font-weight: 500;
	line-height: 1.15;
	margin: 0 0 1.5rem;
}

/* Butikkens H1 – samme uttrykk som sidetitlene ellers */
.knitime-butikktittel {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 2.9rem;
	font-weight: 500;
	line-height: 1.15;
	margin: 0 0 1.25rem;
}



.knitime-menyknapp__strek {
	display: block;
	width: 24px;
	height: 2px;
	background: var(--wp--preset--color--contrast);
	border-radius: 2px;
	transition: transform 0.22s ease, opacity 0.18s ease;
}

@media (max-width: 700px) {
	.knitime-menyknapp {
		display: flex;
		order: 2;
		flex: 0 0 auto;
	}

	/* Menyen ligger skjult til knappen trykkes */
	.knitime-meny {
		order: 4;
		flex: 0 0 100%;
		display: grid;
		grid-template-rows: 0fr;
		transition: grid-template-rows 0.25s ease;
	}

	.knitime-meny ul {
		overflow: hidden;
		flex-direction: column;
		align-items: flex-start;
		gap: 0;
		min-height: 0;
	}

	.knitime-meny li {
		width: 100%;
		border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 8%, transparent);
	}

	.knitime-meny a {
		display: block;
		padding: 0.9rem 0.25rem;
		font-size: 1rem;
	}

	.knitime-meny-apen .knitime-meny {
		grid-template-rows: 1fr;
	}

	/* Knappen blir et kryss når menyen er åpen */
	.knitime-meny-apen .knitime-menyknapp__strek:nth-child(1) {
		transform: translateY(7px) rotate(45deg);
	}

	.knitime-meny-apen .knitime-menyknapp__strek:nth-child(2) {
		opacity: 0;
	}

	.knitime-meny-apen .knitime-menyknapp__strek:nth-child(3) {
		transform: translateY(-7px) rotate(-45deg);
	}

	/* Logoen midtstilles mellom knappen og ikonene */
	.knitime-header .wp-block-site-logo {
		order: 1;
		flex: 0 0 100%;
		margin-bottom: 0.25rem;
	}

	.knitime-ikoner {
		order: 3;
		margin-left: auto;
	}
}

/* =========================================================
   HEADER – meny, logo og ikoner
   ========================================================= */
.knitime-headerbar > p:empty,
.knitime-headerbar br {
	display: none !important;
}

.knitime-menyblokk {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	justify-self: start;
}

/* Ikonene tettere sammen */
.knitime-ikoner {
	gap: 1rem;
}

/* Hamburgerknappen vises bare på mobil */
.knitime-menyknapp {
	display: none;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	width: 42px;
	height: 42px;
	padding: 0;
	border: 0;
	background: none;
	cursor: pointer;
}

.knitime-menyknapp__strek {
	display: block;
	width: 24px;
	height: 2px;
	background: var(--wp--preset--color--contrast);
	border-radius: 2px;
	transition: transform 0.22s ease, opacity 0.18s ease;
}

/* =========================================================
   MOBIL – logo øverst, hamburger til venstre, ikoner til høyre
   ========================================================= */
@media (max-width: 780px) {
	.knitime-header .knitime-headerbar {
		display: flex !important;
		flex-wrap: wrap;
		align-items: center;
		gap: 0.5rem;
		position: relative;
		padding-top: 0.6rem;
		padding-bottom: 0.6rem;
	}

	.knitime-header .wp-block-site-logo {
		order: 1;
		flex: 0 0 100%;
		display: flex;
		justify-content: center;
		margin: 0 0 0.35rem;
	}

	.knitime-header .wp-block-site-logo,
	.knitime-header .wp-block-site-logo img {
		width: 180px !important;
	}

	.knitime-menyblokk {
		order: 2;
		flex: 0 0 auto;
	}

	.knitime-ikoner {
		order: 3;
		margin-left: auto;
		gap: 1.1rem;
	}

	.knitime-ikon svg {
		width: 24px;
		height: 24px;
	}

	.knitime-menyknapp {
		display: flex;
	}

	/* Menyen som panel under headeren */
	.knitime-meny {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		background: #fff;
		box-shadow: 0 14px 28px rgba(0, 0, 0, 0.10);
		border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 8%, transparent);
		display: none;
		z-index: 90;
	}

	.knitime-meny-apen .knitime-meny {
		display: block;
	}

	.knitime-meny ul {
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		padding: 0.25rem 1.25rem 0.75rem;
	}

	.knitime-meny li + li {
		border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 8%, transparent);
	}

	.knitime-meny a {
		display: block;
		padding: 0.9rem 0;
		font-size: 1rem;
	}

	.knitime-meny-apen .knitime-menyknapp__strek:nth-child(1) {
		transform: translateY(7px) rotate(45deg);
	}

	.knitime-meny-apen .knitime-menyknapp__strek:nth-child(2) {
		opacity: 0;
	}

	.knitime-meny-apen .knitime-menyknapp__strek:nth-child(3) {
		transform: translateY(-7px) rotate(-45deg);
	}

	.knitime-notice p {
		font-size: 0.78rem !important;
		line-height: 1.45;
	}

	.knitime-rader {
		grid-template-columns: 1fr !important;
		gap: 2.5rem !important;
		padding-left: 1.25rem;
		padding-right: 1.25rem;
	}

	.woocommerce ul.products {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 1.5rem 1rem !important;
	}

	.knitime-butikktittel,
	.wp-block-post-title {
		font-size: 2rem !important;
	}
}


/* =========================================================================
   MOBILFIKSER - august 2026            [ START MOBILFIKSER ]
   -------------------------------------------------------------------------
   Denne blokken ligger BEVISST sist i fila.
   Flere mobilregler lenger oppe var doede fordi generelle regler star ETTER
   dem og vinner pa lik spesifisitet. Legg nye mobilfikser her, ikke lenger
   opp, ellers gjentar problemet seg.
   Angre = slett alt fra [ START MOBILFIKSER ] og ut fila.
   ========================================================================= */

/* --- Forsiden: appstripen sprengte sida (557 px i et 390 px vindu) ------ */
@media (max-width: 820px) {
	.knitime-stripe,
	.knitime-stripe__ikoner {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* --- Headeren: logoen midtstilt (laa 60 px for langt til venstre) ------- */
@media (max-width: 780px) {
	.knitime-header .wp-block-site-logo .custom-logo-link {
		width: auto;
		text-align: center;
	}
}

/* --- Apper-siden: StitchTap og StitchRuler stables som de to andre ------ */
@media (max-width: 900px) {
	.knitime-approw__inner,
	.knitime-approw--alt .knitime-approw__inner,
	.knitime-approw--trinn3 .knitime-approw__inner,
	.knitime-approw--trinn4 .knitime-approw__inner {
		flex-direction: column !important;
		grid-template-columns: minmax(0, 1fr) !important;
	}

	.knitime-approw .knitime-phone,
	.knitime-approw .knitime-apptekst {
		max-width: 100%;
	}
}

/* --- Butikken: en oppskrift per rad ------------------------------------ */
@media (max-width: 780px) {
	.woocommerce ul.products,
	.woocommerce-page ul.products {
		grid-template-columns: minmax(0, 1fr) !important;
		gap: 2.25rem !important;
	}

	/* "Du liker kanskje ogsaa" og oppsalg beholder to og to */
	.woocommerce .related.products ul.products,
	.woocommerce .up-sells ul.products,
	.woocommerce .cross-sells ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 1.5rem 1rem !important;
	}
}

/* --- Forsiden: oppskriftsbilder i full bredde, kategorier to og to ------ */
@media (max-width: 780px) {
	.knitime-rader {
		padding-left: 0;
		padding-right: 0;
	}

	.wp-block-group.is-layout-grid:has(> .knitime-card) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1rem;
	}
}

/* --- Handlekurven: en kolonne (laa klemt i en 195 px kolonne) ----------- */
@media (max-width: 820px) {
	.woocommerce-cart .woocommerce {
		grid-template-columns: minmax(0, 1fr);
	}

	.woocommerce-cart .woocommerce form.woocommerce-cart-form,
	.woocommerce-cart .woocommerce .cart-collaterals {
		grid-column: 1;
		width: auto;
		max-width: 100%;
	}
}

/* --- Kassen: oppsummeringen holdt seg ikke innenfor rammen -------------- */
@media (max-width: 860px) {
	.woocommerce-checkout #order_review,
	.woocommerce-checkout .woocommerce-checkout-review-order {
		box-sizing: border-box;
		max-width: 100%;
	}
}

/* --- Headerens soekefelt i temaets drakt -------------------------------- */
/* Feltet kommer fra get_search_form() og var helt ustylet: Arial,
   inset-ramme og systemknapp som iOS tegner blaa. */
.knitime-sokfelt .search-form {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.knitime-sokfelt .search-form label {
	flex: 1 1 auto;
	min-width: 0;
	margin: 0;
}

/* wpautop legger inn <br> og tomme avsnitt inni skjemaet */
.knitime-sokfelt br,
.knitime-sokfelt p:empty {
	display: none;
}

.knitime-sokfelt .search-field {
	width: 100%;
	box-sizing: border-box;
	font-family: inherit;
	/* 16 px hindrer at iOS zoomer inn naar feltet faar fokus */
	font-size: 16px;
	color: var(--wp--preset--color--contrast);
	background: #fff;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 25%, transparent);
	border-radius: 999px;
	padding: 0.5em 1em;
	-webkit-appearance: none;
	appearance: none;
}

.knitime-sokfelt .search-submit {
	flex: 0 0 auto;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 0.95rem;
	font-weight: 600;
	color: #fff;
	background: var(--wp--preset--color--tint);
	border: none;
	border-radius: 999px;
	padding: 0.55em 1.2em;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}

.knitime-sokfelt .search-submit:hover,
.knitime-sokfelt .search-submit:focus {
	background: color-mix(in srgb, var(--wp--preset--color--tint) 85%, #000);
}


/* --- Soekeresultater: bilde til venstre, tekst til hoeyre -------------- */
.knitime-sokresultat {
	align-items: flex-start;
}

.knitime-sokresultat > .wp-block-post-featured-image {
	flex: 0 0 120px;
	width: 120px;
	margin: 0;
}

.knitime-sokresultat > .wp-block-post-featured-image img {
	width: 120px;
	height: 120px;
	object-fit: cover;
	border-radius: 14px;
	display: block;
}

/* Tekstkolonnen faar resten, min-width: 0 hindrer at lange ord sprenger den */
.knitime-sokresultat > .wp-block-group {
	flex: 1 1 auto;
	min-width: 0;
}

.knitime-sokresultat .wp-block-post-title {
	margin: 0;
}

.knitime-sokresultat .wp-block-post-excerpt {
	margin: 0;
}

.knitime-sokresultat .price {
	font-weight: 600;
}


/* --- Soekeresultater paa smale skjermer: mindre bilde, mer plass til tekst */
/* sokresultat-mobil */
@media (max-width: 600px) {
	.knitime-sokresultat > .wp-block-post-featured-image {
		flex: 0 0 96px;
		width: 96px;
	}

	.knitime-sokresultat > .wp-block-post-featured-image img {
		width: 96px;
		height: 96px;
	}

	.knitime-sokresultat .wp-block-post-title {
		font-size: 1.15rem !important;
	}
}


/* =========================================================================
   MOBILFIKSER RUNDE 2 - august 2026        [ START RUNDE 2 ]
   Angre = slett alt fra [ START RUNDE 2 ] og ut fila.
   ========================================================================= */

/* --- 1. Tomme avsnitt fra wpautop ga 35,2 px doed luft til hoeyre ------- */
.knitime-headerbar p:empty,
.knitime-ikoner p:empty,
.knitime-menyblokk p:empty {
	display: none;
}

/* --- 2. Sveip til bilde 2 paa butikkortene (mobil) ---------------------- */
@media (max-width: 780px) {
	.woocommerce ul.products li.product .knitime-thumbwrap {
		display: flex;
		overflow-x: auto;
		overflow-y: hidden;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}

	.woocommerce ul.products li.product .knitime-thumbwrap::-webkit-scrollbar {
		display: none;
	}

	.woocommerce ul.products li.product .knitime-thumbwrap img,
	.woocommerce ul.products li.product .knitime-thumbwrap img.knitime-hoverimg {
		position: static;
		opacity: 1;
		flex: 0 0 100%;
		width: 100%;
		height: 100%;
		object-fit: cover;
		scroll-snap-align: center;
	}
}

/* --- 3. Mint box-shadow rundt valgt miniatyrbilde ----------------------- */
.woocommerce div.product .flex-control-thumbs li img.flex-active,
.woocommerce div.product .flex-control-thumbs img.flex-active {
	box-shadow: none;
}


/* ============ MOBILFIKSER RUNDE 2B - kurv og kasse [ RUNDE 2B ] ========= */

/* --- 5+6. Sebrastriping og dobbeltstrek i totalsummene ------------------
   WooCommerce gir annenhver celle background rgba(0,0,0,.024) - det er
   "skyggen" bak Levering-raden. Og hver <tr> har border-bottom mens
   Totalt-cellene i tillegg har border-top, som gir to streker oppaa
   hverandre. Vi beholder radens egen strek og fjerner cellenes.
   ---------------------------------------------------------------------- */
.woocommerce-cart .cart_totals table.shop_table tr > th,
.woocommerce-cart .cart_totals table.shop_table tr > td,
.woocommerce-checkout .woocommerce-checkout-review-order-table tr > th,
.woocommerce-checkout .woocommerce-checkout-review-order-table tr > td {
	background-color: transparent;
	border-top: none;
}

/* --- 4. Handlekurvraden paa mobil (omskrevet) -------------------------
   Cellene loeses opp med display:contents, slik at bilde, tekst, pris og
   kryss blir fire ruter i SAMME rutenett. Da ligger prisen rett under
   tittelen i stedet for aa henge i en egen celle med kunstig innrykk.
   WooCommerce hoeyrestiller responsive tabeller med !important, derfor
   maa text-align settes med !important her.
   -------------------------------------------------------------------- */
@media (max-width: 820px) {
	.woocommerce-cart .shop_table .cart_item {
		position: relative;
		display: grid;
		grid-template-columns: 72px 1fr 44px;
		align-items: center;
		column-gap: 0.9rem;
		row-gap: 0.15rem;
		padding: 1rem 0;
	}

	.woocommerce-cart .shop_table .cart_item > .product-name,
	.woocommerce-cart .shop_table .cart_item .knitime-kurvrad {
		display: contents;
	}

	.woocommerce-cart .shop_table .cart_item .knitime-kurvrad__bilde {
		grid-column: 1;
		grid-row: 1 / span 2;
		align-self: center;
	}

	.woocommerce-cart .shop_table .cart_item .knitime-kurvrad__tekst {
		grid-column: 2;
		grid-row: 1;
		align-self: end;
	}

	.woocommerce-cart .shop_table .cart_item > .product-price {
		grid-column: 2;
		grid-row: 2;
		align-self: start;
		padding: 0;
		font-weight: 600;
	}

	/* Cella lar seg ikke bre ut - tabellarven klemmer den til noen faa px.
	   Derfor plasseres lenka absolutt mot radens hoeyrekant i stedet, med
	   44 px trykkomraade. Sporet paa 44 px holder teksten unna. */
	.woocommerce-cart .shop_table .cart_item > .product-remove {
		grid-column: 3;
		grid-row: 1 / span 2;
		padding: 0;
	}

	.woocommerce-cart .shop_table .cart_item > .product-remove a {
		position: absolute;
		right: 0;
		top: 50%;
		transform: translateY(-50%);
		display: flex;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
	}

	.woocommerce-cart .shop_table .cart_item > th::before,
	.woocommerce-cart .shop_table .cart_item > td::before {
		display: none;
	}

	.woocommerce-cart .shop_table .cart_item > th,
	.woocommerce-cart .shop_table .cart_item > td,
	.woocommerce-cart .shop_table .cart_item .knitime-kurvrad__tekst,
	.woocommerce-cart .shop_table .cart_item .knitime-kurvrad__navn,
	.woocommerce-cart .shop_table .cart_item .knitime-kurvrad__meta {
		text-align: left !important;
		border: none;
	}
}


/* ====== MOBILFIKSER RUNDE 2C - bilde 2 paa forsidekortene [ RUNDE 2C ] == */
/* PC: bilde 2 tones inn ved hover. Mobil: sveip i stedet, siden man ikke
   hovrer paa telefon. Samme oppfoersel som i butikken.                    */

.knitime-produktkort__bilde .knitime-thumbwrap {
	position: relative;
	display: block;
	width: 100%;
	border-radius: 16px;
	overflow: hidden;
	aspect-ratio: 1 / 1;
	background: var(--wp--preset--color--surface);
}

.knitime-produktkort__bilde .knitime-thumbwrap img {
	display: block;
	width: 100%;
	height: 100%;
	margin: 0;
	border-radius: 0;
	object-fit: cover;
}

.knitime-produktkort__bilde .knitime-thumbwrap img.knitime-hoverimg {
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity 0.25s ease;
}

.knitime-produktkort:hover .knitime-thumbwrap img.knitime-hoverimg {
	opacity: 1;
}

/* wpautop lager tomme avsnitt inni kortene */
.knitime-produktkort p:empty {
	display: none;
}

@media (max-width: 780px) {
	.knitime-produktkort__bilde .knitime-thumbwrap {
		display: flex;
		overflow-x: auto;
		overflow-y: hidden;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}

	.knitime-produktkort__bilde .knitime-thumbwrap::-webkit-scrollbar {
		display: none;
	}

	.knitime-produktkort__bilde .knitime-thumbwrap img,
	.knitime-produktkort__bilde .knitime-thumbwrap img.knitime-hoverimg {
		position: static;
		opacity: 1;
		flex: 0 0 100%;
		width: 100%;
		height: 100%;
		object-fit: cover;
		scroll-snap-align: center;
	}
}


/* ====== RUNDE 2D - valgt miniatyrbilde [ RUNDE 2D ] ===================== */
/* Mint-rammen er fjernet, saa full opasitet er eneste markoer for hvilket
   bilde som er valgt. Regelen staar sist i fila og vinner paa rekkefoelge, uten !important.                                        */
.woocommerce div.product .flex-control-thumbs li img.flex-active,
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active {
	opacity: 1;
}


/* ====== RUNDE 2E - prikker paa produktbildene [ START RUNDE 2E ] ========= */
/* Skriptet i functions.php pakker bildet i .knitime-bildeboks og legger
   prikkene inn. Uten display:block blir den span-en inline og gir luft
   under bildet. Prikkene er ikke klikkbare - kortet er en lenke.        */

.knitime-bildeboks {
	position: relative;
	display: block;
}

.knitime-kortprikker {
	/* Skjult paa PC - der byttes bildet ved hover */
	display: none;
	position: absolute;
	left: 0;
	right: 0;
	bottom: 10px;
	justify-content: center;
	gap: 6px;
	pointer-events: none;
	z-index: 2;
}

.knitime-kortprikk {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.55);
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
	transition: background-color 0.18s ease;
}

.knitime-kortprikk.er-valgt {
	background: #fff;
}

@media (max-width: 780px) {
	.knitime-kortprikker {
		display: flex;
	}
}


/* ====== RUNDE 2F - "Du liker kanskje ogsaa" paa en linje [ RUNDE 2F ] ==== */
/* Grunnregelen er repeat(auto-fill, minmax(280px, 1fr)), som gir tre
   kolonner i en 1052 px bred seksjon - da faller kort nr. 4 ned paa egen
   linje. Fire like kolonner gir 239 px per kort, som er god plass.
   Under 781 px gjelder mobilregelen med to og to.                        */
@media (min-width: 781px) {
	.woocommerce .related.products ul.products,
	.woocommerce .up-sells ul.products,
	.woocommerce .cross-sells ul.products {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}
