* { box-sizing:border-box; margin:0; padding:0; }
:root {
  --ink:#f5f4f2;
  --paper:#0a0a0a;
  --panel:#111111;
  --red:#ff3b4e;
  --line:rgba(245,244,242,.12);
  --soft:#9a9694;
}
html { scroll-behavior:smooth; }
body {
  font-family:'Inter', system-ui, sans-serif;
  background:var(--paper);
  color:var(--ink);
  line-height:1.7;
}
h1,h2,h3 { font-family:'Space Grotesk', system-ui, sans-serif; font-weight:600; }
em { font-style:normal; color:var(--red); }
a { color:inherit; }

.layout { display:flex; min-height:100vh; }

/* SIDEBAR */
.sidebar {
  width:280px; flex-shrink:0;
  position:sticky; top:0; height:100vh;
  display:flex; flex-direction:column; justify-content:space-between;
  padding:40px 32px;
  border-right:1px solid var(--line);
}
.sidebar .logo img { height:26px; width:auto; }
.side-nav { display:flex; flex-direction:column; gap:18px; margin-top:20px; }
.side-nav a {
  text-decoration:none; font-size:14px; font-weight:500; color:var(--soft);
  display:flex; align-items:center; gap:10px;
  transition:color .2s ease;
}
.side-nav a span {
  font-size:11px; font-family:'Inter',sans-serif; color:var(--soft);
  border:1px solid var(--line); border-radius:50%;
  width:22px; height:22px; display:inline-flex; align-items:center; justify-content:center;
  transition:border-color .2s ease, color .2s ease;
}
.side-nav a.active,
.side-nav a:hover { color:var(--ink); }
.side-nav a.active span { border-color:var(--red); color:var(--red); }

.side-foot { font-size:12.5px; color:var(--soft); }
.side-foot p { margin-bottom:8px; }
.side-foot a { text-decoration:underline; text-underline-offset:3px; }

/* MAIN */
.main { flex:1; min-width:0; }
.block { padding:140px 64px; max-width:880px; border-bottom:1px solid var(--line); }
.contact-block { border-bottom:none; }
.kicker {
  display:inline-block; font-size:12.5px; font-weight:600; letter-spacing:.06em;
  color:var(--red); margin-bottom:24px; text-transform:uppercase;
}
.intro h1 { font-size:64px; font-weight:500; line-height:1.2; letter-spacing:-.01em; margin-bottom:28px; }
.lede, .block-lede { font-size:19px; color:var(--soft); max-width:620px; margin-bottom:20px; }
.block h2 { font-size:38px; font-weight:600; margin-bottom:20px; letter-spacing:-.01em; }

/* marquee */
.intro-marquee { margin-top:60px; overflow:hidden; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:18px 0; }
.track { display:flex; gap:14px; white-space:nowrap; width:max-content; animation:marquee 22s linear infinite; }
.track span { font-size:14px; font-weight:500; color:var(--soft); }
.track span:nth-child(even) { color:var(--red); }
@keyframes marquee { from { transform:translateX(0); } to { transform:translateX(-50%); } }

/* stat list */
.stat-list { list-style:none; display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin:40px 0 48px; }
.stat-list li { border-top:1px solid var(--line); padding-top:14px; }
.stat-list strong { display:block; font-size:22px; font-family:'Space Grotesk', system-ui, sans-serif; font-weight:600; margin-bottom:4px; }
.stat-list span { font-size:13px; color:var(--soft); }

/* accordion */
.accordion { border-top:1px solid var(--line); margin-bottom:32px; }
.accordion details { border-bottom:1px solid var(--line); }
.accordion summary {
  list-style:none; cursor:pointer;
  display:flex; align-items:center; gap:16px;
  padding:22px 0; font-size:17px; font-weight:600;
  font-family:'Space Grotesk', system-ui, sans-serif;
}
.accordion summary::-webkit-details-marker { display:none; }
.acc-num { font-family:'Inter',sans-serif; font-size:12px; color:var(--red); font-weight:700; }
.acc-icon { margin-left:auto; font-family:'Inter',sans-serif; font-size:20px; color:var(--soft); transition:transform .25s ease; }
.accordion details[open] .acc-icon { transform:rotate(45deg); color:var(--red); }
.acc-body { padding:0 0 26px 38px; max-width:620px; }
.acc-body p { font-size:14.5px; color:var(--soft); }

.text-link {
  display:inline-block; text-decoration:none; font-size:14px; font-weight:600;
  border-bottom:1px solid var(--ink); padding-bottom:2px;
  transition:border-color .2s ease, color .2s ease;
}
.text-link:hover { color:var(--red); border-color:var(--red); }
.link-row { display:flex; gap:20px; flex-wrap:wrap; }

/* SOLUTIONS */
.sol-list { margin-top:12px; }
.sol-row {
  display:grid; grid-template-columns:56px 220px 1fr; gap:32px;
  padding:44px 0; border-top:1px solid var(--line);
  align-items:start;
}
.sol-row:last-child { border-bottom:1px solid var(--line); }
.sol-num { font-family:'Space Grotesk', system-ui, sans-serif; font-size:15px; color:var(--red); font-weight:600; padding-top:4px; }
.sol-media { width:100%; height:150px; background-size:cover; background-position:center; border-radius:4px; }
.sol-copy h3 { font-size:22px; font-weight:600; margin-bottom:6px; }
.sol-sub { font-size:12.5px; color:var(--red); font-weight:600; letter-spacing:.03em; margin-bottom:12px; text-transform:uppercase; }
.sol-copy p { font-size:14.5px; color:var(--soft); margin-bottom:16px; max-width:600px; }

/* CONTACT */
.contact-layout { display:grid; grid-template-columns:1fr 1fr; gap:56px; margin-top:44px; }
.field { margin-bottom:22px; }
.field label {
  display:block; font-size:11.5px; font-weight:600; letter-spacing:.05em;
  text-transform:uppercase; color:var(--soft); margin-bottom:8px;
}
.field input, .field textarea {
  width:100%; border:none; border-bottom:1px solid var(--line);
  background:transparent; font:inherit; font-size:15px; padding:8px 2px;
  color:var(--ink);
}
.field input:focus, .field textarea:focus { outline:none; border-color:var(--red); }
.field textarea { min-height:90px; resize:vertical; }
.submit { margin-top:8px; }
.map-wrap { border-radius:4px; overflow:hidden; min-height:280px; border:1px solid var(--line); }
.map-wrap iframe { width:100%; height:100%; min-height:280px; border:0; }

.foot {
  padding:32px 64px 60px; font-size:12px; color:var(--soft);
  display:flex; justify-content:space-between; max-width:880px;
}

@media (max-width: 980px) {
  .layout { flex-direction:column; }
  .sidebar { width:100%; height:auto; position:relative; flex-direction:row; align-items:center; padding:20px 24px; }
  .side-nav { flex-direction:row; gap:16px; margin-top:0; }
  .side-nav a span { display:none; }
  .side-foot { display:none; }
  .block { padding:80px 24px; }
  .intro h1 { font-size:38px; }
  .stat-list { grid-template-columns:repeat(2,1fr); }
  .sol-row { grid-template-columns:1fr; }
  .sol-media { height:200px; }
  .contact-layout { grid-template-columns:1fr; }
  .foot { flex-direction:column; gap:8px; padding:24px; }
}
