/* ---------- 1.4.14: the Kassa (WooCommerce classic checkout) ----------
   Loads after the theme's woocommerce.css (handle emitrix-shop), on the checkout page only. Where the theme uses
   !important this file has to as well. Shape rule: buttons are pills, fields and option cards 12px, the summary card
   the signature radius. Theme tokens throughout, so light mode follows. No motion beyond state changes. */

body.emx-kassa {
	--co-gap: clamp(20px, 2.4vw, 32px);
	--co-top: calc(var(--emx-header-h, 72px) + var(--emx-adminbar, 0px) + 24px);
}

/* Width: the Kassa uses the wide column (1180px), title aligned with the form. */
body.emx-kassa .emx-main > .emx-page__title,
body.emx-kassa .emx-main > .wp-block-post-content,
body.emx-kassa .emx-main .wp-block-post-content > .woocommerce { max-width: 1180px; margin-left: auto !important; margin-right: auto !important; box-sizing: border-box; }
body.emx-kassa .emx-main > .emx-page__title { margin-bottom: clamp(20px, 3vw, 32px); }

/* ---------- coupon line ---------- */
body.emx-kassa .woocommerce-form-coupon-toggle { margin: 0 0 20px; }
body.emx-kassa .woocommerce-form-coupon-toggle .wc-block-components-notice-banner,
body.emx-kassa .woocommerce-form-coupon-toggle .woocommerce-info {
	display: flex; align-items: center; gap: 10px; margin: 0; padding: 0 !important; border: 0 !important; background: none !important;
	font-size: .9375rem; color: var(--emx-text-muted); box-shadow: none; }
body.emx-kassa .woocommerce-form-coupon-toggle .wc-block-components-notice-banner > svg { width: 20px; height: 20px; fill: var(--emx-text-muted); background: none; border-radius: 0; padding: 0; flex: none; }
body.emx-kassa .woocommerce-form-coupon-toggle .woocommerce-info::before { display: none; }
body.emx-kassa .woocommerce-form-coupon-toggle .wc-block-components-notice-banner__content { flex: 1 1 auto; }
body.emx-kassa .woocommerce-form-coupon-toggle a.showcoupon { color: var(--emx-accent-ink); font-weight: 600; text-decoration: none; }
body.emx-kassa .woocommerce-form-coupon-toggle a.showcoupon:hover { text-decoration: underline; }
body.emx-kassa form.checkout_coupon { max-width: 560px; margin: 0 0 24px !important; padding: 16px !important; border: 1px solid var(--emx-line) !important; border-radius: 12px !important; background: var(--emx-surface); }
body.emx-kassa form.checkout_coupon .form-row { margin: 0 !important; padding: 0 !important; }
body.emx-kassa form.checkout_coupon .form-row-first { float: left; width: calc(100% - 196px) !important; }
body.emx-kassa form.checkout_coupon .form-row-last { float: right; width: 184px !important; }
body.emx-kassa form.checkout_coupon .button { width: 100%; }
@media (max-width: 559px) {
	body.emx-kassa form.checkout_coupon .form-row-first, body.emx-kassa form.checkout_coupon .form-row-last { float: none; width: 100% !important; }
	body.emx-kassa form.checkout_coupon .form-row-last { margin-top: 10px !important; }
}

/* ---------- columns ---------- */
body.emx-kassa form.checkout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; margin: 0; }
body.emx-kassa form.checkout::before, body.emx-kassa form.checkout::after,
body.emx-kassa .col2-set::before, body.emx-kassa .col2-set::after { display: none !important; }
body.emx-kassa form.checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; order: -2; }
body.emx-kassa .emx-co__main { display: grid; gap: 0; min-width: 0; }
body.emx-kassa .emx-co__aside { order: -1; min-width: 0; }
@media (min-width: 1024px) {
	body.emx-kassa form.checkout { grid-template-columns: minmax(0, 1fr) minmax(360px, 420px); column-gap: clamp(40px, 5vw, 72px); align-items: start; }
	body.emx-kassa .emx-co__aside { order: 0; position: sticky; top: var(--co-top); }
}

/* ---------- sections of the main column ---------- */
body.emx-kassa .col2-set { display: grid; gap: 0; width: auto; }
body.emx-kassa .col2-set .col-1, body.emx-kassa .col2-set .col-2 { float: none !important; width: auto !important; max-width: none; }
body.emx-kassa .woocommerce-billing-fields,
body.emx-kassa .woocommerce-additional-fields,
body.emx-kassa .emx-co__step { padding: var(--co-gap) 0; border-top: 1px solid var(--emx-line); }
body.emx-kassa .woocommerce-billing-fields { border-top: 0; padding-top: 0; }
body.emx-kassa .woocommerce-shipping-fields:empty { display: none; }
body.emx-kassa .emx-co__main h3,
body.emx-kassa .emx-co__aside h3 { margin: 0 0 20px; font-family: var(--emx-font-display); font-size: clamp(1.25rem, 1.1rem + .5vw, 1.5rem); font-weight: 600; line-height: 1.2; color: var(--emx-text); }

/* fields: two columns on wider screens */
body.emx-kassa .woocommerce-billing-fields__field-wrapper,
body.emx-kassa .emx-co__licence { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
body.emx-kassa .woocommerce-billing-fields__field-wrapper > *,
body.emx-kassa .emx-co__licence > * { grid-column: 1 / -1; }
body.emx-kassa #billing_first_name_field, body.emx-kassa #billing_last_name_field,
body.emx-kassa #billing_postcode_field, body.emx-kassa #billing_city_field,
body.emx-kassa #billing_phone_field, body.emx-kassa #billing_email_field,
body.emx-kassa #emx_licence_no_field, body.emx-kassa #emx_licence_holder_field { grid-column: auto; }
body.emx-kassa #billing_email_field { grid-row: auto; }
/* Phones: names and postcode/city stay in pairs (short values); phone, e-mail and the licence fields go full width. */
@media (max-width: 559px) {
	body.emx-kassa .woocommerce-billing-fields__field-wrapper, body.emx-kassa .emx-co__licence { gap: 14px 12px; }
	body.emx-kassa #billing_phone_field, body.emx-kassa #billing_email_field,
	body.emx-kassa #emx_licence_no_field, body.emx-kassa #emx_licence_holder_field { grid-column: 1 / -1; }
}
@media (max-width: 339px) {
	body.emx-kassa .woocommerce-billing-fields__field-wrapper > * { grid-column: 1 / -1 !important; }
}
body.emx-kassa .woocommerce form .form-row,
body.emx-kassa form.checkout .form-row { float: none !important; width: auto !important; margin: 0 !important; padding: 0 !important; }
body.emx-kassa form.checkout .form-row label { display: block; margin: 0 0 8px; font-size: .9375rem; font-weight: 500; line-height: 1.4; color: var(--emx-text); }
body.emx-kassa form.checkout .form-row label .optional { color: var(--emx-text-muted); font-weight: 400; }
body.emx-kassa form.checkout .form-row .required { display: none; }
body.emx-kassa form.checkout .form-row .woocommerce-input-wrapper { display: block; }
body.emx-kassa form.checkout .form-row input.input-text,
body.emx-kassa form.checkout .form-row textarea,
body.emx-kassa form.checkout .form-row select:not(.country_to_state--single) {
	width: 100%; min-height: 52px; box-sizing: border-box; padding: 12px 16px !important; border-radius: var(--emx-r-field, 12px) !important;
	border: 1px solid var(--emx-line-strong) !important; background: var(--emx-surface-2) !important; color: var(--emx-text) !important;
	font-size: 1rem !important; line-height: 1.4; transition: border-color 150ms, box-shadow 150ms; }
body.emx-kassa form.checkout .form-row textarea { min-height: 96px; resize: vertical; }
body.emx-kassa form.checkout .form-row input.input-text::placeholder,
body.emx-kassa form.checkout .form-row textarea::placeholder { color: var(--emx-text-muted); opacity: 1; }
body.emx-kassa form.checkout .form-row input.input-text:focus,
body.emx-kassa form.checkout .form-row textarea:focus { border-color: var(--emx-accent-ink) !important; box-shadow: 0 0 0 3px color-mix(in srgb, var(--emx-accent-ink) 22%, transparent); outline: none; }
body.emx-kassa form.checkout .form-row.woocommerce-validated input.input-text { border-color: var(--emx-line-strong) !important; }
body.emx-kassa form.checkout .form-row.woocommerce-invalid input.input-text,
body.emx-kassa form.checkout .form-row.woocommerce-invalid textarea { border-color: var(--emx-danger) !important; }
body.emx-kassa form.checkout .form-row.woocommerce-invalid label { color: var(--emx-text); }
body.emx-kassa form.checkout .checkout-inline-error-message { margin: 8px 0 0; font-size: .875rem; line-height: 1.4; color: var(--emx-danger); }

/* Sweden is the only country: a plain line instead of a field. */
body.emx-kassa #billing_country_field { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; }
body.emx-kassa #billing_country_field::before, body.emx-kassa #billing_country_field::after { display: none; }
body.emx-kassa #billing_country_field label { margin: 0; color: var(--emx-text-muted); font-weight: 400; }
body.emx-kassa form.checkout .form-row select.country_to_state--single {
	min-height: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; color: var(--emx-text) !important;
	font-weight: 600; font-size: 1rem; width: auto; pointer-events: none; appearance: none; -webkit-appearance: none; }

/* ---------- declarations and terms: one tile per box to tick ---------- */
body.emx-kassa .emx-co__confirm { display: grid; gap: 12px; }
body.emx-kassa .emx-co__confirm > h3 { margin-bottom: 8px; }
body.emx-kassa .emx-co__licence { padding: 20px; border: 1px solid var(--emx-line-strong); border-radius: 12px; background: var(--emx-surface); }
body.emx-kassa .emx-co__licence h4 { margin: 0; font-size: 1.0625rem; font-weight: 600; }
body.emx-kassa .emx-co__licence > p:not(.form-row) { margin: -8px 0 0; color: var(--emx-text-muted); font-size: .9375rem; }
body.emx-kassa .emx-co__licence .emx-co__licence-help { margin: 0; }
body.emx-kassa .emx-co__licence .emx-textlink { min-height: 0; font-size: .9375rem; }
body.emx-kassa form.checkout label.checkbox,
body.emx-kassa form.checkout .woocommerce-form__label-for-checkbox {
	display: flex !important; align-items: flex-start; gap: 12px; margin: 0 !important; padding: 14px 16px; min-height: 52px; box-sizing: border-box;
	border: 1px solid var(--emx-line-strong); border-radius: 12px; background: var(--emx-surface); cursor: pointer;
	font-size: 1rem; font-weight: 500; line-height: 1.45; color: var(--emx-text); transition: border-color 150ms, background-color 150ms; }
body.emx-kassa form.checkout label.checkbox:hover,
body.emx-kassa form.checkout .woocommerce-form__label-for-checkbox:hover { border-color: var(--emx-text-muted); }
body.emx-kassa form.checkout label.checkbox:has(input:checked),
body.emx-kassa form.checkout .woocommerce-form__label-for-checkbox:has(input:checked) { border-color: var(--emx-accent-ink); background: color-mix(in srgb, var(--emx-accent-ink) 7%, var(--emx-surface)); }
body.emx-kassa form.checkout .form-row.woocommerce-invalid label.checkbox,
body.emx-kassa form.checkout .form-row.woocommerce-invalid .woocommerce-form__label-for-checkbox { border-color: var(--emx-danger); }
body.emx-kassa form.checkout .form-row .input-checkbox,
body.emx-kassa form.checkout input[type="checkbox"] { flex: none; width: 20px !important; height: 20px !important; margin: 1px 0 0 !important; accent-color: var(--emx-accent-ink); cursor: pointer; }
body.emx-kassa form.checkout .form-row .description { display: block !important; position: static; margin: 8px 0 0; padding: 0 0 0 16px; background: none; color: var(--emx-text-muted); font-size: .875rem; }
body.emx-kassa form.checkout .form-row .description::before { display: none; }

/* ---------- payment ---------- */
body.emx-kassa .emx-co__pay { border-bottom: 0; padding-bottom: 0; }
body.emx-kassa.woocommerce-checkout #payment { background: none !important; border-radius: 0 !important; }
body.emx-kassa.woocommerce-checkout #payment ul.payment_methods { display: grid; gap: 10px; margin: 0; padding: 0 !important; border: 0 !important; list-style: none; }
body.emx-kassa.woocommerce-checkout #payment ul.payment_methods::before, body.emx-kassa.woocommerce-checkout #payment ul.payment_methods::after { display: none; }
body.emx-kassa.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method {
	display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 0; padding: 16px 18px; line-height: 1.4;
	border: 1px solid var(--emx-line-strong); border-radius: 12px; background: var(--emx-surface); transition: border-color 150ms, background-color 150ms; }
body.emx-kassa.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method::before, body.emx-kassa.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method::after { display: none; }
body.emx-kassa.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method:hover { border-color: var(--emx-text-muted); }
body.emx-kassa.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method.is-selected,
body.emx-kassa.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method:has(> input:checked) { border-color: var(--emx-accent-ink); background: color-mix(in srgb, var(--emx-accent-ink) 7%, var(--emx-surface)); }
body.emx-kassa.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method > input.input-radio { flex: none; width: 20px; height: 20px; margin: 0; accent-color: var(--emx-accent-ink); cursor: pointer; }
body.emx-kassa.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method > label {
	flex: 1 1 0; min-width: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin: 0; cursor: pointer;
	font-size: 1.0625rem; font-weight: 600; color: var(--emx-text); }
body.emx-kassa.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method > label img { max-height: 26px; width: auto; margin: 0; float: none; border-radius: 4px; }
body.emx-kassa.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method > label img:first-of-type { margin-left: auto; }
body.emx-kassa.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method > label img + img { margin-left: -6px; }
body.emx-kassa.woocommerce-checkout #payment div.payment_box {
	flex: 1 1 100%; margin: 0 !important; padding: 0 0 0 32px !important; background: none !important; color: var(--emx-text-muted) !important;
	font-size: .9375rem; line-height: 1.5; border-radius: 0; }
body.emx-kassa.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method > input[style*="none"] ~ div.payment_box,
body.emx-kassa.woocommerce-checkout #payment ul.payment_methods.is-single div.payment_box { padding-left: 0 !important; }
body.emx-kassa.woocommerce-checkout #payment div.payment_box::before { display: none !important; }
body.emx-kassa.woocommerce-checkout #payment div.payment_box p { margin: 0 0 8px; }
body.emx-kassa.woocommerce-checkout #payment div.payment_box p:last-child { margin-bottom: 0; }
body.emx-kassa.woocommerce-checkout #payment div.payment_box fieldset { margin: 4px 0 0; padding: 0; border: 0; }
body.emx-kassa.woocommerce-checkout #payment ul.payment_methods li:not(.wc_payment_method) { margin: 0; padding: 0; }

/* terms, notes and the order button */
body.emx-kassa.woocommerce-checkout #payment div.form-row.place-order { display: grid; gap: 16px; margin: 24px 0 0 !important; padding: 0 !important; }
body.emx-kassa .woocommerce-terms-and-conditions-wrapper { display: grid; gap: 12px; }
body.emx-kassa .woocommerce-privacy-policy-text p { margin: 0; font-size: .875rem; line-height: 1.5; color: var(--emx-text-muted); }
body.emx-kassa .woocommerce-terms-and-conditions { margin: 0; padding: 16px !important; border: 1px solid var(--emx-line) !important; border-radius: 12px; background: var(--emx-surface) !important; font-size: .875rem; }
body.emx-kassa .woocommerce-terms-and-conditions .emx-section { padding: 0 !important; }
body.emx-kassa .woocommerce-terms-and-conditions h1 { font-size: 1.25rem; }
body.emx-kassa .woocommerce-terms-and-conditions h2 { font-size: 1.0625rem; }
body.emx-kassa .woocommerce-terms-and-conditions-checkbox-text a { font-weight: 600; }
body.emx-kassa #payment .terms, body.emx-kassa #payment .wc-terms-and-conditions { float: none; padding: 0; }
body.emx-kassa .emx-checkout-note { margin: 0; font-size: .8125rem; line-height: 1.55; color: var(--emx-text-muted); }
body.emx-kassa.woocommerce-checkout #payment #place_order {
	float: none; width: 100%; min-height: 56px; margin: 0; gap: 10px; font-size: 1.0625rem !important; white-space: normal; text-align: center; line-height: 1.25;
	transition: transform 150ms var(--emx-ease-out, ease), filter 150ms; }
body.emx-kassa.woocommerce-checkout #payment #place_order::before {
	content: ""; flex: none; width: 18px; height: 18px; background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M208,80H176V56a48,48,0,0,0-96,0V80H48A16,16,0,0,0,32,96V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V96A16,16,0,0,0,208,80ZM96,56a32,32,0,0,1,64,0V80H96ZM208,208H48V96H208V208Z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M208,80H176V56a48,48,0,0,0-96,0V80H48A16,16,0,0,0,32,96V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V96A16,16,0,0,0,208,80ZM96,56a32,32,0,0,1,64,0V80H96ZM208,208H48V96H208V208Z'/%3E%3C/svg%3E") center / contain no-repeat; }
body.emx-kassa.woocommerce-checkout #payment #place_order:active { transform: translateY(1px) scale(.99); }
body.emx-kassa.woocommerce-checkout #payment #place_order:disabled, body.emx-kassa.woocommerce-checkout #payment #place_order.disabled { opacity: .5; cursor: not-allowed; }

/* ---------- order summary ---------- */
body.emx-kassa .emx-co__aside {
	box-sizing: border-box; padding: var(--co-gap); border: 1px solid var(--emx-line); border-radius: var(--emx-r-signature, 16px 64px 16px 16px);
	background: radial-gradient(120% 90% at 100% 0%, color-mix(in srgb, var(--emx-accent-ink) 7%, transparent), transparent 60%), var(--emx-surface); }
body.emx-kassa .emx-co__sum > summary { display: none; }
body.emx-kassa .emx-co__sum > summary::-webkit-details-marker { display: none; }
body.emx-kassa #order_review_heading { margin: 0 0 16px; }
body.emx-kassa .woocommerce-checkout-review-order { background: none !important; padding: 0 !important; border-radius: 0; }
body.emx-kassa table.woocommerce-checkout-review-order-table { width: 100%; margin: 0 !important; border: 0 !important; border-radius: 0 !important; border-collapse: collapse !important; overflow: visible; background: none; font-variant-numeric: tabular-nums; }
body.emx-kassa table.woocommerce-checkout-review-order-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
/* Rows laid out on their own (a product row's columns would otherwise set the width of the totals' values). */
body.emx-kassa table.woocommerce-checkout-review-order-table,
body.emx-kassa table.woocommerce-checkout-review-order-table tbody,
body.emx-kassa table.woocommerce-checkout-review-order-table tfoot { display: block; }
body.emx-kassa table.woocommerce-checkout-review-order-table tbody tr,
body.emx-kassa table.woocommerce-checkout-review-order-table tfoot tr { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
body.emx-kassa table.woocommerce-checkout-review-order-table tbody td,
body.emx-kassa table.woocommerce-checkout-review-order-table tfoot th,
body.emx-kassa table.woocommerce-checkout-review-order-table tfoot td { display: block; }
body.emx-kassa table.woocommerce-checkout-review-order-table tfoot th { flex: none; }
body.emx-kassa table.woocommerce-checkout-review-order-table tfoot td { flex: 1 1 auto; min-width: 0; }
body.emx-kassa table.woocommerce-checkout-review-order-table th,
body.emx-kassa table.woocommerce-checkout-review-order-table td { padding: 10px 0 !important; border: 0 !important; background: none !important; vertical-align: middle; font-weight: 400; color: var(--emx-text); line-height: 1.45; }
body.emx-kassa table.woocommerce-checkout-review-order-table .tax_label { display: none; }
body.emx-kassa table.woocommerce-checkout-review-order-table tbody td { padding: 8px 0 !important; }
body.emx-kassa table.woocommerce-checkout-review-order-table tbody tr:first-child td { padding-top: 0 !important; }
body.emx-kassa table.woocommerce-checkout-review-order-table tbody tr:last-child td { padding-bottom: 16px !important; }
body.emx-kassa table.woocommerce-checkout-review-order-table td.product-name { display: flex; align-items: center; gap: 16px; flex: 1 1 auto; min-width: 0; font-weight: 500; }
body.emx-kassa table.woocommerce-checkout-review-order-table td.product-name .emx-co__name { min-width: 0; overflow-wrap: anywhere; }
body.emx-kassa table.woocommerce-checkout-review-order-table td.product-name dl.variation { margin: 2px 0 0; font-size: .8125rem; color: var(--emx-text-muted); }
body.emx-kassa table.woocommerce-checkout-review-order-table td.product-total { flex: none; text-align: right; white-space: nowrap; font-weight: 500; }
body.emx-kassa .emx-co__thumb { position: relative; flex: none; width: 64px; height: 64px; border: 1px solid var(--emx-line); border-radius: 12px; background: var(--emx-surface-2); }
body.emx-kassa .emx-co__thumb img, body.emx-kassa table.shop_table .emx-co__thumb img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 11px; margin: 0; }
body.emx-kassa .emx-co__qty {
	position: absolute; top: -8px; right: -8px; min-width: 22px; height: 22px; padding: 0 6px; box-sizing: border-box; border-radius: 999px;
	display: grid; place-items: center; background: var(--emx-text); color: var(--emx-bg); font-size: .75rem; font-weight: 700; line-height: 1; }
body.emx-kassa table.woocommerce-checkout-review-order-table tfoot { border-top: 1px solid var(--emx-line); padding-top: 8px; }
body.emx-kassa table.woocommerce-checkout-review-order-table tfoot th { text-align: left; color: var(--emx-text-muted); font-weight: 400; }
body.emx-kassa table.woocommerce-checkout-review-order-table tfoot td { text-align: right; }
body.emx-kassa table.woocommerce-checkout-review-order-table #shipping_method { margin: 0; padding: 0; list-style: none; }
body.emx-kassa table.woocommerce-checkout-review-order-table #shipping_method li { margin: 0; padding: 0; text-indent: 0; }
body.emx-kassa table.woocommerce-checkout-review-order-table #shipping_method li label { display: inline; margin: 0; font-weight: 400; }
body.emx-kassa table.woocommerce-checkout-review-order-table tfoot .amount { font-weight: 500; }
body.emx-kassa table.woocommerce-checkout-review-order-table #shipping_method li input { accent-color: var(--emx-accent-ink); margin: 0 6px 0 0; vertical-align: -2px; }
body.emx-kassa table.woocommerce-checkout-review-order-table tr.order-total { align-items: flex-start; margin-top: 8px; border-top: 1px solid var(--emx-line); padding-top: 8px; }
body.emx-kassa table.woocommerce-checkout-review-order-table tr.order-total th { color: var(--emx-text); font-weight: 600; font-size: 1.0625rem; padding-top: 14px !important; }
body.emx-kassa table.woocommerce-checkout-review-order-table tr.order-total td strong { display: block; font-family: var(--emx-font-display); font-size: 1.625rem; font-weight: 600; line-height: 1.2; }
body.emx-kassa table.woocommerce-checkout-review-order-table tr.order-total .includes_tax { display: block; margin-top: 2px; font-size: .8125rem; color: var(--emx-text-muted); }
body.emx-kassa table.woocommerce-checkout-review-order-table tr.order-total .includes_tax .amount { color: inherit; }
body.emx-kassa table.woocommerce-checkout-review-order-table .cart-discount td,
body.emx-kassa table.woocommerce-checkout-review-order-table .cart-discount th { color: var(--emx-accent-ink); }
body.emx-kassa table.woocommerce-checkout-review-order-table .woocommerce-remove-coupon { margin-left: 6px; font-size: .8125rem; }

body.emx-kassa .emx-co__facts { display: grid; gap: 12px; margin: 20px 0 0; padding: 20px 0 0; border-top: 1px solid var(--emx-line); list-style: none; }
body.emx-kassa .emx-co__facts li { display: flex; align-items: flex-start; gap: 12px; margin: 0; font-size: .875rem; line-height: 1.5; color: var(--emx-text-muted); }
body.emx-kassa .emx-co__facts .emx-icon { color: var(--emx-accent-ink); margin-top: 1px; }
body.emx-kassa .emx-co__facts a { color: var(--emx-accent-ink); font-weight: 600; text-decoration: none; }
body.emx-kassa .emx-co__facts a:hover { text-decoration: underline; }

/* Phones and tablets: the summary comes first, folded to one line with the total (assets/checkout.js). */
@media (max-width: 1023px) {
	body.emx-kassa .emx-co__aside { padding: 0; border-radius: 16px; }
	body.emx-kassa .emx-co__sum > summary {
		display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 60px; padding: 0 20px; cursor: pointer; list-style: none;
		font-weight: 600; color: var(--emx-text); border-radius: 16px; }
	body.emx-kassa .emx-co__sumlabel { display: inline-flex; align-items: center; gap: 8px; }
	body.emx-kassa .emx-co__sumlabel .emx-icon { color: var(--emx-text-muted); transition: transform 200ms var(--emx-ease-state, ease); }
	body.emx-kassa .emx-co__sum[open] .emx-co__sumlabel .emx-icon { transform: rotate(180deg); }
	body.emx-kassa .emx-co__sumtotal { font-family: var(--emx-font-display); font-size: 1.125rem; font-variant-numeric: tabular-nums; }
	body.emx-kassa .emx-co__sum[open] > summary { border-bottom: 1px solid var(--emx-line); border-radius: 16px 16px 0 0; }
	body.emx-kassa .emx-co__sum > :not(summary) { margin-left: 20px; margin-right: 20px; }
	body.emx-kassa .emx-co__sum #order_review_heading { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); margin: 0; }
	body.emx-kassa .emx-co__sum #order_review { padding-top: 20px !important; }
	body.emx-kassa .emx-co__sum .emx-co__facts { margin-bottom: 20px; }
}

/* ---------- notices and loading ---------- */
body.emx-kassa .woocommerce-NoticeGroup .wc-block-components-notice-banner,
body.emx-kassa .woocommerce-NoticeGroup .woocommerce-error {
	display: flex; gap: 12px; align-items: flex-start; margin: 0 0 8px; padding: 16px 20px !important; border: 1px solid var(--emx-danger) !important; border-radius: 12px;
	background: color-mix(in srgb, var(--emx-danger) 10%, var(--emx-surface)) !important; color: var(--emx-text) !important; font-size: .9375rem; }
body.emx-kassa .woocommerce-NoticeGroup .wc-block-components-notice-banner > svg { flex: none; width: 22px; height: 22px; fill: var(--emx-danger); background: none; padding: 0; border-radius: 0; }
body.emx-kassa .woocommerce-NoticeGroup .wc-block-components-notice-banner ul { margin: 0; padding-left: 18px; }
body.emx-kassa .woocommerce-NoticeGroup .wc-block-components-notice-banner a,
body.emx-kassa .woocommerce-NoticeGroup .woocommerce-error a { color: var(--emx-text); }
body.emx-kassa .woocommerce-NoticeGroup [tabindex="-1"]:focus { outline: none; box-shadow: none; }
body.emx-kassa .woocommerce-notices-wrapper:empty { display: none; }
body.emx-kassa .blockUI.blockOverlay { background: var(--emx-bg) !important; opacity: .55 !important; border-radius: 12px; }
body.emx-kassa .blockUI.blockOverlay::before { border-color: var(--emx-accent-ink); }

/* Payment providers' express buttons (Apple Pay, Google Pay) above the address, if a provider adds them. */
body.emx-kassa .emx-co__main > [id*="express-checkout"] { margin-bottom: var(--co-gap); }

@media (prefers-reduced-motion: reduce) {
	body.emx-kassa .emx-co__sumlabel .emx-icon, body.emx-kassa form.checkout label.checkbox, body.emx-kassa #payment li.wc_payment_method,
	body.emx-kassa form.checkout .form-row input.input-text, body.emx-kassa #place_order { transition: none !important; }
}

/* ---------- 1.4.16: Privatperson / Organisation ---------- */
body.emx-kassa form.checkout .form-row[hidden], body.emx-kassa .emx-co__orgnote[hidden] { display: none !important; }
body.emx-kassa #billing_customer_type_field { margin-bottom: 4px !important; }
body.emx-kassa #billing_customer_type_field > label { margin-bottom: 10px; }
body.emx-kassa #billing_customer_type_field .woocommerce-input-wrapper {
	display: inline-grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 4px; box-sizing: border-box; min-width: min(100%, 360px);
	border: 1px solid var(--emx-line-strong); border-radius: 999px; background: var(--emx-surface); }
body.emx-kassa #billing_customer_type_field input.input-radio { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; pointer-events: none; }
body.emx-kassa #billing_customer_type_field label.radio {
	display: flex !important; align-items: center; justify-content: center; min-height: 44px; margin: 0 !important; padding: 0 20px; border-radius: 999px;
	font-size: .9375rem; font-weight: 600; color: var(--emx-text-muted); cursor: pointer; white-space: nowrap; transition: background-color 150ms, color 150ms; }
body.emx-kassa #billing_customer_type_field label.radio:hover { color: var(--emx-text); }
body.emx-kassa #billing_customer_type_field input.input-radio:checked + label.radio { background: var(--emx-accent); color: var(--emx-on-accent); }
body.emx-kassa #billing_customer_type_field input.input-radio:focus-visible + label.radio { outline: 2px solid var(--emx-focus); outline-offset: 2px; }
/* The organisation block reads as one group under the choice. */
body.emx-kassa form.checkout.is-org #billing_company_field { padding-top: 4px !important; }
body.emx-kassa #billing_orgnr_field, body.emx-kassa #billing_vat_field,
body.emx-kassa #billing_reference_field, body.emx-kassa #billing_invoice_email_field { grid-column: auto; }
@media (max-width: 559px) {
	body.emx-kassa #billing_customer_type_field .woocommerce-input-wrapper { display: grid; width: 100%; }
	body.emx-kassa #billing_vat_field, body.emx-kassa #billing_reference_field, body.emx-kassa #billing_invoice_email_field, body.emx-kassa #billing_orgnr_field { grid-column: 1 / -1; }
}
body.emx-kassa .emx-co__orgnote { margin: 0; padding: 14px 16px; border: 1px solid var(--emx-danger); border-radius: 12px; background: color-mix(in srgb, var(--emx-danger) 8%, var(--emx-surface)); font-size: .9375rem; line-height: 1.5; color: var(--emx-text); }
body.emx-kassa .emx-co__orgnote a { color: var(--emx-text); font-weight: 600; }
@media (prefers-reduced-motion: reduce) { body.emx-kassa #billing_customer_type_field label.radio { transition: none; } }

/* ---------- 1.4.16: Varukorg ----------
   Wide column like the Kassa: the products on the left, the summary card with the button to the Kassa on the right
   (staying in view); on phones the summary follows the products. Only when the cart has items. */
body.emx-varukorg .emx-main > .emx-page__title,
body.emx-varukorg .emx-main > .wp-block-post-content,
body.emx-varukorg .emx-main .wp-block-post-content > .woocommerce { max-width: 1180px; margin-left: auto !important; margin-right: auto !important; box-sizing: border-box; }
body.emx-varukorg .emx-main > .emx-page__title { margin-bottom: clamp(20px, 3vw, 32px); }
body.emx-varukorg--items .wp-block-post-content > .woocommerce { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; }
body.emx-varukorg--items .wp-block-post-content > .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
body.emx-varukorg--items .wp-block-post-content > .woocommerce > .woocommerce-notices-wrapper:empty { display: none; }
@media (min-width: 1024px) {
	body.emx-varukorg--items .wp-block-post-content > .woocommerce { grid-template-columns: minmax(0, 1fr) minmax(340px, 400px); column-gap: clamp(40px, 5vw, 72px); align-items: start; }
	body.emx-varukorg--items .woocommerce-cart-form { grid-column: 1; }
	body.emx-varukorg--items .cart-collaterals { grid-column: 2; position: sticky; top: calc(var(--emx-header-h, 72px) + var(--emx-adminbar, 0px) + 24px); }
}
body.emx-varukorg .woocommerce-cart-form { margin: 0; min-width: 0; }

/* product rows */
body.emx-varukorg table.shop_table.cart { display: block; width: 100%; margin: 0 !important; border: 0 !important; border-radius: 0 !important; background: none; overflow: visible; }
body.emx-varukorg table.shop_table.cart thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
body.emx-varukorg table.shop_table.cart tbody { display: block; }
body.emx-varukorg table.shop_table.cart tr.cart_item {
	display: grid; grid-template-columns: 88px minmax(0, 1fr) auto; grid-template-areas: "thumb name remove" "thumb price price" "thumb qty subtotal";
	gap: 4px 16px; align-items: center; padding: 20px 0; border-top: 1px solid var(--emx-line); }
body.emx-varukorg table.shop_table.cart tr.cart_item:first-child { border-top: 0; padding-top: 0; }
body.emx-varukorg table.shop_table.cart tr.cart_item td { display: block; padding: 0 !important; border: 0 !important; background: none !important; text-align: left !important; }
body.emx-varukorg table.shop_table.cart tr.cart_item td::before { display: none !important; }
body.emx-varukorg table.shop_table.cart td.product-thumbnail { grid-area: thumb; align-self: start; }
body.emx-varukorg table.shop_table.cart td.product-thumbnail a { display: block; }
body.emx-varukorg table.shop_table.cart td.product-thumbnail img { display: block; width: 88px !important; height: 88px; object-fit: cover; margin: 0; border: 1px solid var(--emx-line); border-radius: 12px; background: var(--emx-surface-2); box-sizing: border-box; }
body.emx-varukorg table.shop_table.cart td.product-name { grid-area: name; font-size: 1.0625rem; font-weight: 600; line-height: 1.35; }
body.emx-varukorg table.shop_table.cart td.product-name a { color: var(--emx-text); text-decoration: none; }
body.emx-varukorg table.shop_table.cart td.product-name a:hover { text-decoration: underline; }
body.emx-varukorg table.shop_table.cart td.product-name dl.variation { margin: 4px 0 0; font-size: .875rem; font-weight: 400; color: var(--emx-text-muted); }
body.emx-varukorg .emx-cart__licence { display: block; margin-top: 4px; font-size: .8125rem; font-weight: 500; color: var(--emx-text-muted); }
body.emx-varukorg .emx-cart__licence.is-tillstand { color: var(--emx-text); }
body.emx-varukorg table.shop_table.cart td.product-price { grid-area: price; font-size: .875rem; color: var(--emx-text-muted); }
body.emx-varukorg table.shop_table.cart td.product-price::after { content: " / st"; }
body.emx-varukorg:lang(en) table.shop_table.cart td.product-price::after { content: " each"; }
body.emx-varukorg table.shop_table.cart td.product-quantity { grid-area: qty; margin-top: 8px !important; }
body.emx-varukorg table.shop_table.cart td.product-quantity .quantity .qty { width: 88px; min-height: 44px; }
body.emx-varukorg table.shop_table.cart td.product-subtotal { grid-area: subtotal; margin-top: 8px !important; text-align: right !important; font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
body.emx-varukorg table.shop_table.cart .tax_label { display: none; }
body.emx-varukorg table.shop_table.cart td.product-remove { grid-area: remove; align-self: start; justify-self: end; }
body.emx-varukorg table.shop_table.cart td.product-remove a.remove {
	display: grid !important; place-items: center; width: 36px !important; height: 36px !important; border-radius: 999px !important; font-size: 1.25rem !important; line-height: 1 !important;
	color: var(--emx-text-muted) !important; background: none !important; border: 1px solid var(--emx-line) !important; text-decoration: none; }
body.emx-varukorg table.shop_table.cart td.product-remove a.remove:hover { color: var(--emx-danger) !important; border-color: var(--emx-danger) !important; background: none !important; }

/* coupon and update */
body.emx-varukorg table.shop_table.cart tbody tr:not(.cart_item) { display: block; }
body.emx-varukorg table.shop_table.cart td.actions {
	display: flex !important; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-top: 4px; padding: 20px 0 0 !important;
	border: 0 !important; border-top: 1px solid var(--emx-line) !important; background: none !important; text-align: left; }
body.emx-varukorg table.shop_table.cart td.actions::before, body.emx-varukorg table.shop_table.cart td.actions::after { display: none; }
body.emx-varukorg table.shop_table.cart td.actions .coupon { display: flex; flex-wrap: nowrap; flex: 1 1 320px; gap: 8px; float: none; max-width: 460px; padding: 0 !important; border: 0 !important; }
body.emx-varukorg table.shop_table.cart td.actions .coupon label { position: absolute !important; }
body.emx-varukorg table.shop_table.cart td.actions .button { white-space: nowrap; width: auto !important; }
body.emx-varukorg table.shop_table.cart td.actions .coupon .input-text {
	flex: 1 1 0; width: 0 !important; min-width: 0; min-height: 48px; margin: 0 !important; padding: 0 16px !important; box-sizing: border-box; float: none !important;
	border: 1px solid var(--emx-line-strong) !important; border-radius: var(--emx-r-field, 12px) !important; background: var(--emx-surface-2) !important; color: var(--emx-text) !important; font-size: 1rem; }
body.emx-varukorg table.shop_table.cart td.actions .coupon .button,
body.emx-varukorg table.shop_table.cart td.actions > .button { float: none !important; flex: none; margin: 0 !important; background: transparent !important; color: var(--emx-text) !important; border: 1px solid var(--emx-line-strong) !important; }
body.emx-varukorg table.shop_table.cart td.actions > .button:disabled { opacity: .45 !important; }
@media (max-width: 559px) {
	body.emx-varukorg table.shop_table.cart tr.cart_item { grid-template-columns: 72px minmax(0, 1fr) auto; }
	body.emx-varukorg table.shop_table.cart td.product-thumbnail img { width: 72px !important; height: 72px; }
	body.emx-varukorg table.shop_table.cart td.actions > .button { width: 100% !important; }
	body.emx-varukorg table.shop_table.cart td.actions .coupon { flex-basis: 100%; max-width: none; }
}

/* summary card */
body.emx-varukorg .cart-collaterals { display: flex; flex-direction: column; gap: 24px; width: auto; min-width: 0; }
body.emx-varukorg .cart-collaterals::before, body.emx-varukorg .cart-collaterals::after { display: none !important; }
body.emx-varukorg .cart-collaterals .cart_totals {
	order: 1; float: none !important; width: auto !important; box-sizing: border-box; margin: 0; padding: clamp(20px, 2.4vw, 32px) !important;
	border: 1px solid var(--emx-line); border-radius: var(--emx-r-signature, 16px 64px 16px 16px) !important;
	background: radial-gradient(120% 90% at 100% 0%, color-mix(in srgb, var(--emx-accent-ink) 7%, transparent), transparent 60%), var(--emx-surface) !important; }
body.emx-varukorg .cart-collaterals .cart_totals h2 { margin: 0 0 16px; font-family: var(--emx-font-display); font-size: clamp(1.25rem, 1.1rem + .5vw, 1.5rem); font-weight: 600; }
body.emx-varukorg .cart_totals table.shop_table { display: block; width: 100%; margin: 0 !important; border: 0 !important; border-radius: 0 !important; background: none; font-variant-numeric: tabular-nums; }
body.emx-varukorg .cart_totals table.shop_table tbody { display: block; }
body.emx-varukorg .cart_totals table.shop_table tr { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
body.emx-varukorg .cart_totals table.shop_table th, body.emx-varukorg .cart_totals table.shop_table td { display: block; padding: 10px 0 !important; border: 0 !important; background: none !important; font-weight: 400; color: var(--emx-text); }
body.emx-varukorg .cart_totals table.shop_table td::before { display: none !important; }
body.emx-varukorg .cart_totals table.shop_table th { flex: none; color: var(--emx-text-muted); text-align: left; }
body.emx-varukorg .cart_totals table.shop_table td { flex: 1 1 auto; min-width: 0; text-align: right; }
body.emx-varukorg .cart_totals .tax_label { display: none; }
body.emx-varukorg .cart_totals #shipping_method { margin: 0; padding: 0; list-style: none; }
body.emx-varukorg .cart_totals #shipping_method li { margin: 0; text-indent: 0; }
body.emx-varukorg .cart_totals #shipping_method label { display: inline; margin: 0; font-weight: 400; }
body.emx-varukorg .cart_totals .woocommerce-shipping-destination { margin: 4px 0 0; font-size: .8125rem; color: var(--emx-text-muted); }
body.emx-varukorg .cart_totals tr.order-total { margin-top: 8px; border-top: 1px solid var(--emx-line); padding-top: 8px; }
body.emx-varukorg .cart_totals tr.order-total th { color: var(--emx-text); font-weight: 600; font-size: 1.0625rem; padding-top: 14px !important; }
body.emx-varukorg .cart_totals tr.order-total td strong { display: block; font-family: var(--emx-font-display); font-size: 1.625rem; font-weight: 600; line-height: 1.2; }
body.emx-varukorg .cart_totals tr.order-total .includes_tax { display: block; margin-top: 2px; font-size: .8125rem; color: var(--emx-text-muted); }
body.emx-varukorg .cart_totals .wc-proceed-to-checkout { margin: 20px 0 0; padding: 0 !important; }
body.emx-varukorg .cart_totals .wc-proceed-to-checkout a.checkout-button { display: flex !important; width: 100%; min-height: 56px; margin: 0 !important; box-sizing: border-box; font-size: 1.0625rem !important; }
body.emx-varukorg .cart_totals .wc-proceed-to-checkout a.checkout-button::after {
	content: ""; flex: none; width: 18px; height: 18px; margin-left: 10px; background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M221.66,133.66l-72,72a8,8,0,0,1-11.32-11.32L196.69,136H40a8,8,0,0,1,0-16H196.69L138.34,61.66a8,8,0,0,1,11.32-11.32l72,72A8,8,0,0,1,221.66,133.66Z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M221.66,133.66l-72,72a8,8,0,0,1-11.32-11.32L196.69,136H40a8,8,0,0,1,0-16H196.69L138.34,61.66a8,8,0,0,1,11.32-11.32l72,72A8,8,0,0,1,221.66,133.66Z'/%3E%3C/svg%3E") center / contain no-repeat; }
body.emx-varukorg .cart-collaterals .cross-sells { order: 2; width: auto !important; float: none !important; }
body.emx-varukorg .cart-collaterals .cross-sells h2 { font-size: 1.125rem; margin: 0 0 12px; }
body.emx-varukorg .cart-collaterals .cross-sells ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 16px !important; margin: 0 !important; }
body.emx-varukorg .blockUI.blockOverlay { background: var(--emx-bg) !important; opacity: .55 !important; }
/* empty cart */
body.emx-varukorg .cart-empty.woocommerce-info, body.emx-varukorg .wc-empty-cart-message .cart-empty { padding: 20px 24px !important; font-size: 1.0625rem; }
body.emx-varukorg .return-to-shop { margin-top: 20px; }
