/*
 * theme.css — No-Code Automation Freelancer.
 * Direction: warm paper and ink with one burnt-orange signal colour, like a
 * well-set workflow diagram. Reference: the calm precision of Linear's
 * marketing pages, but on warm stock instead of cold grey.
 * Light opens; dark is its own palette (charcoal blue-black, brighter orange).
 */

:root {
  --canvas: #f5f1e8;
  --surface: #fffdf8;
  --surface-2: #ebe6d9;
  --border: #d9d2c1;
  --border-strong: #b3aa94;
  --ink: #15171c;
  --muted: #5c5e66;
  --accent: #c2410c;
  --accent-hover: #a3350a;
  --accent-ink: #ffffff;
  --accent-text: #a3350a;
  --accent-strong: #8f2e08;
  --accent-soft: #fbe3d3;
  --accent-border: #ecb592;
  --success: #15803d;
  --success-ink: #ffffff;
  --success-soft: #dfebe3;
  --success-strong: #137638;
  --warning: #b45309;
  --warning-ink: #ffffff;
  --warning-soft: #f2e6dd;
  --warning-strong: #a64c08;
  --danger: #b91c1c;
  --danger-ink: #ffffff;
  --danger-soft: #f2dfdf;
  --danger-strong: #b91c1c;
  --chart-1: #c2410c;
  --chart-2: #0f766e;
  --chart-3: #4f46e5;
  --chart-4: #a16207;
  --chart-5: #be185d;
  --chart-6: #475569;

  --font-display: "Bricolage Grotesque", "Inter Variable", ui-sans-serif, system-ui, sans-serif;
  --font-body: "Inter Variable", ui-sans-serif, system-ui, sans-serif;
  --font-sans: "Inter Variable", ui-sans-serif, system-ui, sans-serif;
  --font-mono: "JetBrains Mono Variable", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --display-weight: 800;
  --display-tracking: -0.04em;
  --eyebrow-tracking: 0.12em;

  --radius-btn: 0.75rem;
  --radius-card: 1.25rem;
  --radius-input: 0.75rem;
  --shadow-card: 0 1px 0 var(--border);
  --shadow-raised: 0 18px 40px -24px color-mix(in srgb, var(--ink) 45%, transparent);

  --x-dot: #d2cab6;
  --x-band-bg: #15171c;
  --x-band-ink: #f5f1e8;
  --x-band-muted: #b8b4a8;
  --x-band-accent: #f2763b;
}

html[data-theme="dark"] {
  --canvas: #101216;
  --surface: #181b21;
  --surface-2: #1f232b;
  --border: #2c313b;
  --border-strong: #4a515f;
  --ink: #f3efe6;
  --muted: #a3a7b0;
  --accent: #ea6a2f;
  --accent-hover: #f47d46;
  --accent-ink: #120d0a;
  --accent-text: #f58b57;
  --accent-strong: #ffb48a;
  --accent-soft: #3a1f12;
  --accent-border: #6b3417;
  --success: #15803d;
  --success-ink: #ffffff;
  --success-soft: #172f22;
  --success-strong: #58a474;
  --warning: #b45309;
  --warning-ink: #ffffff;
  --warning-soft: #3a2517;
  --warning-strong: #ca854f;
  --danger: #b91c1c;
  --danger-ink: #ffffff;
  --danger-soft: #3b191b;
  --danger-strong: #d57575;
  --chart-1: #f27a4b;
  --chart-2: #34b3a0;
  --chart-3: #8b8cf2;
  --chart-4: #d9a21b;
  --chart-5: #ec6aa6;
  --chart-6: #94a3b8;

  --x-dot: #262b34;
  --x-band-bg: #1b1f27;
  --x-band-ink: #f3efe6;
  --x-band-muted: #a3a7b0;
  --x-band-accent: #f58b57;
}

/* app.css — this app's own styles, from tokens only. */

html { scroll-behavior: smooth; scroll-padding-top: 5rem; }
html.reduced-motion { scroll-behavior: auto; }

.dotgrid {
  background-image: radial-gradient(var(--x-dot) 1.5px, transparent 1.5px);
  background-size: 28px 28px;
}

/* ---- The one moving moment: data travelling along the workflow ---- */
.flow { display: grid; gap: 1.5rem; }
@media (min-width: 768px) {
  .flow { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.flow-node { position: relative; }
.flow-node:not(:last-child)::after {
  content: "";
  position: absolute;
  left: 2.5rem;
  top: 100%;
  width: 2px;
  height: 1.5rem;
  background-image: linear-gradient(180deg, var(--accent) 50%, transparent 50%);
  background-size: 2px 12px;
  animation: flow-v 0.9s linear infinite;
}
@media (min-width: 768px) {
  .flow-node:not(:last-child)::after {
    left: 100%;
    top: 2.5rem;
    width: 1.5rem;
    height: 2px;
    background-image: linear-gradient(90deg, var(--accent) 50%, transparent 50%);
    background-size: 12px 2px;
    animation-name: flow-h;
  }
}
@keyframes flow-v { to { background-position: 0 12px; } }
@keyframes flow-h { to { background-position: 12px 0; } }
html.reduced-motion .flow-node::after { animation: none !important; }
@media (prefers-reduced-motion: reduce) {
  .flow-node::after { animation: none !important; }
}

/* ---- Bands ---- */
.band-dark { background: var(--x-band-bg); color: var(--x-band-ink); }
.band-dark .band-muted { color: var(--x-band-muted); }
.band-dark .band-accent { color: var(--x-band-accent); }

.band-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 1rem 1.75rem;
  border-radius: var(--radius-btn);
  font-weight: 600;
  background: var(--accent-ink);
  color: var(--accent-text);
  transition: transform 0.15s ease;
}
.band-btn:hover { transform: translateY(-2px); }
html.reduced-motion .band-btn { transition: none; }
html.reduced-motion .band-btn:hover { transform: none; }

/* ---- Process timeline ---- */
.step {
  position: relative;
  padding-left: 2.5rem;
  padding-bottom: 3rem;
  border-left: 2px solid var(--border-strong);
}
.step:last-child { border-left-color: transparent; padding-bottom: 0; }
.step::before {
  content: "";
  position: absolute;
  left: -0.4375rem;
  top: 0.5rem;
  width: 0.75rem;
  height: 0.75rem;
  border-radius: 999px;
  background: var(--accent);
}

/* ---- FAQ ---- */
.faq details { border-top: 1px solid var(--border-strong); }
.faq details:last-child { border-bottom: 1px solid var(--border-strong); }
.faq summary { list-style: none; cursor: pointer; }
.faq summary::-webkit-details-marker { display: none; }
.faq .faq-plus { transition: transform 0.2s ease; flex-shrink: 0; }
.faq details[open] .faq-plus { transform: rotate(45deg); }
html.reduced-motion .faq .faq-plus { transition: none; }

/* ---- Spam trap ---- */
.hp-field { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
