/* =====================================================================
   BioIntelliSense — Employee & vendor order form
   order-form.css · v0.2.5 · scoped to .bis-order-form / .bis-order-page
   Depends on tokens.css. Written against the biointellisense theme
   (style.css 1.0.22) + Bootstrap 5.3.5 reboot. Where a theme global would
   reach in (form input/select/textarea rules, outline:none, h3 teal,
   ul li margins) it is overridden here with higher specificity — see
   01-wp-style-audit.md §10 for the list.
   ===================================================================== */

/* ---------- page header (outside the form root) ---------- */
/* One width for the whole page (rounds 5–6): header, indicator, panel and every step's fields span --bis-form-max-wide;
   only the intro paragraph keeps a --bis-form-max measure. */
.bis-order-page__header,
.bis-order-page .entry-content { max-width: var(--bis-form-max-wide, 1040px); margin-left: auto; margin-right: auto; }
.bis-order-page__header { padding-top: 16px; }
.bis-order-page .entry-content { margin-top: 24px; }
.bis-order-page__intro, .bis-order-page__intro p { color: #202a44; font-size: 18px; line-height: 1.5; margin: 0 0 12px; max-width: var(--bis-form-max, 760px); }
.bis-order-page__intro-em { font-weight: 600; color: var(--bis-navy, #202a44); }

/* ---------- root ---------- */
.bis-order-form,
.bis-order-page { font-family: var(--bis-font, "sofia-pro", Arial, sans-serif); color: var(--bis-navy, #202a44); }
.bis-order-form *, .bis-order-form *::before, .bis-order-form *::after { box-sizing: border-box; }
.bis-order-form { position: relative; }

/* ---------- utilities ---------- */
.bis-sr,
.bis-order-form .bis-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
.bis-order-form:not(.is-enhanced) .bis-js-only { display: none !important; }
.bis-order-form.is-enhanced .bis-nojs-note { display: none; }
.bis-hp { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.bis-order-form [hidden] { display: none !important; }

/* info message — mirrors the Careers page notice (div.p-4.brad: 24px padding, 8px radius, tinted ground, icon + lead + copy) in the info colour */
.bis-info { display: flex; align-items: flex-start; gap: 12px; background: rgba(0, 100, 226, .10); border-radius: var(--bis-radius, 8px); padding: 24px; margin: 16px 0 0; color: var(--bis-navy, #202a44); }
.bis-info__icon { flex: none; width: 24px; height: 24px; color: var(--bis-blue, #0064e2); margin-top: 1px; }
.bis-info__body { min-width: 0; }
.bis-info__lead { font-size: 20px; line-height: 1.25; font-weight: 600; color: var(--bis-navy, #202a44); margin: 0 0 4px; }
.bis-info p { font-size: 16px; line-height: 1.55; margin: 0; }
.bis-info p + p { margin-top: 4px; }
.bis-info a { font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
@media (max-width: 575.98px) { .bis-info { padding: 16px; gap: 10px; } }
.bis-note { background: var(--bis-sky-2, #e6f1ff); border-radius: var(--bis-radius, 8px); padding: 10px 16px; font-size: 15px; margin: 0 0 16px; }

/* ---------- step indicator ---------- */
.bis-order-form .bis-steps { list-style: none; margin: 0 0 20px; padding: 0; display: flex; gap: 4px; border-bottom: 1px solid var(--bis-border, #b6c6da); }
.bis-order-form .bis-steps li { margin: 0; flex: 1 1 0; }
.bis-steps__btn { width: 100%; display: flex; align-items: center; justify-content: center; gap: 10px; padding: 12px 8px 14px; background: none; border: 0; border-bottom: 3px solid transparent; margin-bottom: -1px; font: inherit; font-size: 15px; color: var(--bis-navy, #202a44); cursor: default; border-radius: 0; }
.bis-steps__num { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; border: 1.5px solid var(--bis-blue, #0064e2); background: #fff; font-size: 14px; font-weight: 600; color: var(--bis-blue, #0064e2); flex: none; }
.bis-steps__item.is-current .bis-steps__btn { color: var(--bis-blue, #0064e2); font-weight: 600; border-bottom-color: var(--bis-blue, #0064e2); }
.bis-steps__item.is-current .bis-steps__num { border-width: 2px; }
.bis-steps__item.is-done .bis-steps__num { background: var(--bis-blue, #0064e2); border-color: var(--bis-blue, #0064e2); color: #fff; }
.bis-steps__item.is-done .bis-steps__btn { color: var(--bis-navy, #202a44); cursor: pointer; }
.bis-steps__item.is-done .bis-steps__btn:hover { background: var(--bis-sky-2, #e6f1ff); border-radius: 8px 8px 0 0; }
.bis-steps__btn[disabled] { opacity: 1; }
@media (max-width: 575.98px) {
  .bis-steps__label { display: none; }
  .bis-steps__item.is-current .bis-steps__label { display: inline; }
  .bis-steps__btn { font-size: 14px; padding: 10px 4px 12px; }
}

/* ---------- panel (mirrors #contact-form) ---------- */
.bis-order-form .bis-form { background: var(--bis-sky, #e1e9f3); padding: 24px; border-radius: var(--bis-radius, 8px); margin: 0; }
@media (max-width: 575.98px) { .bis-order-form .bis-form { padding: 16px; } }

/* fieldset / legend resets (Bootstrap reboot floats legends) */
.bis-order-form fieldset { min-width: 0; padding: 0; margin: 0; border: 0; }
.bis-order-form .bis-step__legend { float: none; width: auto; padding: 0; margin: 0 0 16px;   /* ledes removed in round 4 — the legend carries the spacing */ font-size: inherit; line-height: inherit; display: block; }
.bis-step__eyebrow { display: block; font-size: 13px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--bis-blue, #0064e2); margin-bottom: 4px; }
.bis-order-form .bis-step__title { font-size: 28px; line-height: 1.25 !important; font-weight: 600; color: var(--bis-navy, #202a44); margin: 0; }
.bis-order-form .bis-step__title:focus { outline: none; }
.bis-order-form .bis-step__title:focus-visible { outline: 2px solid var(--bis-focus, #0064e2); outline-offset: 4px; border-radius: 2px; }
.bis-order-form.is-enhanced .bis-step:not(.is-current) { display: none; }
.bis-order-form:not(.is-enhanced) .bis-step + .bis-step { margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--bis-border, #b6c6da); }

/* ---------- grid ---------- */
.bis-grid { display: grid; gap: 0 16px; grid-template-columns: 1fr; }
@media (min-width: 576px) {
  .bis-grid--2 { grid-template-columns: 1fr 1fr; }
  .bis-grid--3 { grid-template-columns: 2fr 1fr 1fr; }
}
.bis-field--narrow { max-width: 280px; }

/* ---------- fields ---------- */
.bis-field { margin: 0 0 var(--bis-input-gap, 16px); min-width: 0; }
.bis-order-form .bis-label,
.bis-order-form legend.bis-label { display: block; float: none; width: auto; font-size: 16px; line-height: 1.3; font-weight: 600; color: var(--bis-navy, #202a44); margin: 0 0 6px; padding: 0; }
.bis-label__opt { font-weight: 400; color: var(--bis-text-soft, #4b5b73); }
.bis-hint { font-size: 14px; line-height: 1.45; color: var(--bis-text-soft, #4b5b73); margin: -2px 0 8px; }
.bis-counter { font-size: 13px; color: var(--bis-text-soft, #4b5b73); text-align: right; margin: 4px 0 0; }
.bis-counter.is-over { color: var(--bis-error, #b02a37); font-weight: 600; }

/* controls — override the theme's `form input, form select, form textarea` globals */
.bis-order-form .bis-control {
  display: block; width: 100%; margin: 0;
  min-height: var(--bis-input-h, 40px); padding: var(--bis-input-pad, 8px) 12px;
  background: var(--bis-surface, #fff); color: var(--bis-navy, #202a44);
  border: 1px solid var(--bis-border, #b6c6da); border-radius: var(--bis-radius, 8px);
  font-family: inherit; line-height: 1.3;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.bis-order-form textarea.bis-control { height: auto; min-height: 80px; resize: vertical; }
.bis-order-form .bis-control::placeholder { color: var(--bis-muted, #8195b2); opacity: 1; }
.bis-order-form select.bis-control { color: var(--bis-navy, #202a44); appearance: none; -webkit-appearance: none; padding-right: 40px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='M3 6l5 5 5-5' fill='none' stroke='%234b5b73' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; background-size: 16px; }
.bis-order-form select.bis-control:invalid { color: var(--bis-muted, #8195b2); }          /* placeholder option showing */
.bis-order-form select.bis-control option { color: var(--bis-navy, #202a44); }
.bis-order-form .bis-control:hover { border-color: #9fb1c9; }
.bis-order-form .bis-control:focus { border-color: var(--bis-blue, #0064e2); }
.bis-order-form .bis-control:focus-visible,
.bis-order-form button:focus-visible,
.bis-order-form a:focus-visible,
.bis-order-form [tabindex]:focus-visible { outline: var(--bis-focus-width, 2px) solid var(--bis-focus, #0064e2); outline-offset: var(--bis-focus-offset, 2px); }
.bis-order-form .bis-control:disabled { background: #f1f4f8; color: var(--bis-text-soft); }
.bis-order-form input[type="date"].bis-control { max-width: 260px; }
.bis-order-form input[type="date"].bis-control::-webkit-calendar-picker-indicator { cursor: pointer; }

/* validation states */
.bis-field.is-invalid .bis-control { border-color: var(--bis-error-border, #dc3545); box-shadow: inset 0 0 0 1px var(--bis-error-border, #dc3545); }
.bis-error { display: flex; align-items: flex-start; gap: 6px; margin: 6px 0 0; font-size: 14px; line-height: 1.4; font-weight: 600; color: var(--bis-error, #b02a37); }
.bis-error::before { content: ""; flex: none; width: 16px; height: 16px; margin-top: 1px; border-radius: 50%; background: var(--bis-error, #b02a37) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 4.2v4.6M8 11.6v.2' stroke='%23fff' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") center/16px no-repeat; }

/* step-level error summary */
.bis-alert { background: var(--bis-error-bg, #f8d7da); border: 1px solid var(--bis-error-border, #dc3545); border-radius: var(--bis-radius, 8px); padding: 12px 16px; margin: 0 0 20px; color: var(--bis-error, #b02a37); font-size: 15px; }
.bis-alert__title { font-weight: 600; margin: 0 0 6px; }
.bis-order-form .bis-alert ul { list-style: none; margin: 0; padding: 0; }
.bis-order-form .bis-alert li { margin: 0 0 4px; }
.bis-order-form .bis-alert li::marker { content: ""; }
.bis-order-form .bis-alert .bis-link-btn { color: var(--bis-error, #b02a37); text-decoration: underline; text-underline-offset: 2px; font-weight: 600; }

/* native button faces off — the theme leaves -webkit-appearance:button on, which paints a white face */
.bis-order-form .bis-btn, .bis-order-form .bis-qty__btn, .bis-order-form .bis-link-btn, .bis-order-form .bis-steps__btn { appearance: none; -webkit-appearance: none; }

/* link-styled button */
.bis-order-form .bis-link-btn { background: none; border: 0; padding: 0; margin: 0; font: inherit; font-size: 15px; font-weight: 600; color: var(--bis-blue, #0064e2); cursor: pointer; text-align: left; border-radius: 2px; }
.bis-order-form .bis-link-btn:hover { text-decoration: underline; text-underline-offset: 2px; }

/* ---------- ship-to choice cards ---------- */
.bis-choices { display: grid; grid-template-columns: 1fr; gap: 12px; margin: 0 0 4px; }
@media (min-width: 576px) { .bis-choices { grid-template-columns: 1fr 1fr; } }
.bis-order-form .bis-choice { display: block; position: relative; margin: 0; font-weight: 400; cursor: pointer; }
.bis-order-form .bis-choice__input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; pointer-events: none; }
.bis-choice__card { display: block; background: var(--bis-surface, #fff); border: 1.5px solid var(--bis-border, #b6c6da); border-radius: var(--bis-radius, 8px); padding: 14px 16px 14px 46px; position: relative; min-height: 44px; transition: border-color .15s ease, background .15s ease; }
.bis-choice__card::before { content: ""; position: absolute; left: 16px; top: 17px; width: 18px; height: 18px; border-radius: 50%; border: 1.5px solid var(--bis-border, #b6c6da); background: #fff; }
.bis-choice__title { display: block; font-weight: 600; font-size: 16px; color: var(--bis-navy, #202a44); }
.bis-choice__desc { display: block; font-size: 14px; color: var(--bis-text-soft, #4b5b73); margin-top: 2px; }
.bis-choice:hover .bis-choice__card { border-color: var(--bis-blue, #0064e2); }
.bis-choice__input:checked + .bis-choice__card { border-color: var(--bis-blue, #0064e2); background: var(--bis-sky-2, #e6f1ff); }
.bis-choice__input:checked + .bis-choice__card::before { border-color: var(--bis-blue, #0064e2); border-width: 6px; }
.bis-choice__input:focus-visible + .bis-choice__card { outline: var(--bis-focus-width, 2px) solid var(--bis-focus, #0064e2); outline-offset: 2px; }
.bis-choice-group.is-invalid .bis-choice__card { border-color: var(--bis-error-border, #dc3545); }
.bis-recipient { margin-top: 4px; }

.bis-subsection { margin-top: 24px; padding-top: 24px; border-top: 1px solid rgba(32,42,68,.12); }

/* ---------- products (v0.2.1: e-commerce cards in a responsive grid, aligned row-by-row with subgrid) ---------- */
/* The grid is width-agnostic (auto-fill): 3-up in the 1040 px panel, 2-up on tablets, 1-up on phones. Each card is a subgrid
   spanning seven tracks (photo · title · variant · stepper · error · instructions button · disclosure), so every part lines up
   across a row regardless of copy length, and an open disclosure only grows the disclosure track. */
.bis-cart { position: sticky; top: 8px; z-index: 5; display: flex; justify-content: space-between; align-items: center; gap: 12px; background: var(--bis-surface, #fff); border-radius: var(--bis-radius, 8px); padding: 10px 16px; margin: 0 0 20px; box-shadow: var(--bis-shadow, 0 5px 11px 0 rgba(125,125,125,.25)); font-size: 15px; }
.bis-cart__label { color: var(--bis-text-soft, #4b5b73); font-weight: 600; }
.bis-cart__count { font-weight: 600; color: var(--bis-navy, #202a44); }
.bis-cart.has-items .bis-cart__count { color: var(--bis-blue, #0064e2); }

.bis-group { margin: 0 0 12px; }
.bis-group:last-of-type { margin-bottom: 0; }
.bis-order-form .bis-group__title { font-size: 13px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--bis-text-soft, #4b5b73); margin: 0 0 10px; padding: 0 4px; line-height: 1.4 !important; }
.bis-order-form .bis-products { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, var(--bis-card-min, 260px)), 1fr)); column-gap: 16px; row-gap: 0; }
.bis-order-form .bis-products li { margin: 0 0 16px; }   /* row spacing (the grid's row-gap is 0 because every card spans 7 tracks) */
.bis-order-form .bis-products li::marker { content: ""; }

/* card — modelled on the site's product/support cards: photo area on top, white body, rounded, soft shadow */
.bis-product { display: grid; grid-template-rows: subgrid; grid-row: span 7; padding: 0 16px 16px; background: var(--bis-surface, #fff); border: 1.5px solid transparent; border-radius: var(--bis-radius-card, 12px); overflow: hidden; box-shadow: 0 1px 2px rgba(32,42,68,.06); transition: border-color .15s ease, box-shadow .15s ease, background .15s ease; }
.bis-product > * { min-width: 0; }
.bis-product__media { position: relative; aspect-ratio: 4 / 3; min-height: 0; overflow: hidden; margin: 0 -16px;   /* full-bleed inside the card's padding */ background: var(--bis-media-bg, #fff); color: var(--bis-blue-2, #307fe2); display: flex; align-items: center; justify-content: center; border-bottom: 1px solid rgba(32,42,68,.08); }
.bis-product__media img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: contain; padding: 0; background: transparent; }   /* absolute so the photo cannot stretch the 4:3 box; the 800×600 photos are composed for this frame, so no over-scale */
.bis-product__media .bis-product__placeholder { width: 40px; height: 40px; opacity: .9; }
.bis-product__added { position: absolute; top: 10px; left: 10px; display: none; align-items: center; gap: 6px; padding: 4px 10px 4px 8px; border-radius: var(--bis-radius-pill, 10rem); background: var(--bis-blue, #0064e2); color: #fff; font-size: 12px; font-weight: 600; line-height: 1.2; letter-spacing: .01em; }
.bis-product__added svg { width: 14px; height: 14px; flex: none; }
.bis-order-form .bis-product__name { display: block; margin-top: 14px; font-weight: 600; font-size: 16px; line-height: 1.3; color: var(--bis-navy, #202a44); text-decoration: none; }
.bis-order-form .bis-product__name:hover { text-decoration: underline; text-underline-offset: 3px; }
.bis-product__ext { width: 13px; height: 13px; margin-left: 6px; vertical-align: -1px; color: var(--bis-blue, #0064e2); }
.bis-order-form .bis-nowrap { white-space: nowrap; }   /* last word + glyph stay together */
.bis-product__variant { display: block; font-size: 14px; line-height: 1.4; color: var(--bis-text-soft, #4b5b73); margin-top: 2px; margin-bottom: 10px; }
.bis-product__variant:empty { margin-top: 0; }
.bis-order-form .bis-product .bis-error { margin-top: 6px; }
.bis-product__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 16px; margin-top: 10px; }
.bis-order-form .bis-action { display: inline-flex; align-items: center; gap: 6px; min-height: 28px; margin: 0; padding: 0; background: none; border: 0; font: inherit; font-size: 14px; font-weight: 600; line-height: 1.2; color: var(--bis-blue, #0064e2); text-decoration: none; cursor: pointer; border-radius: 2px; appearance: none; -webkit-appearance: none; }
.bis-order-form .bis-action:hover { text-decoration: underline; text-underline-offset: 3px; }
.bis-action__icon { width: 16px; height: 16px; flex: none; transition: transform .15s ease; }
.bis-action[aria-expanded="true"] .bis-action__icon--plus { transform: rotate(45deg); }
@media (pointer: coarse) { .bis-order-form .bis-action { min-height: 44px; } }
.bis-order-form .bis-instr.bis-field { margin-top: 10px; }
.bis-order-form .bis-instr .bis-label { font-size: 14px; margin-bottom: 4px; }
.bis-order-form .bis-instr textarea.bis-control { min-height: 64px; font-size: 16px !important; }

/* browsers without subgrid: a plain column with the stepper pinned to the bottom of the card */
@supports not (grid-template-rows: subgrid) {
  .bis-product { display: flex; flex-direction: column; }
  .bis-order-form .bis-product .bis-qty { margin-top: auto; }
}

/* "in your order" state — border + tint like the checked ship-to card, pill on the photo, muted zero otherwise */
.bis-product.has-qty { border-color: var(--bis-blue, #0064e2); box-shadow: 0 2px 8px rgba(0,100,226,.12); background: var(--bis-sky-2, #e6f1ff); }
.bis-product.has-qty .bis-product__added { display: inline-flex; }
.bis-order-form.is-enhanced .bis-product:not(.has-qty) .bis-qty__input:not(:focus) { color: var(--bis-muted, #8195b2); }   /* JS only: without JS a grey value would read as disabled */

@media (max-width: 575.98px) {
  /* phones: two product cards per row (v0.2.5) — tighter padding, smaller stepper buttons and type so the
     card still works at ~150px wide; below 360px it falls back to one column. */
  .bis-order-form .bis-products { grid-template-columns: 1fr 1fr; column-gap: 12px; }
  .bis-order-form .bis-products li { margin-bottom: 12px; }
  .bis-product { padding: 0 12px 12px; }
  .bis-product__media { aspect-ratio: 4 / 3; margin: 0 -12px; }
  .bis-order-form .bis-product__name { font-size: 15px; margin-top: 12px; }
  .bis-product__variant { font-size: 13px; margin-bottom: 8px; }
  .bis-order-form .bis-qty__btn { width: 40px; font-size: 20px; }
  .bis-order-form .bis-qty__input { font-size: 16px !important; padding: 0 2px; }
  .bis-order-form .bis-action { font-size: 13px; gap: 4px; }
  .bis-action__icon { width: 14px; height: 14px; }
  .bis-product__added { top: 8px; left: 8px; padding: 3px 8px 3px 6px; font-size: 11px; }
  .bis-order-form .bis-instr .bis-label { font-size: 13px; }
}
@media (max-width: 359.98px) {
  /* very small phones: one column — two cards would squeeze the stepper below a usable size */
  .bis-order-form .bis-products { grid-template-columns: 1fr; }
}

/* quantity stepper — full card width (JS adds the −/+ buttons around the input; without JS the input stands alone) */
.bis-qty { display: flex; align-items: stretch; width: 100%; }
.bis-order-form .bis-field--qty { margin: 0; }
.bis-order-form .bis-instr.bis-field { margin: 10px 0 0; }
.bis-order-form .bis-qty__input { flex: 1 1 auto; width: auto; min-width: 0; min-height: 44px; height: 44px; margin: 0; text-align: center; font-size: 18px !important; font-weight: 600 !important; padding: 0 4px; border-radius: var(--bis-radius, 8px); -moz-appearance: textfield; color: var(--bis-navy, #202a44); }
.bis-order-form .bis-qty__input::-webkit-outer-spin-button,
.bis-order-form .bis-qty__input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.bis-order-form.is-enhanced .bis-qty__input { border-radius: 0; border-left: 0; border-right: 0; }
.bis-order-form .bis-qty__btn { flex: none; width: 48px; min-height: 44px; padding: 0; margin: 0; background: var(--bis-surface, #fff); border: 1px solid var(--bis-border, #b6c6da); color: var(--bis-blue, #0064e2); font: inherit; font-size: 22px; line-height: 1; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; border-radius: 0; transition: background .15s ease; }
.bis-order-form .bis-qty__btn--dec { border-radius: var(--bis-radius, 8px) 0 0 var(--bis-radius, 8px); }
.bis-order-form .bis-qty__btn--inc { border-radius: 0 var(--bis-radius, 8px) var(--bis-radius, 8px) 0; }
.bis-order-form .bis-qty__btn:hover:not(:disabled) { background: var(--bis-sky-2, #e6f1ff); }
.bis-order-form .bis-qty__btn:disabled { color: var(--bis-muted, #8195b2); background: #f5f7fa; cursor: not-allowed; opacity: 1; border-color: var(--bis-border, #b6c6da); }
.bis-order-form .bis-qty__btn:focus-visible { position: relative; z-index: 1; }

/* ---------- review ---------- */
.bis-review__group { background: var(--bis-surface, #fff); border-radius: var(--bis-radius, 8px); padding: 16px 20px; margin: 0 0 12px; }
.bis-review__head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin: 0 0 10px; }
.bis-order-form .bis-review__title { font-size: 13px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--bis-text-soft, #4b5b73); margin: 0; line-height: 1.4 !important; }
.bis-order-form .bis-review dl { margin: 0; display: grid; grid-template-columns: minmax(96px, 30%) 1fr; gap: 6px 16px; font-size: 15px; }
.bis-order-form .bis-review dt { color: var(--bis-text-soft, #4b5b73); font-weight: 400; margin: 0; }
.bis-order-form .bis-review dd { margin: 0; color: var(--bis-navy, #202a44); font-weight: 500; overflow-wrap: anywhere; }
.bis-order-form .bis-review ul { list-style: none; margin: 0; padding: 0; }
.bis-order-form .bis-review li { margin: 0 0 8px; padding: 0; }
.bis-order-form .bis-review li::marker { content: ""; }
.bis-review__line { display: flex; gap: 10px; font-size: 15px; }
.bis-review__qty { flex: none; min-width: 44px; font-weight: 600; color: var(--bis-blue, #0064e2); }
.bis-review__instr { display: block; font-size: 14px; color: var(--bis-text-soft, #4b5b73); margin-top: 2px; }
.bis-review__empty { color: var(--bis-error, #b02a37); font-weight: 600; margin: 0; }
@media (max-width: 575.98px) { .bis-order-form .bis-review dl { grid-template-columns: 1fr; gap: 2px 0; } .bis-order-form .bis-review dd { margin-bottom: 8px; } }

.bis-recaptcha { margin: 16px 0 0; min-height: 0; }
.bis-recaptcha__note { font-size: 13px; color: var(--bis-text-soft, #4b5b73); margin: 0; }

/* ---------- navigation buttons ---------- */
.bis-nav { display: flex; align-items: center; gap: 12px; margin: 24px 0 0; padding-top: 20px; border-top: 1px solid rgba(32,42,68,.12); }
.bis-nav__spacer { flex: 1 1 auto; }
.bis-order-form .bis-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 10px 24px; border-radius: var(--bis-radius-pill, 10rem); font: inherit; font-size: 16px; font-weight: 600; line-height: 1.2; cursor: pointer; text-decoration: none; transition: box-shadow .15s ease, background .15s ease, color .15s ease; }
.bis-order-form .bis-btn--primary { background: var(--bis-blue, #0064e2); color: var(--bis-offwhite, #f8fbff); border: 2px solid var(--bis-blue, #0064e2); }
.bis-order-form .bis-btn--primary:hover:not(:disabled) { box-shadow: var(--bis-btn-hover, inset 0 0 0 150px rgba(0,0,0,.1)); }
.bis-order-form .bis-btn--tertiary { background: transparent; color: var(--bis-blue, #0064e2); border: 2px solid var(--bis-blue, #0064e2); }
.bis-order-form .bis-btn--tertiary:hover:not(:disabled) { background: var(--bis-sky-2, #e6f1ff); }
.bis-order-form .bis-btn:disabled { background: var(--bis-muted, #8195b2); border-color: var(--bis-muted, #8195b2); color: var(--bis-sky, #e1e9f3); opacity: 1; cursor: not-allowed; box-shadow: none; }
.bis-order-form .bis-btn.is-busy { position: relative; color: transparent; }
.bis-order-form .bis-btn.is-busy::after { content: ""; position: absolute; width: 18px; height: 18px; border-radius: 50%; border: 2px solid rgba(255,255,255,.45); border-top-color: #fff; animation: bis-spin .8s linear infinite; }
@keyframes bis-spin { to { transform: rotate(360deg); } }
.bis-submit-error { margin: 12px 0 0; color: var(--bis-error, #b02a37); font-weight: 600; font-size: 15px; }
@media (max-width: 575.98px) {
  .bis-nav { flex-wrap: wrap; }
  .bis-order-form .bis-btn { flex: 1 1 auto; }
}

/* ---------- confirmation ---------- */
.bis-confirm { background: var(--bis-sky, #e1e9f3); border-radius: var(--bis-radius, 8px); padding: 32px 24px; text-align: center; }
.bis-confirm__icon { width: 56px; height: 56px; border-radius: 50%; margin: 0 auto 12px; display: flex; align-items: center; justify-content: center; background: var(--bis-success-bg, #e4f4f0); color: var(--bis-success, #00755c); border: 2px solid var(--bis-success-border, #009a79); }
.bis-order-form .bis-confirm__title { font-size: 28px; line-height: 1.25 !important; margin: 0 0 8px; color: var(--bis-navy, #202a44); }
.bis-order-form .bis-confirm__title:focus { outline: none; }
.bis-confirm__lede { font-size: 16px; color: var(--bis-text-soft, #4b5b73); margin: 0 0 20px; }
.bis-ref { display: inline-block; font-weight: 600; color: var(--bis-navy, #202a44); background: #fff; border-radius: 6px; padding: 2px 10px; letter-spacing: .02em; }
.bis-confirm__summary { text-align: left; margin: 0 0 20px; }
.bis-order-form .bis-check { list-style: none; margin: 0 auto 24px; padding: 0; max-width: 460px; text-align: left; }
.bis-order-form .bis-check li { position: relative; padding-left: 28px; margin: 0 0 8px; font-size: 15px; }
.bis-order-form .bis-check li::marker { content: ""; }
.bis-order-form .bis-check li::before { content: ""; position: absolute; left: 0; top: 3px; width: 18px; height: 18px; border-radius: 50%; background: var(--bis-success, #00755c) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4L18 8' fill='none' stroke='%23fff' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/14px no-repeat; }
.bis-preview-only { font-size: 13px; color: var(--bis-text-soft, #4b5b73); margin: 0 0 16px; }

/* ---------- page spacing (ships: the template's <main> carries these classes) ---------- */
body.page .site-main.container-xl { padding-top: 8px; padding-bottom: 96px; }
@media (max-width: 575.98px) { body.page .site-main.container-xl { padding-bottom: 64px; } }

/* ---------- motion ---------- */
@media (prefers-reduced-motion: reduce) {
  .bis-order-form *, .bis-order-form *::before, .bis-order-form *::after { transition: none !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* ---------- harness-only chrome (not shipped) ---------- */
.bis-harness-header { display: flex; align-items: center; justify-content: space-between; height: 100px; }
.bis-harness-header .logo img { height: 50px; width: auto; display: block; }
.bis-harness-header #cssmenu ul { list-style: none; margin: 0; padding: 0; display: flex; }
.bis-harness-header #cssmenu li { margin: 0; }
.bis-harness-header #cssmenu a { font-weight: 400; font-size: 18px; color: #202a44; padding: 8px 16px; display: block; }
.bis-harness-badge { position: fixed; right: 12px; bottom: 12px; z-index: 50; background: #202a44; color: #e1e9f3; font: 12px/1.4 "sofia-pro", Arial, sans-serif; padding: 6px 10px; border-radius: 6px; opacity: .85; pointer-events: none; }
