/*
Theme Name: NeuroFlow
Theme URI: https://example.com/neuroflow
Author: You
Description: Dark, modern landing theme for an automation consultancy (n8n/Make). Motion + interactive sections. Unique "neural" visual language.
Version: 1.3.1
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: neuroflow
Tags: custom-background, custom-logo, custom-menu, featured-images, one-column, dark, responsive-layout
*/

:root{
  --bg: #000000;
  --panel: #0b0b0e;
  --panel-2:#0f1016;
  --text: #f5f6f7;
  --muted:#b8bcc6;
  --line: rgba(255,255,255,.10);

  /* Make it feel NOT like a clone: keep a warm red but add a cool secondary accent. */
  --accent:#EE3124;   /* warm */
  --accent-2:#ff7a70; /* warm glow */
  --accent-cool:#5DE4FF; /* cool cyan */
  --accent-cool-2:#9B7CFF; /* violet */

  --shadow: 0 16px 50px rgba(0,0,0,.55);
  --radius: 18px;
  --radius-lg: 28px;
  --container: 1180px;
  --pad: clamp(18px, 3.6vw, 44px);
  --h1: clamp(40px, 5.3vw, 86px);
  --h2: clamp(26px, 3.2vw, 46px);
  --h3: clamp(18px, 2.0vw, 26px);
  --p: 16px;
  --mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Liberation Sans", "Courier New", monospace;
  --sans: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
}

/* ---------- Base ---------- */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background: var(--bg);
  color: var(--text);
  font-family: var(--sans);
  line-height: 1.55;
  overflow-x: hidden;
}

/* Aurora background + grain (unique feel) */
body:before{
  content:"";
  position: fixed;
  inset: -30%;
  z-index: -2;
  background:
    radial-gradient(1000px 520px at 20% 5%, rgba(238,49,36,.22), transparent 60%),
    radial-gradient(900px 520px at 90% 10%, rgba(93,228,255,.16), transparent 65%),
    radial-gradient(900px 600px at 60% 110%, rgba(155,124,255,.13), transparent 62%);
  filter: blur(6px);
  transform: translate3d(0,0,0);
  animation: aurora 18s ease-in-out infinite alternate;
}
body:after{
  content:"";
  position: fixed;
  inset: 0;
  z-index: -1;
  opacity: .13;
  pointer-events: none;
  background:
    repeating-linear-gradient(0deg, rgba(255,255,255,.06), rgba(255,255,255,.06) 1px, transparent 1px, transparent 4px);
  mix-blend-mode: overlay;
}
@keyframes aurora{
  0%{ transform: translate(-2%, -2%) scale(1.02) }
  50%{ transform: translate(1%, 0%) scale(1.05) }
  100%{ transform: translate(2%, 2%) scale(1.02) }
}

a{color:inherit}
img{max-width:100%; height:auto}

.container{max-width:var(--container); margin:0 auto; padding:0 var(--pad)}
.section{padding: clamp(56px, 7vw, 110px) 0; position:relative}

.smallcaps{
  font: 650 12px/1.2 var(--mono);
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(184,188,198,.92);
}

.h1{font-size: var(--h1); line-height: 1.02; margin: 12px 0 12px}
.h2{font-size: var(--h2); line-height: 1.08; margin: 0 0 12px}
.h3{font-size: var(--h3); line-height: 1.15; margin: 0 0 10px}
.p{font-size: var(--p); color: var(--muted); margin: 0}

.hr{height:1px; background: rgba(255,255,255,.08); margin: 16px 0}

/* ---------- Motion / Reveal ---------- */
[data-reveal]{opacity:0; transform: translateY(14px); filter: blur(1px); transition: opacity .7s ease, transform .7s ease, filter .7s ease;}
[data-reveal].is-visible{opacity:1; transform: translateY(0); filter: blur(0);}
[data-reveal][data-reveal-delay="1"]{transition-delay: .08s}
[data-reveal][data-reveal-delay="2"]{transition-delay: .16s}
[data-reveal][data-reveal-delay="3"]{transition-delay: .24s}
[data-reveal][data-reveal-delay="4"]{transition-delay: .32s}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  body:before{animation:none}
  [data-reveal]{opacity:1; transform:none; filter:none; transition:none}
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;
  gap:10px;
  align-items:center;
  justify-content:center;
  padding: 12px 16px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.04);
  text-decoration:none;
  font-weight: 700;
  backdrop-filter: blur(10px);
  transition: transform .15s ease, background .2s ease, border-color .2s ease;
  will-change: transform;
}
.btn:hover{transform: translateY(-1px); border-color: rgba(255,255,255,.22); background: rgba(255,255,255,.06)}
.btn--primary{
  border-color: rgba(238,49,36,.70);
  background: linear-gradient(135deg, rgba(238,49,36,.92), rgba(255,122,112,.62), rgba(93,228,255,.18));
}
.btn--primary:hover{border-color: rgba(238,49,36,.95)}
.btn svg{width:16px; height:16px}

.badge{
  display:inline-flex;
  gap:10px;
  align-items:center;
  padding: 10px 12px;
  border-radius: 999px;
  border: 1px solid rgba(93,228,255,.25);
  background: rgba(93,228,255,.08);
  color: var(--text);
  font: 700 12px/1.1 var(--mono);
  letter-spacing: .10em;
  text-transform: uppercase;
}

/* ---------- Header ---------- */
.site-header{
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(0,0,0,.55);
  border-bottom: 1px solid rgba(255,255,255,.08);
  backdrop-filter: blur(12px);
}
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 14px;
  padding: 14px var(--pad);
}
.brand{
  display:flex;
  align-items:center;
  gap: 10px;
  text-decoration:none;
  font-weight: 850;
  letter-spacing: .02em;
}
.brand-mark{
  width: 34px; height: 34px;
  border-radius: 11px;
  background:
    radial-gradient(10px 10px at 30% 30%, rgba(255,255,255,.75), transparent 60%),
    radial-gradient(28px 18px at 70% 70%, rgba(93,228,255,.50), transparent 60%),
    linear-gradient(135deg, rgba(238,49,36,.92), rgba(0,0,0,.35));
  border: 1px solid rgba(255,255,255,.18);
  box-shadow: 0 10px 30px rgba(238,49,36,.12), 0 10px 30px rgba(93,228,255,.10);
}
.nav{
  display:flex;
  align-items:center;
  gap: 14px;
}
.nav a{
  text-decoration:none;
  color: var(--muted);
  font-weight: 700;
  padding: 10px 10px;
  border-radius: 999px;
  transition: background .15s ease, color .15s ease;
}
.nav a:hover{background: rgba(255,255,255,.05); color: var(--text)}
.header-cta{display:flex; gap:10px; align-items:center}

.menu-toggle{
  display:none;
  padding: 10px 12px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.04);
  color: var(--text);
}
.mobile-drawer{
  display:none;
  padding: 8px var(--pad) 14px;
  border-top: 1px solid rgba(255,255,255,.08);
}
.mobile-drawer a{display:block; padding: 12px 10px}

@media (max-width: 920px){
  .nav{display:none}
  .menu-toggle{display:inline-flex}
  .mobile-drawer{display:none}
  .mobile-drawer.is-open{display:block}
}

/* ---------- Hero ---------- */
.hero{
  padding-top: clamp(34px, 6vw, 70px);
  padding-bottom: clamp(44px, 7vw, 96px);
  overflow:hidden;
}
.hero-grid{
  display:grid;
  grid-template-columns: 1.1fr .9fr;
  gap: clamp(20px, 3.2vw, 44px);
  align-items: center;
}
@media (max-width: 980px){
  .hero-grid{grid-template-columns: 1fr}
}
.hero-card{
  border-radius: var(--radius-lg);
  border: 1px solid rgba(255,255,255,.10);
  background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
  box-shadow: var(--shadow);
  padding: clamp(18px, 2.8vw, 30px);
  position:relative;
  overflow:hidden;
}
.hero-card:before{
  content:"";
  position:absolute;
  inset:-40%;
  background:
    radial-gradient(closest-side, rgba(238,49,36,.16), transparent 55%),
    radial-gradient(closest-side, rgba(93,228,255,.10), transparent 60%);
  transform: translate(20%, -10%);
  filter: blur(10px);
}
.hero-card > *{position:relative; z-index: 1}
.hero-actions{display:flex; gap:10px; flex-wrap:wrap; margin-top: 18px}

.hero-visual{
  border-radius: var(--radius-lg);
  border: 1px solid rgba(255,255,255,.10);
  background:
    radial-gradient(500px 300px at 20% 20%, rgba(238,49,36,.18), transparent 55%),
    radial-gradient(360px 240px at 80% 60%, rgba(93,228,255,.12), transparent 60%),
    linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
  box-shadow: var(--shadow);
  min-height: 400px;
  padding: 18px;
  position:relative;
  overflow:hidden;
  transform-style: preserve-3d;
}
.hero-visual .gridlines{
  position:absolute;
  inset:0;
  background:
    linear-gradient(to right, rgba(255,255,255,.06) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(255,255,255,.06) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: radial-gradient(closest-side, rgba(0,0,0,.9), transparent 70%);
  opacity:.50;
}
.hero-visual .orb{
  position:absolute;
  width: 240px; height: 240px;
  border-radius: 999px;
  background: radial-gradient(circle at 30% 25%, rgba(255,255,255,.70), rgba(255,122,112,.18) 40%, rgba(238,49,36,.16) 60%, transparent 74%);
  filter: blur(1px);
  top: 35px; right: -40px;
  opacity:.85;
  animation: floaty 7s ease-in-out infinite;
}
.hero-visual .orb.orb2{
  width: 190px; height: 190px;
  top:auto; bottom: -50px; right: 35%;
  opacity:.55;
  animation-duration: 9.5s;
  background: radial-gradient(circle at 30% 25%, rgba(255,255,255,.60), rgba(93,228,255,.18) 40%, rgba(155,124,255,.14) 60%, transparent 74%);
}
@keyframes floaty{
  0%,100%{transform: translate(0,0)}
  50%{transform: translate(-14px, 10px)}
}
@media (prefers-reduced-motion: reduce){
  .hero-visual .orb{animation:none}
}

/* Tiny neural "synapse" dots */
.synapse{
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.30;
  background:
    radial-gradient(2px 2px at 15% 30%, rgba(93,228,255,.55), transparent 60%),
    radial-gradient(2px 2px at 22% 68%, rgba(238,49,36,.55), transparent 60%),
    radial-gradient(2px 2px at 58% 18%, rgba(155,124,255,.50), transparent 60%),
    radial-gradient(2px 2px at 74% 62%, rgba(93,228,255,.55), transparent 60%),
    radial-gradient(2px 2px at 88% 32%, rgba(238,49,36,.55), transparent 60%);
}

/* ---------- Marquee ---------- */
.marquee{
  margin-top: 18px;
  border-top: 1px solid rgba(255,255,255,.08);
  border-bottom: 1px solid rgba(255,255,255,.08);
  overflow:hidden;
}
.marquee-track{
  display:flex;
  width:max-content;
  gap: 40px;
  padding: 12px 0;
  animation: marquee 20s linear infinite;
}
.marquee:hover .marquee-track{animation-play-state: paused;}
.marquee span{
  font: 800 14px/1.2 var(--mono);
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(245,246,247,.86);
  white-space: nowrap;
}
.marquee span b{color: var(--accent)}
@keyframes marquee{
  from{transform: translateX(0)}
  to{transform: translateX(-50%)}
}

/* ---------- KPI ---------- */
.kpi-row{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin-top: 18px;
}
@media (max-width: 700px){
  .kpi-row{grid-template-columns: 1fr}
}
.kpi{
  border-radius: var(--radius);
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
  padding: 14px 14px;
  transition: transform .18s ease, border-color .18s ease;
}
.kpi:hover{transform: translateY(-2px); border-color: rgba(93,228,255,.28)}
.kpi .num{font: 900 22px/1.1 var(--sans)}
.kpi .label{color: var(--muted); font: 700 12px/1.4 var(--mono); letter-spacing:.1em; text-transform:uppercase}

/* ---------- Layout / Cards ---------- */
.grid-2{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(18px, 3vw, 34px);
}
@media (max-width: 980px){
  .grid-2{grid-template-columns:1fr}
}

.card{
  border-radius: var(--radius);
  border: 1px solid rgba(255,255,255,.10);
  background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.02));
  box-shadow: 0 18px 50px rgba(0,0,0,.40);
  padding: 18px;
  position: relative;
  overflow: hidden;
  transition: transform .18s ease, border-color .18s ease;
}
.card:hover{transform: translateY(-2px); border-color: rgba(255,255,255,.18)}
.card:after{
  content:"";
  position:absolute;
  inset:-1px;
  border-radius: inherit;
  padding: 1px;
  background: conic-gradient(from 180deg,
    rgba(238,49,36,.0), rgba(238,49,36,.22),
    rgba(93,228,255,.18), rgba(155,124,255,.14), rgba(238,49,36,.0)
  );
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask-composite: exclude;
  -webkit-mask-composite: xor;
  opacity: .0;
  transition: opacity .25s ease;
  pointer-events:none;
}
.card:hover:after{opacity: .85}

.card .meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 10px;
  color: rgba(184,188,198,.95);
  font: 700 12px/1.2 var(--mono);
  letter-spacing:.12em;
  text-transform: uppercase;
}
.card .meta .pill{
  border: 1px solid rgba(238,49,36,.30);
  background: rgba(238,49,36,.09);
  border-radius: 999px;
  padding: 6px 10px;
  color: rgba(245,246,247,.92);
}

/* ---------- Carousel ---------- */
.carousel{position:relative}
.carousel-viewport{
  display:flex;
  gap: 14px;
  overflow:auto;
  scroll-snap-type: x mandatory;
  padding-bottom: 6px;
  scrollbar-width: none;
}
.carousel-viewport::-webkit-scrollbar{display:none}
.carousel-item{
  scroll-snap-align: start;
  min-width: min(540px, 88vw);
}
.carousel-controls{
  display:flex;
  gap: 10px;
  justify-content: flex-end;
  margin-top: 12px;
}
.icon-btn{
  width: 40px; height: 40px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.04);
  color: var(--text);
  display:grid;
  place-items:center;
  cursor:pointer;
  transition: transform .15s ease, border-color .15s ease, background .15s ease;
}
.icon-btn:hover{background: rgba(255,255,255,.06); transform: translateY(-1px); border-color: rgba(93,228,255,.28)}
.icon-btn svg{width:18px; height:18px}

/* ---------- Service lists ---------- */
.service-title{display:flex; gap: 12px; align-items: baseline}
.service-title .n{font: 800 13px/1 var(--mono); letter-spacing:.2em; color: rgba(245,246,247,.75)}
.service-title .n b{color: var(--accent)}
.service-list{margin: 10px 0 0; padding-left: 18px; color: var(--muted)}
.service-list li{margin: 6px 0}

/* ---------- Split ---------- */
.split{
  display:grid;
  grid-template-columns: 1.15fr .85fr;
  gap: clamp(18px, 3vw, 34px);
  align-items:start;
}
@media (max-width: 980px){.split{grid-template-columns:1fr}}

/* ---------- Workflow playground ---------- */
.play-tabs{
  display:flex; gap:10px; flex-wrap:wrap;
  margin-top: 14px;
}
.tab{
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.03);
  border-radius: 999px;
  padding: 10px 12px;
  cursor:pointer;
  color: rgba(245,246,247,.92);
  font: 750 12px/1.1 var(--mono);
  letter-spacing:.12em;
  text-transform: uppercase;
  transition: border-color .15s ease, transform .15s ease, background .15s ease;
}
.tab:hover{transform: translateY(-1px); border-color: rgba(93,228,255,.26)}
.tab.is-active{
  border-color: rgba(238,49,36,.55);
  background: rgba(238,49,36,.11);
}
.flow-steps{display:grid; gap:10px; margin-top: 14px}
.flow-step{
  display:flex; gap:12px; align-items:flex-start;
  transition: transform .22s ease, opacity .22s ease;
}
.flow-step .dot{
  width:28px; height:28px; border-radius:999px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.04);
  display:grid; place-items:center;
  font:800 12px/1 var(--mono);
  letter-spacing:.08em;
}
.flow-step .title{font-weight:800}
.flow-step .desc{color: var(--muted); margin-top:2px}

/* subtle "rebuild" animation when switching flows */
.flow-steps.is-switching .flow-step{opacity:0; transform: translateY(6px)}
.flow-steps.is-switching .flow-step:nth-child(1){transition-delay:0ms}
.flow-steps.is-switching .flow-step:nth-child(2){transition-delay:40ms}
.flow-steps.is-switching .flow-step:nth-child(3){transition-delay:80ms}
.flow-steps.is-switching .flow-step:nth-child(4){transition-delay:120ms}
.flow-steps.is-switching .flow-step:nth-child(5){transition-delay:160ms}

/* ---------- Steps ---------- */
.steps{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}
@media (max-width: 980px){.steps{grid-template-columns: repeat(2,1fr)}}
@media (max-width: 520px){.steps{grid-template-columns: 1fr}}
.step .idx{
  font: 800 12px/1 var(--mono);
  letter-spacing:.2em;
  text-transform:uppercase;
  color: rgba(245,246,247,.80);
}
.step .idx b{color: var(--accent)}

/* ---------- FAQ (details/summary) ---------- */
.faq details{
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 16px;
  background: rgba(255,255,255,.03);
  padding: 12px 14px;
  margin: 10px 0;
}
.faq summary{
  cursor:pointer;
  font-weight: 800;
  list-style:none;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{
  content:"+";
  float:right;
  color: rgba(245,246,247,.90);
}
.faq details[open] summary:after{content:"–"}
.faq .p{margin-top:8px}

/* ---------- Form ---------- */
.form{display:grid; gap: 12px}
.form .row{display:grid; gap:12px; grid-template-columns: 1fr 1fr}
@media (max-width: 720px){.form .row{grid-template-columns: 1fr}}
.field{display:flex; flex-direction:column; gap: 8px}
.field label{
  color: rgba(245,246,247,.86);
  font: 750 12px/1 var(--mono);
  letter-spacing:.12em;
  text-transform:uppercase;
}
.field input, .field textarea{
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.03);
  color: var(--text);
  padding: 12px 12px;
  outline:none;
}
.field textarea{min-height: 120px; resize: vertical}
.field input:focus, .field textarea:focus{
  border-color: rgba(93,228,255,.40);
  box-shadow: 0 0 0 4px rgba(93,228,255,.10);
}

.notice{
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 14px;
  background: rgba(255,255,255,.03);
  padding: 12px 12px;
  color: var(--muted);
}

/* ---------- Footer ---------- */
.site-footer{
  border-top: 1px solid rgba(255,255,255,.08);
  padding: 30px 0;
  color: var(--muted);
}
.footer-grid{
  display:grid;
  grid-template-columns: 1fr auto;
  gap: 14px;
  align-items:center;
}
@media (max-width: 740px){.footer-grid{grid-template-columns:1fr}}
.footer-links{display:flex; gap:12px; flex-wrap:wrap}
.footer-links a{color: var(--muted); text-decoration:none}
.footer-links a:hover{color: var(--text)}

.wp-block{max-width: var(--container)}
.screen-reader-text{position:absolute; left:-9999px}

/* ---------- Floating mobile CTA ---------- */
.fab{
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 70;
  display:none;
}
@media (max-width: 920px){
  .fab{display:block}
}


/* ---------- Case studies ---------- */
.metrics{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin-top: 14px;
}
@media (max-width: 700px){.metrics{grid-template-columns: 1fr}}
.metric{
  border-radius: var(--radius);
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.03);
  padding: 14px;
}
.metric .big{font: 950 26px/1.05 var(--sans)}
.metric .label{color: var(--muted); font: 750 12px/1.4 var(--mono); letter-spacing:.1em; text-transform:uppercase; margin-top:6px}
.metric .sub{color: rgba(184,188,198,.92); font: 650 12px/1.4 var(--mono); letter-spacing:.08em; text-transform:uppercase; margin-top:4px}


/* ---------- Network motif (signature visual) ---------- */
.hero-visual{ position:relative; }
.hero-visual .net{
  position:absolute;
  inset: -6%;
  width: 112%;
  height: 112%;
  opacity: .95;
  pointer-events:none;
  transform: translateZ(0);
}
.hero-visual .net .edge{
  stroke: rgba(245,246,247,.22);
  stroke-width: 1.2;
  fill: none;
  stroke-linecap: round;
}
.hero-visual .net .edge.glow{
  stroke: rgba(93,228,255,.22);
  stroke-width: 2.2;
  filter: drop-shadow(0 0 12px rgba(93,228,255,.22));
  opacity: .55;
}
.hero-visual .net .pulse{
  stroke: rgba(238,49,36,.55);
  stroke-width: 2.6;
  stroke-dasharray: 8 18;
  animation: edgePulse 2.8s linear infinite;
  opacity: .75;
}
.hero-visual .net .node{
  fill: rgba(245,246,247,.70);
  opacity: .70;
}
.hero-visual .net .node.hot{
  fill: rgba(238,49,36,.90);
  filter: drop-shadow(0 0 14px rgba(238,49,36,.30));
}
.hero-visual .net .node.cool{
  fill: rgba(93,228,255,.90);
  filter: drop-shadow(0 0 14px rgba(93,228,255,.22));
}
.hero-visual .net .node.ring{
  fill: none;
  stroke: rgba(245,246,247,.25);
  stroke-width: 1.2;
}

@keyframes edgePulse{
  from{ stroke-dashoffset: 0 }
  to{ stroke-dashoffset: -120 }
}
@media (prefers-reduced-motion: reduce){
  .hero-visual .net .pulse{animation:none}
}
