/* NeedGas brand colours, taken from the logo. Loaded on every page (after the page's own styles).
   Red + flame orange = order / main buttons.  Green = free, done, safe.  Blue = fast / on the way. */
:root {
  --ng-red: #e3141b;
  --ng-red-dark: #b50d13;
  --ng-flame: #ff5a00;
  --ng-yellow: #ffc400;
  --ng-green: #6cc417;
  --ng-green-dark: #3f8f0c;
  --ng-blue: #1e6fe0;
  --ng-cta: linear-gradient(135deg, #e3141b 0%, #ff3b0a 55%, #ff5a00 100%);
  --ng-swoosh: linear-gradient(90deg, #e3141b 0%, #ff5a00 30%, #ffc400 50%, #6cc417 72%, #1e6fe0 100%);
}

/* The logo's colour swoosh across the top of every page. */
body::before {
  content: "";
  position: fixed;
  top: 0; left: 0; right: 0;
  height: 4px;
  background: var(--ng-swoosh);
  z-index: 9998;
  pointer-events: none;
}

/* Main "order" buttons: strong logo red with a flame edge, white text, soft red glow. */
.next-btn:not(:disabled), .cta, .again-btn, .send, .btn.go, .btn.primary, .btn-again, .primary, .help-send:not(:disabled) {
  box-shadow: 0 6px 18px rgba(227, 20, 27, 0.35);
  text-shadow: 0 1px 1px rgba(0, 0, 0, 0.25);
  letter-spacing: 0.2px;
}
.next-btn:not(:disabled):active, .cta:active, .again-btn:active, .btn.go:active { filter: brightness(0.92); }

/* Documents (invoice, quote, delivery note): a big coloured title bar says what the document is,
   and every line is dark and bold enough to read easily on a phone and when printed. */
.doc-type { display: block; text-align: center; color: #fff; font-weight: 900; font-size: 26px; letter-spacing: 3px; text-transform: uppercase;
  padding: 12px 10px; border-radius: 12px; margin: 8px 0 16px; line-height: 1.15; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.doc-type small { display: block; font-size: 13px; letter-spacing: 0.5px; font-weight: 800; text-transform: none; opacity: 0.95; margin-top: 4px; }
.doc-type.invoice { background: #e3141b; }
.doc-type.paid { background: #3f8f0c; }
.doc-type.quote { background: #1e6fe0; }
.doc-type.delivery { background: #14100a; }
.doc-type.collection { background: #ff5a00; }
.invoice .row, .doc .row, .note .row { font-size: 15px; color: #14100a; padding: 7px 0; border-bottom: 1px solid #e6e6e6; }
.invoice .row .label, .doc .row .label, .note .row span:first-child { color: #333; font-weight: 700; }
.invoice .row span:last-child, .doc .row span:last-child, .note .row span:last-child { font-weight: 800; color: #14100a; }
.invoice .section-title, .doc .section-title, .note .section { font-size: 13px; font-weight: 900; color: #14100a; letter-spacing: 1px;
  border-bottom: 3px solid #e3141b; padding-bottom: 3px; margin-top: 18px; }
.invoice .total-row, .doc .total-row { font-size: 20px; font-weight: 900; border-top: 3px solid #14100a; margin-top: 6px; }
.invoice .sub, .doc .sub, .note .sub { color: #333; font-weight: 700; font-size: 12px; }
/* ---------- Download / print: the document alone, neatly spaced on ONE A4 page ----------
   Everything except the document (.print-doc) is left out; js/print-fit.js shrinks a long document to fit. */
@media print {
  @page { size: A4 portrait; margin: 10mm; }
  html, body { background: #fff !important; margin: 0 !important; padding: 0 !important; min-height: 0 !important; }
  body::before { display: none !important; }
  body * { visibility: hidden !important; }
  .print-doc, .print-doc * { visibility: visible !important; }
  .print-doc { position: absolute !important; left: 0; top: 0; width: 100% !important; }
}
/* The compact document layout (used when printing; js/print-fit.js switches it on to measure the page). */
@media print { .print-doc { margin: 0 !important; } }
.print-mode .print-doc { max-width: none !important; margin: 0 !important;
  padding: 0 !important; border-radius: 0 !important; box-shadow: none !important; background: #fff !important; color: #14100a !important;
  font-size: 11.5px !important; line-height: 1.35 !important; break-inside: avoid; }
.print-mode .print-doc img { max-width: 110px !important; max-height: 110px !important; width: auto !important; height: auto !important; margin: 0 auto 4px !important; display: block; }
.print-mode .print-doc .doc-type { font-size: 19px !important; padding: 6px 8px !important; margin: 4px 0 10px !important; border-radius: 0 !important; letter-spacing: 2px !important; }
.print-mode .print-doc .doc-type small { font-size: 10.5px !important; margin-top: 2px !important; }
.print-mode .print-doc .row { padding: 3px 0 !important; font-size: 11.5px !important; }
.print-mode .print-doc .section-title, .print-mode .print-doc .section { margin: 9px 0 3px !important; font-size: 10.5px !important; padding-bottom: 2px !important; border-bottom-width: 2px !important; }
.print-mode .print-doc .total-row { font-size: 14px !important; padding-top: 5px !important; margin-top: 3px !important; }
.print-mode .print-doc .sub, .print-mode .print-doc .note, .print-mode .print-doc .vat-note, .print-mode .print-doc .hint, .print-mode .print-doc .test { font-size: 9.5px !important; margin-top: 4px !important; }
.print-mode .print-doc .stamp { font-size: 12px !important; margin: 8px 0 2px !important; }
.print-mode .print-doc hr { margin: 6px 0 !important; }
.print-mode .print-doc .pill, .print-mode .print-doc .status-pill { border: 1px solid #999; }

/* Ordering steps at the top of each order page: done (green tick), now (red), still to come (grey). */
.ng-steps { display: flex; gap: 6px; margin: 0 0 16px; }
.ng-steps span { flex: 1; text-align: center; font-size: 12px; font-weight: 800; line-height: 1.25; padding: 8px 4px; border-radius: 10px;
  background: #1a2233; color: #8b93a3; border: 1px solid #2a3348; }
.ng-steps span b { display: block; font-size: 15px; }
.ng-steps span.done { background: #16241a; color: #8ee04a; border-color: #2f5a1f; }
.ng-steps span.now { background: var(--ng-cta); color: #fff; border-color: transparent; box-shadow: 0 4px 12px rgba(227, 20, 27, 0.35); }

/* Free, done and safe: the logo green. */
.svc-note.free, .how-tag.free { color: #8ee04a; }
