:root {
  --ink: #111315;
  --ink-2: #181b1e;
  --muted: #6e7377;
  --line: #dfe2e3;
  --paper: #f5f5f2;
  --white: #ffffff;
  --yellow: #ffd51f;
  --yellow-soft: #fff1a2;
  --max: 1180px;
  --radius: 18px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: "Manrope", system-ui, sans-serif;
  line-height: 1.55;
}
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
.container { width: min(calc(100% - 40px), var(--max)); margin: 0 auto; }

.topbar {
  background: var(--yellow);
  color: var(--ink);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.topbar-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  min-height: 34px;
}
.topbar a { text-decoration: underline; text-underline-offset: 3px; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 30;
  background: rgba(17,19,21,.96);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.nav-wrap {
  min-height: 82px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.brand { display: inline-flex; align-items: center; gap: 11px; }
.brand-mark {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: var(--yellow);
}
.brand-mark svg { width: 23px; fill: var(--ink); }
.brand-text { display: grid; color: var(--white); line-height: 1; }
.brand-text strong {
  font-family: "Oswald", sans-serif;
  font-size: 24px;
  letter-spacing: .06em;
}
.brand-text small {
  margin-top: 5px;
  color: #c3c7c9;
  font-size: 9px;
  letter-spacing: .24em;
  font-weight: 700;
}
.main-nav { display: flex; align-items: center; gap: 30px; color: #e8e8e6; font-size: 14px; font-weight: 700; }
.main-nav a:hover { color: var(--yellow); }
.nav-cta {
  padding: 12px 18px;
  color: var(--ink)!important;
  background: var(--yellow);
  border-radius: 999px;
}
.menu-btn { display: none; border: 0; background: transparent; padding: 6px; }
.menu-btn span { display:block; width:26px; height:2px; margin:5px 0; background:#fff; }

.hero {
  min-height: 720px;
  position: relative;
  overflow: hidden;
  color: var(--white);
  background: var(--ink);
}
.hero-grid-bg {
  position: absolute;
  inset: 0;
  opacity: .18;
  background-image:
    linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px);
  background-size: 70px 70px;
  mask-image: linear-gradient(to right, black 0%, transparent 72%);
}
.hero:after {
  content:"";
  position:absolute;
  width:600px;
  height:600px;
  right:-160px;
  top:30px;
  border-radius:50%;
  background:var(--yellow);
  filter: blur(0);
  opacity:.06;
}
.hero-layout {
  min-height: 720px;
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1.08fr .92fr;
  gap: 70px;
  align-items: center;
}
.eyebrow {
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 20px;
  font-size:12px;
  font-weight:800;
  letter-spacing:.16em;
  color:#b9bec1;
}
.eyebrow span { width:34px; height:3px; background:var(--yellow); }
.eyebrow.dark { color:#3a3a35; }
.hero h1, .section h2 {
  font-family:"Oswald", sans-serif;
  text-transform:uppercase;
  letter-spacing:-.02em;
  line-height:.98;
  margin:0;
}
.hero h1 { max-width:760px; font-size:clamp(58px, 7vw, 102px); }
.hero h1 em { display:block; color:var(--yellow); font-style:normal; }
.hero-lead {
  max-width:670px;
  margin:26px 0 0;
  color:#c9cdcf;
  font-size:18px;
}
.hero-actions { display:flex; gap:14px; margin-top:34px; flex-wrap:wrap; }
.btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:52px;
  padding:0 23px;
  border-radius:999px;
  font-weight:800;
  font-size:14px;
  border:1px solid transparent;
  cursor:pointer;
}
.btn-primary { background:var(--yellow); color:var(--ink); }
.btn-primary:hover { transform: translateY(-1px); }
.btn-ghost { border-color:#454a4e; color:#fff; background:#1b1e21; }
.hero-proof {
  margin-top:48px;
  padding-top:25px;
  border-top:1px solid #33383c;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
}
.hero-proof div { display:grid; }
.hero-proof strong { font-size:14px; }
.hero-proof span { margin-top:3px; color:#8e9599; font-size:12px; }

.hero-visual {
  min-height:520px;
  position:relative;
  display:grid;
  place-items:center;
}
.bolt-ring {
  width:min(34vw, 400px);
  aspect-ratio:1;
  display:grid;
  place-items:center;
  border:1px solid #3b4043;
  border-radius:50%;
  box-shadow: 0 0 0 44px rgba(255,255,255,.018), 0 0 0 88px rgba(255,255,255,.012);
}
.big-bolt { width:42%; fill:var(--yellow); filter:drop-shadow(0 18px 28px rgba(0,0,0,.36)); }
.panel-card {
  position:absolute;
  display:flex;
  align-items:center;
  gap:12px;
  min-width:180px;
  padding:16px 17px;
  background:#202428;
  border:1px solid #383d40;
  border-radius:14px;
  box-shadow:0 15px 35px rgba(0,0,0,.3);
}
.panel-card small { display:block; color:#83898d; font-size:9px; letter-spacing:.14em; }
.panel-card strong { display:block; margin-top:2px; font-size:13px; }
.panel-card-one { top:20%; left:0; }
.panel-card-two { right:0; bottom:20%; }
.status-dot { width:11px; height:11px; border-radius:50%; background:var(--yellow); box-shadow:0 0 0 5px rgba(255,213,31,.1); }
.mini-bolt { width:32px; height:32px; display:grid; place-items:center; background:var(--yellow); border-radius:8px; color:#111; }

.trust-strip { background:var(--yellow); border-bottom:1px solid #dfbb16; }
.trust-grid { min-height:76px; display:grid; grid-template-columns:repeat(4,1fr); align-items:center; }
.trust-grid span {
  text-align:center;
  font-size:12px;
  font-weight:900;
  letter-spacing:.07em;
  text-transform:uppercase;
  border-right:1px solid rgba(17,19,21,.18);
}
.trust-grid span:last-child { border-right:0; }

.section { padding:110px 0; }
.section-heading {
  display:grid;
  grid-template-columns:1.2fr .8fr;
  align-items:end;
  gap:70px;
  margin-bottom:55px;
}
.section-heading.compact { grid-template-columns:1fr; }
.section h2 { font-size:clamp(42px,5vw,70px); max-width:850px; }
.section-heading > p { color:var(--muted); max-width:520px; margin:0 0 5px; }

.service-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.service-card {
  min-height:270px;
  padding:28px;
  display:flex;
  flex-direction:column;
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:#fff;
  transition:.2s ease;
}
.service-card:hover { transform:translateY(-4px); border-color:#c8cbcc; box-shadow:0 14px 30px rgba(0,0,0,.06); }
.service-number { color:#9ca1a4; font-size:11px; font-weight:800; letter-spacing:.14em; }
.service-card h3 { margin:44px 0 10px; font-size:21px; letter-spacing:-.02em; }
.service-card p { margin:0; color:var(--muted); font-size:14px; }
.service-card a { margin-top:auto; padding-top:20px; font-size:13px; font-weight:800; }
.accent-card { justify-content:space-between; background:var(--yellow); border-color:var(--yellow); }
.accent-card h3 { margin:14px 0 0; max-width:270px; font-family:"Oswald",sans-serif; text-transform:uppercase; font-size:34px; line-height:1.05; }
.round-arrow { width:54px; height:54px; display:grid; place-items:center; border-radius:50%; background:#111; color:#fff; font-size:24px; align-self:flex-end; }

.section-dark { background:var(--ink); color:#fff; }
.about-layout { display:grid; grid-template-columns:.9fr 1.1fr; gap:90px; align-items:center; }
.about-visual {
  min-height:540px;
  position:relative;
  overflow:hidden;
  border:1px solid #31363a;
  border-radius:24px;
  background:
    radial-gradient(circle at 55% 48%, rgba(255,213,31,.11), transparent 30%),
    linear-gradient(145deg,#171a1d,#0f1113);
}
.about-visual:before, .about-visual:after {
  content:"";
  position:absolute;
  border:1px solid #34393c;
  border-radius:50%;
}
.about-visual:before { width:430px; height:430px; left:-120px; top:55px; }
.about-visual:after { width:280px; height:280px; right:-110px; bottom:40px; }
.wire-line { position:absolute; height:3px; width:75%; background:var(--yellow); transform-origin:left center; opacity:.85; }
.wire-1 { left:7%; top:42%; transform:rotate(-28deg); }
.wire-2 { left:20%; top:62%; transform:rotate(22deg); opacity:.3; }
.about-badge {
  position:absolute;
  inset:0;
  margin:auto;
  width:210px;
  height:210px;
  border-radius:50%;
  display:grid;
  place-content:center;
  text-align:center;
  background:var(--yellow);
  color:#111;
  box-shadow:0 30px 60px rgba(0,0,0,.32);
}
.about-badge span { font-family:"Oswald"; font-size:42px; line-height:1; }
.about-badge strong { margin-top:6px; font-size:13px; letter-spacing:.18em; }
.about-copy h2 { color:#fff; }
.lead-muted { color:#aeb4b7; font-size:16px; max-width:620px; margin:24px 0 34px; }
.feature-list { display:grid; gap:0; border-top:1px solid #353a3d; }
.feature { display:grid; grid-template-columns:52px 1fr; gap:18px; padding:22px 0; border-bottom:1px solid #353a3d; }
.feature > span { color:var(--yellow); font-size:11px; font-weight:800; }
.feature strong { font-size:16px; }
.feature p { margin:4px 0 0; color:#8f969a; font-size:13px; }

.process-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.process-step {
  padding:34px 30px;
  min-height:245px;
  border-top:4px solid var(--ink);
  background:#ebecea;
}
.process-step > span {
  width:42px; height:42px; display:grid; place-items:center; border-radius:50%;
  background:var(--yellow); font-weight:900;
}
.process-step h3 { margin:42px 0 8px; font-size:20px; }
.process-step p { margin:0; color:var(--muted); font-size:14px; }

.projects-section { padding-top:20px; }
.project-grid { display:grid; grid-template-columns:1fr 1.15fr 1fr; gap:16px; align-items:end; }
.project-placeholder {
  min-height:330px;
  position:relative;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  padding:24px;
  border-radius:20px;
  color:#fff;
  background:
    linear-gradient(to top, rgba(10,11,12,.85), transparent 65%),
    repeating-linear-gradient(135deg,#2e3336 0,#2e3336 24px,#272b2e 24px,#272b2e 48px);
}
.project-placeholder:before {
  content:"⚡";
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  font-size:70px;
  opacity:.13;
}
.project-placeholder.tall { min-height:420px; }
.project-placeholder span { z-index:1; font-weight:900; font-size:13px; letter-spacing:.08em; }
.project-placeholder small { z-index:1; margin-top:4px; color:#adb3b6; }

.quote-section { background:var(--yellow); }
.quote-layout { display:grid; grid-template-columns:.85fr 1.15fr; gap:80px; align-items:start; }
.quote-copy .eyebrow { color:#3a3a35; }
.quote-copy .eyebrow span { background:#111; }
.quote-copy p { max-width:520px; color:#3f403d; }
.contact-lines { margin-top:46px; display:grid; gap:20px; }
.contact-lines div { padding-bottom:16px; border-bottom:1px solid rgba(17,19,21,.23); }
.contact-lines small { display:block; margin-bottom:4px; font-size:10px; letter-spacing:.14em; font-weight:800; }
.contact-lines strong { font-size:15px; }

.quote-form {
  display:grid;
  gap:16px;
  padding:30px;
  border-radius:22px;
  background:#fff;
  box-shadow:0 22px 60px rgba(74,60,0,.12);
}
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.quote-form label { display:grid; gap:7px; font-size:12px; font-weight:800; }
.quote-form input, .quote-form select, .quote-form textarea {
  width:100%;
  border:1px solid #d9dcdd;
  border-radius:10px;
  padding:13px 14px;
  background:#f9f9f8;
  outline:none;
}
.quote-form input:focus, .quote-form select:focus, .quote-form textarea:focus { border-color:#9a9fa1; background:#fff; }
.quote-form textarea { resize:vertical; }
.form-submit { width:100%; border:0; background:#111; color:#fff; }
.form-note { margin:0; color:#8a8f91; font-size:10px; text-align:center; }

footer { background:#0d0f10; color:#9ea3a6; border-top:1px solid #23272a; }
.footer-grid { min-height:150px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:30px; font-size:12px; }
.footer-grid > a:last-child { justify-self:end; color:#fff; font-weight:800; }
.footer-brand .brand-mark { width:36px; height:36px; }
.footer-brand .brand-text strong { font-size:20px; }

@media (max-width: 900px) {
  .main-nav {
    position:absolute;
    top:82px;
    left:0;
    right:0;
    display:none;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:14px 20px 22px;
    background:#111315;
    border-top:1px solid #2a2e31;
  }
  .main-nav.open { display:flex; }
  .main-nav a { padding:14px 2px; border-bottom:1px solid #2a2e31; }
  .nav-cta { margin-top:10px; text-align:center; border-bottom:0!important; }
  .menu-btn { display:block; }

  .hero, .hero-layout { min-height:auto; }
  .hero-layout { grid-template-columns:1fr; gap:50px; padding-top:85px; padding-bottom:90px; }
  .hero-visual { min-height:390px; }
  .bolt-ring { width:310px; }
  .panel-card-one { left:5%; }
  .panel-card-two { right:5%; }
  .trust-grid { grid-template-columns:1fr 1fr; padding:10px 0; }
  .trust-grid span { padding:11px 5px; border-right:0; }
  .section { padding:80px 0; }
  .section-heading { grid-template-columns:1fr; gap:20px; }
  .service-grid { grid-template-columns:1fr 1fr; }
  .about-layout { grid-template-columns:1fr; gap:55px; }
  .about-visual { min-height:430px; }
  .process-grid { grid-template-columns:1fr; }
  .project-grid { grid-template-columns:1fr; }
  .project-placeholder, .project-placeholder.tall { min-height:300px; }
  .quote-layout { grid-template-columns:1fr; gap:48px; }
  .footer-grid { grid-template-columns:1fr; padding:45px 0; text-align:center; }
  .footer-grid .brand { justify-self:center; }
  .footer-grid > a:last-child { justify-self:center; }
}

@media (max-width: 600px) {
  .container { width:min(calc(100% - 28px), var(--max)); }
  .topbar-inner { min-height:32px; font-size:10px; }
  .nav-wrap { min-height:72px; }
  .main-nav { top:72px; }
  .brand-mark { width:38px; height:38px; }
  .brand-text strong { font-size:21px; }
  .hero-layout { padding-top:64px; padding-bottom:70px; }
  .hero h1 { font-size:clamp(54px,17vw,78px); }
  .hero-lead { font-size:16px; }
  .hero-proof { grid-template-columns:1fr; gap:12px; }
  .hero-proof div { grid-template-columns:105px 1fr; }
  .hero-visual { min-height:310px; }
  .bolt-ring { width:230px; }
  .panel-card { min-width:150px; padding:12px; }
  .panel-card-one { top:11%; left:0; }
  .panel-card-two { bottom:10%; right:0; }
  .service-grid { grid-template-columns:1fr; }
  .service-card { min-height:235px; }
  .form-row { grid-template-columns:1fr; }
  .quote-form { padding:22px 18px; }
}
