/* =====================================================================
   Pakkepost – FedEx utlandsbooking, visuell oppfrisking (sept. 2026)
   Lastes KUN fra productdetails/fedex.php. Alt er scopet til
   #productform.pp-booking, så PostNord/Bring-skjemaene er upåvirket.
   Ingen feltnavn, id-er eller JS-klasser er endret – kun utseende.
   ===================================================================== */

#productform.pp-booking {
  --pp-red: #a82213;
  --pp-red-dark: #861a0e;
  --pp-red-soft: #fbeeec;
  --pp-ink: #1d2126;
  --pp-muted: #646d77;
  --pp-line: #d6dbe0;
  --pp-line-strong: #b9c1c9;
  --pp-panel: #f5f6f7;
  --pp-white: #ffffff;
  --pp-green: #1f7a3c;
  --pp-green-dark: #18612f;
  --pp-amber-bg: #fff6de;
  --pp-amber-line: #e9b949;
  --pp-focus: 0 0 0 3px rgba(168, 34, 19, .18);
  --pp-radius: 6px;

  float: none;
  max-width: 760px;
  width: 100%;
  box-sizing: border-box;
  color: var(--pp-ink);
  font-family: 'Lato', 'Helvetica Neue', Arial, sans-serif;
  font-size: 15px;
  line-height: 1.45;
  counter-reset: pp-step;
}
#productform.pp-booking *,
#productform.pp-booking *::before,
#productform.pp-booking *::after { box-sizing: border-box; }

/* ---------- Seksjonsoverskrifter = trinn i bestillingen -------------- */
#productform.pp-booking legend {
  float: none;
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  margin: 34px 0 14px;
  padding: 0 0 10px;
  border: 0;
  border-bottom: 2px solid var(--pp-ink);
  font-size: 19px;
  font-weight: 700;
  line-height: 1.2;
  color: var(--pp-ink);
  counter-increment: pp-step;
}
#productform.pp-booking legend::before {
  content: counter(pp-step);
  flex: 0 0 auto;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--pp-red);
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  line-height: 28px;
  text-align: center;
}
#productform.pp-booking legend:first-of-type { margin-top: 0; }
#productform.pp-booking .notimplemented legend { display: none; }

/* Retur-avkryssing øverst til høyre */
#productform.pp-booking .reverse_order_wrap {
  position: static !important;
  float: none !important;
  width: auto !important;
  display: flex;
  justify-content: flex-end;
  margin-bottom: -6px;
}
#productform.pp-booking .reverse_order_wrap label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 12px;
  border: 1px solid var(--pp-line);
  border-radius: 999px;
  background: var(--pp-panel);
  font-size: 13px;
  color: var(--pp-ink);
  cursor: pointer;
}
#productform.pp-booking .reverse_order_wrap label span { padding: 0 !important; font-weight: 600; }
#productform.pp-booking .reverse_order_wrap input { margin: 0 !important; }

/* ---------- Felt ------------------------------------------------------ */
#productform.pp-booking label {
  display: block;
  margin: 0 0 4px !important;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.3;
  color: var(--pp-muted);
}
#productform.pp-booking input[type="text"],
#productform.pp-booking input[type="email"],
#productform.pp-booking input[type="tel"],
#productform.pp-booking input[type="number"],
#productform.pp-booking input[type="password"],
#productform.pp-booking input[type="search"],
#productform.pp-booking input[type="date"],
#productform.pp-booking input[type="time"],
#productform.pp-booking select {
  display: block;
  width: 100%;
  height: 40px;
  margin: 0;
  padding: 0 12px;
  border: 1px solid var(--pp-line-strong);
  border-radius: var(--pp-radius);
  background: var(--pp-white);
  color: var(--pp-ink);
  font-family: inherit;
  font-size: 15px;
  line-height: 38px;
  box-shadow: none;
  float: none !important;
  transition: border-color .12s, box-shadow .12s;
}
#productform.pp-booking select {
  padding-right: 32px;
  -webkit-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23646d77' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
}
#productform.pp-booking input:focus,
#productform.pp-booking select:focus {
  outline: none;
  border-color: var(--pp-red);
  box-shadow: var(--pp-focus);
}
#productform.pp-booking input::placeholder { color: #9aa3ad; }
#productform.pp-booking input.invalid,
#productform.pp-booking select.invalid {
  border: 1px solid var(--pp-red) !important;
  background-color: var(--pp-red-soft) !important;
}
#productform.pp-booking input[type="checkbox"],
#productform.pp-booking input[type="radio"] {
  width: 16px;
  height: 16px;
  margin: 0 8px 0 0;
  accent-color: var(--pp-red);
  vertical-align: middle;
}
#productform.pp-booking label > input[type="checkbox"] + span,
#productform.pp-booking div.cwrap label a { font-weight: 400; color: var(--pp-ink); font-size: 14px; }

/* To-kolonners rader (mottaker, avsender). Inline width:50% i markup
   overstyres; på mobil blir alt én kolonne. */
#productform.pp-booking .pp-cols {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 16px;
  width: 100%;
  clear: both;
}
#productform.pp-booking .pp-col,
#productform.pp-booking #registration > div[style] {
  float: none !important;
  width: calc(50% - 8px) !important;
  margin: 0 !important;
  min-height: 0 !important;
}
#productform.pp-booking .pp-cols .pp-cols { width: 100%; }
#productform.pp-booking .pp-col--full,
#productform.pp-booking #registration > div.pp-full { width: 100% !important; }
#productform.pp-booking #registration {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 16px;
  float: none;
  margin-top: 12px;
  padding: 16px;
  border: 1px solid var(--pp-line);
  border-radius: var(--pp-radius);
  background: var(--pp-panel);
}
#productform.pp-booking #registration > div[style*="clear"] { display: none; }
#productform.pp-booking #registration .s5_reglabel { margin: 0; }
#productform.pp-booking #registration #s5_regresponse,
#productform.pp-booking #registration #result,
#productform.pp-booking #registration #registration_config { width: 100%; }
#productform.pp-booking #registration #s5_regresponse:empty { display: none; }

/* Innlogget avsender: adressekortet */
#productform.pp-booking b.navn,
#productform.pp-booking #jform_name.registered {
  display: inline-block;
  line-height: 24px;
  font-size: 15px;
}
#productform.pp-booking #jform_name.registered {
  width: auto;
  height: auto;
  min-width: 260px;
  padding: 2px 6px;
  border: 1px dashed transparent;
  background: transparent;
  font-weight: 700;
}
#productform.pp-booking #jform_name.registered:hover,
#productform.pp-booking #jform_name.registered:focus { border-color: var(--pp-line-strong); box-shadow: none; }

/* Ikke innlogget: konto-valg */
#productform.pp-booking div.radios {
  float: none;
  width: 100%;
  max-width: none;
  display: flex;
  gap: 24px;
  align-items: center;
  margin-bottom: 8px;
}
#productform.pp-booking div.radios label { display: inline-flex; align-items: center; margin: 0 !important; font-size: 15px; color: var(--pp-ink); }
#productform.pp-booking div.radios br { display: none; }
#productform.pp-booking div.radios a { color: var(--pp-red); font-weight: 600; }
#productform.pp-booking div.login_info {
  float: none;
  width: 100%;
  max-width: none;
  margin: 0 0 8px;
  padding: 12px 14px;
  border: 1px solid var(--pp-amber-line);
  border-radius: var(--pp-radius);
  background: var(--pp-amber-bg);
}
#productform.pp-booking div.login_info h5 { margin: 0 0 4px; font-size: 14px; font-weight: 700; color: var(--pp-ink); }
#productform.pp-booking div.login_info p { margin: 0; font-size: 14px; }

/* ---------- Mottaker (fieldset.pakkeform) ------------------------------ */
#productform.pp-booking fieldset.pakkeform {
  margin: 0 !important;
  padding: 0 !important;
  border: 0;
  border-radius: 0;
  background: transparent;
}
#productform.pp-booking fieldset.pakkeform.highlighted { background: var(--pp-red-soft); outline: 6px solid var(--pp-red-soft); }
#productform.pp-booking fieldset.pakkeform span.remove { top: 6px; }
#productform.pp-booking fieldset.pakkeform span.remove a { color: var(--pp-red); font-size: 13px; font-weight: 600; }
#productform.pp-booking input.addressbooksearch {
  height: 40px !important;
  margin-bottom: 12px;
  padding-left: 38px !important;
  border: 1px solid var(--pp-line-strong) !important;
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Ccircle cx='6.5' cy='6.5' r='5' fill='none' stroke='%23646d77' stroke-width='1.6'/%3E%3Cpath d='M10.5 10.5L15 15' stroke='%23646d77' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: 12px center;
}

/* Kolli-velger (div.flex som inneholder select[name^=kolli] i fedex_fedex.php) */
#productform.pp-booking .pp-kolli,
#productform.pp-booking .additionalProducts-0 > div.flex:has(> select[name^="kolli"]) {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  margin: 18px 0 6px;
  padding: 12px 14px;
  border: 1px solid var(--pp-line);
  border-radius: var(--pp-radius);
  background: var(--pp-panel);
}
#productform.pp-booking .pp-kolli label,
#productform.pp-booking .additionalProducts-0 > div.flex:has(> select[name^="kolli"]) label { margin: 0 !important; font-size: 15px; color: var(--pp-ink); }
#productform.pp-booking .pp-kolli select,
#productform.pp-booking .additionalProducts-0 > div.flex:has(> select[name^="kolli"]) select { width: 120px !important; margin: 0 !important; }

/* Avkryssinger under mottaker */
#productform.pp-booking div.flex { padding: 4px 0; }
#productform.pp-booking div.flex label { display: inline-flex; align-items: center; font-weight: 400; font-size: 14px; color: var(--pp-ink); }

/* ---------- Tilleggsskjema fra fedex_fedex.php ------------------------- */
#productform.pp-booking .additionalProducts-0 { margin-top: 4px; }

/* «Hjelp»-bokser: <details> */
#productform.pp-booking details {
  width: 100%;
  margin: 0 0 12px;
  border: 1px solid var(--pp-line);
  border-left: 4px solid var(--pp-red);
  border-radius: var(--pp-radius);
  background: var(--pp-panel);
}
#productform.pp-booking details summary {
  padding: 8px 12px;
  font-size: 13px;
  font-weight: 700;
  color: var(--pp-red);
  cursor: pointer;
  list-style: none;
}
#productform.pp-booking details summary::-webkit-details-marker { display: none; }
#productform.pp-booking details summary::before { content: "?"; display: inline-block; width: 18px; height: 18px; margin-right: 8px; border-radius: 50%; border: 1.5px solid var(--pp-red); font-size: 12px; line-height: 15px; text-align: center; }
#productform.pp-booking details[open] summary::before { content: "–"; line-height: 14px; }
#productform.pp-booking details p,
#productform.pp-booking details ul {
  margin: 0 12px 10px;
  font-size: 13.5px;
  line-height: 1.55;
  color: var(--pp-ink);
}
#productform.pp-booking details ul { padding-left: 18px; }
#productform.pp-booking details li { margin-bottom: 3px; }

/* Feltrader i tilleggsskjemaet (packageconfig, invoice_lines, .flex.left) */
#productform.pp-booking div.packageconfig,
#productform.pp-booking div.packageconfig-extra,
#productform.pp-booking div.invoiceconfig .rows,
#productform.pp-booking div.flex.left {
  gap: 10px 14px;
  justify-content: flex-start;
  padding: 0;
}
#productform.pp-booking div.packageconfig label,
#productform.pp-booking div.packageconfig-extra label,
#productform.pp-booking div.flex.left label {
  flex: 1 1 160px;
  max-width: none !important;
  padding: 0;
}
#productform.pp-booking div.packageconfig-extra label,
#productform.pp-booking div.flex.left label { flex-basis: 220px; }

/* Etikett over felt – tvinges eksplisitt (side-CSS satte feltene inline) */
#productform.pp-booking div.packageconfig label,
#productform.pp-booking div.packageconfig-extra label,
#productform.pp-booking div.flex.left label,
#productform.pp-booking .rows.repeat_lines.invoice_lines label {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  min-width: 0;
  line-height: 1.3 !important;
}
#productform.pp-booking div.packageconfig label > input,
#productform.pp-booking div.packageconfig label > select,
#productform.pp-booking div.packageconfig-extra label > input,
#productform.pp-booking div.packageconfig-extra label > select,
#productform.pp-booking div.flex.left label > input,
#productform.pp-booking div.flex.left label > select,
#productform.pp-booking .rows.repeat_lines.invoice_lines label > input,
#productform.pp-booking .rows.repeat_lines.invoice_lines label > select {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 4px 0 0 !important;
  flex: 0 0 auto;
}
#productform.pp-booking div.flex.left label > input[type="checkbox"] { width: 16px !important; display: inline-block !important; }

/* Forklarende linje over varelinjene (PID) */
#productform.pp-booking p.pid-note {
  width: 100%;
  margin: 0 0 10px;
  padding: 10px 12px;
  border: 1px solid var(--pp-amber-line);
  border-radius: var(--pp-radius);
  background: var(--pp-amber-bg);
  font-size: 13.5px;
  line-height: 1.5;
}

/* Varelinjer: hvert kort = én vare */
#productform.pp-booking .rows.repeat_lines.invoice_lines {
  position: relative;
  margin-bottom: 12px;
  padding: 14px 44px 14px 14px;
  border: 1px solid var(--pp-line);
  border-radius: var(--pp-radius);
  background: var(--pp-white) !important;
}
#productform.pp-booking .rows.repeat_lines.invoice_lines label {
  flex: 1 1 140px;
  max-width: none !important;
  padding: 0;
}
#productform.pp-booking .rows.repeat_lines.invoice_lines label[for="invoice_Description"] { flex-basis: 100%; }
#productform.pp-booking .rows.repeat_lines.invoice_lines label[for="invoice_Description"] input { min-width: 0 !important; }
#productform.pp-booking .rows.repeat_lines.invoice_lines > a[onclick*="removeRow"] {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  line-height: 28px !important;
  text-align: center;
  color: var(--pp-muted);
  background: var(--pp-panel);
  text-decoration: none;
}
#productform.pp-booking .rows.repeat_lines.invoice_lines > a[onclick*="removeRow"]:hover { color: #fff; background: var(--pp-red); }
/* PID-feltene (M-PID / NS-PID / S-PID) får egen, svakt markert rad */
#productform.pp-booking .rows.repeat_lines.invoice_lines label[for="invoice_merchantProductId"],
#productform.pp-booking .rows.repeat_lines.invoice_lines label[for="invoice_nonStandardManufacturerProductId"],
#productform.pp-booking .rows.repeat_lines.invoice_lines label[for="invoice_standardProductIdStatus"],
#productform.pp-booking .rows.repeat_lines.invoice_lines label[for="invoice_standardManufacturerProductId"] {
  flex: 1 1 calc(50% - 7px);
  min-width: 200px;
  padding-top: 10px;
  border-top: 1px dashed var(--pp-line);
}
#productform.pp-booking button.add_invoice_row {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0 0 4px;
  padding: 0 14px;
  height: 36px;
  border: 1px solid var(--pp-ink);
  border-radius: var(--pp-radius);
  background: var(--pp-white);
  color: var(--pp-ink);
  font-family: inherit;
  font-size: 14px;
  font-weight: 600;
  text-transform: none;
  cursor: pointer;
}
#productform.pp-booking button.add_invoice_row::before { content: "+"; font-size: 18px; line-height: 1; }
#productform.pp-booking button.add_invoice_row:hover { background: var(--pp-ink); color: #fff; }

/* Filopplasting (egen faktura) */
#productform.pp-booking .uploadfiles h3 { font-size: 15px; margin: 10px 0 4px; }
#productform.pp-booking .uploadfiles p { font-size: 13px; color: var(--pp-muted); }

/* Pris fra FedEx (rate_selector) */
#productform.pp-booking .rate_selector {
  margin: 12px 0 !important;
  padding: 12px 14px !important;
  border: 1px solid var(--pp-green) !important;
  border-radius: var(--pp-radius);
  background: #eef8f1;
}

/* ---------- Bunn: pris og betaling ------------------------------------ */
#productform.pp-booking .totalt { margin-top: 12px; }
#productform.pp-booking .totalt h2 {
  float: none !important;
  display: flex;
  justify-content: flex-end;
  align-items: baseline;
  gap: 6px;
  margin: 0;
  font-size: 18px !important;
  font-weight: 400;
  color: var(--pp-muted);
}
#productform.pp-booking .totalt h2 p.fraktpris-0 { float: none !important; margin: 0; font-size: 26px; font-weight: 700; color: var(--pp-ink); }

#productform.pp-booking .pp-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
  width: 100%;
  margin-top: 14px;
}
#productform.pp-booking .pp-btn,
#productform.pp-booking #remove,
#productform.pp-booking #but_add,
#productform.pp-booking a[href="#login"].pp-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 40px;
  margin: 0 !important;
  padding: 0 18px !important;
  border: 1px solid transparent;
  border-radius: var(--pp-radius);
  font-family: inherit;
  font-size: 14px !important;
  font-weight: 700;
  line-height: 1;
  text-transform: none;
  text-decoration: none;
  cursor: pointer;
  float: none !important;
  background: var(--pp-white) !important;
  color: var(--pp-ink) !important;
  border-color: var(--pp-line-strong);
}
#productform.pp-booking #but_add,
#productform.pp-booking a[href="#login"].pp-btn { border-color: var(--pp-ink); }
#productform.pp-booking #but_add:hover,
#productform.pp-booking a[href="#login"].pp-btn:hover { background: var(--pp-ink) !important; color: #fff !important; }
#productform.pp-booking #remove { color: var(--pp-red) !important; border-color: var(--pp-red-soft); background: var(--pp-red-soft) !important; }
#productform.pp-booking #remove:hover { background: var(--pp-red) !important; color: #fff !important; }

#productform.pp-booking .pp-checkout {
  width: 100%;
  margin-top: 22px;
  float: none !important;
  display: flow-root;
}
#productform.pp-booking .pp-checkout > div { width: 100% !important; float: none !important; }
#productform.pp-booking .pp-checkout > div:first-child {
  padding: 18px;
  border-radius: var(--pp-radius);
  background: var(--pp-ink);
  color: #fff;
}
#productform.pp-booking .pp-checkout center { display: block; }
#productform.pp-booking .pp-checkout br { display: none; }
#productform.pp-booking #totalTotal {
  margin-bottom: 12px;
  font-size: 15px;
  color: #cfd5db;
}
#productform.pp-booking #totalTotal #totalTotalNum { font-size: 22px; font-weight: 700; color: #fff; }
#productform.pp-booking #enviar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 48px;
  margin: 0;
  padding: 0 20px !important;
  border: 0;
  border-radius: var(--pp-radius);
  background: var(--pp-green) !important;
  color: #fff !important;
  font-family: inherit;
  font-size: 16px;
  font-weight: 700;
  text-transform: none;
  letter-spacing: 0;
  cursor: pointer;
  float: none !important;
}
#productform.pp-booking #enviar:hover { background: var(--pp-green-dark) !important; }
#productform.pp-booking #enviar:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
#productform.pp-booking #spinner { margin-top: 10px; }
#productform.pp-booking #enviar_resp { margin-top: 10px; font-size: 14px; }
#productform.pp-booking #enviar_resp.error { color: #ffb4a8; }

#productform.pp-booking .pp-terms { width: 100%; margin-top: 14px; display: flow-root; }
#productform.pp-booking div.cwrap { float: none !important; clear: none !important; width: 100%; }
#productform.pp-booking div.cwrap label { display: inline-flex; align-items: center; gap: 8px; line-height: 1.3 !important; margin: 0 !important; }
#productform.pp-booking div.cwrap input[type="checkbox"] { margin: 0 !important; }
#productform.pp-booking div.cwrap label a { color: var(--pp-ink); text-decoration: underline; }
#productform.pp-booking div.courier_wrap { margin-top: 8px; }

/* Feilmeldinger fra bookingen (liste over sendinger/varelinjer) */
#productform.pp-booking #msg.error,
#productform.pp-booking #enviar_resp.error {
  padding: 12px 14px;
  border-radius: var(--pp-radius);
  background: var(--pp-red-soft);
  border: 1px solid #f0c8c2;
  color: var(--pp-red-dark) !important;
  line-height: 1.5;
}

/* ---------- Skjulte/ryddede rester -------------------------------------- */
#productform.pp-booking .pp-hidden { display: none !important; }
/* JavaScriptet (både gammel displayconfig og PID-koden) skjuler felt med
   inline display:none. Reglene over bruker !important for layout, så dette
   må vinne – ellers vises felt JS har skjult. */
#productform.pp-booking [style*="display: none"],
#productform.pp-booking [style*="display:none"] { display: none !important; }

/* ---------- Mobil ------------------------------------------------------- */
@media (max-width: 640px) {
  #productform.pp-booking { font-size: 16px; }
  #productform.pp-booking .pp-col,
  #productform.pp-booking #registration > div[style] { width: 100% !important; }
  #productform.pp-booking legend { font-size: 17px; margin-top: 26px; }
  #productform.pp-booking .pp-kolli,
  #productform.pp-booking .additionalProducts-0 > div.flex:has(> select[name^="kolli"]) { flex-direction: column; align-items: flex-start; }
  #productform.pp-booking .pp-kolli select,
  #productform.pp-booking .additionalProducts-0 > div.flex:has(> select[name^="kolli"]) select { width: 100% !important; }
  #productform.pp-booking .rows.repeat_lines.invoice_lines label,
  #productform.pp-booking div.packageconfig label,
  #productform.pp-booking div.packageconfig-extra label,
  #productform.pp-booking div.flex.left label { flex-basis: 100%; }
  #productform.pp-booking .pp-actions { flex-direction: column; }
  #productform.pp-booking .pp-actions > * { width: 100%; }
  #productform.pp-booking .reverse_order_wrap { justify-content: flex-start; margin-bottom: 8px; }
  #productform.pp-booking input,
  #productform.pp-booking select { font-size: 16px; } /* hindrer auto-zoom på iOS */
}

@media (prefers-reduced-motion: reduce) {
  #productform.pp-booking * { transition: none !important; }
}


/* =====================================================================
   Innenlands (PostNord / Bring / HeltHjem) – tillegg fra pakkepost.php
   og transportørenes tilleggsmaler (postnord_standard.php m.fl.)
   ===================================================================== */

/* Mottakerfelt fra pakkepost_receiver.php */
#productform.pp-booking .receiver_fields { clear: both; }
#productform.pp-booking .receiver_fields label[style] { float: none !important; }
#productform.pp-booking .receiver_fields label > input[type="checkbox"] { float: none !important; }
#productform.pp-booking .receiver_fields label > input[type="checkbox"] + span { padding-left: 0 !important; font-weight: 400; color: var(--pp-ink); font-size: 14px; }

/* Pakkestørrelse + antall kolli: én rad */
#productform.pp-booking .pp-select-row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 12px 16px;
  width: 100%;
  margin: 18px 0 6px;
  padding: 12px 14px;
  border: 1px solid var(--pp-line);
  border-radius: var(--pp-radius);
  background: var(--pp-panel);
}
#productform.pp-booking .pp-select-row > div { float: none !important; }
#productform.pp-booking .pp-select-row select { width: auto !important; min-width: 160px; max-width: 100%; margin: 0 !important; }
#productform.pp-booking .pp-select-row select[id^="product_selector"] { flex: 1 1 320px; }

/* Tillegg (hjemlevering, forsikring) og gebyrer: to kort side om side */
#productform.pp-booking div.wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  width: 100%;
  clear: both;
  margin-top: 8px;
}
#productform.pp-booking div.wrap > div.left_half,
#productform.pp-booking div.wrap > div.right_half {
  flex: 1 1 calc(50% - 8px);
  float: none !important;
  width: auto !important;
  min-width: 240px;
  padding: 14px !important;
  border: 1px solid var(--pp-line);
  border-radius: var(--pp-radius);
  background: var(--pp-white);
}
#productform.pp-booking div.wrap legend {
  margin: 0 0 10px;
  padding: 0;
  border: 0;
  font-size: 15px;
  counter-increment: none;
}
#productform.pp-booking div.wrap legend::before { display: none; }
#productform.pp-booking div.wrap p,
#productform.pp-booking div.wrap > div > div[style*="clear"],
#productform.pp-booking div.wrap > div > div[id^="hjemleveringContainer"] {
  display: flex !important;
  align-items: center;
  gap: 8px;
  float: none !important;
  width: 100% !important;
  margin: 0 0 8px;
  line-height: 1.35;
}
#productform.pp-booking div.wrap p br { display: none; }
#productform.pp-booking div.wrap input[type="radio"],
#productform.pp-booking div.wrap input[type="checkbox"] { float: none !important; margin: 0 !important; flex: 0 0 auto; }
#productform.pp-booking div.wrap label {
  float: none !important;
  margin: 0 !important;
  font-weight: 400;
  font-size: 14px;
  color: var(--pp-ink);
}
#productform.pp-booking div.wrap details { margin: 8px 0 10px; }
#productform.pp-booking div.wrap .insurance-fields { margin: 10px 0 0 !important; }
#productform.pp-booking div.wrap .insurance-fields > div { width: 100% !important; clear: none !important; }
#productform.pp-booking div.wrap .insurance-fields label { display: block; margin-bottom: 4px !important; font-size: 13px; font-weight: 600; color: var(--pp-muted); }
#productform.pp-booking span.insurance-fee { color: var(--pp-muted); }

/* Utleveringssted (PostNord branch) */
#productform.pp-booking select[name="postnord_branch"] { width: 100%; margin: 8px 0; }

/* NVIT-boksen har egne inline-stiler; bare typografi og feltene justeres */
#productform.pp-booking .nvit-notice h4 { font-size: 15px; }
#productform.pp-booking .nvit-notice label { color: var(--pp-ink); }
#productform.pp-booking .nvit-row > div { float: none !important; }
#productform.pp-booking .nvit-row { display: flex !important; flex-wrap: wrap; gap: 10px; align-items: flex-end; }
#productform.pp-booking .nvit-row > div { flex: 1 1 120px; width: auto !important; padding: 0 !important; }
#productform.pp-booking .nvit-row > div:first-child { flex-basis: 180px; }

/* Henteavtale/opphenting-widget (courier_wrap) – kun luft og typografi */
#productform.pp-booking div.courier_wrap { margin-top: 14px; padding: 14px; border: 1px solid var(--pp-line); border-radius: var(--pp-radius); background: var(--pp-panel); }
#productform.pp-booking div.courier_wrap:empty { display: none; }
#productform.pp-booking div.courier_wrap .field_wrapper { float: none !important; margin-bottom: 8px; }
#productform.pp-booking div.courier_wrap label { display: inline-block; font-weight: 400; color: var(--pp-ink); font-size: 14px; }
#productform.pp-booking div.courier_wrap input[type="text"],
#productform.pp-booking div.courier_wrap select { width: auto; min-width: 140px; display: inline-block; }

@media (max-width: 640px) {
  #productform.pp-booking .pp-select-row select { width: 100% !important; }
  #productform.pp-booking div.wrap > div.left_half,
  #productform.pp-booking div.wrap > div.right_half { flex-basis: 100%; }
  #productform.pp-booking .nvit-row > div { flex-basis: 100%; }
}
