/* ============================================================
   Start LLC — shared stylesheet
   All selectors prefixed `sl-` — zero overlap with formllc's fl-
   ============================================================ */

:root {
  --sl-cream:       #FDF8F0;
  --sl-cream-deep:  #F6EFE0;
  --sl-cream-card:  #FFFCF5;
  --sl-surface:     #FFFFFF;

  --sl-ink:         #1A2E26;     /* deep warm green-ink */
  --sl-ink-soft:    #304A3F;
  --sl-text:        #263A32;
  --sl-text-mute:   #5B6B65;
  --sl-text-softer: #8C9A93;

  --sl-line:        #E7DFCC;
  --sl-line-strong: #D9CFB6;

  --sl-sage:        #7DA88F;
  --sl-sage-deep:   #5E8971;
  --sl-sage-ink:    #3D6B54;
  --sl-sage-tint:   #E3EEDF;
  --sl-sage-wash:   #F0F5EC;

  --sl-warn:        #C67A3E;     /* warm amber, for light warn callouts only */

  --sl-font: "Figtree", "DM Sans", "Inter", ui-sans-serif, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;

  --sl-max:    1200px;
  --sl-gutter: 28px;

  --sl-r-sm: 8px;
  --sl-r-md: 12px;
  --sl-r-lg: 20px;
  --sl-r-pill: 999px;

  --sl-shadow-sm: 0 1px 2px rgba(26,46,38,.05);
  --sl-shadow-md: 0 4px 14px rgba(26,46,38,.06), 0 1px 2px rgba(26,46,38,.04);
  --sl-shadow-lg: 0 12px 28px rgba(26,46,38,.08), 0 2px 6px rgba(26,46,38,.05);
}

* { box-sizing: border-box; }

html, body {
  margin: 0; padding: 0;
  background: var(--sl-cream);
  color: var(--sl-text);
  font-family: var(--sl-font);
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

a { color: inherit; text-decoration: none; }
img, svg { display: block; max-width: 100%; }
button { font: inherit; border: 0; background: 0; color: inherit; cursor: pointer; }
input, select, textarea { font: inherit; color: inherit; }

/* ---- Typography ------------------------------------------ */

.sl-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .04em;
  color: var(--sl-sage-ink);
  text-transform: uppercase;
}
.sl-eyebrow::before {
  content: "";
  width: 14px; height: 1.5px;
  background: var(--sl-sage);
  border-radius: 999px;
}

.sl-h1 {
  font-weight: 700;
  font-size: clamp(40px, 5.6vw, 72px);
  line-height: 1.05;
  letter-spacing: -0.025em;
  color: var(--sl-ink);
  margin: 0;
}
.sl-h2 {
  font-weight: 700;
  font-size: clamp(28px, 3vw, 42px);
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--sl-ink);
  margin: 0;
}
.sl-h3 {
  font-weight: 600;
  font-size: 22px;
  line-height: 1.25;
  letter-spacing: -0.01em;
  color: var(--sl-ink);
  margin: 0;
}
.sl-lede {
  font-size: clamp(17px, 1.2vw, 20px);
  line-height: 1.55;
  color: var(--sl-text);
  max-width: 60ch;
}
.sl-small { font-size: 13px; color: var(--sl-text-mute); }

/* ---- Layout ---------------------------------------------- */

.sl-wrap {
  max-width: var(--sl-max);
  margin: 0 auto;
  padding: 0 var(--sl-gutter);
}
.sl-section { padding: 96px 0; }
.sl-section-sm { padding: 56px 0; }

/* ---- Buttons --------------------------------------------- */

.sl-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 14px 22px;
  border-radius: var(--sl-r-md);
  font-weight: 600;
  font-size: 15px;
  letter-spacing: -0.005em;
  transition: transform .15s ease, background .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease;
  cursor: pointer;
  white-space: nowrap;
  line-height: 1;
}
.sl-btn:active { transform: translateY(1px); }

.sl-btn-primary {
  background: var(--sl-ink);
  color: var(--sl-cream);
  box-shadow: var(--sl-shadow-sm);
}
.sl-btn-primary:hover { background: #0F2019; box-shadow: var(--sl-shadow-md); }

.sl-btn-sage {
  background: var(--sl-sage);
  color: #FFFFFF;
  box-shadow: var(--sl-shadow-sm);
}
.sl-btn-sage:hover { background: var(--sl-sage-deep); }

.sl-btn-ghost {
  background: var(--sl-surface);
  color: var(--sl-ink);
  border: 1px solid var(--sl-line-strong);
}
.sl-btn-ghost:hover { border-color: var(--sl-ink); }

.sl-btn-lg { padding: 18px 28px; font-size: 16px; border-radius: 14px; }

.sl-arrow {
  width: 16px; height: 10px;
  transition: transform .2s ease;
}
.sl-btn:hover .sl-arrow { transform: translateX(3px); }

/* ---- Nav ------------------------------------------------- */

.sl-nav {
  position: sticky; top: 0;
  z-index: 40;
  background: rgba(253,248,240,.9);
  backdrop-filter: saturate(1.2) blur(10px);
  -webkit-backdrop-filter: saturate(1.2) blur(10px);
  border-bottom: 1px solid var(--sl-line);
}
.sl-nav-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 68px;
}
.sl-brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-weight: 700;
  font-size: 19px;
  color: var(--sl-ink);
  letter-spacing: -0.01em;
}
.sl-brand-mark {
  width: 28px; height: 28px;
  border-radius: 8px;
  background: var(--sl-sage);
  display: inline-flex; align-items: center; justify-content: center;
  color: #fff;
  box-shadow: inset 0 -3px 0 rgba(0,0,0,.08);
}
.sl-brand-mark svg { width: 16px; height: 16px; }

.sl-nav-links {
  display: flex;
  gap: 28px;
  align-items: center;
  font-size: 14px;
  font-weight: 500;
  color: var(--sl-text);
}
.sl-nav-links a:hover { color: var(--sl-sage-ink); }

.sl-nav-cta { display: flex; gap: 10px; align-items: center; }

@media (max-width: 860px) {
  .sl-nav-links { display: none; }
}

/* ---- Footer ---------------------------------------------- */

.sl-footer {
  background: var(--sl-cream-deep);
  padding: 72px 0 36px;
  color: var(--sl-text);
  border-top: 1px solid var(--sl-line);
}
.sl-footer-top {
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr 1fr;
  gap: 48px;
  padding-bottom: 48px;
  border-bottom: 1px solid var(--sl-line);
}
.sl-footer h4 {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .02em;
  margin: 0 0 16px;
  color: var(--sl-ink);
}
.sl-footer ul { list-style: none; padding: 0; margin: 0; }
.sl-footer li { margin-bottom: 10px; font-size: 14px; }
.sl-footer li a { color: var(--sl-text-mute); }
.sl-footer li a:hover { color: var(--sl-sage-ink); }

.sl-footer-states {
  padding: 40px 0;
  border-bottom: 1px solid var(--sl-line);
}
.sl-footer-states h4 { margin-bottom: 20px; }
.sl-footer-states-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 8px 24px;
}
.sl-footer-states-grid a {
  font-size: 13px;
  color: var(--sl-text-mute);
  padding: 4px 0;
}
.sl-footer-states-grid a:hover { color: var(--sl-sage-ink); }

.sl-footer-legal {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 28px;
  font-size: 12px;
  color: var(--sl-text-softer);
  gap: 24px;
}
.sl-footer-legal .sl-disclaimer { max-width: 620px; line-height: 1.55; }

@media (max-width: 860px) {
  :root { --sl-gutter: 20px; }
  .sl-section { padding: 56px 0; }
  .sl-footer-top { grid-template-columns: 1fr 1fr; gap: 32px 24px; }
  .sl-footer-states-grid { grid-template-columns: repeat(3, 1fr); }
  .sl-footer-legal { flex-direction: column; align-items: flex-start; gap: 14px; }
}

@media (max-width: 560px) {
  :root { --sl-gutter: 16px; }
  .sl-section { padding: 40px 0; }
  .sl-section-sm { padding: 32px 0; }
  .sl-footer { padding: 48px 0 28px; }
  .sl-footer-top { grid-template-columns: 1fr; gap: 28px; padding-bottom: 32px; }
  .sl-footer-states-grid { grid-template-columns: repeat(2, 1fr); gap: 6px 16px; }
  .sl-btn { padding: 12px 18px; font-size: 14px; }
  .sl-btn-lg { padding: 14px 20px; font-size: 15px; }
  .sl-nav-cta .sl-btn-ghost { display: none; }
  .sl-nav-row { height: 60px; }
  .sl-brand { font-size: 17px; }
}

/* ---- Universal mobile-friendly tables -------------------- */
/* Any wide data table should wrap in .sl-tablewrap for horizontal scroll on mobile.
   Uses !important to win against per-page inline <style> blocks that set overflow:hidden. */
.sl-tablewrap { -webkit-overflow-scrolling: touch; }
@media (max-width: 720px) {
  .sl-tablewrap { overflow-x: auto !important; overflow-y: hidden !important; }
  .sl-tablewrap > .sl-table { min-width: 520px; }
}

/* Prevent unbroken long URLs/strings from overflowing */
.sl-cs p, .sl-gs p, .sl-faq-a, .sl-tldr p, .sl-callout p {
  overflow-wrap: break-word;
  word-wrap: break-word;
}

/* ---- Utility: hairline rule ----------------------------- */

.sl-rule { height: 1px; background: var(--sl-line); border: 0; margin: 0; }
