/* Narrow progressive enhancement of the native Norwegian and English WooCommerce forms. */
body.vi-checkout-compact #main #content-wrap { padding-top: 26px; padding-bottom: 36px; }
body.vi-checkout-compact #main .vi-checkout-intro { margin: 0 0 24px; clear: both; }
body.vi-checkout-compact #main .vi-checkout-intro h1 { color: #173e43; font-size: 30px; line-height: 1.2; margin: 8px 0 10px; }
body.vi-checkout-compact #main .vi-checkout-intro p { margin: 0; color: #435d60; }
body.vi-checkout-compact #main .vi-back-link { color: #17636b; display: inline-flex; align-items: center; min-height: 44px; text-decoration: underline; text-underline-offset: 3px; font-size: 15px; }
body.vi-checkout-compact #main :is(.woocommerce-billing-fields > h3, #order_review_heading, .cart_totals > h2) { color: #173e43; font-size: 22px; line-height: 1.3; font-weight: 650; text-transform: none; letter-spacing: normal; margin: 0 0 18px; }
body.vi-checkout-compact #main .woocommerce-form-coupon-toggle .woocommerce-info,
body.vi-checkout-compact #main .woocommerce-form-login-toggle .woocommerce-info { padding: 12px 16px; margin: 0 0 18px; text-align: left; font-size: 15px; line-height: 1.5; text-transform: none; letter-spacing: normal; background: #f3f8f7; border: 1px solid #cddddd; border-radius: 6px; }
body.vi-checkout-compact #main :is(.woocommerce-form-coupon-toggle, .woocommerce-form-login-toggle) .woocommerce-info::before { display: none; }
body.vi-checkout-compact #main :is(.showcoupon, .showlogin) { color: #17636b; text-decoration: underline; font-size: 15px; font-weight: 600; text-transform: none !important; }
body.vi-checkout-compact #main form.checkout { margin-top: 20px; }
body.vi-checkout-compact #main .woocommerce-billing-fields,
body.vi-checkout-compact #main #order_review { padding: 22px; background: #fff; border: 1px solid #cddddd; border-radius: 8px; }
body.vi-checkout-compact #main #order_review_heading { margin: 0; padding: 22px 22px 18px; background: #fff; border: 1px solid #cddddd; border-bottom: 0; border-radius: 8px 8px 0 0; }
body.vi-checkout-compact #main #order_review { padding-top: 0; border-top: 0; border-radius: 0 0 8px 8px; }
body.vi-checkout-compact #main .woocommerce-billing-fields::after { content: ''; display: table; clear: both; }
body.vi-checkout-compact #main #customer_details .form-row { margin: 0 0 14px; padding: 0; }
body.vi-checkout-compact #main #customer_details label { color: #173e43; font-size: 15px; line-height: 1.4; margin-bottom: 6px; }
body.vi-checkout-compact #main #customer_details :is(input:not([type='checkbox']):not([type='hidden']), select, .select2-selection) { min-height: 46px; background-color: #fff; border-color: #859fa2; border-radius: 5px; font-size: 16px; }
body.vi-checkout-compact #main #customer_details input:not([type='checkbox']):not([type='hidden']) { padding: 10px 12px; }
body.vi-checkout-compact #main #customer_details .select2-selection { display: flex; align-items: center; }
body.vi-checkout-compact #main #customer_details .select2-selection__arrow { top: 10px; }
body.vi-checkout-compact #main #ship-to-different-address { margin: 20px 0 12px; font-size: 16px; text-transform: none; line-height: 1.5; letter-spacing: normal; }
body.vi-checkout-compact #main #ship-to-different-address label { display: flex; gap: 10px; align-items: flex-start; min-height: 44px; padding: 8px 0; cursor: pointer; }
body.vi-checkout-compact #main #ship-to-different-address input { margin-top: 4px; flex: 0 0 auto; }
body.vi-checkout-compact #main .shipping_address { padding: 20px; background: #fff; border: 1px solid #cddddd; border-radius: 8px; }
body.vi-checkout-compact #main .woocommerce-additional-fields > h3 { display: none; }
body.vi-checkout-compact #main .vi-optional-field,
body.vi-checkout-compact #main .vi-cart-coupon { clear: both; margin: 0 0 14px; text-align: left; }
body.vi-checkout-compact #main :is(.vi-optional-field, .vi-cart-coupon) > summary { color: #17636b; min-height: 44px; padding: 10px 0; font-size: 15px; line-height: 1.5; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
body.vi-checkout-compact #main :is(.vi-optional-field, .vi-cart-coupon)[open] > summary { margin-bottom: 6px; }
body.vi-checkout-compact #main .vi-optional-content { display: block; }
body.vi-checkout-compact #main .vi-optional-content[hidden] { display: none !important; }
body.vi-checkout-compact #main .vi-optional-toggle { display: inline-block; min-height: 44px; padding: 8px 0; margin: 0; border: 0; background: transparent; color: #17636b; font: inherit; font-size: 15px; line-height: 1.5; text-align: left; text-transform: none; letter-spacing: normal; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
body.vi-checkout-compact #main .vi-optional-toggle[aria-expanded='true'] { margin-bottom: 6px; }
body.vi-checkout-compact #main .vi-cart-coupon .coupon { float: none; width: 100%; }
body.vi-checkout-compact #main .vi-cart-coupon .coupon input { min-height: 44px; max-width: 100%; }
body.vi-checkout-compact #main #order_review table { margin: 0 0 12px; border: 0; }
body.vi-checkout-compact #main #order_review :is(th, td) { padding: 13px 8px; }
body.vi-checkout-compact #main #order_review .product-name { width: 64%; line-height: 1.45; }
body.vi-checkout-compact #main #order_review .product-total { width: 36%; text-align: right; }
body.vi-checkout-compact #main #order_review .product-total .amount { white-space: nowrap; }
body.vi-checkout-compact #main .order-total { background: #f3f8f7; }
body.vi-checkout-compact #main .order-total :is(th, td) { padding-top: 16px !important; padding-bottom: 16px !important; }
body.vi-checkout-compact #main .order-total .amount { font-size: 22px; font-weight: 700; }
body.vi-checkout-compact #main .order-total .includes_tax .amount { font-size: 13px; font-weight: 400; }
body.vi-checkout-compact #main #payment { background: transparent; }
body.vi-checkout-compact #main #payment .payment_methods { padding: 14px 0; }
body.vi-checkout-compact #main #payment div.payment_box { margin: 10px 0; padding: 14px; background: #f3f8f7; color: #435d60; }
body.vi-checkout-compact #main #payment .place-order { padding: 12px 0 0; }
body.vi-checkout-compact #main #payment .woocommerce-privacy-policy-text { font-size: 14px; line-height: 1.5; }
body.vi-checkout-compact #main #payment .woocommerce-terms-and-conditions-checkbox-text { font-size: 15px; line-height: 1.5; }
body.vi-checkout-compact #main #place_order { width: 100%; min-height: 52px; margin-top: 16px; font-size: 18px; }
body.vi-checkout-compact #main .wc-proceed-to-checkout { padding-top: 16px; }
body.vi-checkout-compact #main .wc-proceed-to-checkout .checkout-button { width: 100%; min-height: 52px; font-size: 18px; }
body.vi-checkout-compact #main .woocommerce-cart-form .quantity { display: inline-flex; float: none; margin: 0; align-items: stretch; }
body.vi-checkout-compact #main .woocommerce-cart-form .quantity :is(.minus, .plus, .qty) { min-width: 40px; width: 40px; min-height: 44px; height: 44px; line-height: 42px; margin: 0; padding: 0; float: none; text-align: center; }
body.vi-checkout-compact #main .woocommerce-cart-form .quantity .qty { min-width: 48px; width: 48px; border-radius: 0; }
body.vi-checkout-compact #main .woocommerce-cart-form .actions { border: 0; padding: 12px 0 24px; }
body.vi-checkout-compact #main .cart_totals .order-total th { text-align: left; }
body.vi-checkout-compact #main .cart_totals > h2 { background: transparent; padding: 0; border: 0; text-align: left; }
body.vi-checkout-compact #main .cart_totals table { border: 0; }
body.vi-checkout-compact #main .cart_totals :is(th, td) { border-left: 0; border-right: 0; }

@media (min-width: 768px) {
  body.vi-checkout-compact #main .woocommerce-cart-form { width: 100%; }
  body.vi-checkout-compact #main .cart_totals { padding: 22px; background: #fff; border: 1px solid #cddddd; border-radius: 8px; }
}

/* Bring's delivery card needs the full summary width on desktop as well. */
@media (min-width: 601px) {
  body.vi-checkout-compact #main :is(#order_review, .cart_totals) table.shop_table:has(input.shipping_method[value^='posten-bring-checkout']),
  body.vi-checkout-compact #main :is(#order_review, .cart_totals) table.shop_table:has(input.shipping_method[value^='posten-bring-checkout']) > :is(thead, tbody, tfoot) { display: block; width: 100%; max-width: 100%; min-width: 0; box-sizing: border-box; }
  body.vi-checkout-compact #main :is(#order_review, .cart_totals) table.shop_table:has(input.shipping_method[value^='posten-bring-checkout']) tr { display: flex; width: 100%; min-width: 0; box-sizing: border-box; }
  body.vi-checkout-compact #main :is(#order_review, .cart_totals) table.shop_table:has(input.shipping_method[value^='posten-bring-checkout']) tr > :is(th, td) { display: block; box-sizing: border-box; min-width: 0; width: 40%; max-width: 40%; flex: 0 0 40%; white-space: normal; text-align: right; }
  body.vi-checkout-compact #main :is(#order_review, .cart_totals) table.shop_table:has(input.shipping_method[value^='posten-bring-checkout']) tr > :is(th, td):first-child { width: 60%; max-width: 60%; flex-basis: 60%; text-align: left; }
  body.vi-checkout-compact #main :is(#order_review, .cart_totals) table.shop_table:has(input.shipping_method[value^='posten-bring-checkout']) tr.woocommerce-shipping-totals { display: block; }
  body.vi-checkout-compact #main :is(#order_review, .cart_totals) table.shop_table:has(input.shipping_method[value^='posten-bring-checkout']) tr.woocommerce-shipping-totals > :is(th, td) { width: 100%; max-width: 100%; text-align: left; }
  body.vi-checkout-compact #main :is(#order_review, .cart_totals) #shipping_method { width: 100%; max-width: 100%; min-width: 0; padding: 0; margin: 0; }
}

@media (max-width: 600px) {
  body.vi-checkout-compact #main #content-wrap { width: 100%; max-width: 100%; margin: 0; padding: 16px 16px 28px; }
  body.vi-checkout-compact #main #content { width: 100%; padding: 0; }
  body.vi-checkout-compact #main .elementor-widget-wrap { padding-left: 0; padding-right: 0; }
  body.vi-checkout-compact #main .vi-checkout-intro { margin-bottom: 18px; }
  body.vi-checkout-compact #main .vi-checkout-intro h1 { font-size: 27px; }
  body.vi-checkout-compact #main .vi-checkout-intro p { font-size: 15px; }
  body.vi-checkout-compact #main .woocommerce-cart-form .shop_table { border: 0; margin-bottom: 10px; }
  body.vi-checkout-compact #main .woocommerce-cart-form .shop_table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  body.vi-checkout-compact #main .woocommerce-cart-form .cart_item {
    display: grid !important; grid-template-columns: 66px minmax(0, 1fr) 44px;
    grid-template-areas: 'image name remove' 'image price price' 'quantity quantity subtotal';
    gap: 8px 10px; padding: 14px 12px; margin: 0 0 14px;
    background: #fff; border: 1px solid #cddddd; border-radius: 8px;
  }
  body.vi-checkout-compact #main .woocommerce-cart-form .cart_item > td {
    display: block !important; float: none !important; width: auto !important; min-width: 0;
    border: 0 !important; padding: 0 !important; background: transparent !important; text-align: left !important;
  }
  body.vi-checkout-compact #main .woocommerce-cart-form .cart_item > td::before { display: none !important; }
  body.vi-checkout-compact #main .woocommerce-cart-form .cart_item .product-thumbnail { grid-area: image; align-self: start; }
  body.vi-checkout-compact #main .woocommerce-cart-form .product-thumbnail img { display: block; width: 66px; height: 82px; object-fit: contain; margin: 0; }
  body.vi-checkout-compact #main .woocommerce-cart-form .cart_item .product-name { grid-area: name; font-size: 15px; line-height: 1.4; }
  body.vi-checkout-compact #main .woocommerce-cart-form .product-name > a { color: #173e43; font-weight: 650; }
  body.vi-checkout-compact #main .woocommerce-cart-form .cart_item .product-remove { grid-area: remove; justify-self: end; }
  body.vi-checkout-compact #main .woocommerce-cart-form a.remove { display: flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; font-size: 27px; line-height: 1; border-radius: 5px; color: #52696c; }
  body.vi-checkout-compact #main .woocommerce-cart-form .cart_item .product-price { grid-area: price; font-size: 14px; color: #435d60; }
  body.vi-checkout-compact #main .woocommerce-cart-form .cart_item .product-price::after { content: ' / stk.'; font-size: 13px; }
  body.vi-checkout-compact #main .woocommerce-cart-form .cart_item .product-quantity { grid-area: quantity; align-self: end; margin-top: 4px; }
  body.vi-checkout-compact #main .woocommerce-cart-form .cart_item .product-quantity::before { content: 'Antall'; display: block !important; float: none !important; margin-bottom: 4px; font-size: 12px; font-weight: 400; color: #435d60; }
  body.vi-checkout-compact #main .woocommerce-cart-form .cart_item .product-subtotal { grid-area: subtotal; justify-self: end; align-self: end; text-align: right !important; width: max-content !important; max-width: 190px; }
  body.vi-checkout-compact #main .woocommerce-cart-form .product-subtotal .amount { font-size: 17px; font-weight: 700; white-space: nowrap; }
  body.vi-checkout-compact #main .woocommerce-cart-form .product-subtotal .tax_label { display: block; font-size: 11px; line-height: 1.3; }
  body.vi-checkout-compact #main .woocommerce-cart-form dl.variation { margin: 8px 0 0; font-size: 12px; }
  body.vi-checkout-compact #main .woocommerce-cart-form dl.variation :is(dt, dd, p) { margin-top: 0; margin-bottom: 3px; line-height: 1.35; }
  body.vi-checkout-compact #main .woocommerce-cart-form .actions { display: block; text-align: left; }
  body.vi-checkout-compact #main .vi-cart-coupon .coupon { display: flex; flex-wrap: wrap; gap: 10px; }
  body.vi-checkout-compact #main .vi-cart-coupon .coupon :is(input, button) { width: 100% !important; margin: 0 !important; }
  body.vi-checkout-compact #main .woocommerce-cart-form button[name='update_cart'] { min-height: 48px; width: 100%; margin: 0; }
  body.vi-checkout-compact #main .cart_totals { width: 100%; padding: 16px; background: #fff; border: 1px solid #cddddd; border-radius: 8px; }
  body.vi-checkout-compact #main .cart_totals table { margin-bottom: 0; }
  body.vi-checkout-compact #main .woocommerce-billing-fields,
  body.vi-checkout-compact #main #order_review,
  body.vi-checkout-compact #main .shipping_address { padding: 16px; }
  body.vi-checkout-compact #main #customer_details { margin-bottom: 20px; }
  body.vi-checkout-compact #main #order_review_heading { padding: 16px 16px 18px; margin: 0; }
  body.vi-checkout-compact #main #order_review { padding-top: 0; }
  body.vi-checkout-compact #main #order_review :is(th, td) { padding-left: 5px; padding-right: 5px; font-size: 14px; }
  body.vi-checkout-compact #main #order_review .product-name { width: 58%; }
  body.vi-checkout-compact #main #order_review .product-total { width: 42%; }
  body.vi-checkout-compact #main #order_review .product-total .tax_label { display: block; font-size: 11px; }
  body.vi-checkout-compact #main #order_review .order-total .amount { font-size: 21px; }
  body.vi-checkout-compact #main #order_review .order-total .includes_tax .amount { font-size: 12px; }
}

/* Localize the mobile card labels without changing the table markup. */
@media (max-width: 600px) {
  html[lang^="en"] body.vi-checkout-compact #main .woocommerce-cart-form .cart_item .product-price::after { content: ' / item'; }
  html[lang^="en"] body.vi-checkout-compact #main .woocommerce-cart-form .cart_item .product-quantity::before { content: 'Quantity'; }
}
