:root {
  --black:#282929;
  --white:#FFFFFF;
  --red:#D72A31;
  --black-90:rgba(40,41,41,.9);
  --black-72:rgba(40,41,41,.72);
  --black-56:rgba(40,41,41,.56);
  --black-14:rgba(40,41,41,.14);
  --black-08:rgba(40,41,41,.08);
  --white-88:rgba(255,255,255,.88);
  --white-72:rgba(255,255,255,.72);
  --white-16:rgba(255,255,255,.16);
  --white-08:rgba(255,255,255,.08);
  --red-85:rgba(215,42,49,.85);
  --red-18:rgba(215,42,49,.18);
  --red-10:rgba(215,42,49,.10);
}

* {
  box-sizing:border-box;
  margin:0;
  padding:0;
}

html {
  scroll-behavior:smooth;
}

body {
  background:var(--white);
  color:var(--black);
  font-family:"IBM Plex Sans",sans-serif;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}

img {
  max-width:100%;
  display:block;
}

a {
  color:inherit;
  text-decoration:none;
}

p+p {
  margin-top:1rem;
}

.wrap {
  width:min(1180px,calc(100% - 40px));
  margin-inline:auto;
}

.site-header {
  position:sticky;
  top:0;
  z-index:20;
  background:var(--white);
  border-bottom:1px solid var(--white-16);
}

.nav-row {
  min-height:82px;
  display:flex;
  align-items:center;
  gap:22px;
}

.brand {
  display:inline-flex;
  align-items:center;
  padding:8px;
  background:var(--white);
  border-radius:14px;
  flex:0 0 auto;
}

.brand-banner {
  width:170px;
  height:50px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}

.brand-banner img {
  width:100%;
  height:auto;
  display:block;
  object-fit:contain;
}

.primary-nav {
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:18px;
}

.primary-nav a {
  color:var(--black-88);
  font-size:.86rem;
  font-weight:600;
}

.primary-nav a:hover,.primary-nav a.active {
  color:var(--red);
  transition:color .2s ease-in-out;
}

.nav-toggle {
  display:none;
}

.btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:10px 17px;
  border:2px solid var(--red);
  background:var(--red);
  color:var(--white);
  border-radius:3px;
  font-weight:700;
  font-size:.88rem;
  transition:.2s ease;
}

.btn:hover {
  background:var(--white);
  border-color:var(--black);
  color:var(--black);
}

.section-dark .btn:hover,.hero .btn:hover,.cta-band .btn:hover {
  background:var(--white);
  border-color:var(--white);
  color:var(--black);
}

.btn-outline {
  background:transparent;
  color:var(--black);
  border-color:var(--black);
}

.btn-outline.on-dark {
  color:var(--white);
  border-color:var(--white);
}

.btn-outline.on-dark:hover {
  background:var(--white);
  color:var(--black);
  border-color:var(--black);
}

.button-row {
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  margin-top:30px;
}

.button-row.center {
  justify-content:center;
}

h1,h2,h3 {
  font-family:"Cinzel",serif;
  line-height:1.15;
  color:var(--black);
}

.section-dark h1,
.section-dark h2,
.section-dark h3,
.cta-band h2,
.page-hero h1,
.page-hero h2 {
  color:var(--white);
}

.hero h1,
.hero h2 {
  color:var(--black);
}

h1 {
  font-size:clamp(2.3rem,5vw,4.7rem);
}

h2 {
  font-size:clamp(1.9rem,3vw,3rem);
}

h3 {
  font-size:1.25rem;
}

.eyebrow {
  font-family:"IBM Plex Mono",monospace;
  color:var(--red);
  font-size:.74rem;
  text-transform:uppercase;
  letter-spacing:.18em;
  font-weight:700;
  margin-bottom:15px;
}

.lead {
  font-size:1.15rem;
  color:var(--black);
  max-width:68ch;
}

.hero .lead,
.section-dark p,
.cta-band p,
.page-hero p {
  color:var(--white-72);
}

.hero {
  background:var(--white);
  color:var(--black);
  padding:96px 0;
  border-bottom:4px solid var(--red);
}

.hero.page-hero {
  background:var(--black);
  color:var(--white);
}

.hero.page-hero h1,
.hero.page-hero h2,
.hero.page-hero .eyebrow,
.hero.page-hero .lead,
.hero.page-hero .btn-outline.on-dark

.hero.page-hero .lead,
.hero.page-hero p {
  color:var(--white-72);
}

.hero-grid,.split {
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:56px;
  align-items:center;
}

.hero-card {
  background:var(--white);
  color:var(--black);
  padding:34px;
  border:1px solid var(--red);
  box-shadow:18px 18px 0 var(--red-18);
}

.hero-card img {
  margin:auto;
  max-height:330px;
}

.hero-card p {
  margin-top:18px;
  color:var(--black-72);
  font-weight:600;
  text-align:center;
}

.stats {
  background:var(--red);
  color:var(--white);
  padding:34px 0;
}

.stats-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:24px;
}

.stat strong {
  display:block;
  color:var(--white);
  font-family:"Cinzel",serif;
  font-size:2.25rem;
  line-height:1;
}

.brand-copy span {

    color: var(--red);
    font-family: "IBM Plex Mono",monospace;
    font-size: .62rem;
    text-transform: uppercase;
    letter-spacing: .18em;
    margin-top: 1px;
}

.stat span {

  margin-top:8px;
  color:var(--white-88);
  font-size:.9rem;
}

.section {
  padding:86px 0;
}

.section-white {
  background:var(--white);
  border-block:1px solid var(--black-14);
}

.section-dark {
  background:var(--black);
  color:var(--white);
  border-block:4px solid var(--red);
}

.compact {
  padding:52px 0;
}

.section-head {
  max-width:760px;
  margin-bottom:42px;
}

.section-head p:not(.eyebrow) {
  color:var(--black-90);
  margin-top:15px;
}

.card-grid {
  display:grid;
  gap:1px;
  background:var(--black-14);
  border:1px solid var(--black-14);
}

.card-grid.four {
  grid-template-columns:repeat(4,1fr);
}

.card-grid.three {
  grid-template-columns:repeat(3,1fr);
}

.pillar-card,.info-card,.step {
  background:var(--white);
  padding:30px;
  min-height:250px;
  display:flex;
  flex-direction:column;
  border:1px solid var(--black-14);
  border-radius:2px;
  box-shadow:0 16px 30px rgba(40,41,41,.06);
  transition:transform .25s ease,background-color .25s ease,color .25s ease,box-shadow .25s ease,border-color .25s ease;
}

.pillar-card span,.step span {
  font-family:"IBM Plex Mono",monospace;
  color:var(--red);
  font-weight:700;
  font-size:.78rem;
}

.pillar-card h3,.info-card h3 {
  margin:16px 0 11px;
  color:var(--black);
}

.pillar-card p,.info-card p,li {
  color:var(--black-90);
}

.pillar-card em,
.info-card em {
  margin-top:auto;
  color:var(--red);
  font-style:normal;
  font-weight:700;
}

.pillar-card:hover,.pillar-card.feature:hover,.info-card:hover,.step:hover {
  background:var(--black);
  color:var(--white);
  transform:translateY(-4px);
  border-color:var(--red);
  box-shadow:0 16px 30px rgba(215,42,49,.16);
}

.pillar-card:hover h3,.pillar-card.feature:hover h3,
.info-card:hover h3,
.step:hover h3 {
  color:var(--white);
}

.pillar-card:hover p,.pillar-card.feature:hover p,
.info-card:hover p,
.step:hover p {
  color:var(--white-72);
}

.chip-panel {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.chip-panel span,.industry-strip span {
  border:1px solid currentColor;
  padding:9px 13px;
  font-family:"IBM Plex Mono",monospace;
  font-size:.78rem;
  color:inherit;
  transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .2s ease;
}

.chip-panel span:hover,.industry-strip span:hover {
  background-color:var(--red);
  color:var(--white);
  border-color:var(--red);
  transform:translateY(-2px);
}

.industry-strip {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:18px;
}

.page-hero {
  background:var(--black);
  color:var(--white);
  padding:78px 0;
}

.page-hero h1 {
  color:var(--white);
  max-width:880px;
  font-size:clamp(1.725rem,3.75vw,3.525rem);
}

.page-hero p {
  color:var(--white-72);
  max-width:760px;
  margin-top:18px;
}

.content-list {
  margin-top:18px;
  padding-left:20px;
}

.process {
  counter-reset:step;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
}

.step {
  border:1px solid var(--black-14);
  padding:24px;
  background:var(--white);
}

.faq-item {
  border-top:1px solid var(--black-14);
  padding:22px 0;
  transition:padding .2s ease,border-color .2s ease;
}

.faq-item button {
  width:100%;
  background:none;
  border:0;
  text-align:left;
  font:700 1rem "IBM Plex Sans";
  color:var(--black);
  cursor:pointer;
  display:flex;
  justify-content:space-between;
  gap:20px;
}

.faq-item .faq-answer {
  display:none;
  color:var(--black-90);
  padding-top:10px;
}

.faq-item.open .faq-answer {
  display:block;
}

.contact-form {
  display:grid;
  gap:14px;
}

.contact-form label {
  font-weight:700;
  color:var(--black-90);
}

.contact-form input,.contact-form textarea,.contact-form select {
  width:100%;
  padding:13px;
  border:1px solid var(--black-14);
  font:inherit;
  color:var(--black);
  background:var(--white);
}

.contact-form textarea {
  min-height:150px;
}

.cta-band {
  background:var(--black);
  color:var(--white);
  text-align:center;
  padding:72px 0;
  border-top:4px solid var(--red);
}

.site-footer {
  background:var(--black);
  color:var(--white-72);
  padding:54px 0 26px;
  border-top:1px solid var(--white-16);
}

.footer-grid {
  display:grid;
  grid-template-columns:1.4fr repeat(3,1fr);
  gap:34px;
  padding-bottom:34px;
  border-bottom:1px solid var(--white-16);
}

.footer-grid h3 {
  font-family:"IBM Plex Mono",monospace;
  text-transform:uppercase;
  letter-spacing:.14em;
  color:var(--white);
  font-size:.8rem;
  margin-bottom:14px;
}

.footer-grid a,
.footer-grid span {
  display:block;
  color:var(--white-72);
  margin-bottom:12px;
}

.footer-grid a:hover {
  color:var(--white);
}

.footer-brand {
  margin-bottom:14px;
  color:var(--black);
}

.footer-brand img {
  display:block;
  height:auto;
  margin-bottom:12px;
}

.footer-brand .brand-copy {
  display:flex;
  flex-direction:column;
  gap:6px;
  color:var(--black);
  font-weight:700;
}

.footer-brand .tagline {
  color:var(--black-72);
  font-family:"IBM Plex Mono",monospace;
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.16em;
}

.footer-bottom {
  display:flex;
  justify-content:space-between;
  gap:20px;
  padding-top:22px;
  color:var(--white-72);
  font-size:.84rem;
}

.reveal {
  opacity:0;
  transform:translateY(18px);
  transition:opacity .6s ease,transform .6s ease;
  will-change:opacity,transform;
}

.reveal.is-visible {
  opacity:1;
  transform:none;
}

@media(max-width:980px) {
  .nav-toggle {
    display:inline-flex;
    margin-left:auto;
    background:transparent;
    border:1px solid var(--white-16);
    color:var(--white);
    padding:9px 12px;
  }

  .primary-nav {
    display:none;
    position:cen;
    left:0;
    right:0;
    top:82px;
    background:var(--black);
    padding:20px;
    flex-direction:column;
    align-items:flex-start;
    border-bottom:1px solid var(--white-16);
  }

  .primary-nav.open {
    display:flex;
  }

  .nav-cta {
    display:none;
  }

  .hero-grid,.split {
    grid-template-columns:1fr;
  }

  .card-grid.four,.card-grid.three,.process,.stats-grid {
    grid-template-columns:repeat(2,1fr);
  }

  .footer-grid {
    grid-template-columns:1fr 1fr;
  }
}

@media(max-width:640px) {
  .wrap {
    width:min(100% - 28px,1180px);
  }

  .hero,.page-hero {
    padding:62px 0;
  }

  .section {
    padding:62px 0;
  }

  .card-grid.four,.card-grid.three,.process,.stats-grid,.footer-grid {
    grid-template-columns:1fr;
  }

  .footer-bottom {
    flex-direction:column;
  }

  .brand-copy {
    font-size:.92rem;
  }
}
