/* ============================================================
   Supply Line Fire — site stylesheet
   Field-manual document grid (bordered shell, hairline-divided
   cells, mono labels, big Archivo headlines) applied to a dark
   warm-charcoal aesthetic with flame-red accents.
   Shared across Home and all subpages (Support / Privacy / Terms).
   ============================================================ */
:root {
  --slf-bg:           #14100d;
  --slf-bg-elev:      #1b1612;
  --slf-bg-elev-2:    #221b16;
  --slf-bg-elev-3:    #2a221c;
  --slf-line:         rgba(245, 222, 190, 0.10);
  --slf-line-strong:  rgba(245, 222, 190, 0.18);
  --slf-line-rule:    rgba(245, 222, 190, 0.22);
  --slf-text:         #f1ebe1;
  --slf-text-soft:    #d6cdbf;
  --slf-text-muted:   #948a7c;
  --slf-text-dim:     #6b6358;
  --slf-red:          #e8421f;
  --slf-red-bright:   #ff6a35;
  --slf-shell-max:    1280px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--slf-bg);
  color: var(--slf-text);
  font: 16px/1.55 'Geist', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  font-feature-settings: 'cv11', 'ss01';
  text-wrap: pretty;
  overflow-x: hidden;
}
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; color: inherit; }

.mono {
  font-family: 'Geist Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  font-feature-settings: 'tnum';
}
.display {
  font-family: 'Archivo', 'Geist', sans-serif;
  font-weight: 800;
  letter-spacing: -0.04em;
}

/* ── atmosphere (flame glow + dot map texture) ─────────────── */
.slf-bg {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  background:
    radial-gradient(900px 600px at 12% -8%, rgba(255, 106, 53, 0.13), transparent 65%),
    radial-gradient(700px 500px at 100% 18%, rgba(232, 66, 31, 0.07), transparent 60%);
}
.slf-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(245, 222, 190, 0.05) 1px, transparent 1px);
  background-size: 32px 32px;
  mask-image: linear-gradient(180deg, transparent, #000 14%, #000 86%, transparent);
  -webkit-mask-image: linear-gradient(180deg, transparent, #000 14%, #000 86%, transparent);
}

/* ── shell: bordered document container ────────────────────── */
.slf-shell {
  position: relative;
  z-index: 1;
  max-width: var(--slf-shell-max);
  margin: 0 auto;
  border-left: 1px solid var(--slf-line-rule);
  border-right: 1px solid var(--slf-line-rule);
  background: rgba(20, 16, 13, 0.55);
  backdrop-filter: blur(2px);
}

/* ── header (sticky, flush) ───────────────────────────────── */
.slf-header {
  position: sticky;
  top: 0;
  z-index: 50;
  backdrop-filter: blur(14px) saturate(140%);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
  background: rgba(20, 16, 13, 0.92);
  border-bottom: 1px solid var(--slf-line-rule);
}
.slf-header-inner {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: stretch;
  gap: 0;
}
.slf-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 22px;
  border-right: 1px solid var(--slf-line);
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--slf-text);
}
.slf-brand-mark {
  width: 38px;
  height: 38px;
  border-radius: 9px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255, 255, 255, 0.04) inset;
}
.slf-brand-name {
  font-size: 15.5px;
  letter-spacing: -0.005em;
}
.slf-nav-spacer { border-right: 1px solid var(--slf-line); }
.slf-nav {
  display: flex;
  align-items: center;
  gap: 2px;
  padding: 0 8px;
}
.slf-nav a:not(.slf-btn) {
  padding: 10px 14px;
  font-family: 'Geist Mono', monospace;
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--slf-text-muted);
  transition: color 140ms;
  white-space: nowrap;
}
.slf-nav a:not(.slf-btn):hover,
.slf-nav a:not(.slf-btn)[aria-current="page"] { color: var(--slf-text); }
.slf-nav a:not(.slf-btn)[aria-current="page"] {
  /* subtle red rule under current-page nav item to show location */
  box-shadow: inset 0 -2px 0 0 var(--slf-red-bright);
}
.slf-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  font-family: 'Geist Mono', monospace;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  white-space: nowrap;
  cursor: pointer;
  border: 0;
  transition: transform 100ms ease-out, background 160ms, box-shadow 160ms;
}
.slf-btn-primary {
  background: linear-gradient(180deg, var(--slf-red-bright), var(--slf-red));
  color: #fff;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.18) inset,
    0 -1px 0 rgba(0, 0, 0, 0.15) inset,
    0 8px 22px -10px rgba(232, 66, 31, 0.55);
}
.slf-btn-primary:hover { transform: translateY(-1px); }
.slf-btn-ghost {
  background: rgba(245, 222, 190, 0.05);
  color: var(--slf-text);
  border: 1px solid var(--slf-line-strong);
}
.slf-btn-ghost:hover { background: rgba(245, 222, 190, 0.09); border-color: var(--slf-line-rule); }
.slf-header .slf-btn {
  margin: 8px 12px 8px 4px;
  align-self: center;
}
.slf-header-cta-wrap {
  display: flex;
  align-items: center;
  border-left: 1px solid var(--slf-line);
}
.slf-cta-short { display: none; }

/* ── section primitives ───────────────────────────────────── */
.slf-section {
  border-bottom: 1px solid var(--slf-line-rule);
  position: relative;
}
.slf-section-head {
  display: grid;
  grid-template-columns: 280px 1fr;
  border-bottom: 1px solid var(--slf-line-rule);
}
.slf-section-head-l {
  padding: 22px 26px;
  border-right: 1px solid var(--slf-line-rule);
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.slf-kicker {
  font-family: 'Geist Mono', monospace;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--slf-red-bright);
}
.slf-kicker-sub {
  font-family: 'Geist Mono', monospace;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--slf-text-dim);
}
.slf-h2 {
  margin: 0;
  padding: 22px 28px;
  font-family: 'Archivo', 'Geist', sans-serif;
  font-weight: 800;
  font-size: clamp(32px, 4.5vw, 56px);
  line-height: 0.96;
  letter-spacing: -0.04em;
  text-wrap: balance;
  text-transform: uppercase;
}
.slf-h2 em { font-style: normal; color: var(--slf-red-bright); }

/* ── hero ─────────────────────────────────────────────────── */
.slf-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr);
  border-bottom: 1px solid var(--slf-line-rule);
}
.slf-hero-copy {
  padding: 44px 32px 40px;
  border-right: 1px solid var(--slf-line-rule);
  display: flex;
  flex-direction: column;
  gap: 26px;
  position: relative;
}
.slf-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 7px 12px 7px 10px;
  border-radius: 999px;
  background: rgba(232, 66, 31, 0.10);
  border: 1px solid rgba(232, 66, 31, 0.28);
  color: var(--slf-red-bright);
  font-family: 'Geist Mono', monospace;
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  width: max-content;
}
.slf-eyebrow-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--slf-red-bright);
  box-shadow: 0 0 8px var(--slf-red-bright);
}

/* H1 — uppercase stacked block, line-per-word, Archivo heavy */
.slf-h1 {
  margin: 0;
  font-family: 'Archivo', 'Geist', sans-serif;
  font-weight: 800;
  font-size: clamp(54px, 7.4vw, 104px);
  line-height: 0.86;
  letter-spacing: -0.05em;
  text-transform: uppercase;
  text-wrap: balance;
  color: var(--slf-text);
}
.slf-h1-line { display: block; }
.slf-h1-line em {
  font-style: normal;
  background: linear-gradient(180deg, #ff8554, var(--slf-red));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.slf-lede {
  display: grid;
  grid-template-columns: 130px 1fr;
  gap: 18px;
  padding-top: 22px;
  border-top: 1px solid var(--slf-line-rule);
}
.slf-lede-label {
  font-family: 'Geist Mono', monospace;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--slf-text-soft);
  line-height: 1.5;
}
.slf-lede p {
  margin: 0;
  font-size: 16px;
  line-height: 1.55;
  color: var(--slf-text-muted);
  max-width: 50ch;
}

.slf-actions {
  display: flex;
  gap: 0;
  border: 1px solid var(--slf-line-rule);
  width: fit-content;
}
.slf-actions .slf-btn {
  padding: 14px 22px;
  font-size: 12px;
  border-radius: 0;
  justify-content: center;
}
.slf-actions .slf-btn-primary { border-right: 1px solid var(--slf-line-rule); }

/* hero meta strip — tabular field-manual cells */
.slf-meta-row {
  display: grid;
  grid-template-columns: repeat(var(--cols, 3), minmax(0, 1fr));
  border-top: 1px solid var(--slf-line-rule);
  border-bottom: 1px solid var(--slf-line-rule);
  margin-top: auto;
}
.slf-meta-cell {
  padding: 12px 16px;
  border-right: 1px solid var(--slf-line);
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.slf-meta-cell:last-child { border-right: 0; }
.slf-meta-l {
  font-family: 'Geist Mono', monospace;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--slf-text-dim);
}
.slf-meta-v {
  font-size: 13.5px;
  font-weight: 600;
  color: var(--slf-text);
  letter-spacing: -0.005em;
}

/* ── hero phones ──────────────────────────────────────────── */
.slf-hero-visual {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 600px;
  padding: 32px;
}
.slf-hero-visual::before {
  content: "";
  position: absolute;
  width: 520px;
  height: 520px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 106, 53, 0.20), transparent 60%);
  filter: blur(40px);
  z-index: 0;
}
.slf-phone {
  position: relative;
  width: 280px;
  aspect-ratio: 9 / 19.5;
  border-radius: 42px;
  padding: 8px;
  background: linear-gradient(160deg, #2e251f, #15110d);
  box-shadow:
    0 0 0 1px rgba(255, 220, 180, 0.10),
    0 30px 80px -20px rgba(0, 0, 0, 0.75),
    0 60px 120px -40px rgba(232, 66, 31, 0.25);
  z-index: 1;
}
.slf-phone-screen {
  width: 100%;
  height: 100%;
  border-radius: 34px;
  overflow: hidden;
  background: #000;
  position: relative;
}
.slf-phone-screen img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
}
.slf-phone-tag {
  position: absolute;
  top: -10px;
  left: 16px;
  z-index: 3;
  background: var(--slf-bg-elev-3);
  border: 1px solid var(--slf-line-rule);
  color: var(--slf-text-dim);
  font-family: 'Geist Mono', monospace;
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 4px 8px;
  white-space: nowrap;
}
.slf-phone--back {
  position: absolute;
  width: 240px;
  right: 6%;
  bottom: 6%;
  transform: rotate(7deg);
  z-index: 0;
  opacity: 0.92;
}
.slf-phone--front {
  transform: rotate(-3deg);
  z-index: 2;
}

/* ── features (bordered tabular grid) ─────────────────────── */
.slf-feature-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.slf-feature {
  padding: 28px 28px 32px;
  position: relative;
  transition: background 200ms;
  border-right: 1px solid var(--slf-line-rule);
  border-bottom: 1px solid var(--slf-line-rule);
}
.slf-feature:nth-child(2n) { border-right: 0; }
.slf-feature:nth-last-child(-n+2) { border-bottom: 0; }
.slf-feature:hover { background: rgba(245, 222, 190, 0.025); }
.slf-feature-head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 18px;
}
.slf-feature-num {
  font-family: 'Geist Mono', monospace;
  font-size: 12px;
  font-weight: 700;
  color: var(--slf-red-bright);
  letter-spacing: 0.08em;
}
.slf-feature-rule {
  flex: 1;
  height: 1px;
  background: var(--slf-line-rule);
}
.slf-feature-tag {
  font-family: 'Geist Mono', monospace;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--slf-text-dim);
}
.slf-feature-ico {
  width: 44px;
  height: 44px;
  border-radius: 11px;
  display: grid;
  place-items: center;
  background: rgba(232, 66, 31, 0.10);
  border: 1px solid rgba(232, 66, 31, 0.22);
  color: var(--slf-red-bright);
  margin-bottom: 18px;
}
.slf-feature-ico svg { width: 22px; height: 22px; }
.slf-feature h3 {
  margin: 0 0 8px;
  font-family: 'Archivo', 'Geist', sans-serif;
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.025em;
  text-transform: uppercase;
}
.slf-feature p {
  margin: 0;
  color: var(--slf-text-muted);
  font-size: 14.5px;
  line-height: 1.5;
  max-width: 36ch;
}

/* ── showcase strip (3 phones in bordered cells) ─────────── */
.slf-showcase-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.slf-showcase-cell {
  padding: 40px 24px 32px;
  border-right: 1px solid var(--slf-line-rule);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 22px;
  position: relative;
}
.slf-showcase-cell:last-child { border-right: 0; }
.slf-showcase-cell .slf-phone { width: 100%; max-width: 240px; }

/* Layered showcase cell — two phones stacked. */
.slf-phone-stack {
  position: relative;
  width: 100%;
  max-width: 280px;
  height: 520px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.slf-phone-stack .slf-phone { position: absolute; width: 220px; }
.slf-phone-stack .slf-phone--front { transform: rotate(-3deg) translate(-22px, 0); z-index: 2; }
.slf-phone-stack .slf-phone--back  { transform: rotate(6deg)  translate(34px, 18px); z-index: 1; opacity: 0.94; }

.slf-showcase-cell-meta {
  text-align: center;
  max-width: 28ch;
}
.slf-showcase-cell-meta h4 {
  margin: 0 0 6px;
  font-family: 'Geist Mono', monospace;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--slf-text);
}
.slf-showcase-cell-meta p {
  margin: 0;
  color: var(--slf-text-muted);
  font-size: 13px;
  line-height: 1.45;
}
.slf-showcase-cell-num {
  position: absolute;
  top: 16px;
  left: 22px;
  font-family: 'Geist Mono', monospace;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.10em;
  color: var(--slf-red-bright);
}

/* ── request coverage (dark cell with hairline form grid) ── */
.slf-request {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.1fr);
  border-bottom: 1px solid var(--slf-line-rule);
}
.slf-request-copy {
  padding: 38px 32px;
  border-right: 1px solid var(--slf-line-rule);
  display: flex;
  flex-direction: column;
  gap: 22px;
  position: relative;
}
.slf-request-copy::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(360px 240px at 20% 10%, rgba(255, 106, 53, 0.10), transparent 70%);
}
.slf-request-copy > * { position: relative; }
.slf-request-h {
  margin: 0;
  font-family: 'Archivo', 'Geist', sans-serif;
  font-weight: 800;
  font-size: clamp(28px, 3.4vw, 44px);
  line-height: 0.98;
  letter-spacing: -0.035em;
  text-transform: uppercase;
  text-wrap: balance;
}
.slf-request-sub {
  font-size: 15.5px;
  color: var(--slf-text-muted);
  max-width: 46ch;
  margin: 0;
}
.slf-form {
  background: rgba(20, 16, 13, 0.55);
  display: grid;
  grid-template-columns: 1fr 1fr;
}
.slf-field {
  padding: 16px 20px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  border-right: 1px solid var(--slf-line);
  border-bottom: 1px solid var(--slf-line);
}
.slf-field:nth-child(2n) { border-right: 0; }
.slf-field--full {
  grid-column: 1 / -1;
  border-right: 0;
}
.slf-field label {
  font-family: 'Geist Mono', monospace;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--slf-text-soft);
}
.slf-field label span {
  color: var(--slf-text-dim);
  font-weight: 500;
}
.slf-field input,
.slf-field select,
.slf-field textarea {
  width: 100%;
  padding: 6px 0;
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--slf-line-rule);
  color: var(--slf-text);
  font-size: 14.5px;
  outline: none;
  transition: border-color 140ms;
  border-radius: 0;
}
.slf-field input::placeholder,
.slf-field textarea::placeholder { color: var(--slf-text-dim); }
.slf-field input:focus,
.slf-field select:focus,
.slf-field textarea:focus { border-color: var(--slf-red-bright); }
.slf-field textarea { resize: vertical; min-height: 60px; }
.slf-form-actions {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 20px;
  border-top: 1px solid var(--slf-line-rule);
  flex-wrap: wrap;
}
.slf-form-actions .slf-btn { padding: 14px 22px; }
.slf-form-fine {
  font-family: 'Geist Mono', monospace;
  font-size: 10.5px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--slf-text-dim);
}

/* ── trust note ──────────────────────────────────────────── */
.slf-trust {
  display: grid;
  grid-template-columns: 280px 1fr;
  border-bottom: 1px solid var(--slf-line-rule);
}
.slf-trust-mark {
  padding: 28px;
  border-right: 1px solid var(--slf-line-rule);
  display: flex;
  align-items: flex-start;
  gap: 16px;
}
.slf-trust-ico {
  width: 52px;
  height: 52px;
  border-radius: 12px;
  background: rgba(232, 66, 31, 0.10);
  border: 1px solid rgba(232, 66, 31, 0.22);
  display: grid;
  place-items: center;
  color: var(--slf-red-bright);
  flex-shrink: 0;
}
.slf-trust-ico svg { width: 26px; height: 26px; }
.slf-trust-mark-l {
  font-family: 'Geist Mono', monospace;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--slf-text-dim);
  padding-top: 4px;
}
.slf-trust-body {
  padding: 28px 32px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.slf-trust-body h3 {
  margin: 0;
  font-family: 'Archivo', 'Geist', sans-serif;
  font-size: 26px;
  font-weight: 800;
  letter-spacing: -0.025em;
  text-transform: uppercase;
}
.slf-trust-body p {
  margin: 0;
  color: var(--slf-text-muted);
  font-size: 15px;
  line-height: 1.55;
  max-width: 60ch;
}

/* ── footer ──────────────────────────────────────────────── */
.slf-footer {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  background: rgba(20, 16, 13, 0.55);
}
.slf-footer-cell {
  padding: 26px 28px;
  border-right: 1px solid var(--slf-line);
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.slf-footer-cell:last-child { border-right: 0; }
.slf-footer-cell h5 {
  margin: 0 0 4px;
  font-family: 'Geist Mono', monospace;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--slf-text-dim);
}
.slf-footer-cell ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.slf-footer-cell a {
  color: var(--slf-text-soft);
  font-size: 14px;
  transition: color 140ms;
}
.slf-footer-cell a:hover { color: var(--slf-text); }
.slf-footer-brand .slf-brand {
  padding: 0;
  border-right: 0;
}
.slf-footer-tag {
  color: var(--slf-text-muted);
  font-size: 14px;
  max-width: 30ch;
  margin: 0;
}
.slf-footer-legal {
  grid-column: 1 / -1;
  padding: 14px 28px;
  border-top: 1px solid var(--slf-line-rule);
  display: flex;
  justify-content: space-between;
  gap: 16px;
  font-family: 'Geist Mono', monospace;
  font-size: 10.5px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--slf-text-dim);
  flex-wrap: wrap;
}

/* ============================================================
   SUBPAGE PROSE (Support / Privacy / Terms)
   Sub-hero is a hero variant with no phones — just title + right
   info column. Prose body uses a TOC sidebar + numbered articles.
   ============================================================ */

.slf-subhero {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(0, 0.9fr);
  border-bottom: 1px solid var(--slf-line-rule);
}
.slf-subhero-l {
  padding: 44px 32px 36px;
  border-right: 1px solid var(--slf-line-rule);
  display: flex;
  flex-direction: column;
  gap: 24px;
  position: relative;
}
.slf-subhero-l::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(420px 280px at 10% -10%, rgba(255, 106, 53, 0.10), transparent 70%);
}
.slf-subhero-l > * { position: relative; }
.slf-subhero-l h1 {
  margin: 0;
  font-family: 'Archivo', 'Geist', sans-serif;
  font-weight: 800;
  font-size: clamp(44px, 6vw, 84px);
  line-height: 0.88;
  letter-spacing: -0.05em;
  text-transform: uppercase;
  text-wrap: balance;
}
.slf-subhero-l h1 .slf-h1-line { display: block; }
.slf-subhero-l h1 .slf-h1-accent {
  background: linear-gradient(180deg, #ff8554, var(--slf-red));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.slf-subhero-l p {
  margin: 0;
  font-size: 16px;
  line-height: 1.55;
  color: var(--slf-text-muted);
  max-width: 56ch;
}
.slf-subhero-r {
  display: grid;
  grid-template-rows: repeat(5, 1fr);
  font-family: 'Geist Mono', monospace;
}
.slf-subhero-r-row {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  border-bottom: 1px solid var(--slf-line);
  align-items: stretch;
}
.slf-subhero-r-row:last-child { border-bottom: 0; }
.slf-subhero-r-row > span {
  padding: 14px 18px;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  display: flex;
  align-items: center;
}
.slf-subhero-r-row > span:first-child {
  color: var(--slf-text-dim);
  border-right: 1px solid var(--slf-line);
}
.slf-subhero-r-row > span:last-child {
  color: var(--slf-text);
  font-weight: 700;
}

/* — prose body — */
.slf-prose-shell {
  display: grid;
  grid-template-columns: 280px 1fr;
  border-bottom: 1px solid var(--slf-line-rule);
}
.slf-prose-toc {
  padding: 28px 24px;
  border-right: 1px solid var(--slf-line-rule);
  position: sticky;
  top: 80px;
  align-self: flex-start;
  max-height: calc(100dvh - 80px);
  overflow-y: auto;
}
.slf-prose-toc h3 {
  margin: 0 0 14px;
  font-family: 'Geist Mono', monospace;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--slf-text-dim);
}
.slf-prose-toc ol {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
}
.slf-prose-toc ol li {
  display: grid;
  grid-template-columns: 36px 1fr;
  border-top: 1px solid var(--slf-line);
  align-items: stretch;
}
.slf-prose-toc ol li:last-child { border-bottom: 1px solid var(--slf-line); }
.slf-prose-toc ol li b {
  display: grid;
  place-items: center;
  font-family: 'Geist Mono', monospace;
  font-size: 11px;
  font-weight: 700;
  color: var(--slf-red-bright);
  border-right: 1px solid var(--slf-line);
}
.slf-prose-toc ol li a {
  padding: 12px 14px;
  font-size: 13px;
  color: var(--slf-text-soft);
  transition: color 140ms, background 140ms;
}
.slf-prose-toc ol li a:hover { color: var(--slf-text); background: rgba(245, 222, 190, 0.03); }

.slf-prose {
  padding: 36px 40px 56px;
  max-width: 780px;
}
.slf-prose article + article {
  margin-top: 36px;
  padding-top: 36px;
  border-top: 1px solid var(--slf-line);
}
.slf-prose h2 {
  margin: 0 0 14px;
  font-family: 'Archivo', 'Geist', sans-serif;
  font-size: clamp(22px, 2.6vw, 32px);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -0.025em;
  text-transform: uppercase;
  display: flex;
  align-items: baseline;
  gap: 14px;
}
.slf-prose-num {
  font-family: 'Geist Mono', monospace;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.10em;
  color: var(--slf-red-bright);
  text-transform: none;
}
.slf-prose h3 {
  margin: 22px 0 8px;
  font-family: 'Archivo', 'Geist', sans-serif;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: -0.005em;
  text-transform: uppercase;
}
.slf-prose p {
  font-size: 15px;
  line-height: 1.65;
  margin: 0 0 14px;
  color: var(--slf-text-soft);
  max-width: 66ch;
}
.slf-prose p:last-child { margin-bottom: 0; }
.slf-prose ul {
  margin: 8px 0 18px;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  border-top: 1px solid var(--slf-line);
}
.slf-prose ul li {
  display: grid;
  grid-template-columns: 32px 1fr;
  align-items: stretch;
  border-bottom: 1px solid var(--slf-line);
}
.slf-prose ul li::before {
  content: "→";
  display: grid;
  place-items: center;
  height: 100%;
  font-family: 'Geist Mono', monospace;
  font-size: 12px;
  color: var(--slf-red-bright);
  border-right: 1px solid var(--slf-line);
}
.slf-prose ul li > * {
  padding: 10px 14px;
  font-size: 14.5px;
  line-height: 1.5;
  color: var(--slf-text-soft);
}
.slf-prose ul li strong { color: var(--slf-text); }
.slf-prose a.slf-link {
  color: var(--slf-text);
  border-bottom: 1px solid var(--slf-red-bright);
  font-weight: 600;
  transition: color 140ms;
}
.slf-prose a.slf-link:hover { color: var(--slf-red-bright); }
.slf-prose code {
  background: var(--slf-bg-elev-2);
  padding: 1px 6px;
  border: 1px solid var(--slf-line);
  font-family: 'Geist Mono', monospace;
  font-size: 12.5px;
  color: var(--slf-text);
  border-radius: 3px;
}
.slf-prose .slf-rev {
  margin-top: 8px;
  font-family: 'Geist Mono', monospace;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--slf-text-dim);
}

/* ── mobile nav toggle ──────────────────────────────────── */
.slf-menu-btn {
  display: none;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  background: transparent;
  border: 0;
  color: var(--slf-text-soft);
  cursor: pointer;
  padding: 0;
  align-self: center;
  margin-right: 4px;
  -webkit-tap-highlight-color: transparent;
}
.slf-menu-btn svg { width: 20px; height: 20px; }
.slf-menu-btn .slf-menu-close { display: none; }
.slf-menu-btn[aria-expanded="true"] .slf-menu-open { display: none; }
.slf-menu-btn[aria-expanded="true"] .slf-menu-close { display: block; }

.slf-mobile-nav {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: rgba(20, 16, 13, 0.96);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--slf-line-rule);
  z-index: 49;
}
.slf-mobile-nav[aria-hidden="false"] { display: block; }
.slf-mobile-nav a {
  display: block;
  padding: 16px 24px;
  border-bottom: 1px solid var(--slf-line);
  font-family: 'Geist Mono', monospace;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--slf-text-soft);
  transition: color 140ms, background 140ms;
}
.slf-mobile-nav a:last-child { border-bottom: 0; }
.slf-mobile-nav a:hover,
.slf-mobile-nav a[aria-current="page"] { color: var(--slf-text); background: rgba(245, 222, 190, 0.03); }

/* ── responsive ──────────────────────────────────────────── */
@media (max-width: 1080px) {
  .slf-hero { grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); }
  .slf-phone { width: 230px; }
  .slf-phone--back { width: 195px; }
  .slf-hero-visual { min-height: 540px; }
  .slf-actions { flex-direction: column; }
  .slf-actions .slf-btn-primary { border-right: 0; border-bottom: 1px solid var(--slf-line-rule); }
}
@media (max-width: 880px) {
  .slf-shell { border-left: 0; border-right: 0; }
  .slf-header-inner { grid-template-columns: auto 1fr auto auto; }
  .slf-nav { display: none; }
  .slf-menu-btn { display: flex; }
  .slf-hero { grid-template-columns: 1fr; }
  .slf-hero-copy { border-right: 0; border-bottom: 1px solid var(--slf-line-rule); }
  .slf-hero-visual { min-height: 540px; padding: 32px 24px; }
  .slf-phone { width: 270px; }
  .slf-phone--back { width: 220px; right: 8%; }
  .slf-section-head { grid-template-columns: 1fr; }
  .slf-section-head-l { border-right: 0; border-bottom: 1px solid var(--slf-line-rule); padding: 18px 24px; }
  .slf-h2 { padding: 22px 24px; }
  .slf-feature-grid { grid-template-columns: 1fr; }
  .slf-feature { border-right: 0; }
  .slf-feature:nth-last-child(-n+1) { border-bottom: 0; }
  .slf-feature:nth-last-child(-n+2):not(:last-child) { border-bottom: 1px solid var(--slf-line-rule); }
  .slf-showcase-grid { grid-template-columns: 1fr; }
  .slf-showcase-cell { border-right: 0; border-bottom: 1px solid var(--slf-line-rule); }
  .slf-showcase-cell:last-child { border-bottom: 0; }
  .slf-actions { width: 100%; flex-direction: column; }
  .slf-actions .slf-btn-primary { border-right: 0; border-bottom: 1px solid var(--slf-line-rule); }
  .slf-request { grid-template-columns: 1fr; }
  .slf-request-copy { border-right: 0; border-bottom: 1px solid var(--slf-line-rule); }
  .slf-trust { grid-template-columns: 1fr; }
  .slf-trust-mark { border-right: 0; border-bottom: 1px solid var(--slf-line); }
  .slf-footer { grid-template-columns: 1fr 1fr; }
  .slf-footer-brand { grid-column: 1 / -1; }

  /* subpages */
  .slf-subhero { grid-template-columns: 1fr; }
  .slf-subhero-l { border-right: 0; border-bottom: 1px solid var(--slf-line-rule); padding: 36px 24px; }
  .slf-subhero-r { grid-template-rows: none; }
  .slf-prose-shell { grid-template-columns: 1fr; }
  .slf-prose-toc { border-right: 0; border-bottom: 1px solid var(--slf-line-rule); position: static; max-height: none; }
  .slf-prose { padding: 32px 24px 48px; }
}
@media (max-width: 620px) {
  /* header: shrink brand + CTA to prevent wrapping */
  .slf-brand { padding: 10px 14px; gap: 8px; }
  .slf-brand-mark { width: 30px; height: 30px; border-radius: 7px; }
  .slf-brand-name { font-size: 13.5px; }
  .slf-header .slf-btn { font-size: 10px; padding: 8px 14px; margin: 6px 4px; letter-spacing: 0.06em; }
  .slf-header-cta-wrap { padding-right: 12px; }
  .slf-header .slf-btn .slf-cta-long { display: none; }
  .slf-header .slf-btn .slf-cta-short { display: inline; }
  .slf-header-cta-wrap { border-left: 0; }

  /* hero copy spacing */
  .slf-hero-copy { padding: 32px 20px 28px; gap: 22px; }
  .slf-hero-visual { min-height: 420px; padding: 28px 16px; overflow: hidden; }
  .slf-phone { width: 220px; }

  /* lede: stack on mobile */
  .slf-lede { grid-template-columns: 1fr; gap: 10px; }
  .slf-lede-label { font-size: 9.5px; }

  /* actions: full width */
  .slf-actions { width: 100%; }
  .slf-actions .slf-btn { flex: 1; justify-content: center; padding: 14px 16px; font-size: 11px; }

  .slf-form { grid-template-columns: 1fr; }
  .slf-field { border-right: 0; }
  .slf-meta-row { grid-template-columns: 1fr 1fr; }
  .slf-meta-cell:nth-child(2) { border-right: 0; }
  .slf-meta-cell:nth-child(-n+2) { border-bottom: 1px solid var(--slf-line); }
  .slf-meta-cell:nth-child(3) { grid-column: 1 / -1; }
  .slf-footer { grid-template-columns: 1fr; }
  .slf-footer-cell { border-right: 0; border-bottom: 1px solid var(--slf-line); }
  .slf-footer-cell:last-of-type { border-bottom: 0; }
  .slf-phone--back { display: none; }

  /* request section spacing */
  .slf-request-copy { padding: 28px 20px; }

  /* subpage prose */
  .slf-prose { padding: 24px 18px 40px; }
  .slf-subhero-l { padding: 28px 20px; }
  .slf-subhero-l h1 { font-size: clamp(36px, 10vw, 52px); }

}
@media (max-width: 380px) {
  .slf-brand-name { display: none; }
  .slf-brand { border-right: 0; }
}
