/* Kurv, kasse, ordrebekræftelse og konto. Mekanikken og markuppen er WooCommerces; her står kun udseendet. */

/* WooCommerces egne farvevariabler følger temaet, så dets regler for fejl, påkrævede felter og formularkanter taler samme sprog som resten af sitet. */
:root {
	--wc-red: var(--color-danger);
	--wc-green: var(--color-success);
	--wc-form-border-color: var(--rule-field);
	--wc-form-border-radius: var(--radius-sm);
}

/* WooCommerces blok-temaark holder siderne på 1.000 px; de følger containeren som resten af sitet. */
.woocommerce-cart main .woocommerce,
.woocommerce-checkout main .woocommerce,
.woocommerce-account main .woocommerce,
.woocommerce-cart .wp-block-post-title,
.woocommerce-checkout .wp-block-post-title,
.woocommerce-account .wp-block-post-title { max-width: none; }

/* Knapper: handlingen, der fører videre, er orange; alt andet er sekundært. */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce .button.add_to_cart_button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-8);
	background: var(--color-accent);
	color: var(--color-primary-deep);
	font-weight: 600;
	font-size: var(--text-14);
	line-height: 1.2;
	text-align: center;
	border: 1px solid transparent;
	border-radius: var(--radius-sm);
	padding: calc(var(--space-12) - 1px) calc(var(--space-24) - 1px);
	min-height: var(--space-44);
	box-sizing: border-box;
	transition: background .15s, color .15s, border-color .15s;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce .button.add_to_cart_button:hover {
	background: var(--color-primary-deep);
	color: var(--color-surface);
}

.woocommerce a.button.wc-forward,
.woocommerce a.button.wc-backward,
.woocommerce .cart-pdf-button.button,
.woocommerce-cart-form td.actions .button,
.woocommerce .woocommerce-orders-table a.button {
	background: transparent;
	color: var(--color-primary);
	border: 1px solid var(--rule-strong);
}
.woocommerce a.button.wc-forward:hover,
.woocommerce a.button.wc-backward:hover,
.woocommerce .cart-pdf-button.button:hover,
.woocommerce-cart-form td.actions .button:hover,
.woocommerce .woocommerce-orders-table a.button:hover {
	background: var(--color-surface);
	color: var(--color-primary-deep);
	border-color: var(--color-primary);
}
.woocommerce .wc-proceed-to-checkout a.checkout-button,
.woocommerce #payment #place_order {
	background: var(--color-accent);
	color: var(--color-primary-deep);
	border-color: transparent;
}
.woocommerce .wc-proceed-to-checkout a.checkout-button:hover,
.woocommerce #payment #place_order:hover {
	background: var(--color-primary-deep);
	color: var(--color-surface);
}
.woocommerce .button:disabled,
.woocommerce .button.disabled { opacity: 0.5; cursor: not-allowed; }

/* Priser */
.woocommerce .price,
.woocommerce-Price-amount {
	color: var(--color-foreground);
	font-weight: 700;
}
.woocommerce .price del,
.woocommerce table.shop_table del { color: var(--color-text-muted); font-weight: 400; }
.woocommerce table.shop_table ins { text-decoration: none; }
.woocommerce-Price-amount.amount { font-feature-settings: "tnum"; white-space: nowrap; }

.woocommerce .quantity .qty {
	box-sizing: border-box;
	width: 4.5em;
	height: var(--space-44);
	padding: 0 var(--space-8);
	border: 1px solid var(--rule-field);
	border-radius: var(--radius-sm);
	background: var(--color-surface);
	color: var(--color-foreground);
	font-family: var(--font-mono);
	font-size: var(--text-16);
	text-align: center;
}

/* Felter */
.woocommerce form .form-row { padding: 0; margin: 0 0 var(--space-16); }
.woocommerce form .form-row label:not(.woocommerce-form__label-for-checkbox) { display: block; margin: 0 0 var(--space-6); font-size: var(--text-14); font-weight: 500; line-height: 1.4; color: var(--color-foreground); }
.woocommerce form .form-row .optional { color: var(--color-text-muted); font-weight: 400; }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-cart-form td.actions .coupon #coupon_code {
	box-sizing: border-box;
	width: 100%;
	min-height: var(--space-44);
	padding: var(--space-10) var(--space-12);
	border: 1px solid var(--rule-field);
	border-radius: var(--radius-sm);
	background: var(--color-surface);
	color: var(--color-foreground);
	font-family: inherit;
	font-size: var(--text-16);
	line-height: 1.4;
}
.woocommerce form .form-row textarea { min-height: 6.5em; }
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus,
.woocommerce-cart-form td.actions .coupon #coupon_code:focus { border-color: var(--color-primary); }
/* WooCommerce fjerner tekstfeltets skygge, som bærer fokusringens guld. */
.woocommerce form .form-row textarea.input-text:focus-visible { box-shadow: 0 0 0 var(--space-2) var(--color-accent-warm); }
/* Rødt først, når kassen har skrevet sin fejl ved feltet; at forlade et tomt felt er ikke en fejl endnu. */
.woocommerce form .form-row.woocommerce-invalid:has(.checkout-inline-error-message) label { color: var(--color-danger); }
.woocommerce form .form-row.woocommerce-invalid:has(.checkout-inline-error-message) :is(input.input-text, select, textarea) { border-color: var(--color-danger); }
/* WooCommerce skriver fejlen under feltet og knytter den med aria-describedby. */
.woocommerce form.checkout .checkout-inline-error-message {
	margin: var(--space-6) 0 0;
	color: var(--color-danger);
	font-size: var(--text-14);
	line-height: 1.4;
}
.woocommerce form .form-row .woocommerce-input-wrapper > strong { display: block; padding: var(--space-10) 0; font-weight: 500; }
.woocommerce form .form-row .woocommerce-input-wrapper .description { margin: var(--space-6) 0 0; color: var(--color-text-muted); font-size: var(--text-14); }

/* Felterne står i et gitter i stedet for WooCommerces flydende halvdele: én kolonne på smal skærm, to fra 640 px. */
.woocommerce-billing-fields__field-wrapper,
.woocommerce-shipping-fields__field-wrapper,
.woocommerce-additional-fields__field-wrapper,
.woocommerce-address-fields__field-wrapper {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	column-gap: var(--space-16);
}
.woocommerce :is(.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper, .woocommerce-additional-fields__field-wrapper, .woocommerce-address-fields__field-wrapper) > .form-row {
	float: none;
	width: auto;
	grid-column: 1 / -1;
}
@media (min-width: 640px) {
	.woocommerce-billing-fields__field-wrapper,
	.woocommerce-shipping-fields__field-wrapper,
	.woocommerce-additional-fields__field-wrapper,
	.woocommerce-address-fields__field-wrapper { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.woocommerce :is(.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper, .woocommerce-additional-fields__field-wrapper, .woocommerce-address-fields__field-wrapper) > .form-row-first { grid-column: 1; }
	.woocommerce :is(.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper, .woocommerce-additional-fields__field-wrapper, .woocommerce-address-fields__field-wrapper) > .form-row-last { grid-column: 2; }
}

/* Tabeller */
.woocommerce table.shop_table {
	width: 100%;
	margin: 0 0 var(--space-24);
	background: var(--color-surface);
	border: 1px solid var(--rule);
	border-radius: var(--radius-md);
	border-collapse: separate;
	border-spacing: 0;
}
.woocommerce table.shop_table th {
	font-family: var(--font-mono);
	font-size: var(--text-12);
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--color-text-muted);
	background: var(--color-background);
}
.woocommerce table.shop_table thead th:first-child { border-top-left-radius: var(--radius-md); }
.woocommerce table.shop_table thead th:last-child { border-top-right-radius: var(--radius-md); }
.woocommerce table.shop_table td,
.woocommerce table.shop_table th { border-top: 1px solid var(--rule); padding: var(--space-14) var(--space-12); line-height: 1.5; }
.woocommerce table.shop_table thead th { border-top: 0; }

/* Varens egenskaber, også variationens, og varenummeret: én linje pr. egenskab under navnet. */
.woocommerce td.product-name dl.variation,
.woocommerce td.product-name .wc-item-meta {
	display: grid;
	grid-template-columns: max-content minmax(0, 1fr);
	gap: var(--space-2) var(--space-8);
	margin: var(--space-6) 0 0;
	padding: 0;
	font-size: var(--text-13);
	font-weight: 400;
	line-height: 1.5;
	color: var(--color-foreground);
}
.woocommerce td.product-name dl.variation dt,
.woocommerce td.product-name .wc-item-meta .wc-item-meta-label {
	float: none;
	margin: 0;
	color: var(--color-text-muted);
	font-weight: 400;
}
.woocommerce td.product-name dl.variation dd,
.woocommerce td.product-name .wc-item-meta li { margin: 0; }
.woocommerce td.product-name dl.variation dd p,
.woocommerce td.product-name .wc-item-meta p { display: inline; margin: 0; }
.woocommerce td.product-name .wc-item-meta li { display: contents; }
.woocommerce td.product-name dl.variation dd.variation-Varenummer { font-family: var(--font-mono); white-space: nowrap; overflow-wrap: normal; }
.woocommerce td.product-name a { color: var(--color-foreground); font-weight: 600; }
.woocommerce td.product-name a:hover { color: var(--color-primary); }
.woocommerce td.product-name { overflow-wrap: anywhere; }
@media (max-width: 1023px) {
	.woocommerce-cart-form td.product-name > a,
	.wc-block-order-confirmation-totals__product > a,
	.woocommerce-account table.woocommerce-orders-table .woocommerce-orders-table__cell-order-number a { display: inline-flex; align-items: center; min-width: var(--space-44); min-height: var(--space-44); }
	.woocommerce :is(a.showlogin, a.showcoupon) { display: inline-flex; align-items: center; min-height: var(--space-44); }
}
/* I en smal kolonne står egenskab og værdi som løbende tekst, så etiketten ikke presser værdien ud af cellen. */
@media (max-width: 480px) {
	.woocommerce-checkout-review-order-table td.product-name dl.variation { display: block; }
	.woocommerce-checkout-review-order-table td.product-name dl.variation :is(dt, dd) { display: inline; }
	.woocommerce-checkout-review-order-table td.product-name dl.variation dd + dt::before { content: ""; display: block; }
}

/* Tom kurv: teksten, søgningen og hovednummeret står samlet over knappen tilbage til butikken. */
.pto-tom-kurv { display: grid; gap: var(--space-16); margin: 0 0 var(--space-24); }
.woocommerce-cart :is(.wc-empty-cart-message, .pto-tom-kurv) { max-width: 640px; }
.pto-tom-kurv > * { margin-block: 0; }
.pto-tom-kurv p { margin: 0; color: var(--color-text-muted); }

/* Beskederne står under sidens titel, og en tom beskedblok tager ingen plads. */
.pto-side .wc-block-store-notices:not(:has(.wc-block-components-notice-banner, .woocommerce-message, .woocommerce-info, .woocommerce-error)) { display: none; }

/* ---------- Kurven ---------- */

.woocommerce-cart-form table.cart .product-remove { width: var(--space-44); padding-inline: var(--space-8) 0; }
.woocommerce-cart-form table.cart .product-thumbnail { width: var(--space-64); }
.woocommerce-cart-form table.cart .product-thumbnail img {
	display: block;
	width: var(--space-64);
	height: var(--space-64);
	object-fit: contain;
	background: var(--color-surface);
	border: 1px solid var(--rule);
	border-radius: var(--radius-sm);
}
.woocommerce-cart-form table.cart :is(th, td):is(.product-price, .product-subtotal) { text-align: right; }
.woocommerce-cart-form table.cart :is(.product-price, .product-subtotal) :is(.tax_label, .pto-pris-enhed) { white-space: nowrap; }
.woocommerce-cart-form table.cart :is(th, td).product-quantity { text-align: center; }
.woocommerce-cart-form table.cart td.product-price .woocommerce-Price-amount { font-weight: 500; }
.woocommerce a.remove {
	display: grid;
	place-items: center;
	width: var(--space-44);
	height: var(--space-44);
	font-size: var(--text-22);
	font-weight: 400;
	line-height: 1;
}
.woocommerce-cart-form td.actions { padding: var(--space-16) var(--space-12); }
.woocommerce-cart-form td.actions .coupon { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-8); }
.woocommerce .woocommerce-cart-form table.cart td.actions .coupon::before,
.woocommerce .woocommerce-cart-form table.cart td.actions .coupon::after { content: none; }
.woocommerce-cart-form td.actions .coupon #coupon_code { width: 12rem; height: auto; margin: 0; float: none; }
.woocommerce-cart-form td.actions .coupon .coupon-error-notice { flex-basis: 100%; margin: 0; color: var(--color-danger); font-size: var(--text-14); }

/* Kurvens sum står i et kort; knappen til kassen er sidens eneste orange handling, tilbuddet er sekundært. */
.woocommerce-cart .cart-collaterals .cart_totals {
	float: none;
	width: auto;
	box-sizing: border-box;
	padding: var(--space-24);
	background: var(--color-surface);
	border: 1px solid var(--rule);
	border-radius: var(--radius-md);
}
.woocommerce-cart .cart-collaterals .cart_totals h2 { margin: 0 0 var(--space-8); font-size: var(--text-18); }
.woocommerce-cart .cart-collaterals .cart_totals table.shop_table { margin: 0; border: 0; border-radius: 0; background: transparent; }
.woocommerce-cart .cart-collaterals .cart_totals table.shop_table :is(th, td) {
	width: auto;
	padding: var(--space-12) 0;
	background: transparent;
	border-top: 1px solid var(--rule);
	border-left: 0;
	vertical-align: top;
}
.woocommerce-cart .cart-collaterals .cart_totals table.shop_table tr:first-child :is(th, td) { border-top: 0; }
.woocommerce-cart .cart-collaterals .cart_totals table.shop_table td { text-align: right; }
.woocommerce-cart .cart-collaterals .cart_totals table.shop_table th {
	font-family: inherit;
	font-size: var(--text-14);
	font-weight: 400;
	text-transform: none;
	letter-spacing: normal;
	color: var(--color-text-muted);
}
.woocommerce-cart .cart-collaterals .cart_totals .order-total :is(th, td) { padding-top: var(--space-16); border-top-color: var(--rule-strong); color: var(--color-foreground); font-weight: 700; }
.woocommerce-cart .cart-collaterals .cart_totals .order-total .woocommerce-Price-amount { font-size: var(--text-20); }
.woocommerce-cart .cart-collaterals .cart_totals small { display: block; color: var(--color-text-muted); font-weight: 400; }
.woocommerce ul#shipping_method { margin: 0; padding: 0; list-style: none; }
.woocommerce ul#shipping_method li { margin: 0; padding: 0; text-indent: 0; }
.woocommerce ul#shipping_method li label { font-weight: 500; color: var(--color-foreground); white-space: nowrap; }
.woocommerce-checkout ul#shipping_method li label { white-space: normal; }
/* Ved afhentning er kundens adresse ikke en leveringsadresse, så WooCommerces «Levering til …» udelades. */
.woocommerce-shipping-totals:has(input.shipping_method[value^="local_pickup"]:is([type="hidden"], :checked)) .woocommerce-shipping-destination { display: none; }
.woocommerce-cart .wc-proceed-to-checkout { display: grid; gap: var(--space-12); padding: var(--space-20) 0 0; }
.woocommerce-cart .wc-proceed-to-checkout::before,
.woocommerce-cart .wc-proceed-to-checkout::after { content: none; }
.woocommerce .wc-proceed-to-checkout :is(a.checkout-button, .cart-pdf-button) { display: flex; width: 100%; margin: 0; }
.woocommerce .wc-proceed-to-checkout a.checkout-button { min-height: var(--space-48); padding: var(--space-12) var(--space-24); font-size: var(--text-16); }

@media (min-width: 769px) {
	.woocommerce-cart .cart-collaterals .cart_totals { max-width: 420px; margin-left: auto; }
}
/* Kurven og summen står side om side, når varenavnet stadig har plads ved siden af pris, antal og subtotal; summen følger med ned ad en lang kurv. */
@media (min-width: 1200px) {
	.woocommerce-cart .woocommerce:has(> .woocommerce-cart-form) {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(300px, 360px);
		column-gap: var(--space-40);
		align-items: start;
	}
	.woocommerce-cart .woocommerce:has(> .woocommerce-cart-form) > * { grid-column: 1 / -1; }
	.woocommerce-cart .woocommerce > .woocommerce-cart-form { grid-column: 1; grid-row: 2; }
	.woocommerce-cart .woocommerce > .cart-collaterals {
		grid-column: 2;
		grid-row: 2;
		position: sticky;
		top: calc(var(--header-height) + var(--space-24));
	}
	.woocommerce-cart .woocommerce > .cart-collaterals::before,
	.woocommerce-cart .woocommerce > .cart-collaterals::after { content: none; }
}

/* Til og med 768 px gør WooCommerce hver kurvlinje til en blok med etiketter; her bliver hver linje et kort. */
@media (max-width: 768px) {
	.woocommerce-cart-form table.cart { border: 0; background: transparent; }
	.woocommerce-cart-form table.cart tr { margin: 0 0 var(--space-12); }
	.woocommerce-cart-form table.cart tr.cart_item {
		position: relative;
		padding: var(--space-12) var(--space-16);
		background: var(--color-surface);
		border: 1px solid var(--rule);
		border-radius: var(--radius-md);
	}
	.woocommerce table.shop_table_responsive tr td,
	.woocommerce table.shop_table_responsive tr:nth-child(2n) td { background: transparent; }
	.woocommerce-cart-form table.cart tr.cart_item td {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: var(--space-12);
		padding: var(--space-6) 0;
		border: 0;
		text-align: right;
	}
	.woocommerce-cart-form table.cart tr.cart_item td::before {
		float: none;
		margin-right: auto;
		content: attr(data-title);
		color: var(--color-text-muted);
		font-weight: 400;
		font-size: var(--text-14);
		text-align: left;
	}
	.woocommerce-cart-form table.cart tr.cart_item td.product-name {
		display: block;
		padding: 0 var(--space-44) var(--space-6) 0;
		text-align: left !important;
	}
	.woocommerce-cart-form table.cart tr.cart_item td.product-name::before { display: none; }
	.woocommerce-cart-form table.cart tr.cart_item td:is(.product-price, .product-subtotal) { flex-wrap: wrap; justify-content: flex-end; gap: var(--space-4); }
	.woocommerce-cart-form table.cart tr.cart_item td.product-thumbnail { display: none; }
	.woocommerce-cart-form table.cart tr.cart_item td.product-remove {
		position: absolute;
		top: 0;
		right: 0;
		padding: 0;
	}
	.woocommerce-cart-form table.cart tr.cart_item td.product-subtotal { margin-top: var(--space-6); padding-top: var(--space-12); border-top: 1px solid var(--rule); }
	.woocommerce-cart-form table.cart td.actions {
		display: grid;
		gap: var(--space-12);
		padding: 0;
		border: 0;
		background: transparent;
	}
	.woocommerce-cart-form table.cart td.actions .coupon { padding: 0; }
	.woocommerce-cart-form table.cart td.actions .coupon :is(#coupon_code, .button) { flex: 1 1 10rem; width: auto; float: none; }
	.woocommerce-cart-form table.cart td.actions > .button { width: 100%; }
	/* Summens etiketter står til venstre og beløbet til højre, som i kurvens linjer; det, der ikke får plads, brydes ned og står stadig til højre. */
	.woocommerce-cart .cart-collaterals .cart_totals table.shop_table td {
		display: flex;
		flex-wrap: wrap;
		justify-content: flex-end;
		gap: var(--space-4) var(--space-12);
	}
	.woocommerce-cart .cart-collaterals .cart_totals table.shop_table td::before {
		float: none;
		margin-right: auto;
		content: attr(data-title);
		color: var(--color-text-muted);
		font-weight: 400;
		text-align: left;
	}
	.woocommerce-cart .cart-collaterals .cart_totals table.shop_table tr:first-child td { border-top: 0; }
	.woocommerce-cart .cart-collaterals .cart_totals table.shop_table .order-total td::before { color: var(--color-foreground); font-weight: 700; }
}

/* ---------- Kassen ---------- */

/* Login, glemt adgangskode og rabatkoden står som et hvidt kort med hvide felter på sidens grå flade. */
.woocommerce form.login,
.woocommerce form.register,
.woocommerce form.lost_reset_password,
.woocommerce form.checkout_coupon {
	box-sizing: border-box;
	max-width: 480px;
	margin: 0 0 var(--space-24);
	padding: var(--space-24);
	background: var(--color-surface);
	border: 1px solid var(--rule);
	border-radius: var(--radius-md);
}
.woocommerce :is(form.login, form.lost_reset_password) .form-row { float: none; width: auto; }
/* Kontosiden for en gæst: login og oprettelse fylder hver sin spalte, og oprettelsen er den sekundære handling. */
.woocommerce-account .u-columns :is(form.login, form.register) { max-width: none; padding: var(--space-32); border-radius: var(--radius-sm); }
.woocommerce form.register .woocommerce-form-register__submit.wp-element-button { background: transparent; color: var(--color-primary); border: 1px solid currentColor; }
.woocommerce form.register .woocommerce-form-register__submit.wp-element-button:is(:hover, :focus-visible) { background: var(--color-primary); color: var(--color-surface); }
#opret-konto { scroll-margin-top: var(--space-64); }
.woocommerce form.checkout_coupon { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--space-12); }
.woocommerce form.checkout_coupon .form-row { flex: 1 1 12rem; float: none; width: auto; margin: 0; }
.woocommerce form.checkout_coupon > p:first-child { flex-basis: 100%; margin: 0; }
.woocommerce form.checkout_coupon .clear { display: none; }

.woocommerce-checkout .woocommerce h3 { margin: 0 0 var(--space-16); font-size: var(--text-18); }
.woocommerce-checkout #customer_details :is(.col-1, .col-2) {
	float: none;
	width: auto;
	box-sizing: border-box;
	padding: var(--space-24);
	background: var(--color-surface);
	border: 1px solid var(--rule);
	border-radius: var(--radius-md);
}
.woocommerce-checkout #customer_details .col-2:not(:has(.form-row)) { display: none; }
.woocommerce-checkout #customer_details .col-2 { margin-top: var(--space-24); }
.woocommerce-checkout #customer_details::before,
.woocommerce-checkout #customer_details::after { content: none; }
.woocommerce-checkout #customer_details .form-row:last-child { margin-bottom: 0; }

.woocommerce-checkout #order_review_heading { display: none; }
.woocommerce-checkout .pto-kasse-titel { margin: 0 0 var(--space-12); font-size: var(--text-18); }
.woocommerce-checkout .pto-kasse-titel--ordre { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0 var(--space-16); margin-top: var(--space-32); }
.woocommerce-checkout .pto-kasse-titel--ordre h2 { margin: 0; font-size: inherit; }
.woocommerce-checkout #order_review {
	box-sizing: border-box;
	padding: var(--space-24);
	background: var(--color-surface);
	border: 1px solid var(--rule);
	border-radius: var(--radius-md);
}
.woocommerce-checkout table.woocommerce-checkout-review-order-table { margin: 0 0 var(--space-8); border: 0; border-radius: 0; background: transparent; }
.woocommerce-checkout table.woocommerce-checkout-review-order-table :is(th, td) { padding: var(--space-12) 0; background: transparent; }
.woocommerce-checkout table.woocommerce-checkout-review-order-table thead th { padding-top: 0; }
.woocommerce-checkout table.woocommerce-checkout-review-order-table .product-total,
.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot td { text-align: right; vertical-align: top; }
.woocommerce-checkout table.woocommerce-checkout-review-order-table td.product-name { padding-right: var(--space-16); font-weight: 600; }
.woocommerce-checkout table.woocommerce-checkout-review-order-table .product-quantity { font-family: var(--font-mono); font-weight: 500; color: var(--color-text-muted); white-space: nowrap; }
.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot th {
	padding-right: var(--space-16);
	font-family: inherit;
	font-size: var(--text-14);
	font-weight: 400;
	text-transform: none;
	letter-spacing: normal;
	color: var(--color-text-muted);
}
.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot .order-total :is(th, td) { padding-top: var(--space-16); border-top-color: var(--rule-strong); color: var(--color-foreground); font-weight: 700; }
.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot .order-total .woocommerce-Price-amount { font-size: var(--text-20); }
@media (max-width: 480px) {
	.woocommerce-checkout :is(#customer_details :is(.col-1, .col-2), #order_review) { padding-inline: var(--space-12); }
}

/* Betalingen: fakturaen er en linje med betingelsen under, ikke WooCommerces lilla boks. */
.woocommerce-checkout #payment { background: transparent; border-radius: 0; }
.woocommerce-checkout #payment ul.payment_methods { padding: var(--space-16) 0; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.woocommerce-checkout #payment ul.payment_methods li { display: flex; flex-wrap: wrap; align-items: center; column-gap: var(--space-8); line-height: 1.5; }
.woocommerce-checkout #payment ul.payment_methods li > input { flex: none; margin: 0; }
.woocommerce-checkout #payment ul.payment_methods li > label { display: flex; flex: 1; align-items: center; min-height: var(--space-44); font-weight: 600; color: var(--color-foreground); }
.woocommerce-checkout #payment ul.payment_methods li > .payment_box { flex-basis: 100%; }
.woocommerce-checkout #payment div.payment_box {
	margin: var(--space-8) 0 0;
	padding: var(--space-12) var(--space-16);
	background: var(--color-background);
	color: var(--color-foreground);
	border-radius: var(--radius-sm);
	font-size: var(--text-14);
}
.woocommerce-checkout #payment div.payment_box::before { content: none; }
.woocommerce-checkout #payment div.payment_box p { margin: 0; }
.woocommerce-checkout #payment ul.payment_methods li > .wc-block-components-notice-banner { margin: 0; }
.woocommerce-checkout #payment div.form-row { padding: var(--space-16) 0 0; margin: 0; }
.woocommerce #payment #place_order { float: none; width: 100%; min-height: var(--space-48); margin: 0; font-size: var(--text-16); }
.woocommerce-checkout .woocommerce-privacy-policy-text p,
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper p { margin: 0 0 var(--space-12); font-size: var(--text-14); color: var(--color-text-muted); }

@media (min-width: 1024px) {
	/* Kundens oplysninger til venstre, ordren og betalingen til højre; ordren følger med ned ad siden. */
	.woocommerce-checkout form.checkout.woocommerce-checkout {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(340px, 420px);
		grid-template-areas: "besked besked" "titel-kunde titel-ordre" "kunde ordre";
		grid-template-rows: auto auto 1fr;
		column-gap: var(--space-40);
	}
	.woocommerce-checkout form.checkout.woocommerce-checkout > * { grid-column: 1 / -1; }
	.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup { grid-area: besked; }
	.woocommerce-checkout form.checkout > #customer_details { grid-area: kunde; }
	.woocommerce-checkout form.checkout > .pto-kasse-titel--kunde { grid-area: titel-kunde; }
	.woocommerce-checkout form.checkout > .pto-kasse-titel--ordre { grid-area: titel-ordre; margin-top: 0; }
	.woocommerce-checkout form.checkout > #order_review {
		grid-area: ordre;
		align-self: start;
		position: sticky;
		top: calc(var(--header-height) + var(--space-24));
	}
}

/* ---------- Ordrebekræftelsen (WooCommerces egen skabelon) ---------- */

/* Skabelonens indhold flugter med sidehovedets container i stedet for WooCommerces smalle spalte. */
.woocommerce-order-received main.wp-block-group.is-layout-constrained { padding-bottom: var(--space-64); }
.woocommerce-order-received main.wp-block-group.is-layout-constrained > * { max-width: calc(1280px - 2 * var(--space-32)); }
@media (max-width: 1024px) {
	.woocommerce-order-received main.wp-block-group.has-global-padding { padding-left: var(--space-20); padding-right: var(--space-20); }
}
.woocommerce-order-received .wc-block-order-confirmation-status h1 { margin: var(--space-48) 0 var(--space-8); font-size: var(--text-display); }
.woocommerce-order-received .wc-block-order-confirmation-status p { margin: 0; color: var(--color-text-muted); }
.woocommerce-order-received main :is(.wp-block-heading, .woocommerce-order-details__title, .woocommerce-column__title) {
	margin: 0 0 var(--space-12);
	font-size: var(--text-18) !important; /* WooCommerces overskriftsmønstre sætter størrelsen i style-attributten. */
}

/* Ordrens nøgletal står som en række felter: etiketten i mono over værdien. */
.wc-block-order-confirmation-summary { margin: var(--space-32) 0; }
.wc-block-order-confirmation-summary ul.wc-block-order-confirmation-summary-list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
	gap: var(--space-16) var(--space-24);
	margin: 0;
	padding: var(--space-20) var(--space-24);
	list-style: none;
	background: var(--color-surface);
	border: 1px solid var(--rule);
	border-radius: var(--radius-md);
}
.wc-block-order-confirmation-summary .wc-block-order-confirmation-summary-list-item {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	width: auto;
	margin: 0;
	overflow-wrap: anywhere;
}
.wc-block-order-confirmation-summary .wc-block-order-confirmation-summary-list-item > .wc-block-order-confirmation-summary-list-item__key {
	font-family: var(--font-mono);
	font-size: var(--text-12);
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--color-text-muted);
}
.wc-block-order-confirmation-summary .wc-block-order-confirmation-summary-list-item > .wc-block-order-confirmation-summary-list-item__value { font-weight: 600; color: var(--color-foreground); }

.woocommerce-order-received :is(.wc-block-order-confirmation-totals-wrapper, .wc-block-order-confirmation-address-wrapper, .wc-block-order-confirmation-additional-fields-wrapper, .wc-block-order-confirmation-additional-information) { margin-top: var(--space-32); }
.woocommerce-order-received .wc-block-order-confirmation-totals { margin-top: 0; }
.wc-block-order-confirmation-totals table.wc-block-order-confirmation-totals__table,
.woocommerce-order-received table.order_details {
	width: 100%;
	margin: 0;
	border: 1px solid var(--rule);
	border-radius: var(--radius-md);
	border-collapse: separate;
	border-spacing: 0;
	background: var(--color-surface);
}
.wc-block-order-confirmation-totals table.wc-block-order-confirmation-totals__table :is(th, td),
.woocommerce-order-received table.order_details :is(th, td) {
	padding: var(--space-14) var(--space-16);
	border-top: 1px solid var(--rule);
	text-align: left;
	vertical-align: top;
	font-weight: 400;
	overflow-wrap: anywhere;
}
.woocommerce-order-received table.order_details tbody tr:first-child :is(th, td) { border-top: 0; }
.woocommerce-order-received table.order_details tbody th { width: 40%; color: var(--color-text-muted); }
.wc-block-order-confirmation-totals table.wc-block-order-confirmation-totals__table thead th {
	border-top: 0;
	background: var(--color-background);
	font-family: var(--font-mono);
	font-size: var(--text-12);
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--color-text-muted);
}
.wc-block-order-confirmation-totals table.wc-block-order-confirmation-totals__table thead th:first-child { border-top-left-radius: var(--radius-md); }
.wc-block-order-confirmation-totals table.wc-block-order-confirmation-totals__table thead th:last-child { border-top-right-radius: var(--radius-md); }
.wc-block-order-confirmation-totals table.wc-block-order-confirmation-totals__table .wc-block-order-confirmation-totals__total { text-align: right; }
.wc-block-order-confirmation-totals table.wc-block-order-confirmation-totals__table td.wc-block-order-confirmation-totals__product { overflow-wrap: anywhere; }
.wc-block-order-confirmation-totals table.wc-block-order-confirmation-totals__table .wc-block-order-confirmation-totals__product a { color: var(--color-foreground); font-weight: 600; }
.wc-block-order-confirmation-totals table.wc-block-order-confirmation-totals__table .product-quantity { font-family: var(--font-mono); font-weight: 500; color: var(--color-text-muted); }
.wc-block-order-confirmation-totals table.wc-block-order-confirmation-totals__table tfoot th { color: var(--color-text-muted); }
.wc-block-order-confirmation-totals table.wc-block-order-confirmation-totals__table tfoot tr:last-child :is(th, td) { border-top-color: var(--rule-strong); color: var(--color-foreground); font-weight: 700; }
.wc-block-order-confirmation-totals table.wc-block-order-confirmation-totals__table .wc-item-meta { margin: var(--space-6) 0 0; font-size: var(--text-13); color: var(--color-text-muted); }
.woocommerce-order-received .wc-block-order-confirmation-address-wrapper { gap: var(--space-24); margin-block-start: var(--space-32); }
.woocommerce-order-received :is(.wc-block-order-confirmation-billing-address, .wc-block-order-confirmation-shipping-address) {
	box-sizing: border-box;
	max-width: 480px;
	padding: var(--space-16) var(--space-20);
	background: var(--color-surface);
	border: 1px solid var(--rule);
	border-radius: var(--radius-md);
	line-height: 1.6;
}
.woocommerce .woocommerce-customer-details address {
	box-sizing: border-box;
	padding: var(--space-16) var(--space-20);
	background: var(--color-surface);
	border: 1px solid var(--rule);
	border-radius: var(--radius-md);
	font-style: normal;
	line-height: 1.6;
}

/* ---------- Konto ---------- */

.woocommerce-account .woocommerce h2 { font-size: var(--text-22); margin: 0 0 var(--space-16); }
.woocommerce-account .woocommerce-MyAccount-content :is(h2, h3) { font-size: var(--text-18); margin: var(--space-32) 0 var(--space-12); }
.woocommerce-account .woocommerce-MyAccount-content > :first-child { margin-top: 0; }
.woocommerce-account .woocommerce-MyAccount-content > p { max-width: 70ch; }
.woocommerce-account .pto-konto-firma { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: var(--space-4) var(--space-16); margin: 0 0 var(--space-24); }
.woocommerce-account .pto-konto-firma dt { color: var(--color-text-muted); }
.woocommerce-account .pto-konto-firma dd { margin: 0; overflow-wrap: anywhere; }
.woocommerce-account .woocommerce-MyAccount-content mark { background: transparent; color: var(--color-foreground); font-weight: 700; }

/* Login: «Husk mig» og knappen på én linje, flugtende med felterne. */
.woocommerce form .form-row .woocommerce-form-login__rememberme {
	display: inline-flex;
	align-items: center;
	gap: var(--space-8);
	min-height: var(--space-44);
	margin: 0;
	font-size: var(--text-14);
	font-weight: 400;
}
.woocommerce form .woocommerce-form-login__rememberme input {
	width: var(--space-20);
	height: var(--space-20);
	margin: 0;
	accent-color: var(--color-primary);
}
.woocommerce form .form-row:has(.woocommerce-form-login__submit) {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-12) var(--space-24);
	margin-bottom: 0;
}
/* WooCommerces clearfix-pseudoelementer bliver flex-elementer og skubber «Husk mig» en spalteafstand ind. */
.woocommerce form .form-row:has(.woocommerce-form-login__submit)::before,
.woocommerce form .form-row:has(.woocommerce-form-login__submit)::after { content: none; }
.woocommerce form .woocommerce-form-login__submit { float: none; margin: 0; }
.woocommerce .lost_password { margin: var(--space-12) 0 0; font-size: var(--text-14); }
.woocommerce .lost_password a { display: inline-flex; align-items: center; min-height: var(--space-44); }
/* WooCommerces øje er 22 px; knappen får et klikmål på 44 px, og feltets tekst går ikke ind under den. */
.woocommerce form .show-password-input {
	display: grid;
	place-items: center;
	width: var(--space-44);
	height: var(--space-44);
	right: 0;
	color: var(--color-text-muted);
	opacity: 0.7;
}
.woocommerce form .password-input input.input-text { padding-right: var(--space-44); }

/* Navigationen er et kort med ét punkt pr. linje; det aktive punkt har en kant i primærfarven. */
.woocommerce-account .woocommerce-MyAccount-navigation {
	float: none;
	width: auto;
	margin: 0 0 var(--space-32);
}
.woocommerce-account .woocommerce-MyAccount-navigation ul {
	margin: 0;
	padding: var(--space-8) 0;
	list-style: none;
	background: var(--color-surface);
	border: 1px solid var(--rule);
	border-radius: var(--radius-md);
}
.woocommerce-account .woocommerce-MyAccount-navigation li { padding: 0; border: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li a {
	display: flex;
	align-items: center;
	min-height: var(--space-44);
	padding: 0 var(--space-20);
	border-left: 3px solid transparent;
	color: var(--color-foreground);
	font-weight: 500;
	text-decoration: none;
}
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover { color: var(--color-primary); background: var(--color-background); text-decoration: none; }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { border-left-color: var(--color-primary); color: var(--color-primary); font-weight: 600; text-decoration: none; }
.woocommerce-account .woocommerce-MyAccount-navigation-link--customer-logout { margin-top: var(--space-8); padding-top: var(--space-8); border-top: 1px solid var(--rule); }
.woocommerce-account .woocommerce-MyAccount-content { float: none; width: auto; }

@media (min-width: 1024px) {
	.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation) {
		display: grid;
		grid-template-columns: 240px minmax(0, 1fr);
		column-gap: var(--space-48);
		align-items: start;
	}
	.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation) > * { grid-column: 1 / -1; }
	.woocommerce-account .woocommerce > .woocommerce-MyAccount-navigation { grid-column: 1; margin: 0; }
	.woocommerce-account .woocommerce > .woocommerce-MyAccount-content { grid-column: 2; }
}

/* Ordrelisten: ordrenummeret i mono, «Vis» som sekundær knap. */
/* Ordrenummeret er rækkens overskrift (th i tbody), men skal se ud som de andre celler. */
.woocommerce-account table.woocommerce-orders-table tbody th {
	background: transparent;
	font-family: inherit;
	font-size: inherit;
	font-weight: 400;
	text-transform: none;
	letter-spacing: normal;
	color: var(--color-foreground);
}
.woocommerce-account table.woocommerce-orders-table .woocommerce-orders-table__cell-order-number a { font-family: var(--font-mono); font-weight: 600; }
.woocommerce-account table.woocommerce-orders-table :is(th, td):is(.woocommerce-orders-table__cell-order-total, .woocommerce-orders-table__cell-order-actions) { text-align: right; }
.woocommerce-account table.woocommerce-orders-table .woocommerce-orders-table__cell-order-actions .button { display: inline-flex; margin: 0; padding-inline: calc(var(--space-16) - 1px); }
.woocommerce-account table.woocommerce-orders-table .woocommerce-orders-table__cell-order-actions .button + .button { margin-left: var(--space-8); }
.woocommerce-account .woocommerce-pagination { display: flex; flex-wrap: wrap; gap: var(--space-12); }

@media (max-width: 768px) {
	.woocommerce-account table.woocommerce-orders-table { border: 0; background: transparent; }
	.woocommerce-account table.woocommerce-orders-table tr {
		margin: 0 0 var(--space-12);
		padding: var(--space-8) var(--space-16);
		background: var(--color-surface);
		border: 1px solid var(--rule);
		border-radius: var(--radius-md);
	}
	.woocommerce-account table.woocommerce-orders-table tr td {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: var(--space-12);
		padding: var(--space-8) 0;
		border: 0;
		background: transparent;
	}
	.woocommerce-account table.woocommerce-orders-table tbody th { display: flex; align-items: center; justify-content: space-between; gap: var(--space-12); padding: var(--space-8) 0; border: 0; }
	.woocommerce-account table.woocommerce-orders-table tbody th::before { content: attr(data-title); color: var(--color-text-muted); font-size: var(--text-14); }
	.woocommerce-account table.woocommerce-orders-table tr td::before {
		float: none;
		content: attr(data-title);
		color: var(--color-text-muted);
		font-weight: 400;
		font-size: var(--text-14);
	}
	/* Beløbet og «for N varer» er tekst ved siden af hinanden, ikke to flexelementer. */
	.woocommerce-account table.woocommerce-orders-table tr td.woocommerce-orders-table__cell-order-total { display: block; }
	.woocommerce-account table.woocommerce-orders-table tr td.woocommerce-orders-table__cell-order-total::before { float: left; }
	.woocommerce-account table.woocommerce-orders-table tr td.woocommerce-orders-table__cell-order-actions { justify-content: flex-start; }
	.woocommerce-account table.woocommerce-orders-table tr td.woocommerce-orders-table__cell-order-actions .button { flex: 1; margin: 0; }
}

/* Adresser og ordreside */
.woocommerce-account .woocommerce-Addresses { display: grid; gap: var(--space-24); }
.woocommerce-account .woocommerce-Addresses::before,
.woocommerce-account .woocommerce-Addresses::after { content: none; }
.woocommerce-account .woocommerce-Addresses .woocommerce-Address { float: none; width: auto; }
.woocommerce-account .woocommerce-Address-title { max-width: 480px; display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-8) var(--space-16); margin: 0 0 var(--space-12); }
.woocommerce-account .woocommerce-Address-title h2 { margin: 0; }
.woocommerce-account .woocommerce-Address-title::before,
.woocommerce-account .woocommerce-Address-title::after { content: none; }
.woocommerce-account .woocommerce-Address-title .edit {
	display: inline-flex;
	align-items: center;
	min-height: var(--space-44);
	padding: 0 calc(var(--space-16) - 1px);
	border: 1px solid var(--rule-strong);
	border-radius: var(--radius-sm);
	color: var(--color-primary);
	font-size: var(--text-14);
	font-weight: 600;
	text-decoration: none;
}
.woocommerce-account .woocommerce-Address-title .edit:hover { border-color: var(--color-primary); color: var(--color-primary-deep); }
.woocommerce-account .woocommerce-Address address { max-width: 480px; font-style: normal; }
@media (min-width: 768px) {
	.woocommerce-account .woocommerce-Addresses.col2-set { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.woocommerce-account .woocommerce-customer-details .col2-set { display: grid; gap: var(--space-24); }
.woocommerce-account .woocommerce-customer-details .col2-set :is(.col-1, .col-2) { float: none; width: auto; }
.woocommerce-account .woocommerce-customer-details :is(.woocommerce-customer-details--phone, .woocommerce-customer-details--email) { margin: 0; }
.woocommerce-account ol.woocommerce-OrderUpdates { margin: 0; padding: 0; list-style: none; }

/* Kontooplysninger og adresseformularen står som kort. */
.woocommerce-account form.woocommerce-EditAccountForm,
.woocommerce-account .woocommerce-MyAccount-content form:has(.woocommerce-address-fields) {
	box-sizing: border-box;
	max-width: 720px;
	padding: var(--space-24);
	background: var(--color-surface);
	border: 1px solid var(--rule);
	border-radius: var(--radius-md);
}
.woocommerce-account .woocommerce-MyAccount-content form:has(.woocommerce-address-fields) > h2 { margin-top: 0; }
.woocommerce-account form.woocommerce-EditAccountForm { display: grid; grid-template-columns: minmax(0, 1fr); column-gap: var(--space-16); }
.woocommerce-account form.woocommerce-EditAccountForm > * { grid-column: 1 / -1; }
.woocommerce-account form.woocommerce-EditAccountForm > .clear { display: none; }
.woocommerce-account .woocommerce form.woocommerce-EditAccountForm .form-row { float: none; width: auto; }
@media (min-width: 640px) {
	.woocommerce-account form.woocommerce-EditAccountForm { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.woocommerce-account form.woocommerce-EditAccountForm > .form-row-first { grid-column: 1; }
	.woocommerce-account form.woocommerce-EditAccountForm > .form-row-last { grid-column: 2; }
}
.woocommerce-account form.woocommerce-EditAccountForm fieldset { margin: var(--space-16) 0; padding: var(--space-16) 0 0; border: 0; border-top: 1px solid var(--rule); }
.woocommerce-account form.woocommerce-EditAccountForm legend { padding: 0; font-size: var(--text-18); font-weight: 700; }
.woocommerce-account form.woocommerce-EditAccountForm #account_display_name_description { display: block; margin-top: var(--space-6); color: var(--color-text-muted); font-size: var(--text-14); }
.woocommerce-account form.woocommerce-EditAccountForm #account_display_name_description em { font-style: normal; }

/* Kernens forklaring i registreringsformularen står mindre end felterne, og en linje over formularen siger, at kontoen godkendes. */
.woocommerce-form-register > p:not(.form-row) { font-size: var(--text-13); color: var(--color-text-muted); margin-top: calc(var(--space-8) * -1); }
.woocommerce-form-register > p.pto-konto-godkendelse { margin-top: 0; font-size: var(--text-14); color: var(--color-foreground); }
