/**
 * Laydn guided tour — POST A LOAD screen.
 *
 * Companion to walkthrough/screens/post.php. Prefix: .pst-
 * Every selector is .pst-* or .lw-scaler.is-hand .pst-*, so nothing here can
 * reach the marketing page or another screen.
 *
 * ⚠️ THE APP IS A LIGHT THEME INSIDE A DARK SITE. The marketing body colour is
 *    var(--white) (#F2F2F2); inheriting it into a white card renders invisible
 *    text. Every colour below is set explicitly, and volt as TEXT on white is
 *    always #4a6b00 — plain #C8F135 only ever appears as a fill or a border,
 *    or as text on the dark hero card, the dark privacy banner and the dark
 *    sidebar.
 *
 * Corrections applied to the shipping product (see recon/screen-post.md,
 * gotchas 1 and 4), because the tour should show what the screen MEANS:
 *   - the "(optional)" notes and the trigger chevron are #6a6f78 rather than
 *     the rgba(242,242,242,.40) that renders invisible on white;
 *   - "Checking…" is #5a6068 rather than near-invisible;
 *   - error WORDS are #c43d17 (5:1 on white). The brand fire #ff5c35 is 3:1 —
 *     fine for the icon, the border and the required star, not for 11–14px text;
 *   - the success tick sits on a black disc: a volt glyph on white is 1.3:1 and
 *     its knocked-out white check all but disappears;
 *   - stop rows carry no volt left stripe, matching what actually ships.
 */

/* =====================================================================
 * GUARDS
 * ===================================================================== */

/**
 * ⚠️ THE ENGINE HIDES BY [hidden] AND [hidden] IS A UA RULE.
 *
 * Ctx.setState() toggles node.hidden. The UA sheet's `[hidden]{display:none}`
 * has the lowest priority of anything on the page, so ANY author rule that
 * gives an element a display — .pst-pills{display:grid}, .pst-times{display:grid},
 * .pst-asap{display:inline-flex}, Font Awesome's inline-block chevrons — beats
 * it and the "hidden" state renders anyway. Scoped to this screen's three
 * roots (the modal lives outside .lw-app, see post.php).
 */
.pst-screen[hidden], .pst-screen [hidden],
.pst-success-wrap[hidden], .pst-success-wrap [hidden],
.pst-modal[hidden], .pst-modal [hidden]{ display:none !important; }

/**
 * It is a film, not a form. Without this a real tap on the stage focuses an
 * input (phone keyboard, iOS zoom), drops a native <select> list over the
 * scene, or follows an href="#" to the top of the page. The engine never needs
 * real pointer events: it measures rects and sets classes.
 */
.pst-screen, .pst-success-wrap, .pst-modal{
  pointer-events:none; -webkit-user-select:none; user-select:none;
}

/**
 * ⚠️ style.css forces font-size:16px !important on every input, select and
 * textarea on touch devices — its iOS focus-zoom guard — at specificity (0,5,1)
 * for inputs. Nothing in here can take focus (above), so the guard buys
 * nothing, and it would make phones render a different form from the one QA
 * screenshots. The repeated class is the cheapest way past (0,5,1).
 */
.pst-screen .pst-in.pst-in.pst-in.pst-in.pst-in{ font-size:13px !important; }
.pst-screen .pst-stop-type{ font-size:13px !important; }

/* =====================================================================
 * DESK (1280 × 820)
 * ===================================================================== */

/* ---------- form card ---------- */
.pst-screen{ color:#0a0a0a; }
.pst-form{ padding:20px 22px; margin-bottom:18px; background:#fff; color:#0a0a0a; }
.pst-cols{ display:grid; grid-template-columns:1fr 1fr; gap:0 32px; align-items:start; }
.pst-col{ min-width:0; }

/* ---------- numbered section heads ---------- */
.pst-sec{
  display:flex; align-items:center; gap:10px;
  margin:18px 0 10px; padding-top:16px; border-top:1px solid #e3e6ea;
}
.pst-col > .pst-sec:first-child{ margin-top:0; padding-top:0; border-top:0; }
.pst-sec .n{
  width:22px; height:22px; flex:none; border-radius:50%;
  background:#C8F135; color:#0a0a0a; border:1px solid #C8F135;
  font-family:'Anta','Inter',sans-serif; font-size:12px; font-weight:700;
  display:inline-flex; align-items:center; justify-content:center; line-height:1;
}
.pst-sec .n i{ font-size:10px; color:#0a0a0a; }
.pst-sec h3{ margin:0; font-family:'Anta','Inter',sans-serif; font-size:15px; color:#0a0a0a; letter-spacing:-.01em; font-weight:400; line-height:1.2; }
.pst-opt{ font-size:11px; font-weight:400; text-transform:none; letter-spacing:0; color:#6a6f78; margin-left:4px; }

/* ---------- fields ---------- */
.pst-f{ display:block; }
.pst-row2{ margin-top:10px; }
.pst-mb8{ margin-bottom:8px; }

/* Field labels. The two special labels are EXCLUDED rather than fought: a bare
   `.pst-form label` (0,1,1) out-specified `.pst-asap` and `.pst-lab-2` (0,1,0)
   and turned the ASAP pill into an uppercase 10px block. */
.pst-form label:not(.pst-lab-2):not(.pst-asap){
  display:block; font-family:'Inter',system-ui,sans-serif; font-size:10px; font-weight:600;
  letter-spacing:.10em; text-transform:uppercase; color:#5a6068; margin-bottom:5px;
}
.pst-form .req{ color:#ff5c35; }
.pst-lab-2{
  display:block; font-family:'Inter',system-ui,sans-serif; font-size:12px; font-weight:600;
  text-transform:none; letter-spacing:0; color:#0a0a0a; margin:0 0 4px;
}
.pst-lab-lock{ margin-top:14px; }
.pst-lab-lock i{ font-size:11px; color:#4a6b00; opacity:.8; margin-right:2px; }

.pst-in{
  width:100%; margin:0; background:#fff; border:1px solid #d6dae0; color:#0a0a0a;
  font-family:'Inter',system-ui,sans-serif; font-size:13px; line-height:1.35;
  padding:9px 12px; border-radius:7px; -webkit-appearance:none; appearance:none; box-sizing:border-box;
  box-shadow:0 1px 0 rgba(15,18,22,.03); text-overflow:ellipsis;
}
.pst-in::placeholder{ color:#8a909a; opacity:1; }
.pst-in:disabled{ opacity:.4; background-color:#eef0f3; color:#5a6068; -webkit-text-fill-color:#5a6068; }
.pst-sel{
  padding-right:32px; cursor:pointer;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 14 8'><path fill='%234a6b00' d='M7 8L0 0h14z'/></svg>");
  background-repeat:no-repeat; background-position:right 12px center;
}
/* Date + time fields are text inputs (see post.php) wearing the picker glyphs,
   in olive — the readable stand-in for the product's volt-tinted indicator. */
.pst-date, .pst-time{
  padding-right:32px; font-variant-numeric:tabular-nums;
  background-repeat:no-repeat; background-position:right 11px center; background-size:13px 13px;
}
.pst-date{ background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%234a6b00' stroke-width='1.5' stroke-linecap='round'><rect x='2' y='3' width='12' height='11' rx='2'/><path d='M2 6.5h12M5.5 1.5v3M10.5 1.5v3'/></svg>"); }
.pst-time{ background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%234a6b00' stroke-width='1.5' stroke-linecap='round'><circle cx='8' cy='8' r='6'/><path d='M8 4.8V8l2.2 1.4'/></svg>"); }
.pst-ta{ display:block; min-height:88px; resize:vertical; line-height:1.5; }
.pst-ta-tall{ min-height:150px; }
.pst-ta-sm{ min-height:52px; }

.pst-grid{ display:grid; gap:10px; }
.pst-grid > *{ min-width:0; }
.pst-grid.c2{ grid-template-columns:1fr 1fr; }
.pst-grid.c3{ grid-template-columns:repeat(3,1fr); }
.pst-grid.c-route{ grid-template-columns:2fr 1fr; }

/* ---------- payload pills ---------- */
.pst-pills{ display:grid; grid-template-columns:1fr 1fr; gap:6px; }
.pst-pill{
  display:flex; align-items:center; justify-content:center;
  border:1.5px solid #d6dae0; background:#fff; border-radius:7px; padding:8px 6px;
  font-family:'Inter',system-ui,sans-serif; font-size:13px; font-weight:500; color:#5a6068;
  text-transform:none; letter-spacing:0;
}
.pst-pill.is-active{ background:#C8F135; border-color:#C8F135; color:#0a0a0a; font-weight:600; }

/* ---------- handling trigger + chips ---------- */
.pst-svc-trigger{
  width:100%; display:flex; align-items:center; gap:10px; padding:11px 14px; margin:0;
  background:#fff; border:1px solid #d6dae0; color:#0a0a0a; border-radius:8px;
  font-family:'Inter',system-ui,sans-serif; font-size:13px; text-align:left; cursor:pointer;
}
.pst-svc-trigger .t{ color:#4a6b00; }
.pst-svc-trigger .l{ flex:1; color:#0a0a0a; }
.pst-svc-trigger .c{ font-size:10px; color:#6a6f78; }
.pst-svc-count{
  background:#C8F135; color:#0a0a0a; font-weight:700; font-size:11px; line-height:1.5;
  padding:2px 9px; border-radius:999px; white-space:nowrap;
}
.pst-svc-count.is-empty{ background:#eef0f3; color:#5a6068; font-weight:600; }
.pst-svc-chips{ display:flex; flex-wrap:wrap; gap:5px; margin-top:10px; }
.pst-svc-chips:empty{ margin-top:0; }
.pst-chip{
  display:inline-flex; align-items:center; gap:6px; padding:4px 10px;
  background:#C8F135; color:#0a0a0a; border:1px solid #C8F135; border-radius:999px;
  font-size:12px; font-weight:600;
}
.pst-chip i{ font-size:9px; color:#0a0a0a; }

.pst-ref-hint{
  display:inline-flex; align-items:flex-start; gap:6px; margin-top:6px;
  font-size:11px; line-height:1.3; color:#4a6b00;
}
.pst-ref-hint i{ font-size:10px; margin-top:1px; color:#4a6b00; }

/* ---------- privacy banner (black, on purpose) ---------- */
.pst-privacy{
  display:flex; align-items:flex-start; gap:12px; padding:12px 14px;
  background:#0a0a0a; border:1px solid #C8F135; border-radius:10px; margin-bottom:14px;
  font-size:12px; line-height:1.5; color:#F2F2F2;
  box-shadow:0 0 0 3px rgba(200,241,53,.10), 0 8px 18px rgba(15,18,22,.18);
}
.pst-privacy i{ color:#C8F135; font-size:16px; margin-top:1px; flex:none; }
.pst-privacy div{ min-width:0; color:#F2F2F2; }
.pst-privacy strong{
  display:block; font-family:'Anta','Inter',sans-serif; font-weight:400;
  font-size:13px; color:#C8F135; margin-bottom:2px;
}
.pst-privacy em{ color:#C8F135; font-style:normal; font-weight:600; }

/* ---------- stop rows ---------- */
.pst-stops{ display:flex; flex-direction:column; gap:10px; }
.pst-stop{
  position:relative; background:#f7f8fa; border:1px solid #e3e6ea;
  border-radius:11px; padding:12px; color:#0a0a0a;
}
.pst-stop-head{ display:flex; align-items:center; gap:10px; margin-bottom:10px; }
.pst-stop-n{
  width:22px; height:22px; flex:none; border-radius:50%; background:#C8F135; color:#0a0a0a;
  font-family:'Anta','Inter',sans-serif; font-size:12px; font-weight:700;
  display:inline-flex; align-items:center; justify-content:center; line-height:1;
}
.pst-stop-type{
  flex:1; min-width:0; max-width:180px; margin:0; background:#fff; border:1px solid #d6dae0; color:#0a0a0a;
  font-family:'Inter',system-ui,sans-serif; font-size:13px; font-weight:600;
  padding:5px 28px 5px 10px; border-radius:6px; -webkit-appearance:none; appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 14 8'><path fill='%234a6b00' d='M7 8L0 0h14z'/></svg>");
  background-repeat:no-repeat; background-position:right 8px center;
}
.pst-stop-type:disabled{ opacity:.7; cursor:not-allowed; -webkit-text-fill-color:#0a0a0a; }
.pst-stop-x{
  width:26px; height:26px; flex:none; margin-left:auto; background:transparent;
  color:#5a6068; border:1px solid #d6dae0; border-radius:6px; cursor:pointer;
  display:grid; place-items:center; font-size:12px; padding:0;
}
.pst-stop-x:disabled{ opacity:.25; cursor:not-allowed; }

/* postcode status — reserves its own line so nothing jumps */
.pst-pc{ display:block; margin-top:4px; font-size:11px; line-height:1.3; min-height:14px; color:#5a6068; }
.pst-pc.is-load{ color:#5a6068; }
.pst-pc.is-ok{ color:#4a6b00; font-weight:600; }
.pst-pc.is-err{ color:#c43d17; font-weight:600; }

/* the two time fields ride together so ASAP can swap the pair */
.pst-times{ grid-column:span 2; display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.pst-times > *{ min-width:0; }
.pst-times.is-asap .pst-in{ opacity:.4; background-color:#eef0f3; }

/* ASAP pill */
.pst-asap{
  display:inline-flex; align-items:center; gap:9px; margin:10px 0 0; padding:7px 12px;
  background:#fff; border:1px solid #e3e6ea; border-radius:7px;
  font-family:'Inter',system-ui,sans-serif; font-size:12px; font-weight:500; line-height:1.4;
  text-transform:none; letter-spacing:0; color:#5a6068; cursor:pointer;
}
.pst-asap .b{
  width:16px; height:16px; flex:none; background:#fff; border:1.5px solid #d6dae0;
  border-radius:4px; display:grid; place-items:center; font-size:9px; color:transparent;
}
.pst-asap .t{ font-weight:500; color:#5a6068; }
.pst-asap.is-on{ background:#C8F135; border-color:#C8F135; }
.pst-asap.is-on .b{ background:#0a0a0a; border-color:#0a0a0a; color:#C8F135; }
.pst-asap.is-on .t{ color:#0a0a0a; font-weight:700; }

/* site details */
.pst-site{ background:#fff; border:1px solid #e3e6ea; border-radius:9px; padding:0 12px; margin-top:12px; }
.pst-site-sum{
  display:flex; align-items:center; gap:8px; padding:10px 0;
  font-family:'Anta','Inter',sans-serif; font-size:12px; letter-spacing:.02em;
  color:#0a0a0a; cursor:pointer;
}
.pst-site-sum .l{ font-size:11px; color:#4a6b00; }
.pst-site-sum .ch{ margin-left:auto; color:#6a6f78; font-size:11px; }
.pst-site-badge{
  font-family:'Inter',system-ui,sans-serif; font-size:10px; font-weight:400; white-space:nowrap;
  text-transform:none; letter-spacing:0; color:#5a6068;
  background:#fff4e0; border:1px solid #f0dcb8; border-radius:999px; padding:2px 8px;
}
.pst-site-body{ padding-bottom:10px; }
.pst-site-body .pst-grid{ margin-top:10px; }

/* add another stop */
.pst-addstop{
  display:inline-flex; align-items:center; gap:7px; width:100%; justify-content:center;
  background:#fff; border:1px dashed #c8ccd1; color:#5a6068; border-radius:8px;
  padding:9px 14px; margin:10px 0 0; cursor:pointer;
  font-family:'Anta','Inter',sans-serif; font-size:13px;
}
.pst-addstop i{ color:#4a6b00; font-size:11px; }

/* ---------- submit row ---------- */
.pst-submit{
  margin-top:22px; padding-top:18px; border-top:1px solid #e3e6ea;
  display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap;
}
.pst-terms{ margin:0; font-size:12px; line-height:1.5; color:#5a6068; }
.pst-terms a{ color:#0a0a0a; font-weight:600; text-decoration:underline; }
.pst-submit-actions{ display:flex; gap:12px; align-items:center; }

.pst-btn-volt{
  display:inline-flex; align-items:center; justify-content:center; gap:9px; margin:0;
  padding:12px 22px; background:#C8F135; color:#0a0a0a; border:1.5px solid #C8F135;
  border-radius:9px; font-family:'Anta','Inter',sans-serif; font-size:14px; line-height:1;
  text-decoration:none; cursor:pointer; position:relative; overflow:hidden;
  box-shadow:0 6px 16px rgba(200,241,53,.20);
}
.pst-btn-volt i{ color:#0a0a0a; font-size:.85em; }
.pst-btn-line{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  padding:12px 22px; background:#fff; color:#5a6068; border:1.5px solid #d6dae0;
  border-radius:9px; font-family:'Anta','Inter',sans-serif; font-size:14px; line-height:1;
  text-decoration:none; cursor:pointer;
}
.pst-btn-line i{ color:#4a6b00; font-size:.85em; }

/* ---------- error return ---------- */
.pst-err{
  background:rgba(255,92,53,.10); border:1px solid rgba(255,92,53,.55);
  border-radius:10px; padding:14px 18px; margin-bottom:18px; color:#5a6068;
}
.pst-err-head{ display:flex; align-items:center; gap:10px; margin-bottom:6px; }
.pst-err-head i{ color:#ff5c35; font-size:15px; }
.pst-err-head strong{ font-family:'Anta','Inter',sans-serif; font-weight:400; color:#c43d17; font-size:14px; }
.pst-err-list{ margin:0; padding-left:24px; color:#5a6068; font-size:13px; line-height:1.5; }
.pst-err-list li{ margin-bottom:3px; color:#5a6068; }

/* ---------- handling modal ----------
   A direct child of the scaler (see post.php), so inset:0 IS the stage,
   wherever the film has scrolled the page underneath. */
.pst-modal{
  position:absolute; inset:0; z-index:40; display:flex; align-items:center; justify-content:center;
  padding:20px; color:#0a0a0a; font-family:'Inter',system-ui,sans-serif;
}
.pst-modal-veil{
  position:absolute; inset:0; background:rgba(15,18,22,.55);
  -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px);
}
.pst-modal-panel{
  position:relative; width:100%; max-width:720px; max-height:100%;
  background:#fff; border:1px solid #e3e6ea; color:#0a0a0a; border-radius:14px;
  display:flex; flex-direction:column; overflow:hidden; box-shadow:0 30px 70px rgba(15,18,22,.30);
}
.pst-modal-head{ position:relative; flex:none; padding:22px 24px 16px; border-bottom:1px solid #e3e6ea; }
.pst-modal-head h3{ margin:0 0 4px; font-family:'Anta','Inter',sans-serif; font-weight:400; font-size:20px; line-height:1.15; color:#0a0a0a; letter-spacing:-.01em; }
.pst-modal-head p{ margin:0; font-size:13px; line-height:1.5; color:#5a6068; }
.pst-modal-x{
  position:absolute; top:16px; right:16px; width:32px; height:32px; padding:0;
  background:#fff; border:1px solid #d6dae0; border-radius:8px; color:#5a6068;
  cursor:pointer; display:grid; place-items:center; font-size:12px;
}
/* The film cannot scroll inside the list, so no scrollbar: on a phone the last
   option simply runs off the bottom of the sheet, as a long list does. */
.pst-modal-body{ flex:1; min-height:0; overflow-y:auto; padding:18px 24px; scrollbar-width:none; }
.pst-modal-body::-webkit-scrollbar{ display:none; }
.pst-svc-grid{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.pst-svc-opt{
  display:flex; align-items:center; gap:12px; padding:12px 14px;
  background:#fff; border:1.5px solid #d6dae0; border-radius:9px; cursor:pointer;
}
.pst-svc-opt .ic{
  width:32px; height:32px; flex:none; background:#C8F135; color:#0a0a0a;
  border-radius:8px; font-size:14px; display:grid; place-items:center;
}
.pst-svc-opt .tx{ min-width:0; }
.pst-svc-opt .lb{ font-size:14px; font-weight:500; color:#0a0a0a; }
.pst-svc-opt .ds{ font-size:11px; color:#5a6068; line-height:1.4; }
.pst-svc-opt .ck{
  margin-left:auto; width:22px; height:22px; flex:none; border-radius:50%;
  background:#f3f4f6; border:1.5px solid #d6dae0; color:transparent;
  display:grid; place-items:center; font-size:10px;
}
.pst-svc-opt.is-on{ background:rgba(200,241,53,.08); border-color:#C8F135; }
.pst-svc-opt.is-on .ck{ background:#C8F135; border-color:#C8F135; color:#0a0a0a; }
.pst-modal-foot{
  flex:none; padding:14px 24px; border-top:1px solid #e3e6ea;
  display:flex; align-items:center; justify-content:space-between; gap:12px;
}
.pst-modal-clear{
  background:none; border:0; padding:0; margin:0; color:#5a6068; cursor:pointer;
  font-family:'Inter',system-ui,sans-serif; font-size:13px;
}
.pst-modal-done{
  background:#C8F135; color:#0a0a0a; border:0; border-radius:8px; padding:11px 26px; margin:0;
  font-family:'Anta','Inter',sans-serif; font-size:14px; line-height:1.2; cursor:pointer;
  position:relative; overflow:hidden;
}

/* ---------- posted ----------
   min-height is the stage's content height (820 − 2×26 main padding), so the
   card lands in the middle of the frame rather than two-thirds of the way up. */
.pst-success-wrap{ display:flex; align-items:center; justify-content:center; min-height:760px; padding:24px 0; color:#0a0a0a; }
.pst-success{
  width:100%; max-width:560px; background:#fff; border:1px solid #C8F135;
  border-radius:14px; padding:44px 32px 40px; text-align:center; color:#0a0a0a;
  box-shadow:0 0 0 4px rgba(200,241,53,.10), 0 12px 28px rgba(15,18,22,.10);
}
.pst-success .ic{
  display:grid; place-items:center; width:76px; height:76px; margin:0 auto 18px;
  border-radius:50%; background:#0a0a0a; color:#C8F135; font-size:40px;
  box-shadow:0 0 0 5px rgba(200,241,53,.18), 0 10px 24px rgba(15,18,22,.18);
}
.pst-success h2{ font-family:'Anta','Inter',sans-serif; font-weight:400; font-size:30px; line-height:1.1; color:#0a0a0a; margin:0 0 10px; }
.pst-success p{ font-size:15px; line-height:1.5; color:#5a6068; margin:0 0 26px; }
.pst-success-actions{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }

/* =====================================================================
 * NARROW DESIGN SPACE (420 × 880) — the app's own phone layout.
 *
 * ⚠️ Media queries NEVER fire inside the scaler: it is a fixed-pixel box that
 * always reports its design width. The engine puts .is-hand on it instead, so
 * every rule below keys off .lw-scaler.is-hand. See laydn-tour.css.
 *
 * Widths to design against: 420 − 2×14 main padding = 392; the form card's
 * inner width is 362; a stop card's is 338.
 * ===================================================================== */

/* error card */
.lw-scaler.is-hand .pst-err{ padding:12px 14px; margin-bottom:14px; }
.lw-scaler.is-hand .pst-err-list{ padding-left:20px; font-size:12.5px; }

/* the card (product mobile: 20px 18px, radius 12) */
.lw-scaler.is-hand .pst-form{ padding:16px 14px 18px; border-radius:12px; margin-bottom:14px; }

/* two columns become one: Load info → Notes, then Stops → Price & contact */
.lw-scaler.is-hand .pst-cols{ grid-template-columns:1fr; }

/* section heads */
.lw-scaler.is-hand .pst-sec{ margin:16px 0 10px; padding-top:14px; }
.lw-scaler.is-hand .pst-col:first-child > .pst-sec:first-child{ margin-top:0; padding-top:0; }
/* 5 · Stops now follows Notes instead of heading its own column: give it its rule back */
.lw-scaler.is-hand .pst-col + .pst-col > .pst-sec:first-child{ border-top:1px solid #e3e6ea; }
.lw-scaler.is-hand .pst-sec h3{ font-size:14px; }

/* 10px capitals read fine on a desk; half a pixel more on a phone */
.lw-scaler.is-hand .pst-form label:not(.pst-lab-2):not(.pst-asap){ font-size:10.5px; }

/* every inner grid stacks … */
.lw-scaler.is-hand .pst-grid.c2,
.lw-scaler.is-hand .pst-grid.c3,
.lw-scaler.is-hand .pst-grid.c-route{ grid-template-columns:1fr; }
/* … except the vehicle staircase: its short selects stay side by side (176px
   each, "13.6m trailer" needs ~130) so each tread still appears beside the
   one that earned it. */
.lw-scaler.is-hand .pst-grid.pst-pair{ grid-template-columns:1fr 1fr; }
/* From/To spans two of three columns on desk; on one column it fills the row
   and keeps its own pair, so the window still reads "06:00 – 10:00". */
.lw-scaler.is-hand .pst-times{ grid-column:1 / -1; }

/* no second column to level with */
.lw-scaler.is-hand .pst-ta-tall{ min-height:88px; }

/* privacy banner */
.lw-scaler.is-hand .pst-privacy{ padding:11px 12px; gap:10px; font-size:11.5px; }
.lw-scaler.is-hand .pst-privacy strong{ font-size:12.5px; }
.lw-scaler.is-hand .pst-privacy i{ font-size:15px; }

/* stop cards */
.lw-scaler.is-hand .pst-stop{ padding:11px; }
.lw-scaler.is-hand .pst-site{ padding:0 10px; }
.lw-scaler.is-hand .pst-site-sum{ flex-wrap:wrap; row-gap:4px; }

/* submit: the terms line, then a full-width CTA */
.lw-scaler.is-hand .pst-submit{ flex-direction:column; align-items:stretch; gap:12px; margin-top:18px; padding-top:16px; }
.lw-scaler.is-hand .pst-terms{ text-align:center; }
.lw-scaler.is-hand .pst-submit-actions{ width:100%; }
.lw-scaler.is-hand .pst-submit-actions .pst-btn-volt{ width:100%; }

/* handling modal: a full-screen sheet, as the product goes at ≤640px */
.lw-scaler.is-hand .pst-modal{ padding:0; align-items:stretch; }
.lw-scaler.is-hand .pst-modal-panel{ max-width:none; max-height:none; height:100%; border:0; border-radius:0; box-shadow:none; }
.lw-scaler.is-hand .pst-modal-head{ padding:18px 58px 14px 16px; }
.lw-scaler.is-hand .pst-modal-head h3{ font-size:18px; }
.lw-scaler.is-hand .pst-modal-head p{ font-size:12.5px; }
.lw-scaler.is-hand .pst-modal-x{ top:14px; right:14px; }
.lw-scaler.is-hand .pst-modal-body{ padding:12px 16px; }
.lw-scaler.is-hand .pst-svc-grid{ grid-template-columns:1fr; gap:6px; }
.lw-scaler.is-hand .pst-svc-opt{ padding:8px 12px; gap:10px; }
.lw-scaler.is-hand .pst-svc-opt .ic{ width:28px; height:28px; border-radius:7px; font-size:13px; }
.lw-scaler.is-hand .pst-svc-opt .lb{ font-size:13.5px; line-height:1.3; }
.lw-scaler.is-hand .pst-svc-opt .ds{ line-height:1.35; }
.lw-scaler.is-hand .pst-svc-opt .ck{ width:20px; height:20px; }
.lw-scaler.is-hand .pst-modal-foot{ padding:12px 16px; }

/* posted — 680 keeps the whole frame (topbar + card + 76px tab-bar clearance)
   inside 880, so the shell's tab bar stays pinned to the bottom of the stage */
.lw-scaler.is-hand .pst-success-wrap{ min-height:680px; padding:8px 0; }
.lw-scaler.is-hand .pst-success{ padding:32px 20px 22px; border-radius:12px; }
.lw-scaler.is-hand .pst-success .ic{ width:64px; height:64px; font-size:34px; margin-bottom:14px; }
.lw-scaler.is-hand .pst-success h2{ font-size:24px; }
.lw-scaler.is-hand .pst-success p{ font-size:13.5px; margin-bottom:20px; }
.lw-scaler.is-hand .pst-success-actions{ flex-direction:column; align-items:stretch; gap:10px; }
.lw-scaler.is-hand .pst-success-actions a{ width:100%; }
