/*
 * WooCommerce in the Aurora design: side cart, cart badge, and the classic
 * cart / checkout / account pages. Uses the design tokens from style.css.
 * WooCommerce's own "general" stylesheet is dequeued; its layout grid stays.
 */

/* ---------------------------------------------------------------- cart badge */
.circ--cart{ position:relative; }
.cart-count{
  position:absolute; top:-4px; right:-4px;
  min-width:19px; height:19px; padding:0 5px;
  display:grid; place-items:center;
  border-radius:var(--pill-r);
  background:var(--gold); color:#fff;
  font-size:10.5px; font-weight:600; line-height:1; letter-spacing:0;
}
.cart-count[hidden]{ display:none; }
/* The design drops the round icons in the mobile header; a shop needs the cart. */
@media (max-width:980px){
  .header .circ.circ--cart{ display:inline-grid; place-items:center; }
  .header__inner{ grid-template-columns:auto 1fr; }
}

/* ---------------------------------------------------------------- side cart */
html.cart-is-open{ overflow:hidden; }
.cart-drawer{ position:fixed; inset:0; z-index:300; }
.cart-drawer[hidden]{ display:none; }
.cart-drawer__scrim{
  position:absolute; inset:0;
  background:rgba(47,40,43,.42);
  opacity:0; transition:opacity .4s var(--ease);
}
.cart-drawer__panel{
  position:absolute; top:0; right:0; bottom:0;
  width:min(440px, 100vw);
  display:flex; flex-direction:column;
  background:var(--cream-soft);
  box-shadow:-30px 0 60px -40px rgba(47,40,43,.55);
  border-radius:var(--panel-r) 0 0 var(--panel-r);
  transform:translateX(104%);
  transition:transform .42s var(--ease);
  outline:none;
}
.cart-drawer.is-open .cart-drawer__scrim{ opacity:1; }
.cart-drawer.is-open .cart-drawer__panel{ transform:none; }
@media (prefers-reduced-motion:reduce){
  .cart-drawer__scrim, .cart-drawer__panel{ transition:none; }
}

.cart-drawer__head{
  display:flex; align-items:flex-start; justify-content:space-between; gap:16px;
  padding:28px 28px 20px;
  border-bottom:1px solid var(--line);
}
.cart-drawer__head .eyebrow{ margin-bottom:8px; }
.cart-drawer__title{
  font-family:var(--display); font-weight:400;
  font-size:clamp(1.45rem, 2vw, 1.75rem); line-height:1.15; letter-spacing:-.01em;
  display:flex; align-items:center; gap:10px;
}
.cart-drawer__count{
  display:inline-grid; place-items:center;
  min-width:26px; height:26px; padding:0 7px;
  border-radius:var(--pill-r);
  background:var(--ink); color:var(--paper);
  font-family:var(--body); font-size:12px; font-weight:500;
}
.cart-drawer__close{ flex:0 0 auto; width:42px; height:42px; display:grid; place-items:center; }
.cart-drawer__close svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; }

.cart-drawer__body{ flex:1 1 auto; display:flex; flex-direction:column; min-height:0; }

.cart-drawer__ship{ padding:18px 28px; border-bottom:1px solid var(--line); }
.cart-drawer__ship p{ font-size:13.5px; color:var(--ink-soft); margin-bottom:10px; }
.cart-drawer__ship strong{ color:var(--ink); font-weight:500; }
.cart-drawer__bar{ display:block; height:4px; border-radius:4px; background:var(--line); overflow:hidden; }
.cart-drawer__bar span{ display:block; height:100%; background:var(--gold); border-radius:4px; transition:width .5s var(--ease); }

.cart-drawer__items{ flex:1 1 auto; overflow-y:auto; padding:8px 28px; list-style:none; margin:0; }
.cart-drawer__item{
  display:grid; grid-template-columns:88px 1fr; gap:16px;
  padding:18px 0; border-bottom:1px solid var(--line-soft);
  transition:opacity .2s;
}
.cart-drawer__item.is-busy{ opacity:.45; pointer-events:none; }
.cart-drawer__item:last-child{ border-bottom:0; }
.cart-drawer__thumb{ width:88px; height:88px; border-radius:var(--card-r); overflow:hidden; background:var(--tile); }
.cart-drawer__thumb img{ width:100%; height:100%; object-fit:cover; }
.cart-drawer__name{ font-family:var(--ui); font-weight:500; font-size:17px; line-height:1.25; margin-bottom:3px; }
.cart-drawer__name a{ color:inherit; text-decoration:none; }
.cart-drawer__name a:hover{ text-decoration:underline; text-underline-offset:3px; }
.cart-drawer__meta{ font-size:12.5px; color:var(--ink-mute); margin-bottom:10px; }
.cart-drawer__row{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:8px; }
.cart-drawer__price{ font-size:14px; color:var(--ink); }
.cart-drawer__remove{
  margin-top:8px; padding:0; background:none; border:0; cursor:pointer;
  font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-mute);
}
.cart-drawer__remove:hover{ color:var(--ink); }

.qty{
  display:inline-flex; align-items:center;
  border:1px solid var(--line); border-radius:var(--pill-r); background:var(--paper);
}
.qty button{
  width:34px; height:34px; border:0; background:none; cursor:pointer;
  font-size:16px; color:var(--ink); line-height:1;
}
.qty button:hover{ color:var(--gold); }
.qty span{ min-width:22px; text-align:center; font-size:14px; }

.cart-drawer__foot{
  padding:20px 28px 28px;
  border-top:1px solid var(--line);
  background:var(--paper);
  display:grid; gap:10px;
}
.cart-drawer__sum{ display:flex; justify-content:space-between; align-items:baseline; font-size:15px; }
.cart-drawer__sum strong{ font-family:var(--display); font-size:22px; font-weight:400; }
.cart-drawer__note{ font-size:12.5px; color:var(--ink-mute); margin-bottom:6px; }
.cart-drawer__foot .btn{ width:100%; }

.cart-drawer__empty{ padding:48px 28px; text-align:center; display:grid; gap:14px; justify-items:center; }
.cart-drawer__empty-title{ font-family:var(--display); font-size:24px; }
.cart-drawer__empty p{ color:var(--ink-soft); font-size:14.5px; }

/* Buy form feedback */
form.buy.is-sending button[type="submit"]{ opacity:.6; pointer-events:none; }
.buy__status{ margin-top:10px; font-size:13px; color:var(--ink-soft); }
.buy__status.is-err{ color:#a3362d; }

/* ---------------------------------------------------------------- pages */
.woo-page{ padding-block:var(--sec-y-tight); }
.woo-page__inner{ max-width:1180px; margin-inline:auto; }

.woocommerce .button,
.woocommerce button.button,
.woocommerce a.button,
.woocommerce input.button,
.woocommerce #place_order,
.woocommerce .checkout-button,
.woocommerce-account .woocommerce-MyAccount-content .button{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:15px 30px;
  font-family:var(--body); font-size:12.5px; font-weight:500;
  letter-spacing:.16em; text-transform:uppercase;
  border:1px solid var(--ink); border-radius:var(--pill-r);
  background:var(--ink); color:var(--paper);
  cursor:pointer; text-decoration:none; line-height:1.2;
  transition:background .28s var(--ease), transform .28s var(--ease);
}
.woocommerce .button:hover,
.woocommerce #place_order:hover{ background:#000; transform:translateY(-2px); }
.woocommerce button.button:disabled,
.woocommerce button.button[disabled]{ opacity:.45; cursor:not-allowed; transform:none; }
.woocommerce button[name="update_cart"],
.woocommerce .coupon .button{ background:transparent; color:var(--ink); }
.woocommerce button[name="update_cart"]:hover,
.woocommerce .coupon .button:hover{ background:var(--ink); color:var(--paper); }

/* Notices */
.woocommerce-notices-wrapper:empty{ display:none; }
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews{
  list-style:none; margin:0 0 26px; padding:18px 24px;
  border-radius:var(--card-r); background:var(--sage); color:var(--ink);
  font-size:14.5px; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px;
}
.woocommerce-error{ background:#FBEDEA; color:#7a2a22; display:block; }
.woocommerce-error li + li{ margin-top:6px; }
.woocommerce-message .button, .woocommerce-info .button{ padding:10px 20px; }

/* Forms */
.woocommerce form .form-row{ margin:0 0 18px; padding:0; }
.woocommerce form .form-row label{
  display:block; margin-bottom:8px;
  font-size:11px; font-weight:500; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-soft);
}
.woocommerce form .form-row .required{ color:var(--gold); text-decoration:none; border:0; }
.woocommerce form .form-row .optional{ text-transform:none; letter-spacing:.04em; color:var(--ink-faint); }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .coupon input.input-text,
.woocommerce-cart table.cart td.actions .coupon .input-text,
.select2-container .select2-selection--single{
  width:100%; min-height:52px; padding:14px 20px;
  background:var(--paper); border:1px solid var(--line); border-radius:var(--pill-r);
  font:inherit; font-size:15px; color:var(--ink);
}
.woocommerce form .form-row textarea{ border-radius:var(--card-r); min-height:110px; }
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus{ outline:none; border-color:var(--gold); }
.select2-container .select2-selection--single .select2-selection__rendered{ line-height:22px; padding:0; color:var(--ink); }
.select2-container--default .select2-selection--single .select2-selection__arrow{ top:13px; right:14px; }
.woocommerce form .form-row.woocommerce-invalid input.input-text{ border-color:#c0574b; }
.woocommerce form .form-row input[type="checkbox"]{ accent-color:var(--ink); margin-right:8px; }

/* Cart table */
.woocommerce table.shop_table{
  width:100%; border-collapse:separate; border-spacing:0;
  background:var(--paper); border-radius:var(--card-r); overflow:hidden;
  border:1px solid var(--line); margin-bottom:32px; font-size:15px;
}
.woocommerce table.shop_table th{
  text-align:left; padding:16px 20px;
  font-size:11px; font-weight:500; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-mute);
  border-bottom:1px solid var(--line);
}
.woocommerce table.shop_table td{ padding:18px 20px; border-bottom:1px solid var(--line-soft); vertical-align:middle; }
.woocommerce table.shop_table tr:last-child td{ border-bottom:0; }
.woocommerce table.cart img{ width:84px; height:84px; object-fit:cover; border-radius:5px; }
.woocommerce table.cart .product-name a{ font-family:var(--ui); font-weight:500; font-size:18px; color:var(--ink); text-decoration:none; }
.woocommerce table.cart .product-remove a.remove{
  display:grid; place-items:center; width:30px; height:30px; border-radius:50%;
  color:var(--ink-mute) !important; font-size:20px; text-decoration:none; background:var(--cream-soft);
}
.woocommerce table.cart .product-remove a.remove:hover{ background:var(--ink); color:#fff !important; }
.woocommerce .quantity .qty{ width:76px; min-height:44px; padding:8px 10px; text-align:center; border:1px solid var(--line); border-radius:var(--pill-r); font:inherit; }
.woocommerce table.cart td.actions{ background:var(--cream-soft); }
.woocommerce table.cart td.actions .coupon{ display:flex; gap:10px; flex-wrap:wrap; float:left; }
.woocommerce table.cart td.actions .coupon .input-text{ width:200px; min-height:46px; padding:10px 18px; }
.woocommerce table.cart td.actions > .button{ float:right; }

/* Totals */
.woocommerce .cart-collaterals .cart_totals,
.woocommerce-checkout-review-order{
  background:var(--paper); border:1px solid var(--line); border-radius:var(--card-r); padding:28px;
}
.woocommerce .cart-collaterals .cart_totals{ float:right; width:min(460px, 100%); }
.woocommerce .cart_totals h2,
.woocommerce-checkout h3,
#order_review_heading,
.woocommerce-order-details__title,
.woocommerce-column__title{
  font-family:var(--display); font-weight:400; font-size:var(--h3); line-height:var(--h3-lh); margin-bottom:18px;
}
.woocommerce .cart_totals table.shop_table,
.woocommerce-checkout-review-order table.shop_table{ border:0; margin-bottom:18px; }
.woocommerce .cart_totals th,
.woocommerce .cart_totals td{ padding:14px 0; }
.woocommerce .order-total .amount{ font-family:var(--display); font-size:24px; font-weight:400; }
.woocommerce ul#shipping_method{ list-style:none; margin:0; padding:0; }
.woocommerce ul#shipping_method li{ margin:0 0 8px; display:flex; align-items:baseline; gap:8px; }
.woocommerce ul#shipping_method input{ accent-color:var(--ink); }
.woocommerce .wc-proceed-to-checkout .checkout-button{ width:100%; margin-top:6px; }
.woocommerce-shipping-destination,
.woocommerce-shipping-calculator{ font-size:13px; color:var(--ink-mute); }

/* Checkout layout */
.woocommerce-checkout .col2-set{ display:grid; grid-template-columns:1fr; gap:10px; }
@media (min-width:981px){
  form.woocommerce-checkout{ display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:0 48px; align-items:start; }
  form.woocommerce-checkout > .col2-set{ grid-column:1; grid-row:1 / span 3; }
  form.woocommerce-checkout > #order_review_heading{ grid-column:2; }
  form.woocommerce-checkout > #order_review{ grid-column:2; position:sticky; top:110px; }
}
.woocommerce .col2-set .col-1, .woocommerce .col2-set .col-2{ float:none; width:auto; }
.woocommerce form .form-row-first, .woocommerce form .form-row-last{ width:calc(50% - 8px); }
@media (max-width:560px){ .woocommerce form .form-row-first, .woocommerce form .form-row-last{ width:100%; float:none; } }
#payment{ background:var(--cream-soft); border-radius:var(--card-r); padding:22px; margin-top:12px; }
#payment ul.payment_methods{ list-style:none; padding:0; margin:0 0 16px; }
#payment ul.payment_methods li{ padding:10px 0; border-bottom:1px solid var(--line); }
#payment div.payment_box{ font-size:13.5px; color:var(--ink-soft); padding:8px 0 0 26px; }
#payment #place_order{ width:100%; margin-top:10px; }
.woocommerce-terms-and-conditions-wrapper{ font-size:13px; color:var(--ink-soft); }
.woocommerce-privacy-policy-text p{ font-size:12.5px; color:var(--ink-mute); }

/* Order received */
.woocommerce-order-overview{ list-style:none; padding:0; margin:0 0 28px; display:grid; grid-template-columns:repeat(auto-fit, minmax(170px, 1fr)); gap:12px; }
.woocommerce-order-overview li{ background:var(--paper); border:1px solid var(--line); border-radius:var(--card-r); padding:16px 18px; font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-mute); }
.woocommerce-order-overview li strong{ display:block; margin-top:6px; font-size:15px; letter-spacing:0; text-transform:none; color:var(--ink); }
.woocommerce-thankyou-order-received{ font-family:var(--display); font-size:var(--h3); margin-bottom:20px; }

/* My account */
.woocommerce-account .woocommerce{ display:grid; gap:32px; }
@media (min-width:981px){ .woocommerce-account .woocommerce{ grid-template-columns:240px 1fr; } }
.woocommerce-MyAccount-navigation ul{ list-style:none; padding:0; margin:0; display:grid; gap:4px; }
.woocommerce-MyAccount-navigation a{
  display:block; padding:12px 18px; border-radius:var(--pill-r);
  color:var(--ink-soft); text-decoration:none; font-size:14px;
}
.woocommerce-MyAccount-navigation .is-active a,
.woocommerce-MyAccount-navigation a:hover{ background:var(--paper); color:var(--ink); }
.woocommerce-account .woocommerce-form-login,
.woocommerce-account .woocommerce-form-register{ background:var(--paper); border:1px solid var(--line); border-radius:var(--card-r); padding:28px; }

/* Empty cart */
.cart-empty.woocommerce-info{ justify-content:center; font-family:var(--display); font-size:20px; background:var(--paper); }
.return-to-shop{ text-align:center; }

/* Responsive cart table (WooCommerce's smallscreen sheet does the stacking) */
@media (max-width:768px){
  .woocommerce table.shop_table_responsive tr td::before{ font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-mute); font-weight:500; }
  .woocommerce table.cart td.actions .coupon, .woocommerce table.cart td.actions > .button{ float:none; width:100%; }
  .woocommerce .cart-collaterals .cart_totals{ float:none; width:100%; }
}
.woocommerce-pagination, .woo-pagination{ margin-top:32px; text-align:center; }

/* ---------------------------------------------------------------- product cards: buy button */
/* Always visible, aligned to the bottom of each card whatever the name length. */
.product{ display:flex; flex-direction:column; }
.product__body{ flex:1 1 auto; display:flex; flex-direction:column; }
.product__buy{ margin-top:auto; padding-top:14px; }
.product__add{ width:100%; padding:13px 16px; gap:10px; font-size:11.5px; letter-spacing:.14em; }
.product__add .btn__ico{ width:15px; height:15px; }
.product__add[disabled]{ background:var(--cream-soft); color:var(--ink-mute); border-color:var(--line); cursor:not-allowed; transform:none; }
.product__buy.is-sending .product__add{ opacity:.6; pointer-events:none; }
.product__buy.is-added .product__add{ background:#3E9B5F; border-color:#3E9B5F; }
.section--dark .product__add:not([disabled]){ background:var(--night-ink); color:var(--night); border-color:var(--night-ink); }
@media (max-width:560px){
  .product__add{ padding:12px 10px; font-size:10.5px; letter-spacing:.1em; }
  .product__add .btn__ico{ display:none; }
}

/* WordPress/WooCommerce screen-reader text (quantity labels, "Slett produkt",
   "Miniatyrbilde" …): read aloud, never shown. Normally in woocommerce-general,
   which this theme dequeues. */
.screen-reader-text{
  position:absolute !important; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; border:0;
}
.screen-reader-text:focus{
  clip:auto; clip-path:none; width:auto; height:auto; margin:0; padding:10px 16px;
  background:var(--paper); color:var(--ink); z-index:100000;
}

/* ---------------------------------------------------------------- header icons + favourites */
.circ--fav, .circ--user{ position:relative; }
.fav-count{
  position:absolute; top:-4px; right:-4px;
  min-width:19px; height:19px; padding:0 5px;
  display:grid; place-items:center;
  border-radius:var(--pill-r); background:var(--ink); color:#fff;
  font-size:10.5px; font-weight:600; line-height:1;
}
.stage .fav-count{ background:var(--night-ink); color:var(--night); }
.fav-count[hidden]{ display:none; }
@media (max-width:980px){
  .header .circ.circ--fav,
  .header .circ.circ--user{ display:inline-grid; place-items:center; }
  .header .stage__actions{ gap:6px; }
}

.product{ position:relative; }
.fav-btn{
  position:absolute; top:12px; right:12px; z-index:2;
  width:38px; height:38px; display:grid; place-items:center;
  border-radius:50%; background:rgba(255,255,255,.92); color:var(--ink);
  box-shadow:0 6px 16px -10px rgba(47,40,43,.5);
  transition:transform .2s var(--ease), color .2s;
}
.fav-btn svg{ width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.4; stroke-linejoin:round; }
.fav-btn:hover{ color:var(--gold); }
.fav-btn.is-on{ color:var(--gold); }
.fav-btn.is-on svg{ fill:currentColor; }
.fav-btn.is-pop{ transform:scale(1.18); }

.fav-btn--text{
  position:static; width:auto; height:auto; margin-top:12px;
  display:inline-flex; align-items:center; gap:9px; padding:6px 0;
  background:none; box-shadow:none; border-radius:0;
  font-size:13px; color:var(--ink-soft);
}
.fav-btn--text:hover, .fav-btn--text.is-on{ color:var(--ink); }
.fav-btn--text.is-on svg{ color:var(--gold); }
.fav-btn--text.is-pop{ transform:none; }

.favs__loading{ color:var(--ink-mute); }
.favs__empty{ text-align:center; display:grid; gap:14px; justify-items:center; padding:30px 0; }
.favs__empty-title{ font-family:var(--display); font-size:24px; }
.favs__empty p{ color:var(--ink-soft); }
.favs .products{ background:none; padding:0; }

/* ---------------------------------------------------------------- login / register */
.woocommerce-account:not(.logged-in) .woocommerce{ display:block; }
.auth{
  display:grid; grid-template-columns:minmax(0, 1.1fr) minmax(0, .9fr); gap:clamp(20px, 3vw, 40px);
  max-width:1000px; margin-inline:auto; align-items:start;
}
@media (max-width:860px){ .auth{ grid-template-columns:1fr; } }

.auth__card{
  background:var(--paper); border:1px solid var(--line); border-radius:var(--card-r);
  padding:clamp(22px, 3vw, 40px); box-shadow:var(--shadow-soft);
}
.auth__tabs{ display:grid; grid-template-columns:1fr 1fr; gap:4px; padding:4px; margin-bottom:26px; background:var(--cream-soft); border-radius:var(--pill-r); }
.auth__tab{
  padding:12px 10px; border-radius:var(--pill-r);
  font-size:12px; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-mute);
  transition:background .25s var(--ease), color .25s var(--ease), box-shadow .25s var(--ease);
}
.auth__tab:hover{ color:var(--ink); }
.auth__tab.is-active{ background:var(--paper); color:var(--ink); box-shadow:0 4px 14px -8px rgba(47,40,43,.35); }

.auth__title{ font-size:clamp(1.6rem, 2.4vw, 2.1rem); line-height:1.1; margin-bottom:8px; }
.auth__lead{ color:var(--ink-soft); font-size:15px; font-weight:300; margin-bottom:24px; }
.auth__form .form-row{ margin-bottom:16px; }
.auth__form input.input-text{ background:var(--cream-soft); border-color:transparent; }
.auth__form input.input-text:focus{ background:var(--paper); border-color:var(--gold); }

.auth__pw-wrap{ position:relative; display:block; }
.auth__pw-wrap input{ padding-right:54px !important; }
.auth__eye{
  position:absolute; right:8px; top:50%; transform:translateY(-50%);
  width:38px; height:38px; display:grid; place-items:center; border-radius:var(--pill-r); color:var(--ink-mute);
}
.auth__eye:hover, .auth__eye[aria-pressed="true"]{ color:var(--ink); }
.auth__eye svg{ width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; }

.auth__row{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin:4px 0 22px; flex-wrap:wrap; }
.auth__remember{ margin:0; }
.auth__link{
  padding:0; background:none; border:0; cursor:pointer;
  font-size:13.5px; color:var(--ink); text-decoration:underline; text-underline-offset:3px; text-decoration-color:var(--gold);
}
.auth__link:hover{ color:var(--gold); }
.auth__submit{ width:100%; min-height:56px; }
.auth__note{ font-size:13.5px; color:var(--ink-soft); background:var(--cream-soft); border-radius:var(--card-r); padding:12px 14px; margin:0 0 18px; }
.auth__switch{ margin-top:20px; text-align:center; font-size:13.5px; color:var(--ink-mute); }
.auth .woocommerce-privacy-policy-text{ margin:0 0 16px; }

.auth__aside{
  background:var(--cream-soft); border-radius:var(--card-r); padding:clamp(22px, 3vw, 36px);
  display:grid; gap:22px;
}
.auth__aside .eyebrow{ margin:0; }
.auth__perks{ display:grid; gap:14px; }
.auth__perks li{ display:flex; gap:12px; align-items:flex-start; font-size:14.5px; color:var(--ink-soft); line-height:1.5; }
.auth__perks strong{ color:var(--ink); font-weight:500; }
.auth__perks svg{ flex:0 0 auto; width:20px; height:20px; margin-top:1px; fill:none; stroke:var(--gold); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.auth__guest{ background:var(--paper); border:1px solid var(--line); border-radius:var(--card-r); padding:18px; display:grid; gap:8px; }
.auth__guest-title{ font-family:var(--ui); font-weight:500; font-size:17px; color:var(--ink); }
.auth__guest p{ font-size:14px; color:var(--ink-soft); }
.auth__guest-btn{ justify-self:start; margin-top:6px; padding:12px 22px; }
.auth__help{ display:flex; gap:10px; align-items:flex-start; font-size:13.5px; color:var(--ink-soft); }
.auth__help a{ color:var(--ink); text-decoration:underline; text-underline-offset:3px; }
.auth__help-ico{ flex:0 0 auto; width:20px; height:20px; fill:none; stroke:var(--ink-soft); stroke-width:1.3; stroke-linecap:round; stroke-linejoin:round; }
.auth .woocommerce-form-login,
.auth .woocommerce-form-register{ background:none; border:0; padding:0; box-shadow:none; }

/* Lost / reset password: one centred card in the login style. */
.auth--single{ grid-template-columns:1fr; max-width:520px; gap:18px; }
.auth__card--center{ text-align:center; }
.auth__card--center .auth__submit{ margin-top:6px; }
.auth__badge{
  display:grid; place-items:center; width:56px; height:56px; margin-bottom:18px;
  border-radius:50%; background:var(--cream-soft); color:var(--gold);
}
.auth__card--center .auth__badge{ margin-inline:auto; }
.auth__badge svg{ width:26px; height:26px; fill:none; stroke:currentColor; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; }
.auth__badge--ok{ background:#EAF5EE; color:#3E9B5F; }
.auth__help--center{ justify-content:center; text-align:left; }
.woocommerce-account .woocommerce-ResetPassword{ background:none; border:0; padding:0; }
.auth .woocommerce-ResetPassword .form-row-first,
.auth .woocommerce-ResetPassword .form-row-last{ width:100%; float:none; }

/* ---------------------------------------------------------------------------
   Checkout in steps (woocommerce/checkout/form-checkout.php)
   ------------------------------------------------------------------------- */
form.co-form{ display:grid; grid-template-columns:minmax(0, 1.3fr) minmax(0, .9fr); gap:clamp(20px, 3vw, 44px); align-items:start; }
@media (max-width:980px){ form.co-form{ grid-template-columns:1fr; } .co-summary{ order:-1; } }
form.co-form > *{ grid-column:auto !important; grid-row:auto !important; }
.co-steps{ display:grid; gap:16px; }

.co-step{ background:var(--paper); border:1px solid var(--line); border-radius:var(--card-r); padding:clamp(20px, 2.6vw, 32px); }
.co-step__head{ display:flex; gap:16px; align-items:flex-start; margin-bottom:22px; }
.co-step__num{
  flex:0 0 auto; width:38px; height:38px; display:grid; place-items:center;
  border-radius:50%; background:var(--ink); color:var(--paper);
  font-family:var(--display); font-size:18px; line-height:1;
}
.co-step__title{ font-size:clamp(1.3rem, 1.8vw, 1.6rem); line-height:1.15; }
.co-step__sub{ margin-top:4px; font-size:13.5px; color:var(--ink-mute); }

/* Step 1: fields in two columns; the step heading replaces WooCommerce's own. */
.co-step .woocommerce-billing-fields > h3,
.co-step .woocommerce-additional-fields > h3{ display:none; }
.co-step .woocommerce-billing-fields__field-wrapper,
.co-step .woocommerce-shipping-fields__field-wrapper{ display:grid; grid-template-columns:1fr 1fr; gap:0 14px; }
.co-step .form-row{ width:auto !important; float:none !important; grid-column:1 / -1; }
.co-step .form-row-first{ grid-column:1; }
.co-step .form-row-last{ grid-column:2; }
@media (max-width:560px){
  .co-step .woocommerce-billing-fields__field-wrapper,
  .co-step .woocommerce-shipping-fields__field-wrapper{ grid-template-columns:1fr; }
  .co-step .form-row-first, .co-step .form-row-last{ grid-column:1; }
}
.co-step .form-row input.input-text,
.co-step .form-row textarea,
.co-step .form-row select,
.co-step .select2-container .select2-selection--single{ background:var(--cream-soft); border-color:transparent; }
.co-step .form-row input.input-text:focus,
.co-step .form-row textarea:focus{ background:var(--paper); border-color:var(--gold); }
.co-step .form-row .description{ margin-top:6px; font-size:12px; color:var(--ink-mute); }
.co-step #billing_country_field strong{ display:block; padding:12px 0 2px; font-weight:500; }
.co-step #ship-to-different-address{ font-family:var(--body); font-size:14px; margin:6px 0 14px; }
.co-step #ship-to-different-address label{ display:flex; gap:10px; align-items:center; cursor:pointer; }
.co-step #ship-to-different-address input{ width:18px; height:18px; accent-color:var(--ink); }
.co-step .woocommerce-additional-fields{ margin-top:4px; }

/* Step 2: shipping options as cards. */
.co-shipping__list{ display:grid; gap:10px; }
.co-ship{
  position:relative; display:flex; align-items:center; gap:14px; padding:16px 18px; cursor:pointer;
  border:1px solid var(--line); border-radius:var(--card-r); background:var(--paper);
  transition:border-color .2s var(--ease), background .2s var(--ease), box-shadow .2s var(--ease);
}
.co-ship:hover{ border-color:var(--ink-mute); }
.co-ship input{ position:absolute; opacity:0; pointer-events:none; }
.co-ship__dot{ flex:0 0 auto; width:20px; height:20px; border-radius:50%; border:1.5px solid var(--ink-faint); display:grid; place-items:center; transition:border-color .2s; }
.co-ship__dot::after{ content:""; width:10px; height:10px; border-radius:50%; background:var(--ink); transform:scale(0); transition:transform .2s var(--ease); }
.co-ship:has(input:checked){ border-color:var(--ink); background:var(--cream-soft); box-shadow:0 0 0 1px var(--ink) inset; }
.co-ship:has(input:checked) .co-ship__dot{ border-color:var(--ink); }
.co-ship:has(input:checked) .co-ship__dot::after{ transform:scale(1); }
.co-ship:has(input:focus-visible){ outline:2px solid var(--gold); outline-offset:2px; }
.co-ship__body{ flex:1 1 auto; display:grid; gap:2px; }
.co-ship__body strong{ font-weight:500; font-size:15px; color:var(--ink); }
.co-ship__body small{ font-size:12.5px; color:var(--ink-mute); }
.co-ship__price{ font-weight:500; font-size:14.5px; white-space:nowrap; }
.co-shipping__empty{ font-size:14px; color:var(--ink-soft); background:var(--cream-soft); padding:14px 16px; border-radius:var(--card-r); }

/* Step 3: payment inside the step card. */
.co-step #payment{ background:none; padding:0; margin:0; }
.co-step #payment ul.payment_methods{ border:1px solid var(--line); border-radius:var(--card-r); padding:4px 16px; }
.co-step #payment ul.payment_methods li:last-child{ border-bottom:0; }
.co-step #payment .woocommerce-info{ margin:0; }
.co-step #payment .place-order{ margin-top:14px; padding:0; }
.co-step #payment #place_order{ min-height:58px; font-size:13px; }

/* Order summary (right). */
.co-summary{ position:sticky; top:104px; display:grid; gap:14px; }
@media (max-width:980px){ .co-summary{ position:static; } }
.co-summary__title{ font-size:clamp(1.3rem, 1.8vw, 1.6rem); }
.co-summary .woocommerce-checkout-review-order{ background:var(--paper); border:1px solid var(--line); border-radius:var(--card-r); padding:clamp(18px, 2.2vw, 26px); }
.co-review{ display:grid; gap:6px; }
.co-items{ list-style:none; margin:0; padding:0; }
.co-item{ display:grid; grid-template-columns:72px 1fr auto; gap:14px; align-items:start; padding:14px 0; border-bottom:1px solid var(--line-soft); transition:opacity .2s; }
.co-item:first-child{ padding-top:0; }
.co-item.is-busy{ opacity:.45; pointer-events:none; }
.co-item__img{ width:72px; height:72px; border-radius:var(--card-r); overflow:hidden; background:var(--tile); display:block; }
.co-item__img img{ width:100%; height:100%; object-fit:cover; }
.co-item__name{ font-family:var(--ui); font-weight:500; font-size:16.5px; line-height:1.25; }
.co-item__name a{ color:var(--ink); text-decoration:none; }
.co-item__name a:hover{ color:var(--gold); text-decoration:underline; text-underline-offset:3px; }
.co-item__meta{ margin-top:2px; font-size:12.5px; color:var(--ink-mute); }
.co-item__row{ display:flex; align-items:center; gap:14px; margin-top:10px; }
.co-item__row .qty button{ width:30px; height:30px; }
.co-item__row .qty button:disabled{ color:var(--ink-faint); cursor:not-allowed; }
.co-item__remove{ font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-mute); text-decoration:underline; text-underline-offset:3px; }
.co-item__remove:hover{ color:#a3362d; }
.co-item__price{ font-size:14.5px; font-weight:500; white-space:nowrap; }

table.co-totals{ border:0 !important; margin:0 !important; background:none !important; }
table.co-totals th, table.co-totals td{ padding:9px 0 !important; border:0 !important; background:none !important; font-size:14px; }
table.co-totals th{ text-transform:none !important; letter-spacing:0 !important; font-size:14px !important; font-weight:400 !important; color:var(--ink-soft) !important; }
table.co-totals td{ text-align:right; }
table.co-totals tr.order-total th, table.co-totals tr.order-total td{ padding-top:16px !important; border-top:1px solid var(--line) !important; color:var(--ink) !important; font-weight:500 !important; }
table.co-totals .order-total .amount{ font-size:24px; }
table.co-totals .includes_tax{ display:block; font-size:12px; color:var(--ink-mute); font-weight:400; }
table.co-totals .includes_tax .amount{ font-size:12px; font-family:var(--body); }

.co-summary__trust{ display:grid; gap:10px; padding:16px 18px; background:var(--cream-soft); border-radius:var(--card-r); }
.co-summary__trust li{ display:flex; align-items:center; gap:10px; font-size:13px; color:var(--ink-soft); }
.co-summary__trust svg{ flex:0 0 auto; width:20px; height:20px; fill:none; stroke:var(--gold); stroke-width:1.2; stroke-linecap:round; stroke-linejoin:round; }

/* Notices above the form (login reminder, coupon). */
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info,
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info{ background:var(--paper); border:1px solid var(--line); margin-bottom:10px; font-size:14px; }
.woocommerce-checkout form.checkout_coupon{ background:var(--paper); border:1px solid var(--line); border-radius:var(--card-r); padding:18px; margin-bottom:16px; display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.woocommerce-checkout form.checkout_coupon p{ margin:0; }
.woocommerce-checkout form.checkout_coupon .form-row-first{ flex:1 1 220px; }
.woocommerce-checkout .woo-page__inner{ max-width:1200px; }

/* ---------------------------------------------------------------------------
   Checkout: login + coupon as cards (checkout/form-login.php, form-coupon.php)
   ------------------------------------------------------------------------- */
.co-acc{
  background:var(--paper); border:1px solid var(--line); border-radius:var(--card-r);
  margin-bottom:12px; overflow:hidden;
  transition:border-color .25s var(--ease), box-shadow .25s var(--ease);
}
.co-acc.is-open{ border-color:var(--gold-line); box-shadow:var(--shadow-soft); }
.co-acc__head{ display:flex; align-items:center; gap:16px; padding:16px 20px; }
.co-acc__head .woocommerce-info{ display:none; }
.co-acc__ico{
  flex:0 0 auto; width:42px; height:42px; display:grid; place-items:center;
  border-radius:50%; background:var(--cream-soft); color:var(--gold);
}
.co-acc__ico svg{ width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; }
.co-acc__text{ flex:1 1 auto; min-width:0; }
.co-acc__title{ font-family:var(--ui); font-weight:500; font-size:16px; line-height:1.25; color:var(--ink); }
.co-acc__sub{ margin-top:2px; font-size:13px; color:var(--ink-mute); }
.co-acc__btn{
  flex:0 0 auto; display:inline-flex; align-items:center; gap:8px;
  padding:10px 16px; border:1px solid var(--line); border-radius:var(--pill-r);
  font-size:11.5px; font-weight:500; letter-spacing:.14em; text-transform:uppercase;
  color:var(--ink); text-decoration:none; background:var(--paper);
  transition:border-color .2s, background .2s;
}
.co-acc__btn:hover{ border-color:var(--ink); }
.co-acc__caret{ width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; transition:transform .3s var(--ease); }
.co-acc.is-open .co-acc__caret{ transform:rotate(180deg); }
.co-acc.is-open .co-acc__btn{ background:var(--cream-soft); border-color:var(--gold-line); }

.co-acc__form{ padding:4px 20px 20px 78px; margin:0 !important; border:0 !important; background:none !important; }
.co-acc__intro{ font-size:13.5px; color:var(--ink-soft); margin-bottom:14px; }
.co-acc__grid{ display:grid; grid-template-columns:1fr 1fr; gap:0 14px; }
.co-acc__grid .form-row{ margin:0 0 14px !important; width:auto !important; float:none !important; }
.co-acc__form .input-text{ background:var(--cream-soft) !important; border-color:transparent !important; }
.co-acc__form .input-text:focus{ background:var(--paper) !important; border-color:var(--gold) !important; }
.co-acc__form .password-input{ position:relative; display:block; }
.co-acc__form .password-input input{ padding-right:52px !important; }
.co-acc__form .show-password-input{
  position:absolute; right:10px; top:50%; transform:translateY(-50%);
  width:34px; height:34px; border:0; background:none; cursor:pointer; color:var(--ink-mute);
}
.co-acc__actions{ display:flex; align-items:center; gap:12px 20px; flex-wrap:wrap; }
.co-acc__remember{ margin:0; }
.co-acc__link{ font-size:13px; color:var(--ink); text-decoration:underline; text-underline-offset:3px; text-decoration-color:var(--gold); }
.co-acc__submit{ margin-left:auto; min-height:48px; padding:12px 26px; }
.co-acc__inline{ display:flex; gap:10px; }
.co-acc__inline .input-text{ flex:1 1 auto; min-height:50px; padding:12px 18px; border:1px solid transparent; border-radius:var(--pill-r); font:inherit; font-size:15px; letter-spacing:.04em; }
.co-acc__inline .co-acc__submit{ margin-left:0; }
@media (max-width:640px){
  .co-acc__head{ flex-wrap:wrap; padding:14px 16px; }
  .co-acc__btn{ width:100%; justify-content:center; }
  .co-acc__form{ padding:0 16px 16px; }
  .co-acc__grid{ grid-template-columns:1fr; }
  .co-acc__submit{ width:100%; margin-left:0; }
  .co-acc__inline{ flex-direction:column; }
}
/* the old toggle-notice styling no longer applies */
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info,
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info{ display:none; }
.woocommerce-checkout form.checkout_coupon.co-acc__form{ display:block; }
.woocommerce-checkout form.checkout_coupon.co-acc__form[style*="none"]{ display:none !important; }
.woocommerce-checkout form.checkout_coupon.co-acc__form{ padding:4px 20px 20px 78px; border:0; background:none; margin:0; }
@media (max-width:640px){ .woocommerce-checkout form.checkout_coupon.co-acc__form{ padding:0 16px 16px; } }

/* ---------------------------------------------------------------------------
   Products inside article text: [produkt] and [produkter] (aurora_prose)
   ------------------------------------------------------------------------- */
.prose .inline-prod{
  display:grid; grid-template-columns:84px minmax(0,1fr) auto; gap:18px; align-items:center;
  margin:1.6em 0; padding:12px 20px 12px 12px;
  background:var(--blush-soft); border-radius:var(--card-r);
}
.prose .inline-prod a{ border-bottom:0; }
.prose .inline-prod p{ margin:0; }
.inline-prod__media{ display:block; aspect-ratio:1; overflow:hidden; border-radius:calc(var(--card-r) - 1px); background:#fff; }
.inline-prod__media img{ width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease); }
.inline-prod__media:hover img{ transform:scale(1.04); }
.inline-prod__body{ min-width:0; }
.prose .inline-prod__name{ font-family:var(--ui); font-weight:500; font-size:18px; line-height:1.3; color:var(--ink); font-weight:400; }
.prose .inline-prod__name a:hover{ color:var(--gold); }
.prose .inline-prod__meta{ margin-top:3px !important; font-size:13.5px; line-height:1.4; color:var(--ink-soft); }
.prose .inline-prod__note{ margin-top:6px !important; font-size:13px; line-height:1.45; color:var(--ink-mute); font-style:italic; }
.inline-prod__buy .product__buy{ padding-top:0; }
.inline-prod__buy .product__add{ width:auto; padding:13px 20px; }
.prose .inline-prods{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin:1.6em 0; }
.prose .inline-prods--2{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.prose .inline-prods--1{ grid-template-columns:minmax(0,280px); }
.prose .inline-prods .product a{ border-bottom:0; }
.prose .inline-prods .product p{ margin:0; line-height:1.4; }
.prose .inline-prods .product__name{ font-size:15.5px; }
.prose{ container-type:inline-size; }
@container (max-width:620px){
  .prose .inline-prod{ grid-template-columns:72px minmax(0,1fr); gap:14px; padding:12px; }
  .inline-prod__buy{ grid-column:1 / -1; }
  .inline-prod__buy .product__add{ width:100%; }
}
@container (max-width:460px){
  .prose .inline-prods{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
}

/* ---------------------------------------------------------------------------
   Cart totals (woocommerce/cart/cart-totals.php) + total with VAT line
   ------------------------------------------------------------------------- */
.woocommerce .cart_totals.ct h2{ margin-bottom:14px; }
.ct__rows{ display:grid; }
.ct__row{
  display:flex; justify-content:space-between; align-items:baseline; gap:16px;
  padding:13px 0; border-bottom:1px solid var(--line); font-size:15px; color:var(--ink);
}
.ct__row > span:first-child{ color:var(--ink-soft); }
.ct__row em{ font-style:normal; font-size:11.5px; letter-spacing:.12em; padding:3px 8px; margin-left:6px; border-radius:var(--pill-r); background:var(--cream-soft); color:var(--ink); }
.ct__row--discount > span:last-child{ color:#3E7D53; }
.ct__row--discount .woocommerce-remove-coupon{ margin-left:8px; font-size:12px; color:var(--ink-mute); text-decoration:underline; }
.ct__ship{ padding:16px 0; border-bottom:1px solid var(--line); }
.ct__label{ margin-bottom:10px; font-size:11px; font-weight:500; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-mute); }
.ct .co-ship{ padding:14px 16px; }
.ct .co-ship__body strong{ font-size:14.5px; }
.ct__free{ display:flex; gap:8px; align-items:center; margin-top:12px; font-size:13px; color:var(--ink-soft); }
.ct__free strong{ color:var(--ink); font-weight:500; }
.ct__free svg{ flex:0 0 auto; width:18px; height:18px; fill:none; stroke:#3E7D53; stroke-width:1.5; }
.ct__free.is-free strong{ color:#3E7D53; }
.ct__total{ display:flex; justify-content:space-between; align-items:flex-start; gap:16px; padding:18px 0 20px; }
.ct__total > span:first-child{ padding-top:6px; font-size:12px; font-weight:500; letter-spacing:.16em; text-transform:uppercase; color:var(--ink); }
.ct-sum{ display:grid; justify-items:end; gap:3px; text-align:right; }
.ct-sum strong, .ct-sum strong .amount{ font-family:var(--display); font-size:28px !important; font-weight:400; line-height:1.1; color:var(--ink); }
.ct-sum small, .ct-sum small .amount{ font-family:inherit; font-size:12.5px !important; color:var(--ink-mute); font-weight:400; }
.woocommerce .cart_totals.ct .wc-proceed-to-checkout{ padding:0; }
table.co-totals .order-total .ct-sum{ justify-items:end; }

/* "Legg i handlekurven" always on one line: the card measures itself and the
   button tightens (smaller tracking, no icon) when the card is narrow. */
.product{ container-type:inline-size; }
.product__add{ white-space:nowrap; }
@container (max-width:250px){
  .product__add{ padding:12px 8px; font-size:10.5px; letter-spacing:.08em; }
  .product__add .btn__ico{ display:none; }
}
@container (max-width:170px){
  .product__add{ font-size:9.5px; letter-spacing:.04em; }
}
/* Product cards inside article text keep their own type sizes, not the prose ones. */
.prose .inline-prods .product__cat{ font-size:10.5px; letter-spacing:.16em; line-height:1.4; color:var(--ink-mute); }
.prose .inline-prods .product__name{ margin-top:6px; line-height:1.3; }
.prose .inline-prods .product__meta{ font-size:12.5px; line-height:1.45; color:var(--ink-mute); margin-top:3px; }
.prose .inline-prods .product__price{ font-size:14px; font-weight:500; color:var(--ink); line-height:1.4; margin-top:8px; }
.prose .inline-prods .product__name,
.prose .inline-prods .product__meta,
.prose .inline-prods .product__price{ margin-bottom:0; }

/* ---------------------------------------------------------------------------
   Category page: filter column + toolbar (template-parts/plp.php, filter.js)
   ------------------------------------------------------------------------- */
.plp{ display:grid; grid-template-columns:232px minmax(0,1fr); gap:clamp(28px,3.4vw,52px); align-items:start; }
.plp__side{ position:sticky; top:104px; max-height:calc(100vh - 124px); overflow-y:auto; scrollbar-width:thin; scrollbar-color:var(--line) transparent; padding-right:10px; }
.plp__side-head{ display:flex; align-items:center; justify-content:space-between; padding-bottom:14px; border-bottom:1px solid var(--ink); }
.plp__side-title{ margin:0; font-size:11.5px; font-weight:500; letter-spacing:.18em; text-transform:uppercase; color:var(--ink); }
.plp__x{ display:none; width:38px; height:38px; border:0; background:none; cursor:pointer; color:var(--ink); }
.plp__x svg{ width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.4; }
.plp__group{ border-bottom:1px solid var(--line); }
.plp__group summary{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:18px 0; cursor:pointer; list-style:none;
  font-family:var(--ui); font-weight:500; font-size:15px; color:var(--ink);
}
.plp__group summary::-webkit-details-marker{ display:none; }
.plp__caret{ width:13px; height:13px; fill:none; stroke:currentColor; stroke-width:1.6; transition:transform .3s var(--ease); flex:0 0 auto; }
.plp__group[open] summary .plp__caret{ transform:rotate(180deg); }
.plp__group ul{ list-style:none; margin:0; padding:0 0 16px 4px; display:grid; gap:2px; }
.plp__opt{
  display:flex; align-items:center; gap:12px; padding:7px 0; cursor:pointer;
  font-size:14px; color:var(--ink-soft); transition:color .2s;
}
.plp__opt input{ position:absolute; opacity:0; pointer-events:none; }
.plp__box{
  flex:0 0 auto; width:18px; height:18px; border:1px solid var(--ink-faint); border-radius:3px;
  display:grid; place-items:center; transition:background .2s, border-color .2s;
}
.plp__box::after{
  content:""; width:9px; height:5px; margin-top:-2px;
  border-left:1.5px solid #fff; border-bottom:1.5px solid #fff; transform:rotate(-45deg) scale(0);
  transition:transform .2s var(--ease);
}
.plp__opt input:checked + .plp__box{ background:var(--ink); border-color:var(--ink); }
.plp__opt input:checked + .plp__box::after{ transform:rotate(-45deg) scale(1); }
.plp__swatch{ flex:0 0 auto; width:20px; height:20px; border-radius:50%; background:var(--sw); box-shadow:inset 0 0 0 1px rgba(0,0,0,.08); outline:1px solid transparent; outline-offset:3px; transition:outline-color .2s; }
.plp__opt input:checked + .plp__swatch{ outline-color:var(--ink); }
.plp__opt input:focus-visible + span{ outline:2px solid var(--gold); outline-offset:3px; }
.plp__label{ flex:1 1 auto; }
.plp__n{ font-size:12px; color:var(--ink-faint); font-variant-numeric:tabular-nums; }
.plp__opt:hover{ color:var(--ink); }
.plp__opt:has(input:checked){ color:var(--ink); }
.plp__opt.is-empty{ opacity:.4; }
.plp__side-foot{ display:none; }
.plp__scrim{ display:none; }

.plp__bar{
  display:flex; align-items:center; gap:16px; min-height:48px;
  padding-bottom:14px; margin-bottom:18px; border-bottom:1px solid var(--line);
}
.plp__open{
  display:none; align-items:center; gap:10px; height:44px; padding:0 18px;
  border:1px solid var(--ink); border-radius:var(--pill-r); background:none; cursor:pointer;
  font:inherit; font-size:11.5px; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:var(--ink);
}
.plp__open svg{ width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.4; }
.plp__count{ margin:0; font-size:13px; color:var(--ink-mute); }
.plp__count span{ color:var(--ink); font-weight:500; }
.plp__sort{ position:relative; margin-left:auto; display:flex; align-items:center; gap:10px; font-size:13px; color:var(--ink-mute); }
.plp__sort select{ position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.plp__dd-btn{
  display:inline-flex; align-items:center; justify-content:space-between; gap:12px;
  min-width:196px; height:42px; padding:0 14px 0 16px;
  border:1px solid var(--line); border-radius:var(--pill-r); background:var(--paper);
  font:inherit; font-size:13.5px; color:var(--ink); cursor:pointer;
  transition:border-color .2s, box-shadow .2s;
}
.plp__dd-btn:hover{ border-color:var(--ink-faint); }
.plp__dd-btn:focus-visible{ outline:none; border-color:var(--ink); box-shadow:0 0 0 3px var(--blush); }
.plp__sort.is-open .plp__dd-btn{ border-color:var(--ink); }
.plp__dd-btn .plp__caret{ color:var(--ink); }
.plp__sort.is-open .plp__caret{ transform:rotate(180deg); }
.plp__dd-list{
  position:absolute; right:0; top:calc(100% + 8px); z-index:30; min-width:100%;
  list-style:none; margin:0; padding:6px;
  background:var(--paper); border:1px solid var(--line); border-radius:var(--card-r);
  box-shadow:0 22px 44px -24px rgba(46,39,41,.35);
  outline:none; animation:plpDd .18s var(--ease);
}
@keyframes plpDd{ from{ opacity:0; transform:translateY(-4px); } to{ opacity:1; transform:none; } }
.plp__dd-list [role="option"]{
  position:relative; display:flex; align-items:center; gap:10px;
  padding:11px 36px 11px 12px; border-radius:calc(var(--card-r) - 1px);
  font-size:14px; color:var(--ink-soft); cursor:pointer; white-space:nowrap;
}
.plp__dd-list [role="option"].is-focus{ background:var(--blush-soft); color:var(--ink); }
.plp__dd-list [aria-selected="true"]{ color:var(--ink); font-weight:500; }
.plp__dd-list [aria-selected="true"]::after{
  content:""; position:absolute; right:14px; top:50%; width:10px; height:5px; margin-top:-4px;
  border-left:1.5px solid var(--gold); border-bottom:1.5px solid var(--gold); transform:rotate(-45deg);
}

.plp__chips{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:-4px 0 20px; }
.plp__chip{
  display:inline-flex; align-items:center; gap:8px; height:34px; padding:0 12px 0 14px;
  border:0; border-radius:var(--pill-r); background:var(--blush); cursor:pointer;
  font:inherit; font-size:13px; color:var(--ink); transition:background .2s;
}
.plp__chip svg{ width:13px; height:13px; fill:none; stroke:currentColor; stroke-width:1.6; }
.plp__chip:hover{ background:var(--blush-deep); }
.plp__clear{ border:0; background:none; cursor:pointer; padding:0 6px; font:inherit; font-size:13px; color:var(--ink-soft); text-decoration:underline; text-underline-offset:3px; text-decoration-color:var(--gold); }
.plp__grid.grid-4{ grid-template-columns:repeat(3, minmax(0,1fr)); }
.plp__empty{ padding:56px 24px; text-align:center; background:var(--cream-soft); border-radius:var(--card-r); }
.plp__empty p{ margin:0 0 16px; font-family:var(--display); font-size:20px; color:var(--ink); }

@media (max-width:980px){
  .plp{ grid-template-columns:minmax(0,1fr); }
  .plp__open{ display:inline-flex; }
  .plp__count{ display:none; }
  .plp__sort > .plp__sort-label{ display:none; }
  .plp__dd-btn{ min-width:0; }
  .plp__grid.grid-4{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .plp__side{
    position:fixed; top:0; bottom:0; left:0; z-index:300;
    width:min(380px, 88vw); max-height:none; padding:20px 22px 0;
    background:var(--paper); display:flex; flex-direction:column;
    transform:translateX(-102%); transition:transform .4s var(--ease); visibility:hidden;
  }
  .plp__side.is-open{ transform:none; visibility:visible; }
  .plp__side{ overflow:hidden; }
  .plp__groups{ flex:1 1 auto; overflow-y:auto; scrollbar-width:none; }
  .plp__x{ display:grid; place-items:center; }
  .plp__side-foot{ display:grid; grid-template-columns:auto 1fr; gap:10px; padding:16px 0 20px; border-top:1px solid var(--line); }
  .plp__side-foot .btn{ padding:15px 18px; }
  .plp__scrim{ display:block; position:fixed; inset:0; z-index:299; background:rgba(47,40,43,.4); }
  .plp__scrim[hidden]{ display:none; }
  html.plp-locked{ overflow:hidden; }
}


/* Add-on rows ("Passer med" on the product page, free-shipping picks in the side cart) */
.pdp__pair{ display:grid; grid-template-columns:56px minmax(0,1fr) auto; gap:14px; align-items:center; padding:10px 0; }
.pdp__pair + .pdp__pair{ border-top:1px solid var(--line-soft); }
.pdp__pair-media{ display:block; width:56px; height:56px; border-radius:var(--card-r); overflow:hidden; background:#ECE9E7; }
.pdp__pair-media img{ width:100%; height:100%; object-fit:cover; mix-blend-mode:multiply; }
.pdp__pair-body{ display:grid; gap:2px; min-width:0; }
.pdp__pair-name{ font-family:var(--ui); font-weight:500; font-size:15px; line-height:1.3; color:var(--ink); text-decoration:none; }
.pdp__pair-name:hover{ color:var(--gold); }
.pdp__pair-price{ font-size:13px; color:var(--ink-soft); }
.pdp__pair .product__buy{ padding-top:0; }
.pdp__pair .product__add{ width:auto; padding:10px 14px; font-size:10.5px; letter-spacing:.1em; }
.pdp__pair .product__add{ font-size:0; gap:0; }
.pdp__pair .product__add::before{ content:"+ Legg til"; font-size:10.5px; letter-spacing:.1em; }
.pdp__pair .product__add .btn__ico{ display:none; }
.cart-drawer__upsell{ margin:6px 14px 0; padding:14px 16px 4px; background:var(--blush-soft); border-radius:var(--card-r); }
.cart-drawer__upsell-title{ margin:0 0 4px; font-size:12.5px; font-weight:500; color:var(--ink); }
.cart-drawer__upsell ul{ list-style:none; margin:0; padding:0; }
.cart-drawer__upsell .pdp__pair + .pdp__pair{ border-top-color:rgba(46,39,41,.08); }
.cart-drawer__upsell .pdp__pair-media{ background:#fff; }

/* Filter: the hidden checkbox sits inside its label (no scroll jump on focus),
   and skeleton cards hold the grid while results change. */
.plp__opt{ position:relative; }
.plp__opt input{ top:0; left:0; width:1px; height:1px; }
.plp__chips{ min-height:0; }
.plp__sk{ display:flex; flex-direction:column; gap:10px; }
.plp__sk-img{ aspect-ratio:1; border-radius:var(--card-r); }
.plp__sk-line{ height:12px; width:80%; border-radius:4px; margin-top:6px; }
.plp__sk-line--short{ width:45%; margin-top:0; }
.plp__sk-btn{ height:44px; border-radius:var(--pill-r); margin-top:8px; }
.plp__sk-img, .plp__sk-line, .plp__sk-btn{
  background:linear-gradient(100deg, #EEEAE7 30%, #F7F4F2 50%, #EEEAE7 70%);
  background-size:300% 100%; animation:plpShimmer 1.1s linear infinite;
}
@keyframes plpShimmer{ from{ background-position:100% 0; } to{ background-position:0 0; } }
@media (prefers-reduced-motion:reduce){ .plp__sk-img, .plp__sk-line, .plp__sk-btn{ animation:none; } }

/* ---------------------------------------------------------------------------
   Kustom Checkout (klarna-checkout-for-woocommerce, embedded): its own
   two-column template inside form.checkout. Undo our step-checkout grid and
   the plugin's floats; order summary left as a card, the iframe right.
   ------------------------------------------------------------------------- */
form.woocommerce-checkout.kco-checkout{ display:block; }
#kco-wrapper{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,560px);
  gap:clamp(24px,3.4vw,48px); align-items:start;
}
#kco-wrapper::after{ content:none; }
#kco-order-review, #kco-iframe{ float:none !important; width:auto !important; max-width:none !important; margin:0 !important; padding:0 !important; }
#kco-order-review{
  background:var(--paper); border:1px solid var(--line); border-radius:var(--card-r);
  padding:clamp(18px,2vw,26px) !important; position:sticky; top:110px;
}
#kco-order-review .co-review{ display:block; }
#kco-order-review .co-items, #kco-order-review .co-totals{ width:100%; }
#kco-extra-checkout-fields{ margin-top:18px; padding-top:16px; border-top:1px solid var(--line); }
#kco-extra-checkout-fields .woocommerce-additional-fields h3{ display:none; }
#kco-extra-checkout-fields textarea{ width:100%; min-height:90px; }
#kco-iframe{ min-width:0; }
#kco-iframe iframe{ width:100% !important; }
@media (max-width:980px){
  #kco-wrapper{ grid-template-columns:minmax(0,1fr); }
  #kco-order-review{ position:static; }
}

/* ===========================================================================
   Focused checkout (body.is-focus-checkout): minimal header and footer,
   payment first, a compact order summary on the side.
   ======================================================================== */
.cohead{ background:var(--paper); border-bottom:1px solid var(--line); }
.cohead__inner{ display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:16px; min-height:76px; }
.cohead__back{ justify-self:start; display:inline-flex; align-items:center; gap:8px; font-size:13px; color:var(--ink-soft); text-decoration:none; }
.cohead__back svg{ width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.5; }
.cohead__back:hover{ color:var(--ink); }
.cohead__logo{ display:inline-flex; align-items:center; gap:12px; color:var(--ink); }
.cohead__logo img{ width:clamp(130px,12vw,158px); height:auto; }
.cohead__secure{ justify-self:end; display:inline-flex; align-items:center; gap:8px; margin:0; font-size:12px; font-weight:500; letter-spacing:.12em; text-transform:uppercase; color:#3E7D53; }
.cohead__secure svg{ width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.6; }
.cohead__steps{ list-style:none; margin:0 auto; padding:0 0 16px; display:flex; justify-content:center; gap:0; font-size:12px; letter-spacing:.1em; text-transform:uppercase; }
.cohead__steps li{ display:flex; align-items:center; color:var(--ink-faint); }
.cohead__steps li + li::before{ content:""; width:clamp(24px,5vw,60px); height:1px; background:var(--line); margin:0 12px; }
.cohead__steps li.is-done, .cohead__steps li.is-done a{ color:var(--ink-mute); text-decoration:none; }
.cohead__steps li.is-done a:hover{ color:var(--ink); }
.cohead__steps li.is-current{ color:var(--ink); font-weight:500; }
.cohead__steps li.is-current::before{ background:var(--ink); }

.is-focus-checkout main{ background:var(--cream-soft); }
.co-page{ border-radius:0; margin-bottom:0; padding-block:clamp(24px,3vw,40px) clamp(40px,5vw,72px); background:transparent; }
.co-page__title{ font-size:clamp(1.6rem,2.4vw,2.1rem); margin:0 0 18px; }

/* Login + coupon as two compact cards side by side */
.is-focus-checkout .woocommerce{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 12px; }
.is-focus-checkout .woocommerce > *:not(.co-acc){ grid-column:1 / -1; }
.is-focus-checkout .co-acc{ margin:0; }
.is-focus-checkout .co-acc__head{ padding:12px 14px; gap:12px; }
.is-focus-checkout .co-acc__ico{ width:34px; height:34px; }
.is-focus-checkout .co-acc__ico svg{ width:17px; height:17px; }
.is-focus-checkout .co-acc__title{ font-size:14.5px; }
.is-focus-checkout .co-acc__sub{ display:none; }
.is-focus-checkout .co-acc__btn{ padding:8px 12px; font-size:10.5px; }
.is-focus-checkout .co-acc__form{ padding:4px 14px 16px; }
.is-focus-checkout .woocommerce-notices-wrapper:empty{ display:none; }

/* Payment (Kustom) left and wide, summary right */
.is-focus-checkout form.kco-checkout{ margin-top:10px; }
.is-focus-checkout #kco-wrapper{ grid-template-columns:minmax(0,1fr) minmax(0,400px); }
.is-focus-checkout #kco-iframe{ grid-column:1; grid-row:1; background:var(--paper); border:1px solid var(--line); border-radius:var(--card-r); padding:8px !important; }
.is-focus-checkout #kco-order-review{ grid-column:2; grid-row:1; top:24px; }
.co-sum__toggle{ display:none; }
.co-sum__title{ display:flex; align-items:baseline; justify-content:space-between; margin:0 0 14px; font-family:var(--ui); font-weight:500; font-size:17px; color:var(--ink); }
.co-sum__title span{ font-size:12.5px; font-weight:400; color:var(--ink-mute); }
.co-sum__trust{ list-style:none; margin:18px 0 0; padding:16px 0 0; border-top:1px solid var(--line); display:grid; gap:10px; }
.co-sum__trust li{ display:flex; align-items:center; gap:10px; font-size:13px; color:var(--ink-soft); }
.co-sum__trust strong{ color:var(--ink); font-weight:500; }
.co-sum__trust svg, .co-sum__help svg{ flex:0 0 auto; width:18px; height:18px; fill:none; stroke:var(--gold); stroke-width:1.4; }
.co-sum__help{ display:flex; gap:10px; align-items:flex-start; margin:14px 0 0; padding:12px 14px; border-radius:var(--card-r); background:var(--cream-soft); font-size:12.5px; line-height:1.5; color:var(--ink-soft); }
.co-sum__help a{ color:var(--ink); text-decoration:underline; text-underline-offset:2px; text-decoration-color:var(--gold-line); }

.cofoot{ background:var(--paper); border-top:1px solid var(--line); }
.cofoot__inner{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px 24px; padding-block:22px; font-size:12.5px; color:var(--ink-mute); }
.cofoot__inner p{ margin:0; }
.cofoot a{ color:var(--ink-soft); text-decoration:none; }
.cofoot a:hover{ color:var(--ink); }
.cofoot nav{ display:flex; gap:18px; }

@media (max-width:980px){
  .is-focus-checkout #kco-wrapper{ grid-template-columns:minmax(0,1fr); }
  .is-focus-checkout #kco-order-review{ grid-column:1; grid-row:1; position:static; padding:0 !important; overflow:hidden; }
  .is-focus-checkout #kco-iframe{ grid-row:2; padding:0 !important; }
  .co-sum__toggle{
    display:flex; align-items:center; gap:10px; width:100%; padding:16px 18px; border:0; background:none; cursor:pointer;
    font:inherit; font-size:14px; color:var(--ink); text-align:left;
  }
  .co-sum__toggle span{ flex:1 1 auto; text-decoration:underline; text-underline-offset:3px; text-decoration-color:var(--gold-line); }
  .co-sum__toggle strong{ font-weight:500; }
  .co-sum__caret{ width:13px; height:13px; fill:none; stroke:currentColor; stroke-width:1.6; transition:transform .3s var(--ease); }
  #kco-order-review > :not(.co-sum__toggle){ display:none; }
  #kco-order-review.is-open > :not(.co-sum__toggle){ display:block; padding-inline:18px; }
  #kco-order-review.is-open > .co-sum__help{ display:flex; margin:14px 18px 18px; }
  #kco-order-review.is-open > .co-sum__trust{ display:grid; margin:18px 18px 0; padding-inline:0; }
  #kco-order-review.is-open .co-sum__caret{ transform:rotate(180deg); }
  .is-focus-checkout .woocommerce{ grid-template-columns:minmax(0,1fr); }
}
@media (max-width:620px){
  .cohead__inner{ grid-template-columns:auto 1fr auto; min-height:64px; }
  .cohead__back span, .cohead__secure span{ display:none; }
  .cohead__logo{ justify-self:center; }
  .cohead__logo img{ width:120px; }
  .cohead__steps{ font-size:10.5px; }
  .cofoot__inner{ flex-direction:column; align-items:flex-start; }
}
@media (max-width:640px){
  .is-focus-checkout .co-page{ padding-top:16px; }
  .is-focus-checkout .co-page__title{ font-size:1.5rem; margin-bottom:12px; }
  .is-focus-checkout .woocommerce{ gap:8px; }
  .is-focus-checkout .co-acc__head{ flex-wrap:nowrap; padding:10px 12px; }
  .is-focus-checkout .co-acc__ico{ display:none; }
  .is-focus-checkout .co-acc__title{ font-size:13.5px; }
  .is-focus-checkout .co-acc__btn{ width:auto; padding:7px 10px; font-size:10px; letter-spacing:.1em; }
}
/* Order summary rows never overflow the card */
.co-item{ grid-template-columns:72px minmax(0,1fr) auto; }
#kco-order-review .co-review, #kco-order-review .co-items{ min-width:0; }
@media (max-width:640px){
  #kco-order-review .co-item{ grid-template-columns:56px minmax(0,1fr) auto; gap:10px; }
  #kco-order-review .co-item__img{ width:56px; height:56px; }
  #kco-order-review .co-item__name{ font-size:14.5px; }
  #kco-order-review .co-item__price{ font-size:13.5px; white-space:nowrap; }
  #kco-order-review.is-open > .co-review{ box-sizing:border-box; width:100%; }
}

/* Discount code in the order summary (Kustom checkout) */
.is-focus-checkout .woocommerce:has(form.kco-checkout) > .co-acc:has(.woocommerce-form-coupon-toggle){ display:none; }
.is-focus-checkout .woocommerce:has(form.kco-checkout) > .co-acc{ grid-column:1 / -1; }
.co-sum__coupon{ margin-top:16px; padding-top:14px; border-top:1px solid var(--line); }
.co-sum__coupon-toggle{
  display:flex; align-items:center; gap:10px; width:100%; padding:4px 0; border:0; background:none; cursor:pointer;
  font:inherit; font-size:14px; color:var(--ink); text-align:left;
}
.co-sum__coupon-toggle span{ flex:1 1 auto; text-decoration:underline; text-underline-offset:3px; text-decoration-color:var(--gold-line); }
.co-sum__coupon-toggle svg:first-child{ width:17px; height:17px; fill:none; stroke:var(--gold); stroke-width:1.4; }
.co-sum__coupon .co-sum__caret{ width:13px; height:13px; fill:none; stroke:currentColor; stroke-width:1.6; transition:transform .3s var(--ease); }
.co-sum__coupon.is-open .co-sum__caret{ transform:rotate(180deg); }
.co-sum__coupon-form{ display:flex; gap:8px; margin-top:10px; }
.co-sum__coupon-form[hidden]{ display:none; }
.co-sum__coupon-form .input-text{ flex:1 1 auto; min-width:0; height:46px; padding:0 14px; border:1px solid var(--line); border-radius:var(--pill-r); background:var(--cream-soft); font:inherit; font-size:14px; text-transform:uppercase; letter-spacing:.06em; }
.co-sum__coupon-form .input-text:focus{ outline:none; border-color:var(--ink); background:var(--paper); }
.co-sum__coupon-form .btn{ flex:0 0 auto; height:46px; padding:0 20px; font-size:11.5px; }
.co-sum__coupon-msg:empty{ display:none; }
.co-sum__coupon-msg{ margin-top:8px; font-size:12.5px; }
.co-sum__coupon-msg.is-ok{ color:#3E7D53; }
.co-sum__coupon-msg.is-err{ color:#a3362d; }
@media (max-width:980px){
  #kco-order-review.is-open > .co-sum__coupon{ margin:16px 18px 0; padding-inline:0; }
}
/* Summary order: title, items + totals, discount code, notes, trust, help */
#kco-order-review{ display:flex; flex-direction:column; }
#kco-order-review > .co-sum__toggle{ order:0; }
#kco-order-review > .co-sum__title{ order:1; }
#kco-order-review > .co-review{ order:2; }
#kco-order-review > .co-sum__coupon{ order:3; }
#kco-order-review > #kco-extra-checkout-fields{ order:4; }
#kco-order-review > .co-sum__trust{ order:5; }
#kco-order-review > .co-sum__help{ order:6; }

/* Checkout trust bar above the checkout header */
.cotrust{ background:var(--night); color:var(--night-ink); }
.cotrust__list{ list-style:none; margin:0 auto; padding-block:9px; display:flex; justify-content:center; gap:10px clamp(18px,3vw,44px); flex-wrap:wrap; }
.cotrust__list li{ display:flex; align-items:center; gap:8px; font-size:12.5px; color:rgba(247,239,236,.82); }
.cotrust__list strong{ color:var(--night-ink); font-weight:500; }
.cotrust__list svg{ flex:0 0 auto; width:16px; height:16px; fill:none; stroke:var(--gold-soft); stroke-width:1.5; }
.co-page{ padding-top:clamp(18px,2.4vw,30px); }
@media (max-width:760px){
  .cotrust__list{ flex-wrap:nowrap; justify-content:flex-start; overflow-x:auto; scrollbar-width:none; gap:22px; }
  .cotrust__list::-webkit-scrollbar{ display:none; }
  .cotrust__list li{ flex:0 0 auto; font-size:12px; }
}

/* Gift card accordion right under the discount code (inc/checkout.php). */
.co-sum__coupon + .co-sum__coupon{ margin-top:0; border-top:0; padding-top:10px; }
.co-sum__coupon--gift .co-sum__coupon-form .input-text{ text-transform:none; letter-spacing:.02em; }
#kco-order-review > .co-sum__coupon--gift{ order:3; }
