/*
 * WC Priskalkyl Pro — UI v4 (additive layer)
 * Loaded AFTER priskalkyl.css. Everything scoped under .pkpro-v4
 * so this stylesheet is safe to disable via the widget toggle.
 */

/* ─── Typography tokens (scoped) ──────────────────────────────────── */
.pkpro-v4 {
  --pk-v4-ink: #0a0a0b;
  --pk-v4-ink-2: #3a3a3d;
  --pk-v4-muted: #8a8a8e;
  --pk-v4-line: #e5e2da;
  --pk-v4-line-soft: #f0ede5;
  --pk-v4-yellow: #f2c84b;
  --pk-v4-success: #2e7d4f;
  --pk-v4-radius: 10px;
  --pk-v4-radius-lg: 14px;
  --pk-v4-font-display: 'Fraunces', Georgia, 'Times New Roman', serif;
  --pk-v4-font-body: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  font-family: var(--pk-v4-font-body);
}

/* ─── Trust badges header ─────────────────────────────────────────── */
.pkpro-v4 .pkpro-v4-trust {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0 0 18px;
}
.pkpro-v4 .pkpro-v4-trust-item {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 10px;
  background: var(--pk-v4-line-soft);
  border-radius: 100px;
  font-size: 11.5px;
  color: var(--pk-v4-ink-2);
  font-weight: 500;
  line-height: 1.2;
}
.pkpro-v4 .pkpro-v4-trust-dot {
  width: 5px; height: 5px;
  border-radius: 50%;
  background: var(--pk-v4-success);
  flex-shrink: 0;
}

/* ─── Numbered step labels ────────────────────────────────────────── */
.pkpro-v4 .pkpro-field[data-step] > .pkpro-field-label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--pk-v4-font-body);
  font-weight: 600;
}
/* Step-number bullet pseudo — disabled per user preference (clean section
   headings without numbered prefixes). Keep the selectors so the original
   data-step attribute markup still works for layout, just no content. */
.pkpro-v4 .pkpro-field[data-step] > .pkpro-field-label::before {
  display: none !important;
}

/* ─── Color chips: round swatches, name on hover ──────────────────── */
.pkpro-v4 .pkpro-color-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.pkpro-v4 .pkpro-color-btn {
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
  position: relative;
  width: 36px; height: 36px;
  display: flex !important;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto !important;
  overflow: visible !important;
}
.pkpro-v4 .pkpro-color-btn .pkpro-color-swatch {
  width: 30px !important;
  height: 30px !important;
  border-radius: 50% !important;
  border: 0.5px solid rgba(0,0,0,0.18) !important;
  transition: transform 0.15s ease, box-shadow 0.15s ease !important;
  display: block;
}
.pkpro-v4 .pkpro-color-btn:hover .pkpro-color-swatch {
  transform: scale(1.08) !important;
}
/* Active: white inner ring + black outer ring = crisp focus indicator */
.pkpro-v4 .pkpro-color-btn.active .pkpro-color-swatch {
  box-shadow: 0 0 0 2px #fff, 0 0 0 3.5px var(--pk-v4-ink) !important;
  border-color: rgba(0,0,0,0.2) !important;
}
/* Hide text label; show as tooltip on hover */
.pkpro-v4 .pkpro-color-btn .pkpro-color-name {
  position: absolute;
  opacity: 0;
  pointer-events: none;
  bottom: calc(100% + 6px);
  left: 50%;
  transform: translateX(-50%);
  white-space: nowrap;
  background: var(--pk-v4-ink);
  color: #fff !important;
  padding: 4px 8px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.02em;
  text-transform: none !important;
  transition: opacity 0.15s ease;
  z-index: 10;
}
.pkpro-v4 .pkpro-color-btn:hover .pkpro-color-name {
  opacity: 1;
}
.pkpro-v4 .pkpro-color-btn:hover .pkpro-color-name::after {
  content: '';
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  border: 4px solid transparent;
  border-top-color: var(--pk-v4-ink);
}

/* ─── Qty stepper ─────────────────────────────────────────────────── */
.pkpro-v4 .pkpro-qty-wrap { max-width: 180px; }
.pkpro-v4 .pkpro-qty-tier-label {
  font-size: 12px !important;
  color: var(--pk-v4-muted) !important;
  margin-top: 6px !important;
}

/* ─── Size toggle button — less loud ──────────────────────────────── */
.pkpro-v4 .pkpro-size-toggle-btn {
  background: transparent !important;
  border: 0.5px dashed var(--pk-v4-line) !important;
  color: var(--pk-v4-ink-2) !important;
  font-size: 12.5px !important;
  font-weight: 500 !important;
  padding: 8px 12px !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  border-radius: var(--pk-v4-radius) !important;
  transition: border-color 0.15s, background 0.15s !important;
}
.pkpro-v4 .pkpro-size-toggle-btn:hover {
  border-color: var(--pk-v4-ink) !important;
  background: #fcfcf9 !important;
}
.pkpro-v4 .pkpro-size-toggle-btn .pkpro-size-toggle-arrow {
  font-size: 10px !important;
  margin-left: 6px !important;
}

/* ─── Logo upload — (styled further below in v4.2.4 section) ─────── */
/* Legacy v4.0.x styles removed — replaced with compact row in v4.2.4 */

/* ─── Tryck block polish ──────────────────────────────────────────── */
.pkpro-v4 .pkpro-tryck-wrap {
  margin-top: 24px !important;
  padding-top: 20px !important;
  border-top: 0.5px solid var(--pk-v4-line) !important;
}
.pkpro-v4 .pkpro-tryck-block {
  background: var(--pk-v4-line-soft) !important;
  border: 0.5px solid var(--pk-v4-line) !important;
  border-radius: var(--pk-v4-radius) !important;
  padding: 12px 14px !important;
  margin-top: 10px !important;
}
.pkpro-v4 .pkpro-tryck-block[data-idx="1"] { margin-top: 0 !important; }
.pkpro-v4 .pkpro-tryck-block[data-idx="2"] {
  border-top: 0.5px solid var(--pk-v4-line) !important;
  padding-top: 12px !important;
}
.pkpro-v4 .pkpro-tryck-block > div:first-child {
  font-size: 12px !important;
  font-weight: 500 !important;
  color: var(--pk-v4-muted) !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  margin-bottom: 10px !important;
  font-family: var(--pk-v4-font-body) !important;
}
.pkpro-v4 .pkpro-tryck-block .pkpro-tryck-block-title {
  font-weight: 500 !important;
  font-family: var(--pk-v4-font-body) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  font-size: 12px !important;
  color: var(--pk-v4-muted) !important;
}

/* Fältlabels ovanför dropdowns (Placering, Storlek, Färger) */
.pkpro-v4 .pkpro-tryck-block .pkpro-tryck-fields > div > div:first-child {
  font-size: 11px !important;
  color: var(--pk-v4-muted) !important;
  margin-bottom: 4px !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

/* Pill-style dropdowns inom tryck-blocket — kompaktare för 3 kolumner */
.pkpro-v4 .pkpro-tryck-block select {
  appearance: none !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  width: 100% !important;
  background: #fff !important;
  border: 0.5px solid var(--pk-v4-line) !important;
  border-radius: 999px !important;
  padding: 7px 26px 7px 12px !important;
  font-size: 12px !important;
  font-family: var(--pk-v4-font-body) !important;
  color: var(--pk-v4-ink-2) !important;
  cursor: pointer !important;
  transition: border-color 0.15s, background 0.15s, color 0.15s !important;
  line-height: 1.2 !important;
  box-sizing: border-box !important;
  text-overflow: ellipsis !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  /* Custom chevron-ikon */
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path d='M1 1l4 4 4-4' stroke='%233a3a3d' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>") !important;
  background-repeat: no-repeat !important;
  background-position: right 10px center !important;
  background-size: 10px 6px !important;
}
.pkpro-v4 .pkpro-tryck-block select:hover {
  border-color: var(--pk-v4-ink-2) !important;
}
.pkpro-v4 .pkpro-tryck-block select:focus {
  outline: none !important;
  border-color: var(--pk-v4-ink) !important;
  box-shadow: 0 0 0 2px rgba(0,0,0,0.08) !important;
}
/* Aktivt tillstånd: select har värde valt (klass sätts av JS) */
.pkpro-v4 .pkpro-tryck-block select.pkpro-tryck-filled {
  background-color: var(--pk-v4-ink) !important;
  border-color: var(--pk-v4-ink) !important;
  color: #fff !important;
  font-weight: 500 !important;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path d='M1 1l4 4 4-4' stroke='%23ffffff' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>") !important;
}

/* Fritext-input för "Annan placering" - samma stil */
.pkpro-v4 .pkpro-tryck-block input[type="text"] {
  width: 100% !important;
  background: #fff !important;
  border: 0.5px solid var(--pk-v4-line) !important;
  border-radius: 999px !important;
  padding: 7px 14px !important;
  font-size: 12px !important;
  font-family: var(--pk-v4-font-body) !important;
  color: var(--pk-v4-ink) !important;
  box-sizing: border-box !important;
}
.pkpro-v4 .pkpro-tryck-block input[type="text"]:focus {
  outline: none !important;
  border-color: var(--pk-v4-ink) !important;
  box-shadow: 0 0 0 2px rgba(0,0,0,0.08) !important;
}

/* Info-raden "Kostnad per tryck" — tightare */
.pkpro-v4 .pkpro-tryck-block .pkpro-tryck-info {
  margin-top: 8px !important;
  padding-top: 8px !important;
  font-size: 12px !important;
}

.pkpro-v4 .pkpro-tryck-remove {
  background: transparent !important;
  color: var(--pk-v4-muted) !important;
  font-size: 18px !important;
  width: 24px; height: 24px;
  border-radius: 4px !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background 0.1s, color 0.1s;
}
.pkpro-v4 .pkpro-tryck-remove:hover {
  background: rgba(0,0,0,0.06) !important;
  color: var(--pk-v4-ink) !important;
}
.pkpro-v4 .pkpro-tryck-add-btn {
  display: block !important;
  width: 100%;
  padding: 10px !important;
  background: transparent !important;
  border: 0.5px dashed var(--pk-v4-line) !important;
  border-radius: var(--pk-v4-radius) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  font-family: var(--pk-v4-font-body) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  color: var(--pk-v4-ink-2) !important;
  cursor: pointer;
  margin-top: 10px !important;
  transition: border-color 0.15s, background 0.15s;
}
.pkpro-v4 .pkpro-tryck-add-btn:hover {
  border-color: var(--pk-v4-ink) !important;
  background: #fcfcf9 !important;
}

/* ─── Summary box ─────────────────────────────────────────────────── */
.pkpro-v4 .pkpro-sum-collapsed .pkpro-sr-total {
  align-items: baseline;
  padding: 4px 0;
}
.pkpro-v4 .pkpro-sum-collapsed .pkpro-sr-total > span:first-child {
  font-size: 13px;
  color: var(--pk-v4-muted);
  font-weight: 500;
}
.pkpro-v4 .pkpro-sum-collapsed .pkpro-total-price {
  font-family: var(--pk-v4-font-display);
  font-weight: 600;
  font-size: 32px !important;
  letter-spacing: -0.02em !important;
  line-height: 1 !important;
}
.pkpro-v4 .pkpro-sum-toggle {
  font-family: var(--pk-v4-font-body) !important;
  font-size: 12.5px !important;
  background: none !important;
  border: none !important;
  color: var(--pk-v4-ink-2) !important;
  padding: 0 !important;
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
  text-decoration-thickness: 0.5px !important;
  cursor: pointer !important;
  margin-top: 8px !important;
}
.pkpro-v4 .pkpro-sum-details {
  background: var(--pk-v4-line-soft);
  border-radius: 8px;
  padding: 12px 14px !important;
  margin-top: 10px !important;
  font-size: 12.5px !important;
}
.pkpro-v4 .pkpro-sum-details .pkpro-sr {
  padding: 3px 0 !important;
  color: var(--pk-v4-ink-2) !important;
}
.pkpro-v4 .pkpro-sum-details .pkpro-sr-divider {
  border-top: 0.5px solid var(--pk-v4-line) !important;
  margin: 6px 0 0 !important;
  padding-top: 0 !important;
}

/* ─── CTA button polish ───────────────────────────────────────────── */
.pkpro-v4 [id^="pkpro-add-"] {
  font-family: var(--pk-v4-font-body) !important;
  font-weight: 600 !important;
  letter-spacing: 0.005em !important;
  border-radius: var(--pk-v4-radius) !important;
  padding: 15px 20px !important;
  transition: transform 0.1s !important;
}
.pkpro-v4 [id^="pkpro-add-"]:not(:disabled):hover {
  transform: translateY(-1px);
}

/* ─── Upsell hint — softer ────────────────────────────────────────── */
.pkpro-v4 .pkpro-upsell {
  background: #f0f7ed !important;
  border: 0.5px solid #c5deb4 !important;
  color: #2a5a25 !important;
  font-size: 12.5px !important;
  padding: 8px 12px !important;
  border-radius: 8px !important;
  margin-top: 10px !important;
  line-height: 1.4 !important;
}

/* ─── Field spacing ───────────────────────────────────────────────── */
.pkpro-v4 .pkpro-field {
  margin-bottom: 20px !important;
}
.pkpro-v4 .pkpro-field-label {
  margin-bottom: 10px !important;
}

/* ─── Sticky mobile summary ───────────────────────────────────────── */
@media (max-width: 720px) {
  .pkpro-v4 [id^="pkpro-summary-"] {
    position: sticky;
    bottom: 0;
    background: #fff;
    z-index: 5;
    margin-left: -16px;
    margin-right: -16px;
    padding: 14px 16px !important;
    border-top: 0.5px solid var(--pk-v4-line) !important;
    box-shadow: 0 -2px 12px rgba(0,0,0,0.05);
  }
  .pkpro-v4 .pkpro-sum-collapsed .pkpro-total-price {
    font-size: 26px !important;
  }
  .pkpro-v4 .pkpro-color-btn {
    width: 32px; height: 32px;
  }
  .pkpro-v4 .pkpro-color-btn .pkpro-color-swatch {
    width: 26px !important;
    height: 26px !important;
  }
}

/* ─── v4.1: Hide Antal field when product has sizes ───────────────── */
/* The JS adds .pkpro-v4-has-sizes to the wrapper when size-rows exist.
   In that mode we hide the standalone qty stepper — the customer enters
   quantity per size instead. The legacy JS still uses the hidden qty
   input as its source-of-truth (it's kept in sync by size-row events). */
.pkpro-v4.pkpro-v4-has-sizes .pkpro-qty-wrap,
.pkpro-v4.pkpro-v4-has-sizes .pkpro-qty-tier-label {
  display: none !important;
}
/* Hide the "Antal" label when size-grid takes over.
   Match: the .pkpro-field containing .pkpro-qty-wrap — hide its immediate
   label, regardless of data-step attribute (robust against legacy markup). */
.pkpro-v4.pkpro-v4-has-sizes .pkpro-field:has(.pkpro-qty-wrap) > .pkpro-field-label {
  display: none !important;
}
/* Fallback for browsers without :has() — also try the legacy data-step="2" */
.pkpro-v4.pkpro-v4-has-sizes .pkpro-field[data-step="2"] > .pkpro-field-label {
  display: none !important;
}

/* ─── v4.1: Size grid as a tabular layout ─────────────────────────── */
/* The size field wrapper becomes the "step 2" header host */
.pkpro-v4.pkpro-v4-has-sizes .pkpro-size-field {
  display: block !important;
}
/* Hide the toggle button in v4 (JS also sets display:none, this is belt+suspenders) */
.pkpro-v4.pkpro-v4-has-sizes .pkpro-size-toggle-btn {
  display: none !important;
}
/* The expandable section is always shown in v4 */
.pkpro-v4.pkpro-v4-has-sizes .pkpro-size-expandable {
  display: block !important;
  margin-top: 0 !important;
}

/* Add step-2 numbered header to the size section */
.pkpro-v4.pkpro-v4-has-sizes .pkpro-size-expandable > .pkpro-field-label {
  display: flex !important;
  align-items: center;
  gap: 8px;
  font-family: var(--pk-v4-font-body);
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  margin: 0 0 10px !important;
}
.pkpro-v4.pkpro-v4-has-sizes .pkpro-size-expandable > .pkpro-field-label::before {
  content: '2';
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--pk-v4-ink);
  color: #fff;
  font-size: 11px;
  font-weight: 600;
  flex-shrink: 0;
  text-transform: none;
}
.pkpro-v4.pkpro-v4-has-sizes .pkpro-size-total-label {
  display: none !important; /* replaced by v4 total row */
}

/* Grid som chip-flow (förslag 2) — varje storlek är en chip med inbyggd stepper */
.pkpro-v4.pkpro-v4-has-sizes .pkpro-size-qty-grid {
  display: flex !important;
  flex-wrap: wrap;
  gap: 8px;
  padding: 14px;
  background: var(--pk-v4-line-soft);
  border: 0.5px solid var(--pk-v4-line);
  border-radius: var(--pk-v4-radius);
  position: relative;
  grid-template-columns: unset !important;
}
/* Ingen tabellrubrik i chip-läget */
.pkpro-v4.pkpro-v4-has-sizes .pkpro-size-qty-grid::before,
.pkpro-v4.pkpro-v4-has-sizes .pkpro-size-qty-grid::after {
  content: none !important;
}

/* Varje storlek som en pill (vit när 0, svart när > 0) */
.pkpro-v4.pkpro-v4-has-sizes .pkpro-size-qty-row {
  display: inline-flex !important;
  align-items: center;
  flex-wrap: nowrap;
  gap: 0 !important;
  padding: 0 !important;
  background: #fff !important;
  border: 0.5px solid var(--pk-v4-line) !important;
  border-radius: 999px !important;
  overflow: hidden;
  transition: background 0.15s, border-color 0.15s, color 0.15s;
  height: 34px;
  flex: 0 0 auto !important;
}
.pkpro-v4.pkpro-v4-has-sizes .pkpro-size-qty-row:hover {
  border-color: var(--pk-v4-ink-2) !important;
  background: #fff !important;
}
/* Aktivt tillstånd: pill blir svart när antal > 0 (klass sätts av JS) */
.pkpro-v4.pkpro-v4-has-sizes .pkpro-size-qty-row.pkpro-size-active {
  background: var(--pk-v4-ink) !important;
  border-color: var(--pk-v4-ink) !important;
  color: #fff !important;
}
.pkpro-v4.pkpro-v4-has-sizes .pkpro-size-qty-row.pkpro-size-active .pkpro-size-qty-label {
  color: #fff !important;
  border-right-color: rgba(255,255,255,0.25) !important;
}
.pkpro-v4.pkpro-v4-has-sizes .pkpro-size-qty-row.pkpro-size-active .pkpro-size-minus,
.pkpro-v4.pkpro-v4-has-sizes .pkpro-size-qty-row.pkpro-size-active .pkpro-size-plus {
  color: #fff !important;
}
.pkpro-v4.pkpro-v4-has-sizes .pkpro-size-qty-row.pkpro-size-active .pkpro-size-minus:hover,
.pkpro-v4.pkpro-v4-has-sizes .pkpro-size-qty-row.pkpro-size-active .pkpro-size-plus:hover {
  background: rgba(255,255,255,0.1) !important;
}
.pkpro-v4.pkpro-v4-has-sizes .pkpro-size-qty-row.pkpro-size-active .pkpro-size-qty-input {
  color: #fff !important;
  font-weight: 600 !important;
}

/* Storlek-namnet i pillen */
.pkpro-v4.pkpro-v4-has-sizes .pkpro-size-qty-label {
  font-size: 13px !important;
  font-weight: 500 !important;
  color: var(--pk-v4-ink) !important;
  padding: 0 12px !important;
  min-width: 52px;
  text-align: center;
  border-right: 0.5px solid var(--pk-v4-line);
  line-height: 34px;
  white-space: nowrap;
  box-sizing: border-box;
}
/* Stepper inuti pillen (ingen yttre border) */
.pkpro-v4.pkpro-v4-has-sizes .pkpro-size-qty-stepper {
  display: flex !important;
  align-items: center;
  border: none !important;
  border-radius: 0 !important;
  overflow: visible;
  background: transparent !important;
  height: 100%;
}
.pkpro-v4.pkpro-v4-has-sizes .pkpro-size-minus,
.pkpro-v4.pkpro-v4-has-sizes .pkpro-size-plus {
  all: unset !important;
  width: 30px !important;
  height: 34px !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  font-size: 15px !important;
  color: var(--pk-v4-ink-2) !important;
  cursor: pointer;
  background: transparent !important;
  transition: background 0.1s;
  box-sizing: border-box !important;
}
.pkpro-v4.pkpro-v4-has-sizes .pkpro-size-minus:hover,
.pkpro-v4.pkpro-v4-has-sizes .pkpro-size-plus:hover {
  background: rgba(0,0,0,0.05) !important;
}
.pkpro-v4.pkpro-v4-has-sizes .pkpro-size-qty-input {
  all: unset !important;
  width: 32px !important;
  height: 34px !important;
  text-align: center !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  font-family: var(--pk-v4-font-body) !important;
  color: var(--pk-v4-ink-2) !important;
  box-sizing: border-box !important;
  -moz-appearance: textfield !important;
  padding: 0 !important;
}
.pkpro-v4.pkpro-v4-has-sizes .pkpro-size-qty-input::-webkit-inner-spin-button,
.pkpro-v4.pkpro-v4-has-sizes .pkpro-size-qty-input::-webkit-outer-spin-button {
  -webkit-appearance: none !important;
  margin: 0 !important;
}

/* v4 total row at the bottom of the size grid */
.pkpro-v4.pkpro-v4-has-sizes .pkpro-v4-size-total {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 16px;
  background: var(--pk-v4-ink);
  color: #fff;
  border-radius: 0 0 var(--pk-v4-radius) var(--pk-v4-radius);
  font-size: 14px;
  font-weight: 500;
  margin-top: -1px;
}
.pkpro-v4.pkpro-v4-has-sizes .pkpro-v4-size-total-label {
  color: rgba(255,255,255,0.85);
}
.pkpro-v4.pkpro-v4-has-sizes .pkpro-v4-size-total-value {
  font-weight: 600;
  font-size: 15px;
}

/* ─── v4.1: Price box — dark summary with progress bar ────────────── */
.pkpro-v4 [id^="pkpro-summary-"] {
  background: var(--pk-v4-ink) !important;
  color: #fff !important;
  border-radius: var(--pk-v4-radius-lg) !important;
  padding: 20px 22px !important;
  margin-top: 20px !important;
  border: none !important;
}
.pkpro-v4 [id^="pkpro-summary-"] .pkpro-sum-collapsed {
  padding: 0 !important;
}
.pkpro-v4 [id^="pkpro-summary-"] .pkpro-sum-collapsed .pkpro-sr-total {
  color: #fff !important;
}
.pkpro-v4 [id^="pkpro-summary-"] .pkpro-sum-collapsed .pkpro-sr-total > span:first-child {
  color: rgba(255,255,255,0.6) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
}
.pkpro-v4 [id^="pkpro-summary-"] .pkpro-total-price {
  color: #fff !important;
  font-family: var(--pk-v4-font-display) !important;
  font-size: 36px !important;
  font-weight: 600 !important;
  letter-spacing: -0.02em !important;
}
.pkpro-v4 [id^="pkpro-summary-"] .pkpro-sum-toggle {
  color: rgba(255,255,255,0.7) !important;
  font-size: 12px !important;
}
.pkpro-v4 [id^="pkpro-summary-"] .pkpro-sum-toggle:hover {
  color: #fff !important;
}
/* Details panel inside dark box */
.pkpro-v4 [id^="pkpro-summary-"] .pkpro-sum-details {
  background: rgba(255,255,255,0.08) !important;
  color: rgba(255,255,255,0.85) !important;
  margin-top: 12px !important;
  padding: 12px 14px !important;
  border-radius: 8px !important;
}
.pkpro-v4 [id^="pkpro-summary-"] .pkpro-sum-details .pkpro-sr {
  color: rgba(255,255,255,0.85) !important;
}
.pkpro-v4 [id^="pkpro-summary-"] .pkpro-sum-details .pkpro-sr strong {
  color: #fff !important;
}
.pkpro-v4 [id^="pkpro-summary-"] .pkpro-sum-details .pkpro-sr-divider {
  border-top-color: rgba(255,255,255,0.2) !important;
}

/* Hint state (before min qty) stays dark too */
.pkpro-v4 [id^="pkpro-summary-"] .pkpro-sum-hint {
  color: rgba(255,255,255,0.8) !important;
  margin: 0 !important;
  font-size: 13px !important;
}

/* Progress bar inside the dark summary box */
.pkpro-v4 .pkpro-v4-progress {
  margin-top: 14px;
}
.pkpro-v4 .pkpro-v4-progress-track {
  height: 6px;
  background: rgba(255,255,255,0.15);
  border-radius: 100px;
  overflow: hidden;
  position: relative;
}
.pkpro-v4 .pkpro-v4-progress-fill {
  height: 100%;
  background: var(--pk-v4-yellow);
  border-radius: 100px;
  transition: width 0.3s ease;
}
.pkpro-v4 .pkpro-v4-progress-labels {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 10px;
  gap: 12px;
  flex-wrap: wrap;
}
.pkpro-v4 .pkpro-v4-min-ok,
.pkpro-v4 .pkpro-v4-min-pending {
  font-size: 12px;
  color: rgba(255,255,255,0.75);
}
.pkpro-v4 .pkpro-v4-min-pending {
  color: var(--pk-v4-yellow);
  font-weight: 500;
}
.pkpro-v4 .pkpro-v4-check {
  color: var(--pk-v4-yellow);
  font-weight: 700;
  margin-left: 2px;
}
.pkpro-v4 .pkpro-v4-next {
  font-size: 12px;
  color: var(--pk-v4-yellow);
  font-weight: 500;
  text-align: right;
}

/* ─── v4.1: Size summary total syncs better ───────────────────────── */
.pkpro-v4.pkpro-v4-has-sizes .pkpro-size-total-row {
  display: none !important; /* hide legacy total row, we use our own */
}

/* Mobile adjustments */
@media (max-width: 720px) {
  .pkpro-v4 [id^="pkpro-summary-"] .pkpro-total-price {
    font-size: 28px !important;
  }
  .pkpro-v4.pkpro-v4-has-sizes .pkpro-size-qty-label {
    font-size: 13px !important;
  }
  .pkpro-v4 .pkpro-v4-progress-labels {
    font-size: 11px;
  }
}

/* ─── v4.1.1: Tryck as a method pill ──────────────────────────────── */
/* When Tryck is not active, hide the entire tryck wrap (pill becomes the entry point) */
.pkpro-v4.pkpro-v4-tryck-hidden .pkpro-tryck-wrap {
  display: none !important;
}

/* When Tryck IS active, hide duplicate step-3 number + "Tryck" label
   (the pill already identifies the section). We keep the content blocks. */
.pkpro-v4 .pkpro-tryck-wrap[data-step="3"] > .pkpro-field-label {
  display: none !important;
}
/* Also drop the visual divider at the top of the tryck-wrap since it now
   sits tightly under the forädling pills. */
.pkpro-v4 .pkpro-tryck-wrap {
  border-top: none !important;
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* Visually integrate tryck-section with the method-chip row:
   small gap below the pills, then the tryck blocks begin. */
.pkpro-v4 .pkpro-method-chips + .pkpro-tryck-wrap,
.pkpro-v4 .pkpro-method-chips ~ .pkpro-schablon-wrap + .pkpro-tryck-wrap,
.pkpro-v4 .pkpro-method-chips ~ .pkpro-existing-card-wrap + .pkpro-tryck-wrap {
  margin-top: 12px !important;
}

/* ─── v4.2.4: Compact logo upload — only when needed ──────────────
 * The product page previously showed a large dropzone taking up more
 * space than the add-to-cart button. This layer:
 *   1. Hides the upload wrap by default (`.pkpro-v4-logo-hidden`)
 *   2. Shows it only when customer picks tryck or brodyr (JS toggles class)
 *   3. Renders it as a SINGLE compact row with icon + text + small button
 *   4. Expands to filename pill when a file is selected
 *
 * The legacy priskalkyl.css dropzone rules are overridden by CSS specificity
 * (we use .pkpro-v4 .pkpro-logo-upload-wrap which beats .pkpro-logo-*).
 */
.pkpro-v4.pkpro-v4-logo-hidden .pkpro-logo-upload-wrap {
  display: none !important;
}
/* When visible, the wrap is a compact row, not a panel */
.pkpro-v4 .pkpro-logo-upload-wrap {
  margin-top: 14px !important;
  padding-top: 14px !important;
  border-top: 0.5px solid var(--pk-v4-line) !important;
}
/* Kill the original big label - we combine everything into the dropzone */
.pkpro-v4 .pkpro-logo-upload-wrap > label.pkpro-field-label,
.pkpro-v4 .pkpro-logo-upload-wrap > .pkpro-field-label:first-child {
  display: none !important;
}
/* Compact dropzone: single row, no big box */
.pkpro-v4 .pkpro-logo-dropzone {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 10px 14px !important;
  background: #fafaf7 !important;
  border: 0.5px dashed var(--pk-v4-line) !important;
  border-radius: var(--pk-v4-radius) !important;
  font-size: 13px !important;
  min-height: 0 !important;
  text-align: left !important;
  transition: border-color 0.15s, background 0.15s !important;
  cursor: pointer;
  position: relative;
}
.pkpro-v4 .pkpro-logo-dropzone:hover {
  border-color: var(--pk-v4-ink-2) !important;
  background: #fcfcf9 !important;
}
.pkpro-v4 .pkpro-logo-dropzone.dragover {
  border-color: var(--pk-v4-ink) !important;
  background: #fcfcf9 !important;
}
/* Label inside dropzone: compact single-line */
.pkpro-v4 .pkpro-logo-dropzone .pkpro-logo-label,
.pkpro-v4 .pkpro-logo-dropzone > label {
  flex: 1;
  display: flex !important;
  align-items: center;
  gap: 8px;
  margin: 0 !important;
  padding: 0 !important;
  font-size: 13px !important;
  color: var(--pk-v4-ink-2) !important;
  font-weight: 500 !important;
  cursor: pointer;
  min-height: 0 !important;
}
/* Paperclip icon */
.pkpro-v4 .pkpro-logo-dropzone::before {
  content: '\1F4CE'; /* paperclip */
  font-size: 14px;
  flex-shrink: 0;
  opacity: 0.6;
}
/* Hide legacy icon/decoration that duplicates ours */
.pkpro-v4 .pkpro-logo-dropzone .pkpro-logo-icon {
  display: none !important;
}
/* "Ladda upp logotyp (valfritt)" text */
.pkpro-v4 .pkpro-logo-dropzone .pkpro-logo-title {
  font-size: 13px;
  color: var(--pk-v4-ink-2);
  font-weight: 500;
}
.pkpro-v4 .pkpro-logo-dropzone .pkpro-logo-hint {
  font-size: 11.5px;
  color: var(--pk-v4-muted);
  font-weight: 400;
}
/* Small upload button (right-aligned) */
.pkpro-v4 .pkpro-logo-upload-btn,
.pkpro-v4 .pkpro-logo-file-btn {
  padding: 5px 10px !important;
  font-size: 11.5px !important;
  background: var(--pk-v4-ink) !important;
  color: #fff !important;
  border-radius: 6px !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em !important;
  flex-shrink: 0;
  cursor: pointer;
  border: none !important;
}
/* Hide the large "Dra hit eller", "EPS · AI · PDF..." — we use a title + tiny hint instead */
.pkpro-v4 .pkpro-logo-dropzone small,
.pkpro-v4 .pkpro-logo-formats {
  display: none !important;
}
/* Show format hint only on hover as tooltip via title attr on the wrap */

/* Selected-file state: green pill with filename + remove button */
.pkpro-v4 .pkpro-logo-dropzone.has-file {
  background: #f0f7ed !important;
  border-style: solid !important;
  border-color: #c5deb4 !important;
}
.pkpro-v4 .pkpro-logo-dropzone.has-file::before {
  content: '\2705'; /* ✅ */
  opacity: 1;
}
.pkpro-v4 .pkpro-logo-filename {
  flex: 1;
  font-size: 13px;
  color: #2a5a25;
  font-weight: 500;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pkpro-v4 .pkpro-logo-filesize {
  font-size: 11px;
  color: #5a7a4d;
  font-weight: 400;
}
.pkpro-v4 .pkpro-logo-remove {
  background: transparent !important;
  border: none !important;
  cursor: pointer;
  color: #5a7a4d !important;
  font-size: 14px !important;
  padding: 4px 6px !important;
  border-radius: 4px !important;
  flex-shrink: 0;
}
.pkpro-v4 .pkpro-logo-remove:hover {
  background: rgba(0,0,0,0.06) !important;
  color: var(--pk-v4-ink) !important;
}

/* ─── v4.2.1: Current price label on progress row ────────────────── */
.pkpro-v4 .pkpro-v4-current {
  font-size: 12px;
  color: rgba(255,255,255,0.75);
  font-weight: 500;
}
.pkpro-v4 .pkpro-v4-current strong {
  color: #fff;
  font-weight: 600;
}

/* ─── v4.2.3: Stronger contrast on summary details ──────────────── */
/* Legacy CSS sets .pkpro-sr span colors to dark gray (#777, #111). Override
   those with explicit span selectors since the earlier .pkpro-sr-only rules
   weren't specific enough to beat them visually. */
.pkpro-v4 [id^="pkpro-summary-"] .pkpro-sum-details .pkpro-sr span,
.pkpro-v4 [id^="pkpro-summary-"] .pkpro-sum-details .pkpro-sr-method span,
.pkpro-v4 [id^="pkpro-summary-"] .pkpro-sum-details .pkpro-sr-small span {
  color: rgba(255,255,255,0.92) !important;
}
.pkpro-v4 [id^="pkpro-summary-"] .pkpro-sum-details .pkpro-sr span:first-child,
.pkpro-v4 [id^="pkpro-summary-"] .pkpro-sum-details .pkpro-sr-method span:first-child,
.pkpro-v4 [id^="pkpro-summary-"] .pkpro-sum-details .pkpro-sr-small span:first-child {
  color: rgba(255,255,255,0.65) !important;
  font-weight: 500 !important;
}
.pkpro-v4 [id^="pkpro-summary-"] .pkpro-sum-details .pkpro-sr span:last-child,
.pkpro-v4 [id^="pkpro-summary-"] .pkpro-sum-details .pkpro-sr-method span:last-child,
.pkpro-v4 [id^="pkpro-summary-"] .pkpro-sum-details .pkpro-sr-small span:last-child {
  color: #fff !important;
  font-weight: 600 !important;
}
/* "Pris/st"-raden får extra vikt eftersom den är huvudsiffran */
.pkpro-v4 [id^="pkpro-summary-"] .pkpro-sum-details .pkpro-sr:last-child span:last-child {
  font-weight: 700 !important;
}

/* ─── v4.2.3: Below-minimum warning banner ──────────────────────── */
.pkpro-v4-min-warning {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 14px;
  background: #fff8e1;
  border: 1px solid #f2c84b;
  border-radius: 10px;
  margin: 0 0 12px;
  font-size: 13px;
  color: #5a4a00;
  line-height: 1.4;
}
.pkpro-v4-min-warning-icon {
  font-size: 16px;
  line-height: 1.2;
  flex-shrink: 0;
}
.pkpro-v4-min-warning strong {
  font-weight: 700;
  color: #3a3000;
}
.pkpro-v4-min-warning .pkpro-v4-min-short {
  margin-top: 2px;
  display: block;
  font-size: 12px;
}

/* ─── v4.5.2: Empty-state prompt (shown before any qty is filled) ──
 * Neutral tone (not a warning) — just guides the customer to start
 * making selections. Replaces the summary box entirely while qty = 0. */
.pkpro-v4-empty-prompt {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 14px 16px;
  background: #f6f6f6;
  border: 1px dashed #c8c8c8;
  border-radius: 10px;
  margin: 0 0 12px;
  font-size: 13px;
  color: #555;
  line-height: 1.4;
}
.pkpro-v4-empty-icon {
  font-size: 18px;
  line-height: 1.2;
  flex-shrink: 0;
}
.pkpro-v4-empty-prompt strong {
  font-weight: 700;
  color: #222;
  display: block;
}
.pkpro-v4-empty-prompt .pkpro-v4-empty-sub {
  margin-top: 2px;
  display: block;
  font-size: 12px;
  color: #777;
}

/* Disabled add-to-cart button looks distinct */
.pkpro-v4 [id^="pkpro-add-"]:disabled,
.pkpro-v4 [id^="pkpro-add-"].disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* ─── v4.2.5: Make entire dropzone reliably clickable ──────────────
 * The legacy <input type="file"> is visually hidden but must still
 * receive clicks. If the upload button is missing (external plugin
 * variation), clicking the dropzone background needs to trigger the
 * input. We overlay the input over the whole dropzone. */
.pkpro-v4 .pkpro-logo-dropzone {
  cursor: pointer !important;
}
.pkpro-v4 .pkpro-logo-dropzone input[type="file"] {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  opacity: 0 !important;
  cursor: pointer !important;
  z-index: 2;
}
/* The label sits BELOW the overlay input — input captures all clicks */
.pkpro-v4 .pkpro-logo-dropzone .pkpro-logo-label,
.pkpro-v4 .pkpro-logo-dropzone > label {
  pointer-events: none;
  z-index: 1;
  position: relative;
}
/* Selected-file state: disable the input overlay so the remove button works */
.pkpro-v4 .pkpro-logo-dropzone.has-file input[type="file"] {
  display: none !important;
}
.pkpro-v4 .pkpro-logo-dropzone.has-file {
  cursor: default !important;
}
.pkpro-v4 .pkpro-logo-dropzone.has-file .pkpro-logo-remove {
  pointer-events: auto !important;
  position: relative;
  z-index: 3;
}

/* ─── Vald färgs namn bredvid "Färg"-label ─────────────────────────── */
.pkpro-color-selected-name {
  font-weight: 400;
  color: var(--pk-v4-muted, #666);
  font-size: 13px;
  letter-spacing: 0.01em;
  margin-left: 10px;
  text-transform: none;
  opacity: 0.9;
}
.pkpro-color-selected-name:not(:empty)::before {
  content: '— ';
  opacity: 0.6;
  margin-right: 2px;
}
.pkpro-v4 .pkpro-color-selected-name {
  font-family: var(--pk-v4-font-body);
}
/* Dölj om tomt (ingen färg vald) */
.pkpro-color-selected-name:empty {
  display: none;
}

/* ─── Vald "extra"-fält-namn bredvid dess label (t.ex. Trådfärg) ────── */
.pkpro-extra-selected-name {
  font-weight: 400;
  color: var(--pk-v4-muted, #666);
  font-size: 13px;
  letter-spacing: 0.01em;
  margin-left: 10px;
  text-transform: none;
  opacity: 0.9;
}
.pkpro-extra-selected-name:not(:empty)::before {
  content: '— ';
  opacity: 0.6;
  margin-right: 2px;
}
.pkpro-v4 .pkpro-extra-selected-name {
  font-family: var(--pk-v4-font-body);
}
.pkpro-extra-selected-name:empty {
  display: none;
}

/* ─── Tooltips för förädling-knappar och brodyrkort-checkbox ──────── */

/* NEW: Rich tooltip as DOM child (supports image + text). Activates when the
   button has .pkpro-has-tooltip and contains a .pkpro-tooltip-content span.
   The element is rendered server-side; we just position + reveal here. */
.pkpro-method-btn.pkpro-has-tooltip {
  position: relative;
  overflow: visible !important;
}
.pkpro-tooltip-content {
  position: absolute;
  bottom: calc(100% + 10px);
  left: 50%;
  transform: translateX(-50%) translateY(4px);
  background: var(--pk-v4-ink, #1a1a1a);
  color: #fff;
  padding: 10px 12px;
  border-radius: 8px;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0;
  text-transform: none;
  white-space: normal;
  width: max-content;
  max-width: 260px;
  text-align: center;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.15s ease, transform 0.15s ease, visibility 0s linear 0.15s;
  z-index: 1000;
  box-shadow: 0 4px 14px rgba(0,0,0,0.18);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.pkpro-tooltip-img {
  display: block;
  max-width: 100%;
  max-height: 140px;
  width: auto;
  height: auto;
  border-radius: 6px;
  object-fit: contain;
}
.pkpro-tooltip-text {
  display: block;
  font-size: 12px;
  /* Typography is overridden by Elementor's typography control via
     {{WRAPPER}} .pkpro-tooltip-content .pkpro-tooltip-text */
}
.pkpro-method-btn.pkpro-has-tooltip:hover .pkpro-tooltip-content,
.pkpro-method-btn.pkpro-has-tooltip:focus-visible .pkpro-tooltip-content {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
  transition: opacity 0.15s ease, transform 0.15s ease, visibility 0s;
}

/* LEGACY: ::after-style tooltip — still used by the brodyrkort checkbox and
   any method button without per-method tooltip data. Kept for backwards
   compatibility with the data-tooltip attribute. */
.pkpro-method-btn[data-tooltip],
.pkpro-existing-card-label[data-tooltip] {
  position: relative;
  overflow: visible !important;
}
.pkpro-method-btn[data-tooltip]::after,
.pkpro-existing-card-label[data-tooltip]::after {
  content: attr(data-tooltip) !important;
  display: block !important;
  position: absolute !important;
  bottom: calc(100% + 10px) !important;
  left: 50% !important;
  transform: translateX(-50%) translateY(4px) !important;
  background: var(--pk-v4-ink, #1a1a1a) !important;
  color: #fff !important;
  padding: 8px 12px !important;
  border-radius: 8px !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  line-height: 1.4 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  white-space: normal !important;
  width: max-content !important;
  max-width: 260px !important;
  text-align: center !important;
  pointer-events: none !important;
  opacity: 0 !important;
  visibility: hidden;
  transition: opacity 0.15s ease, transform 0.15s ease, visibility 0s linear 0.15s !important;
  z-index: 1000 !important;
  box-shadow: 0 4px 14px rgba(0,0,0,0.18) !important;
}
.pkpro-method-btn[data-tooltip]:hover::after,
.pkpro-method-btn[data-tooltip]:focus-visible::after,
.pkpro-existing-card-label[data-tooltip]:hover::after,
.pkpro-existing-card-label[data-tooltip]:focus-within::after {
  opacity: 1 !important;
  visibility: visible;
  transform: translateX(-50%) translateY(0) !important;
  transition: opacity 0.15s ease, transform 0.15s ease, visibility 0s !important;
}
/* Checkbox-label är full bredd — flytta tooltip så den inte hamnar långt åt ena sidan */
.pkpro-existing-card-label[data-tooltip]::after {
  left: 20px !important;
  transform: translateY(4px) !important;
}
.pkpro-existing-card-label[data-tooltip]:hover::after,
.pkpro-existing-card-label[data-tooltip]:focus-within::after {
  transform: translateY(0) !important;
}

/* Mobil: klämm ihop tooltip så den ryms */
@media (max-width: 600px) {
  .pkpro-method-btn[data-tooltip]::after,
  .pkpro-existing-card-label[data-tooltip]::after {
    max-width: 220px !important;
    font-size: 11.5px !important;
  }
}

/* ─── Schablon-dropdown (Embossing storlek etc.) — matchar tryck-blocket ──────── */
.pkpro-v4 .pkpro-schablon-dropdown-wrap {
  background: var(--pk-v4-line-soft) !important;
  border: 0.5px solid var(--pk-v4-line) !important;
  border-radius: var(--pk-v4-radius) !important;
  padding: 12px 14px !important;
}
.pkpro-v4 .pkpro-schablon-dropdown-label {
  font-size: 11px !important;
  color: var(--pk-v4-muted) !important;
  margin-bottom: 6px !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  font-family: var(--pk-v4-font-body) !important;
}
.pkpro-v4 .pkpro-schablon-select {
  appearance: none !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  width: 100% !important;
  background: var(--pk-v4-ink) !important;
  border: 0.5px solid var(--pk-v4-ink) !important;
  border-radius: 999px !important;
  padding: 9px 32px 9px 16px !important;
  font-size: 13px !important;
  font-family: var(--pk-v4-font-body) !important;
  color: #fff !important;
  font-weight: 500 !important;
  cursor: pointer !important;
  transition: border-color 0.15s, background 0.15s, color 0.15s !important;
  line-height: 1.2 !important;
  box-sizing: border-box !important;
  text-overflow: ellipsis !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path d='M1 1l4 4 4-4' stroke='%23ffffff' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>") !important;
  background-repeat: no-repeat !important;
  background-position: right 14px center !important;
  background-size: 10px 6px !important;
}
.pkpro-v4 .pkpro-schablon-select:focus {
  outline: none !important;
  box-shadow: 0 0 0 2px rgba(0,0,0,0.12) !important;
}

/* ── W/L tvåstegsväljare för byxor/shorts ────────────────── */
.pkpro-v4 .pkpro-size-qty-grid.pkpro-v4-wl-hidden {
  display: none !important;
}
.pkpro-v4 .pkpro-v4-wl-picker {
  margin-top: 8px;
}
.pkpro-v4 .pkpro-v4-wl-row {
  margin-bottom: 12px;
}
.pkpro-v4 .pkpro-v4-wl-label {
  font-size: 13px;
  font-weight: 500;
  color: #444;
  margin-bottom: 6px;
}
.pkpro-v4 .pkpro-v4-wl-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.pkpro-v4 .pkpro-v4-wl-btn {
  padding: 8px 14px !important;
  background: #fff !important;
  color: #1a1a1a !important;
  border: 1px solid rgba(0,0,0,0.15) !important;
  border-radius: 999px !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  cursor: pointer !important;
  transition: background 0.15s, border-color 0.15s, color 0.15s !important;
  font-family: inherit !important;
  line-height: 1.2 !important;
}
.pkpro-v4 .pkpro-v4-wl-btn:hover {
  border-color: rgba(0,0,0,0.4) !important;
}
.pkpro-v4 .pkpro-v4-wl-btn.active {
  background: #1a1a1a !important;
  color: #fff !important;
  border-color: #1a1a1a !important;
}
.pkpro-v4 .pkpro-v4-wl-selected {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  background: #fff;
  border: 1px solid rgba(0,0,0,0.15);
  border-radius: 8px;
  padding: 12px 16px;
  margin-top: 4px;
}
.pkpro-v4 .pkpro-v4-wl-selected-label {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.pkpro-v4 .pkpro-v4-wl-selected-text {
  font-size: 12px;
  color: #888;
}
.pkpro-v4 .pkpro-v4-wl-selected-value {
  font-size: 16px;
  font-weight: 500;
  color: #1a1a1a;
}
.pkpro-v4 .pkpro-v4-wl-stepper {
  display: flex;
  align-items: center;
  gap: 12px;
}
.pkpro-v4 .pkpro-v4-wl-minus,
.pkpro-v4 .pkpro-v4-wl-plus {
  width: 32px !important;
  height: 32px !important;
  border-radius: 50% !important;
  background: #fff !important;
  border: 1px solid rgba(0,0,0,0.2) !important;
  font-size: 16px !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: #1a1a1a !important;
  font-family: inherit !important;
  padding: 0 !important;
  line-height: 1 !important;
}
.pkpro-v4 .pkpro-v4-wl-minus:hover,
.pkpro-v4 .pkpro-v4-wl-plus:hover {
  border-color: rgba(0,0,0,0.5) !important;
}
.pkpro-v4 .pkpro-v4-wl-qty {
  font-size: 16px;
  font-weight: 500;
  min-width: 24px;
  text-align: center;
  color: #1a1a1a;
}
.pkpro-v4 .pkpro-v4-wl-summary {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid rgba(0,0,0,0.08);
}
.pkpro-v4 .pkpro-v4-wl-summary-title {
  font-size: 12px;
  color: #888;
  margin-bottom: 8px;
}
.pkpro-v4 .pkpro-v4-wl-summary-items {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.pkpro-v4 .pkpro-v4-wl-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 4px 4px 12px;
  background: #f0ede2;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 500;
  color: #1a1a1a;
  cursor: pointer;
}
.pkpro-v4 .pkpro-v4-wl-chip-remove {
  background: rgba(0,0,0,0.08) !important;
  border: none !important;
  border-radius: 50% !important;
  width: 20px !important;
  height: 20px !important;
  font-size: 14px !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: #1a1a1a !important;
  padding: 0 !important;
  line-height: 1 !important;
  font-family: inherit !important;
}
.pkpro-v4 .pkpro-v4-wl-chip-remove:hover {
  background: rgba(0,0,0,0.15) !important;
}

/* ─── Tillbehör-sektion (addons) ─────────────────────────────────────
   Multi-select list, rendered below the main förädling chips.
   Each row is a label wrapping an invisible checkbox + name + price hint.
   Selected rows highlight; unselected stay neutral. */
.pkpro-field-addons .pkpro-addons-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.pkpro-addon-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  background: #f5f5f3;
  border: 1px solid transparent;
  border-radius: 999px;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease;
}
.pkpro-addon-row:hover {
  background: #ececea;
}
.pkpro-addon-row.is-selected {
  background: var(--pk-v4-ink, #1a1a1a);
  color: #fff;
  border-color: var(--pk-v4-ink, #1a1a1a);
}
.pkpro-addon-row.is-selected .pkpro-addon-price {
  color: rgba(255,255,255,0.7);
}
.pkpro-addon-check {
  width: 18px;
  height: 18px;
  margin: 0;
  accent-color: var(--pk-v4-ink, #1a1a1a);
  flex-shrink: 0;
}
.pkpro-addon-name {
  flex: 1;
  font-size: 14px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.pkpro-addon-price {
  font-size: 12px;
  color: #777;
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
}

/* ─── Tillbehör accordion (details/summary) ─────────────────────────
   Renar UX:n genom att kollapsa tillvalslistan tills kunden vill se den.
   Använder native <details> så den fungerar utan JS. */
.pkpro-addons-details {
  background: #f5f5f3;
  border-radius: var(--border-radius-md, 8px);
  padding: 0;
  overflow: hidden;
}
.pkpro-addons-details[open] {
  background: transparent;
}
.pkpro-addons-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 18px;
  cursor: pointer;
  list-style: none;
  user-select: none;
  gap: 12px;
}
.pkpro-addons-summary::-webkit-details-marker { display: none; }
.pkpro-addons-summary::after {
  content: "▼";
  font-size: 11px;
  color: #888;
  transition: transform 0.2s ease;
  flex-shrink: 0;
}
.pkpro-addons-details[open] .pkpro-addons-summary::after {
  transform: rotate(180deg);
}
.pkpro-addons-summary-left {
  display: flex;
  align-items: baseline;
  gap: 8px;
  flex: 1;
  min-width: 0;
}
.pkpro-addons-summary-title {
  font-size: 14px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.pkpro-addons-summary-hint {
  font-size: 12px;
  color: #888;
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
}
.pkpro-addons-summary-count {
  font-size: 12px;
  color: #666;
  flex-shrink: 0;
}
.pkpro-addons-summary-count.has-selected {
  color: var(--pk-v4-ink, #1a1a1a);
  font-weight: 500;
}
.pkpro-addons-details[open] .pkpro-addons-list {
  padding: 4px 0 0 0;
}

/* ─── Method style: list ────────────────────────────────────────────
   Alternative to the default chip-strip — renders each förädling as a
   full-width row (radio-style "välj 1"). Same visual treatment as the
   tillbehör (addons) accordion below, so the two sections feel like the
   same widget family. Activated by data-method-style="list" on the
   .pkpro-method-chips container (set by an Elementor widget setting). */
.pkpro-method-chips[data-method-style="list"] {
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
  flex-wrap: nowrap !important;
}
.pkpro-method-chips[data-method-style="list"] .pkpro-chip {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  width: 100% !important;
  padding: 10px 14px !important;
  background: #f5f5f3 !important;
  border: 1px solid transparent !important;
  border-radius: 999px !important;
  cursor: pointer !important;
  text-align: left !important;
  justify-content: flex-start !important;
  font-family: var(--pk-v4-font-body) !important;
}
.pkpro-method-chips[data-method-style="list"] .pkpro-chip:hover {
  background: #ececea !important;
}
/* Radio-style indicator on the left of each row */
.pkpro-method-chips[data-method-style="list"] .pkpro-chip::before {
  content: "";
  display: inline-block;
  width: 18px;
  height: 18px;
  border: 2px solid #c4c4c0;
  border-radius: 50%;
  background: #fff;
  flex-shrink: 0;
  box-sizing: border-box;
  transition: border-color 0.15s ease, background 0.15s ease;
}
.pkpro-method-chips[data-method-style="list"] .pkpro-chip.active {
  background: var(--pk-v4-ink, #1a1a1a) !important;
  color: #fff !important;
  border-color: var(--pk-v4-ink, #1a1a1a) !important;
}
.pkpro-method-chips[data-method-style="list"] .pkpro-chip.active::before {
  border-color: #fff;
  background: var(--pk-v4-ink, #1a1a1a);
  box-shadow: inset 0 0 0 3px #fff, inset 0 0 0 5px var(--pk-v4-ink, #1a1a1a);
}
.pkpro-method-chips[data-method-style="list"] .pkpro-method-name {
  flex: 1 !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
}
/* Tooltip pill on list rows — make it position correctly */
.pkpro-method-chips[data-method-style="list"] .pkpro-chip.pkpro-has-tooltip {
  position: relative;
}
/* Keep tooltip text element behavior — but it pops above the row, not the chip */

/* ─── Harmonize addon row font to match chips ─────────────────────── */
.pkpro-addon-name,
.pkpro-addons-summary-title {
  font-family: var(--pk-v4-font-body, inherit) !important;
}
.pkpro-addon-price,
.pkpro-addons-summary-hint,
.pkpro-addons-summary-count {
  font-family: var(--pk-v4-font-body, inherit) !important;
}

/* ─── Method accordion (used when method_style = list) ────────────
   Same look as tillbehör so the two sections feel like siblings. */
.pkpro-method-accordion {
  background: #f5f5f3;
  border-radius: var(--border-radius-md, 8px);
  padding: 0;
  overflow: hidden;
  margin-top: 8px;
}
.pkpro-method-accordion[open] {
  background: transparent;
}
.pkpro-method-accordion-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 18px;
  cursor: pointer;
  list-style: none;
  user-select: none;
  gap: 12px;
}
.pkpro-method-accordion-summary::-webkit-details-marker { display: none; }
.pkpro-method-accordion-summary::after {
  content: "▼";
  font-size: 11px;
  color: #888;
  transition: transform 0.2s ease;
  flex-shrink: 0;
}
.pkpro-method-accordion[open] .pkpro-method-accordion-summary::after {
  transform: rotate(180deg);
}
.pkpro-method-accordion-left {
  display: flex;
  align-items: baseline;
  gap: 8px;
  flex: 1;
  min-width: 0;
  font-family: var(--pk-v4-font-body, inherit);
}
.pkpro-method-accordion-title {
  font-size: 14px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.pkpro-method-accordion-hint {
  font-size: 12px;
  color: #888;
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
}
.pkpro-method-accordion-selected {
  font-size: 12px;
  color: #666;
  flex-shrink: 0;
  font-family: var(--pk-v4-font-body, inherit);
}
.pkpro-method-accordion-selected.has-selected {
  color: var(--pk-v4-ink, #1a1a1a);
  font-weight: 500;
}
.pkpro-method-accordion[open] .pkpro-method-chips {
  padding: 4px 0 0 0;
}

/* ─── Multi-position grid (specialmossor) ───────────────────────────
   2x2 grid where each card represents a position on the cap (front, left,
   right, back). Click → opens inline method picker. Filled cards show the
   chosen method + price; empty ones show a dashed border with "+ Lägg till
   förädling" placeholder. Same visual language as addons/list method. */
.pkpro-positions-field {
  margin-bottom: 14px;
}
.pkpro-positions-hint {
  font-size: 12px;
  font-weight: 400;
  color: #888;
  text-transform: none;
  letter-spacing: 0;
  margin-left: 6px;
}
.pkpro-positions-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 6px;
}
.pkpro-position-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  padding: 14px 16px;
  background: #f5f5f3;
  border: 1px solid transparent;
  border-radius: 12px;
  cursor: pointer;
  text-align: left;
  width: 100%;
  font-family: var(--pk-v4-font-body);
  transition: background 0.15s ease, border-color 0.15s ease;
}
.pkpro-position-card.empty {
  background: transparent;
  border: 1px dashed #c4c4c0;
}
.pkpro-position-card.empty:hover {
  border-color: var(--pk-v4-ink, #1a1a1a);
  background: rgba(0,0,0,0.02);
}
.pkpro-position-card.filled {
  background: var(--pk-v4-ink, #1a1a1a);
  color: #fff;
  border-color: var(--pk-v4-ink, #1a1a1a);
}
.pkpro-position-card.filled:hover {
  background: #2a2a2a;
}
.pkpro-position-label {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  color: #888;
  font-weight: 500;
}
.pkpro-position-card.filled .pkpro-position-label {
  color: rgba(255,255,255,0.6);
}
.pkpro-position-value {
  font-size: 14px;
  font-weight: 500;
  margin-top: 4px;
}
.pkpro-position-card.empty .pkpro-position-value {
  color: #aaa;
  font-style: italic;
  font-weight: 400;
}
.pkpro-position-card.filled .pkpro-position-remove {
  position: absolute;
  top: 8px;
  right: 10px;
  font-size: 14px;
  color: rgba(255,255,255,0.6);
  cursor: pointer;
}
.pkpro-position-card { position: relative; }
.pkpro-position-price {
  font-size: 11px;
  margin-top: 4px;
  color: rgba(255,255,255,0.7);
}
.pkpro-position-card.empty .pkpro-position-price {
  display: none;
}

/* ─── Method picker (inline modal for picking method per position) ──── */
.pkpro-position-picker {
  margin-top: 10px;
  background: #fff;
  border: 1px solid #e5e5e5;
  border-radius: 12px;
  padding: 0;
  overflow: hidden;
}
.pkpro-position-picker-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  background: #f5f5f3;
  border-bottom: 1px solid #e5e5e5;
}
.pkpro-position-picker-title {
  font-size: 13px;
  font-weight: 500;
  font-family: var(--pk-v4-font-body);
}
.pkpro-position-picker-pos-name {
  text-transform: lowercase;
  font-weight: 600;
}
.pkpro-position-picker-close {
  background: transparent;
  border: 0;
  font-size: 22px;
  line-height: 1;
  color: #888;
  cursor: pointer;
  padding: 4px 8px;
}
.pkpro-position-picker-close:hover {
  color: #1a1a1a;
}
.pkpro-position-picker-list {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 10px;
  max-height: 420px;
  overflow-y: auto;
}
.pkpro-position-picker-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  background: #f5f5f3;
  border-radius: 999px;
  cursor: pointer;
  font-family: var(--pk-v4-font-body);
}
.pkpro-position-picker-row:hover {
  background: #ececea;
}
.pkpro-position-picker-row.active {
  background: var(--pk-v4-ink, #1a1a1a);
  color: #fff;
}
.pkpro-position-picker-radio {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 2px solid #c4c4c0;
  background: #fff;
  flex-shrink: 0;
  transition: border-color 0.15s ease, background 0.15s ease;
}
.pkpro-position-picker-row.active .pkpro-position-picker-radio {
  border-color: #fff;
  background: var(--pk-v4-ink, #1a1a1a);
  box-shadow: inset 0 0 0 3px #fff, inset 0 0 0 5px var(--pk-v4-ink, #1a1a1a);
}
.pkpro-position-picker-name {
  flex: 1;
  font-size: 14px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.pkpro-position-picker-price {
  font-size: 12px;
  color: #777;
}
.pkpro-position-picker-row.active .pkpro-position-picker-price {
  color: rgba(255,255,255,0.7);
}

/* ─── Förädling + Tillbehör accordions: match color-dropdown look ───
   Override the bubble-style accordion appearance so both look like the
   color-dropdown trigger (white box, 1.5px border, rounded corners, ▼ arrow
   on the right). Same visual language across all three selectors → less
   cognitive load for the customer.

   Wraps both .pkpro-method-accordion AND .pkpro-addons-details with a
   shared selector list. Targets <summary> directly so the entire row is
   the clickable surface (default <details> behavior). */
.pkpro-v4 .pkpro-method-accordion,
.pkpro-v4 .pkpro-addons-details {
  background: transparent !important;
  border-radius: 0 !important;
  overflow: visible !important;
  padding: 0 !important;
}
.pkpro-v4 .pkpro-method-accordion-summary,
.pkpro-v4 .pkpro-addons-summary {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 10px 14px !important;
  border: 1.5px solid #e0e0e0 !important;
  border-radius: 8px !important;
  background: #fff !important;
  font-size: 13px !important;
  min-height: 42px !important;
  transition: border-color 0.15s !important;
}
.pkpro-v4 .pkpro-method-accordion-summary:hover,
.pkpro-v4 .pkpro-addons-summary:hover {
  border-color: #aaa !important;
}
/* Open state — match color-trigger.open which removes bottom-radius. */
.pkpro-v4 .pkpro-method-accordion[open] > .pkpro-method-accordion-summary,
.pkpro-v4 .pkpro-addons-details[open] > .pkpro-addons-summary {
  border-color: #888 !important;
  border-radius: 8px 8px 0 0 !important;
  border-bottom: 0 !important;
}
/* Arrow styling (▼) — kept on summary's ::after via existing rules */
.pkpro-v4 .pkpro-method-accordion-summary::after,
.pkpro-v4 .pkpro-addons-summary::after {
  font-size: 10px !important;
  color: #888 !important;
}
/* Title harmonized with color-trigger-label */
.pkpro-v4 .pkpro-method-accordion-title,
.pkpro-v4 .pkpro-addons-summary-title {
  font-size: 13px !important;
  font-weight: 600 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}
.pkpro-v4 .pkpro-method-accordion-hint,
.pkpro-v4 .pkpro-addons-summary-hint {
  color: #888 !important;
  font-weight: 400 !important;
}
.pkpro-v4 .pkpro-method-accordion-selected,
.pkpro-v4 .pkpro-addons-summary-count {
  font-size: 13px !important;
  color: #888 !important;
}
.pkpro-v4 .pkpro-method-accordion-selected.has-selected,
.pkpro-v4 .pkpro-addons-summary-count.has-selected {
  color: var(--pk-v4-ink, #1a1a1a) !important;
  font-weight: 600 !important;
}

/* Body (expanded content) — white box with bottom-rounded border, matches
   .pkpro-color-options style. Positioning kept relative (no overlap on
   product image) — closest practical equivalent to position:absolute since
   the rest of the form already uses inline flow. */
.pkpro-v4 .pkpro-method-accordion[open] > .pkpro-method-chips,
.pkpro-v4 .pkpro-addons-details[open] > .pkpro-addons-list {
  border: 1.5px solid #888 !important;
  border-top: 0 !important;
  border-radius: 0 0 8px 8px !important;
  background: #fff !important;
  padding: 8px !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.08) !important;
  margin-top: 0 !important;
}

/* Inside the open accordion: tighten the row spacing so the list reads as
   a unified dropdown rather than separate pills. */
.pkpro-v4 .pkpro-method-accordion[open] .pkpro-chip,
.pkpro-v4 .pkpro-addons-details[open] .pkpro-addon-row {
  border-radius: 6px !important;
  background: transparent !important;
  padding: 8px 12px !important;
  border: 0 !important;
}
.pkpro-v4 .pkpro-method-accordion[open] .pkpro-chip:hover,
.pkpro-v4 .pkpro-addons-details[open] .pkpro-addon-row:hover {
  background: #f5f5f5 !important;
}
.pkpro-v4 .pkpro-method-accordion[open] .pkpro-chip.active,
.pkpro-v4 .pkpro-addons-details[open] .pkpro-addon-row.is-selected {
  background: #f0f0f0 !important;
  color: var(--pk-v4-ink, #1a1a1a) !important;
  font-weight: 600 !important;
}
.pkpro-v4 .pkpro-method-accordion[open] .pkpro-chip.active::before {
  /* hide radio dot inside dropdown-styled view — selection indicated by bg */
  display: none !important;
}

/* ─── Final harmonization of dropdown rows with color-dropdown look ───
   Override the "all caps + bold" pill styling inside open accordions so the
   text reads like a normal dropdown option ("Black", "Vanlig brodyr") rather
   than a chip. Matches .pkpro-color-option exactly. */
.pkpro-v4 .pkpro-method-accordion[open] .pkpro-method-name,
.pkpro-v4 .pkpro-addons-details[open] .pkpro-addon-name {
  font-size: 13px !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  font-weight: 400 !important;
}
.pkpro-v4 .pkpro-method-accordion[open] .pkpro-chip.active .pkpro-method-name,
.pkpro-v4 .pkpro-addons-details[open] .pkpro-addon-row.is-selected .pkpro-addon-name {
  font-weight: 600 !important;
}
/* Tighter padding to match color-option exactly (8px 14px) */
.pkpro-v4 .pkpro-method-accordion[open] .pkpro-chip,
.pkpro-v4 .pkpro-addons-details[open] .pkpro-addon-row {
  padding: 8px 14px !important;
  border-radius: 0 !important;
  margin: 0 !important;
}
/* Last item: round bottom corners (same as .pkpro-color-option:last-child) */
.pkpro-v4 .pkpro-method-accordion[open] .pkpro-method-chips > .pkpro-chip:last-child,
.pkpro-v4 .pkpro-addons-details[open] .pkpro-addons-list > .pkpro-addon-row:last-child {
  border-radius: 0 0 6px 6px !important;
}
/* Remove the radio dot ::before on method-list rows when inside open accordion
   — selection is shown via background only, just like color list. Also hide
   the addon checkbox visually but keep it semantic for keyboard users. */
.pkpro-v4 .pkpro-method-accordion[open] .pkpro-chip::before {
  display: none !important;
}
.pkpro-v4 .pkpro-addons-details[open] .pkpro-addon-check {
  /* Visual-only hide; still in DOM and clickable via label */
  position: absolute !important;
  opacity: 0 !important;
  pointer-events: none !important;
  width: 0 !important;
  height: 0 !important;
}
/* List container — remove inner padding so rows hit edges like color-options */
.pkpro-v4 .pkpro-method-accordion[open] > .pkpro-method-chips,
.pkpro-v4 .pkpro-addons-details[open] > .pkpro-addons-list {
  padding: 4px 0 !important;
  gap: 0 !important;
}

/* ─── Position-picker: match color-dropdown style ────────────────────
   The picker is the box that opens under the 4 position cards. Make its
   header look like a dropdown header and its options look like the same
   .pkpro-color-option rows used elsewhere — keeps the visual language
   unified across all selectors on the page. */
.pkpro-v4 .pkpro-position-picker {
  border: 1.5px solid #888 !important;
  border-radius: 8px !important;
  background: #fff !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.08) !important;
  overflow: hidden !important;
}
.pkpro-v4 .pkpro-position-picker-header {
  background: #fff !important;
  border-bottom: 1px solid #e5e5e5 !important;
  padding: 10px 14px !important;
}
.pkpro-v4 .pkpro-position-picker-title {
  font-size: 13px !important;
  font-weight: 600 !important;
}
.pkpro-v4 .pkpro-position-picker-pos-name {
  font-weight: 400 !important;
  color: #888 !important;
}
.pkpro-v4 .pkpro-position-picker-close {
  background: transparent !important;
  color: #888 !important;
  font-size: 20px !important;
  padding: 0 6px !important;
  border-radius: 4px !important;
}
.pkpro-v4 .pkpro-position-picker-close:hover {
  background: #f5f5f5 !important;
  color: #1a1a1a !important;
}
.pkpro-v4 .pkpro-position-picker-list {
  padding: 4px 0 !important;
  gap: 0 !important;
  background: #fff !important;
}
.pkpro-v4 .pkpro-position-picker-row {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 8px 14px !important;
  background: transparent !important;
  border-radius: 0 !important;
  cursor: pointer !important;
  transition: background 0.1s !important;
}
.pkpro-v4 .pkpro-position-picker-row:hover {
  background: #f5f5f5 !important;
}
.pkpro-v4 .pkpro-position-picker-row.active {
  background: #f0f0f0 !important;
  color: var(--pk-v4-ink, #1a1a1a) !important;
}
.pkpro-v4 .pkpro-position-picker-radio {
  display: none !important;
}
.pkpro-v4 .pkpro-position-picker-name {
  flex: 1 !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}
.pkpro-v4 .pkpro-position-picker-row.active .pkpro-position-picker-name {
  font-weight: 600 !important;
}
.pkpro-v4 .pkpro-position-picker-price {
  font-size: 12px !important;
  color: #777 !important;
  text-transform: none !important;
}
.pkpro-v4 .pkpro-position-picker-row.active .pkpro-position-picker-price {
  color: #555 !important;
}

/* ─── Position-cards: cleaner harmonization with the rest ────────────
   Keep the empty-state dashed style + filled-state dark background, but
   make text styling match the new dropdown look (no all-caps, sane sizes). */
.pkpro-v4 .pkpro-position-label {
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.5px !important;
}
.pkpro-v4 .pkpro-position-value {
  font-size: 14px !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}

/* ─── Förädling-rubrik: mirror "Färg — Pepper green" pattern ──────
   The label above the dropdown box shows the field name + an em-dash + the
   currently-selected method, same as color. Empty/default state shows
   "Förädling — Utan förädling" greyed out, just like color's empty state. */
.pkpro-v4 .pkpro-method-selected-name {
  font-weight: 400 !important;
  color: var(--color-text-secondary, #888) !important;
  margin-left: 6px !important;
}
.pkpro-v4 .pkpro-method-selected-name.has-selected {
  color: var(--color-text-secondary, #888) !important;
}

/* New cleaner summary layout: just value + arrow (no rubrik inside) */
.pkpro-v4 .pkpro-method-accordion-value {
  flex: 1 !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  color: var(--pk-v4-ink, #1a1a1a) !important;
}
.pkpro-v4 .pkpro-method-accordion-arrow {
  font-size: 10px !important;
  color: #888 !important;
  flex-shrink: 0 !important;
  transition: transform 0.2s !important;
}
.pkpro-v4 .pkpro-method-accordion[open] .pkpro-method-accordion-arrow {
  transform: rotate(180deg) !important;
}

/* Hide the existing ::after pseudo arrow (set earlier) — replaced by the
   real <span> arrow above, which we can target precisely. */
.pkpro-v4 .pkpro-method-accordion-summary::after {
  display: none !important;
}

/* ─── Pixel-perfect alignment with color-dropdown ───────────────────
   Final passes to match .pkpro-color-trigger / .pkpro-color-options exactly.
   Targets only the open accordion bodies + their rows. */

/* Drop-shadow strength matches color-options (.1 not .08) */
.pkpro-v4 .pkpro-method-accordion[open] > .pkpro-method-chips,
.pkpro-v4 .pkpro-addons-details[open] > .pkpro-addons-list {
  box-shadow: 0 4px 12px rgba(0,0,0,0.1) !important;
  padding: 0 !important;
  /* Match color-options: max-height + scroll for long lists */
  max-height: 240px !important;
  overflow-y: auto !important;
}

/* Row height: color-options rely on the 18px swatch dot to push padded
   height up to ~34px. Förädling/Tillbehör rows have no dot — give them an
   equivalent min-height so all three dropdowns feel the same. */
.pkpro-v4 .pkpro-method-accordion[open] .pkpro-chip,
.pkpro-v4 .pkpro-addons-details[open] .pkpro-addon-row {
  min-height: 34px !important;
  padding: 8px 14px !important;
  border-radius: 0 !important;
  margin: 0 !important;
}

/* Last row corner radius — color-options uses 0 0 8px 8px to fit the
   container's lower curve. */
.pkpro-v4 .pkpro-method-accordion[open] .pkpro-method-chips > .pkpro-chip:last-child,
.pkpro-v4 .pkpro-addons-details[open] .pkpro-addons-list > .pkpro-addon-row:last-child {
  border-radius: 0 0 8px 8px !important;
}

/* ─── Strip native <summary> styling so it looks like color-trigger <div> ──
   <details>/<summary> ships with browser default styling that <div> doesn't:
   - A list-style marker (▶ triangle) on the left
   - Focus outline (often a thick black/blue ring) when clicked
   - cursor: default
   These create the visual "tjock svart ram" the user sees vs the clean
   color-trigger. We strip all of it. */
.pkpro-v4 .pkpro-method-accordion-summary,
.pkpro-v4 .pkpro-addons-summary {
  /* Remove browser default triangle marker (Firefox + Chrome) */
  list-style: none !important;
  /* Remove the dotted/blue focus outline that <summary> shows on focus */
  outline: none !important;
  -webkit-tap-highlight-color: transparent !important;
  cursor: pointer !important;
  /* Ensure pixel-identical height with color-trigger (42px) */
  box-sizing: border-box !important;
  min-height: 42px !important;
}
/* Webkit (Chrome, Safari) — remove the disclosure triangle */
.pkpro-v4 .pkpro-method-accordion-summary::-webkit-details-marker,
.pkpro-v4 .pkpro-addons-summary::-webkit-details-marker {
  display: none !important;
}
/* Strip any focus visibility, since the dropdown-open state IS the feedback */
.pkpro-v4 .pkpro-method-accordion-summary:focus,
.pkpro-v4 .pkpro-method-accordion-summary:focus-visible,
.pkpro-v4 .pkpro-addons-summary:focus,
.pkpro-v4 .pkpro-addons-summary:focus-visible {
  outline: none !important;
  box-shadow: none !important;
}

/* Also strip outline on the parent <details> element which some browsers
   focus-ring instead of summary. */
.pkpro-v4 .pkpro-method-accordion:focus,
.pkpro-v4 .pkpro-method-accordion:focus-within,
.pkpro-v4 .pkpro-addons-details:focus,
.pkpro-v4 .pkpro-addons-details:focus-within {
  outline: none !important;
}

/* ─── Width + no-shadow overrides per user request ──────────────────
   1) Make the trigger boxes AND open lists 100% wide of their parent so
      they don't appear narrower than the Färg dropdown.
   2) Remove ALL shadows on Förädling and Tillbehör accordions — open state
      should be flat (no drop shadow under the expanded list). */

/* Force full-width on the <details> wrapper, <summary> trigger, and the
   expanded content. box-sizing ensures border + padding don't shrink them
   inside their grid/flex parent. */
.pkpro-v4 .pkpro-method-accordion,
.pkpro-v4 .pkpro-addons-details {
  display: block !important;
  width: 100% !important;
  box-sizing: border-box !important;
}
.pkpro-v4 .pkpro-method-accordion-summary,
.pkpro-v4 .pkpro-addons-summary {
  width: 100% !important;
  box-sizing: border-box !important;
}
.pkpro-v4 .pkpro-method-accordion[open] > .pkpro-method-chips,
.pkpro-v4 .pkpro-addons-details[open] > .pkpro-addons-list {
  width: 100% !important;
  box-sizing: border-box !important;
}

/* Remove ALL shadows on Förädling + Tillbehör accordions. Overrides the
   earlier "match color drop-shadow" rules in this same file. */
.pkpro-v4 .pkpro-method-accordion,
.pkpro-v4 .pkpro-method-accordion[open],
.pkpro-v4 .pkpro-method-accordion-summary,
.pkpro-v4 .pkpro-method-accordion[open] > .pkpro-method-chips,
.pkpro-v4 .pkpro-addons-details,
.pkpro-v4 .pkpro-addons-details[open],
.pkpro-v4 .pkpro-addons-summary,
.pkpro-v4 .pkpro-addons-details[open] > .pkpro-addons-list {
  box-shadow: none !important;
}

/* ─── Strip the .pkpro-chip.active drop-shadow inside open accordions ──
   priskalkyl.css line ~217 sets `box-shadow: 0 2px 6px rgba(0,0,0,.25)` on
   `.pkpro-chip.active` — designed for the OLD chip-style method buttons where
   the active state needed a slight lift. Inside the new dropdown-list style
   we want NO shadow on rows; selection is shown by light-grey background +
   bold text (same as color-options.selected). Override with high specificity
   and !important to win over the priskalkyl.css declaration. */
.pkpro-v4 .pkpro-method-accordion[open] .pkpro-chip.active,
.pkpro-v4 .pkpro-method-accordion .pkpro-chip.active,
.pkpro-v4 .pkpro-addons-details[open] .pkpro-addon-row.is-selected,
.pkpro-v4 .pkpro-addons-details .pkpro-addon-row.is-selected,
.pkpro-v4 .pkpro-method-accordion .pkpro-chip,
.pkpro-v4 .pkpro-addons-details .pkpro-addon-row {
  box-shadow: none !important;
}

/* ─── Tooltip placement override for dropdown-mode rows ──────────────
   Default tooltip sits above the chip (bottom: 100% + 10px), which works
   for chip-grid layouts. Inside the open accordion, that puts the bubble
   in the middle of the dropdown overlapping other rows — exactly the
   problem the user reported.

   Solution: when the chip is inside an open method-accordion or addons-
   accordion, anchor the tooltip to the RIGHT side of the row instead of
   above. It then floats out of the dropdown box entirely. */
.pkpro-v4 .pkpro-method-accordion[open] .pkpro-method-btn.pkpro-has-tooltip .pkpro-tooltip-content,
.pkpro-v4 .pkpro-addons-details[open] .pkpro-method-btn.pkpro-has-tooltip .pkpro-tooltip-content {
  /* Reset the above-the-row positioning */
  bottom: auto !important;
  /* Anchor to the right edge of the row, vertically centered */
  top: 50% !important;
  left: calc(100% + 12px) !important;
  /* translateX(-50%) was for horizontal-centered above; reset it.
     translateY(-50%) is what centers it vertically on the row. */
  transform: translateY(-50%) translateX(-4px) !important;
  /* Sit above any neighboring rows */
  z-index: 1100 !important;
}

/* Hover-in state — slide in from the left by removing the initial offset */
.pkpro-v4 .pkpro-method-accordion[open] .pkpro-method-btn.pkpro-has-tooltip:hover .pkpro-tooltip-content,
.pkpro-v4 .pkpro-method-accordion[open] .pkpro-method-btn.pkpro-has-tooltip:focus-visible .pkpro-tooltip-content,
.pkpro-v4 .pkpro-addons-details[open] .pkpro-method-btn.pkpro-has-tooltip:hover .pkpro-tooltip-content,
.pkpro-v4 .pkpro-addons-details[open] .pkpro-method-btn.pkpro-has-tooltip:focus-visible .pkpro-tooltip-content {
  transform: translateY(-50%) translateX(0) !important;
}

/* Also handle the legacy data-tooltip (::after) version — same row-side
   placement. The legacy version is used on the brodyrkort checkbox and any
   method button without a rich tooltip. */
.pkpro-v4 .pkpro-method-accordion[open] .pkpro-method-btn[data-tooltip]::after,
.pkpro-v4 .pkpro-addons-details[open] .pkpro-method-btn[data-tooltip]::after {
  bottom: auto !important;
  top: 50% !important;
  left: calc(100% + 12px) !important;
  transform: translateY(-50%) !important;
  z-index: 1100 !important;
}

/* ─── Allow tooltip to escape list container ──────────────────────────
   Earlier I set `overflow-y: auto` and `max-height: 240px` on the list
   container to match color-options scroll behavior. But that clips absolutely-
   positioned children — including the tooltip we just placed to the right.
   For Förädling (2-3 methods typical) and Tillbehör (max ~8), no scroll is
   actually needed, so we revert to overflow: visible. The tooltip can now
   float past the right edge of the list. */
.pkpro-v4 .pkpro-method-accordion[open] > .pkpro-method-chips,
.pkpro-v4 .pkpro-addons-details[open] > .pkpro-addons-list {
  overflow: visible !important;
  max-height: none !important;
}

/* ─── Tooltip placement: above-right of the row ────────────────────
   Right-of-list placement (4.23.12) made the bubble slide off the right
   edge of the page. The accordion already fills nearly the whole column,
   so there's no horizontal room outside it.
   
   New strategy: place the tooltip ABOVE the hovered row, right-aligned to
   the row's right edge. For the topmost row this floats out above the
   trigger, well clear of the list. For other rows it overlays the row(s)
   above — but with high z-index it sits on top cleanly. Right-alignment
   keeps it inside the page width even when the tooltip is wide. */
.pkpro-v4 .pkpro-method-accordion[open] .pkpro-method-btn.pkpro-has-tooltip .pkpro-tooltip-content,
.pkpro-v4 .pkpro-addons-details[open] .pkpro-method-btn.pkpro-has-tooltip .pkpro-tooltip-content {
  /* Override previous right-of-row positioning */
  top: auto !important;
  left: auto !important;
  /* Sit above the row, right-aligned */
  bottom: calc(100% + 8px) !important;
  right: 0 !important;
  /* Reset transform so animation works from a clean state */
  transform: translateY(4px) !important;
  z-index: 1100 !important;
}
.pkpro-v4 .pkpro-method-accordion[open] .pkpro-method-btn.pkpro-has-tooltip:hover .pkpro-tooltip-content,
.pkpro-v4 .pkpro-method-accordion[open] .pkpro-method-btn.pkpro-has-tooltip:focus-visible .pkpro-tooltip-content,
.pkpro-v4 .pkpro-addons-details[open] .pkpro-method-btn.pkpro-has-tooltip:hover .pkpro-tooltip-content,
.pkpro-v4 .pkpro-addons-details[open] .pkpro-method-btn.pkpro-has-tooltip:focus-visible .pkpro-tooltip-content {
  transform: translateY(0) !important;
}

/* Same treatment for the legacy data-tooltip ::after version */
.pkpro-v4 .pkpro-method-accordion[open] .pkpro-method-btn[data-tooltip]::after,
.pkpro-v4 .pkpro-addons-details[open] .pkpro-method-btn[data-tooltip]::after {
  top: auto !important;
  left: auto !important;
  bottom: calc(100% + 8px) !important;
  right: 0 !important;
  transform: translateY(0) !important;
  z-index: 1100 !important;
}

/* ─── Unavailable addon rows: greyed-out, non-interactive ──────────
   Triggered when current qty is below the addon's minimum tier. The text
   shows "Min. X st" instead of "+0,00 kr/st" so the customer knows WHY
   they can't pick it. Pointer-events disabled = no click. Light grey
   colors = clearly inactive but still readable. */
.pkpro-v4 .pkpro-addon-row.is-unavailable {
  opacity: 0.45 !important;
  pointer-events: none !important;
  cursor: not-allowed !important;
}
.pkpro-v4 .pkpro-addon-row.is-unavailable .pkpro-addon-name,
.pkpro-v4 .pkpro-addon-row.is-unavailable .pkpro-addon-price {
  color: #999 !important;
}
.pkpro-v4 .pkpro-addon-row.is-unavailable .pkpro-addon-price {
  /* Make the min-qty hint feel more like a status label, less like a price */
  font-style: italic !important;
}

/* ─── Position open accordion list as floating dropdown ─────────────
   The fundamental UX difference user noticed: color-options use
   `position: absolute; top: 100%` to hover ON TOP of subsequent content
   (z-index 9999), whereas my method/addons accordions used native <details>
   block-expansion that PUSHES content below downward.

   Mirror color-options' positioning so all three dropdowns feel identical:
   open list floats, layout below doesn't move. */
.pkpro-v4 .pkpro-method-accordion,
.pkpro-v4 .pkpro-addons-details {
  /* Make the <details> a positioning context for its absolute child */
  position: relative !important;
}
.pkpro-v4 .pkpro-method-accordion[open] > .pkpro-method-chips,
.pkpro-v4 .pkpro-addons-details[open] > .pkpro-addons-list {
  position: absolute !important;
  top: 100% !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 9999 !important;
}


/* ─── Multi-positions picker: ⓘ-info-ikon + inline-panel (4.23.34) ───
   Tooltip-bubblan (som på premiumkepsar) skulle klippas av pickerns
   overflow:hidden + scroll. Här visas infon istället inline under raden
   när man klickar på ⓘ — ingen klippning, fungerar på mobil. */
.pkpro-position-picker-row{
  flex-wrap: wrap;
  position: relative;
}
.pkpro-picker-info{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 19px;
  height: 19px;
  flex-shrink: 0;
  border-radius: 50%;
  border: 1.5px solid currentColor;
  font-family: Georgia, 'Times New Roman', serif;
  font-style: italic;
  font-weight: 700;
  font-size: 12px;
  line-height: 1;
  text-transform: none;
  letter-spacing: 0;
  opacity: .5;
  cursor: pointer;
  user-select: none;
  transition: opacity .15s ease;
}
.pkpro-picker-info:hover,
.pkpro-picker-info:focus-visible{ opacity: 1; outline: none; }
.pkpro-position-picker-row.info-open .pkpro-picker-info{ opacity: 1; }
.pkpro-position-picker-row.active .pkpro-picker-info{ border-color: #fff; color: #fff; }

.pkpro-picker-info-panel{
  display: none;
  flex-basis: 100%;
  width: 100%;
  margin-top: 4px;
  padding: 10px 12px;
  gap: 10px;
  align-items: flex-start;
  background: #fff;
  color: #1a1a1a;
  border: 1px solid #e5e5e5;
  border-radius: 10px;
  text-transform: none;
  letter-spacing: 0;
  font-weight: 400;
}
.pkpro-position-picker-row.info-open .pkpro-picker-info-panel{ display: flex; }
.pkpro-picker-info-img{
  flex-shrink: 0;
  width: 96px;
  height: auto;
  max-height: 120px;
  object-fit: contain;
  border-radius: 6px;
}
.pkpro-picker-info-text{
  flex: 1;
  font-size: 12.5px;
  line-height: 1.45;
  color: #444;
}

/* Multi-positions picker: förädling under minsta antal — grå + ej valbar (4.23.35) */
.pkpro-position-picker-row.is-unavailable{
  opacity: .5;
  cursor: not-allowed;
}
.pkpro-position-picker-row.is-unavailable:hover{
  background: #f5f5f3;
}
.pkpro-position-picker-row.is-unavailable .pkpro-position-picker-price{
  color: #999;
  font-style: italic;
}
.pkpro-position-picker-row.is-unavailable .pkpro-picker-info{
  display: none;
}

/* Vanlig förädlings-lista: metod under minsta antal — grå + "minst X st" (4.23.37) */
.pkpro-method-chips .pkpro-method-btn.pkpro-method-below-min{
  opacity: .5;
  cursor: not-allowed !important;
}
.pkpro-method-chips .pkpro-method-btn.pkpro-method-below-min .pkpro-method-name{
  color: #999;
}
.pkpro-method-min-label{
  margin-left: auto;
  padding-left: 10px;
  color: #999;
  font-style: italic;
  font-size: 12px;
  white-space: nowrap;
}
.pkpro-method-btn.pkpro-method-below-min .pkpro-tooltip-content{
  display: none !important;
}

/* Vanlig förädlings-lista: pris per metod i optionen (4.23.43) */
.pkpro-method-chips .pkpro-method-price{
  margin-left: auto;
  padding-left: 12px;
  color: #555;
  font-size: 13px;
  white-space: nowrap;
  flex-shrink: 0;
}
.pkpro-method-chips .pkpro-method-btn.active .pkpro-method-price{ color: #1a1a1a; }

/* ── Offert-läge "Pris på förfrågan" (4.24.0) ── */
.pkpro-quote-mode .pkpro-method-price,
.pkpro-quote-mode .pkpro-addon-price,
.pkpro-quote-mode .pkpro-picker-price,
.pkpro-quote-mode .pkpro-qty-tier-label,
.pkpro-quote-mode .pkpro-qty-tier-table-link { display: none !important; }
.pkpro-quote-note {
  font-size: 18px;
  font-weight: 600;
  color: #131313;
  padding: 14px 2px;
}
.pkpro-wishes-field { margin-top: 6px; }
.pkpro-wishes {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid rgba(19,19,19,.2);
  border-radius: 6px;
  padding: 10px 12px;
  font: inherit;
  font-weight: 400;
  resize: vertical;
}

/* ── Enkelvals-storlekar (En storlek per order, 4.24.9) ── */
.pkpro-size-single { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 6px; }
.pkpro-size-single-chip {
  border: 1px solid rgba(19,19,19,.25);
  background: #fff;
  color: #131313;
  border-radius: 6px;
  padding: 8px 16px;
  font: inherit;
  cursor: pointer;
  transition: all .12s ease;
}
.pkpro-size-single-chip:hover { border-color: #131313; }
.pkpro-size-single-chip.active {
  background: #131313;
  color: #fff;
  border-color: #131313;
}
.pkpro-size-single-label { display: block; }
