:root {
  --red: #e3192d;
  --red-dark: #a70d1b;
  --ink: #0c0e10;
  --carbon: #15181c;
  --paper: #f3f4f2;
  --white: #fff;
  --muted: #a9adb2;
  --line: #d9dcde;
  --max: 1280px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 88px; }
body {
  margin: 0;
  overflow-x: hidden;
  background: var(--paper);
  color: var(--ink);
  font-family: Manrope, Arial, sans-serif;
  font-size: 16px;
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; }
h1, h2, h3, strong { font-family: "Space Grotesk", Manrope, sans-serif; }
.section { width: min(var(--max), calc(100% - 48px)); margin-inline: auto; }

.site-header {
  position: sticky;
  z-index: 100;
  top: 0;
  display: flex;
  align-items: center;
  height: 88px;
  gap: 46px;
  padding: 0 max(28px, calc((100vw - var(--max)) / 2));
  border-bottom: 1px solid #292c30;
  background: var(--ink);
  color: var(--white);
  box-shadow: 0 10px 30px rgba(0, 0, 0, .16);
}
.brand {
  display: flex;
  flex: 0 0 190px;
  align-items: center;
  width: 190px;
  height: 70px;
  overflow: hidden;
}
.brand img { display: block; width: 100%; height: auto; }
.site-header nav { display: flex; gap: 34px; margin-left: auto; }
.site-header nav a {
  color: #b7bbc0;
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  transition: color .2s;
}
.site-header nav a:hover, .site-header nav a:focus-visible { color: var(--white); }
.header-phone {
  display: grid;
  gap: 3px;
  padding-left: 28px;
  border-left: 1px solid #34373b;
}
.header-phone span {
  color: #868b91;
  font-size: .62rem;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.header-phone strong { font-size: .9rem; }
.menu-button { display: none; width: 42px; height: 42px; padding: 10px; border: 0; background: none; }
.menu-button span { display: block; height: 2px; margin: 7px 0; background: var(--white); }

.hero {
  position: relative;
  min-height: 810px;
  height: calc(100vh - 88px);
  max-height: 930px;
  overflow: hidden;
  background: var(--ink);
  color: var(--white);
}
.hero-grid {
  position: absolute;
  z-index: 1;
  inset: 0;
  background-image: linear-gradient(rgba(255, 255, 255, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .045) 1px, transparent 1px);
  background-size: 84px 84px;
  mask-image: linear-gradient(90deg, #000 0, transparent 72%);
  pointer-events: none;
}
.hero-visual { position: absolute; inset: 0 0 0 43%; overflow: hidden; }
.hero-visual img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(.68) contrast(1.08);
}
.hero-visual::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, var(--ink) 0%, rgba(12, 14, 16, .77) 15%, rgba(12, 14, 16, .08) 60%), linear-gradient(0deg, rgba(12, 14, 16, .72), transparent 48%);
}
.hero-copy {
  position: relative;
  z-index: 3;
  width: min(760px, calc(100% - 48px));
  margin-left: max(24px, calc((100vw - var(--max)) / 2));
  padding-top: clamp(66px, 9vh, 112px);
}
.overline, .eyebrow {
  margin: 0 0 24px;
  color: var(--red);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.overline { display: flex; align-items: center; color: #d9dcdf; }
.overline span {
  display: grid;
  place-items: center;
  width: 33px;
  height: 33px;
  margin-right: 12px;
  border: 1px solid #565a60;
  color: var(--red);
}
h1 {
  margin: 0;
  font-size: clamp(4rem, 7vw, 7.5rem);
  line-height: .79;
  letter-spacing: -.075em;
  text-transform: uppercase;
}
h1 em, h2 em { color: var(--red); font-style: normal; }
.hero-lead { max-width: 545px; margin: 34px 0 0; color: #c5c9ce; font-size: 1rem; line-height: 1.75; }
.hero-actions { display: flex; align-items: center; gap: 28px; margin-top: 34px; }
.button {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  height: 58px;
  gap: 24px;
  padding: 0 24px;
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  transition: transform .2s, background .2s;
}
.button-red { background: var(--red); color: var(--white); }
.button-red:hover { transform: translateY(-2px); background: var(--red-dark); }
.text-link {
  padding: 16px 0;
  border-bottom: 1px solid #5d6166;
  color: var(--white);
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.text-link span { margin-left: 14px; color: var(--red); }
.hero-number {
  position: absolute;
  z-index: 1;
  right: -35px;
  bottom: -72px;
  color: rgba(255, 255, 255, .055);
  font: 700 clamp(12rem, 22vw, 23rem) / 1 "Space Grotesk";
  letter-spacing: -.12em;
}
.hero-panel {
  position: absolute;
  z-index: 4;
  right: max(24px, calc((100vw - var(--max)) / 2));
  bottom: 0;
  display: grid;
  width: 350px;
  padding: 25px 28px 0;
  background: var(--red);
}
.hero-panel small { color: #ffd4d8; font-size: .62rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.hero-panel > strong { margin: 13px 0 22px; font-size: 2.1rem; line-height: .92; letter-spacing: -.05em; text-transform: uppercase; }
.hero-panel > span {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 54px;
  border-top: 1px solid rgba(255, 255, 255, .32);
  font-size: .67rem;
  font-weight: 800;
  letter-spacing: .12em;
}
.hero-panel b { font-size: 1.2rem; }
.hero-facts {
  position: absolute;
  z-index: 4;
  left: max(24px, calc((100vw - var(--max)) / 2));
  bottom: 30px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  width: 720px;
  max-width: calc(100% - 430px);
  margin: 0;
  padding: 18px 0 0;
  border-top: 1px solid #3b3f44;
  list-style: none;
}
.hero-facts li { display: grid; gap: 3px; padding: 0 18px; border-left: 1px solid #3b3f44; }
.hero-facts li:first-child { padding-left: 0; border-left: 0; }
.hero-facts b { color: var(--white); font-size: .9rem; }
.hero-facts span { color: #858b91; font-size: .65rem; letter-spacing: .08em; text-transform: uppercase; }

.marquee { height: 70px; overflow: hidden; background: var(--red); color: var(--white); }
.marquee > div {
  display: flex;
  align-items: center;
  width: max-content;
  height: 100%;
  gap: 34px;
  padding-left: 34px;
  animation: marquee 14s linear infinite;
}
.marquee span { font-size: .72rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.marquee i { font-size: 1.1rem; font-style: normal; }
@keyframes marquee { to { transform: translateX(-40%); } }

.solutions { padding: 125px 0 135px; }
.solutions-head {
  display: grid;
  grid-template-columns: 180px 1fr .72fr;
  align-items: end;
  gap: 50px;
}
.section-label { display: flex; align-items: flex-start; gap: 12px; font-size: .68rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.section-label span { color: var(--red); }
.section-label p { margin: 0; padding-bottom: 10px; border-bottom: 1px solid #b8bdc1; }
.solutions h2, .advantage h2, .process h2, .contact h2 {
  margin: 0;
  font-size: clamp(2.8rem, 5.2vw, 5.7rem);
  line-height: .93;
  letter-spacing: -.06em;
}
.solutions-head > p { margin: 0; color: #5e646b; line-height: 1.75; }
.service-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 18px; margin-top: 60px; }
.service-card {
  position: relative;
  display: block;
  min-height: 430px;
  overflow: hidden;
  background: var(--white);
  box-shadow: 0 20px 50px rgba(12, 14, 16, .08);
  transition: transform .3s, box-shadow .3s;
}
.service-card:hover { transform: translateY(-6px); box-shadow: 0 28px 65px rgba(12, 14, 16, .16); }
.service-card-large { grid-column: span 8; min-height: 620px; color: var(--white); }
.service-card-image { grid-column: span 4; color: var(--white); }
.service-card-wide { grid-column: span 12; min-height: 470px; }
.service-card-red { grid-column: span 4; background: var(--red); color: var(--white); }
.service-card-dark { grid-column: span 4; background: var(--ink); color: var(--white); }
.service-card > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .55s; }
.service-card:hover > img { transform: scale(1.035); }
.service-shade { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(5, 7, 9, .9), rgba(5, 7, 9, .04) 67%); }
.service-card-large .service-shade { background: linear-gradient(90deg, rgba(5, 7, 9, .92), rgba(5, 7, 9, .12) 72%), linear-gradient(0deg, rgba(5, 7, 9, .72), transparent 52%); }
.service-card-wide .service-shade { background: linear-gradient(90deg, rgba(5, 7, 9, .9), rgba(5, 7, 9, .12) 68%), linear-gradient(0deg, rgba(5, 7, 9, .64), transparent 56%); }
.service-index {
  position: absolute;
  top: 26px;
  left: 28px;
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border: 1px solid rgba(255, 255, 255, .46);
  color: var(--red);
  font-size: .67rem;
  font-weight: 800;
}
.service-card-red .service-index { color: #5d060f; border-color: rgba(93, 6, 15, .45); }
.service-copy { position: absolute; z-index: 2; right: 28px; bottom: 30px; left: 28px; }
.service-copy small { color: #c7cbd0; font-size: .62rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.service-card-red .service-copy small { color: #5d060f; }
.service-copy h3 { margin: 11px 0 0; font-size: clamp(2.15rem, 3.5vw, 4.3rem); line-height: .9; letter-spacing: -.06em; text-transform: uppercase; }
.service-card:not(.service-card-large) .service-copy h3 { font-size: clamp(2rem, 2.7vw, 3.35rem); }
.service-copy p { max-width: 470px; margin: 18px 0 0; color: #c6cacf; font-size: .84rem; line-height: 1.65; }
.service-card-red .service-copy p { color: #ffd4d8; }
.service-arrow {
  position: absolute;
  z-index: 3;
  top: 25px;
  right: 25px;
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  border: 1px solid rgba(255, 255, 255, .45);
  border-radius: 50%;
  font-size: 1.35rem;
  transition: transform .25s, background .25s;
}
.service-card:hover .service-arrow { transform: rotate(45deg); background: var(--red); border-color: var(--red); }
.service-card-red:hover .service-arrow { background: var(--white); border-color: var(--white); color: var(--red); }

.advantage { display: grid; grid-template-columns: 1.05fr .95fr; min-height: 770px; background: var(--ink); color: var(--white); }
.advantage-photo { position: relative; margin: 0; overflow: hidden; }
.advantage-photo img { display: block; width: 100%; height: 100%; object-fit: cover; filter: grayscale(.12) contrast(1.04); }
.advantage-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0, 0, 0, .56), transparent 52%); }
.advantage-photo figcaption { position: absolute; z-index: 2; bottom: 28px; left: 30px; font-size: .65rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.advantage-panel { align-self: center; padding: 90px clamp(38px, 6vw, 100px); }
.advantage-lead { max-width: 600px; margin: 30px 0 42px; color: #afb4ba; line-height: 1.75; }
.advantage-panel ol { margin: 0; padding: 0; list-style: none; }
.advantage-panel li { display: grid; grid-template-columns: 44px 1fr; gap: 18px; padding: 22px 0; border-top: 1px solid #363a3f; }
.advantage-panel li > span { color: var(--red); font-size: .68rem; font-weight: 800; }
.advantage-panel li strong { font-size: 1rem; }
.advantage-panel li p { margin: 7px 0 0; color: #969ca2; font-size: .82rem; line-height: 1.55; }

.process { padding: 125px 0; background: #e7e9e8; }
.process-head { display: grid; grid-template-columns: 180px 1fr; gap: 50px; }
.process-grid { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 65px; border-top: 1px solid #bfc3c6; }
.process-grid article { position: relative; min-height: 260px; padding: 28px 28px 0; border-left: 1px solid #bfc3c6; }
.process-grid article:first-child { padding-left: 0; border-left: 0; }
.process-grid article > span { color: var(--red); font-size: .7rem; font-weight: 800; }
.process-grid h3 { margin: 64px 0 15px; font-size: 1.35rem; letter-spacing: -.03em; }
.process-grid p { margin: 0; color: #62686e; font-size: .83rem; line-height: 1.65; }

.contact { position: relative; overflow: hidden; padding: 110px max(24px, calc((100vw - var(--max)) / 2)); background: var(--red); color: var(--white); }
.contact::after { content: "SAS"; position: absolute; right: -30px; bottom: -92px; color: rgba(91, 4, 15, .14); font: 700 clamp(10rem, 24vw, 25rem) / .8 "Space Grotesk"; letter-spacing: -.12em; pointer-events: none; }
.contact .eyebrow { color: #5d060f; }
.contact h2 em { color: #5d060f; }
.contact-meta { position: relative; z-index: 2; display: grid; grid-template-columns: 1fr 1fr; gap: 80px; width: 72%; margin-top: 45px; padding-top: 25px; border-top: 1px solid rgba(255, 255, 255, .38); }
.contact-meta p { margin: 0; color: #ffd6da; line-height: 1.7; }
.contact-meta div { display: grid; gap: 8px; font-weight: 800; }
.contact-meta div span { color: #ffd6da; font-size: .8rem; font-weight: 600; }
.contact-arrow { position: absolute; z-index: 3; top: 50%; right: max(28px, calc((100vw - var(--max)) / 2)); display: grid; place-items: center; width: 130px; height: 130px; border-radius: 50%; background: var(--white); color: var(--red); font-size: 3rem; transform: translateY(-50%); transition: transform .25s; }
.contact-arrow:hover { transform: translateY(-50%) rotate(45deg); }

footer {
  display: flex;
  align-items: center;
  min-height: 120px;
  gap: 34px;
  padding: 26px max(24px, calc((100vw - var(--max)) / 2));
  background: var(--ink);
  color: #7e8389;
  font-size: .7rem;
}
footer img { display: block; width: 170px; }
footer p { max-width: 280px; }
footer nav { display: flex; gap: 18px; margin-left: auto; }
footer nav a:hover { color: var(--white); }
footer > span { white-space: nowrap; }
.mobile-bar { display: none; }

.reveal { opacity: 0; transform: translateY(22px); transition: opacity .65s ease, transform .65s ease; }
.reveal.is-visible { opacity: 1; transform: none; }

@media (max-width: 1050px) {
  html { scroll-padding-top: 74px; }
  .site-header { height: 74px; padding: 0 22px; }
  .brand { flex-basis: 164px; width: 164px; height: 58px; }
  .site-header nav { position: absolute; top: 74px; right: 0; left: 0; display: none; flex-direction: column; gap: 0; margin: 0; padding: 12px 22px 24px; border-top: 1px solid #333; background: var(--ink); }
  .site-header nav.open { display: flex; }
  .site-header nav a { padding: 13px 0; border-bottom: 1px solid #26292d; }
  .header-phone { margin-left: auto; }
  .menu-button { display: block; }
  .hero { height: auto; min-height: 820px; }
  .hero-visual { inset: 0 0 0 27%; }
  .hero-copy { padding-top: 78px; }
  .hero-panel { right: 22px; }
  .hero-facts { max-width: calc(100% - 420px); }
  .solutions-head { grid-template-columns: 1fr; align-items: start; }
  .service-card-large { grid-column: span 12; }
  .service-card-image, .service-card-red, .service-card-dark { grid-column: span 6; }
  .service-card-wide { grid-column: span 12; }
  .advantage { grid-template-columns: 1fr; }
  .advantage-photo { height: 560px; }
  .process-grid { grid-template-columns: repeat(2, 1fr); }
  .process-grid article:nth-child(3) { border-left: 0; }
  .contact-meta { width: 75%; grid-template-columns: 1fr; gap: 24px; }
  footer { flex-wrap: wrap; }
  footer nav { margin-left: auto; }
}

@media (max-width: 680px) {
  html { scroll-padding-top: 68px; }
  body { padding-bottom: 60px; }
  .site-header { height: 68px; }
  .brand { flex-basis: 145px; width: 145px; height: 54px; }
  .site-header nav { top: 68px; }
  .header-phone { display: none; }
  .section { width: calc(100% - 36px); }
  .hero { min-height: 830px; }
  .hero-visual { inset: 0; }
  .hero-visual::after { background: linear-gradient(90deg, rgba(12, 14, 16, .94), rgba(12, 14, 16, .38)), linear-gradient(0deg, rgba(12, 14, 16, .9), transparent 58%); }
  .hero-grid { background-size: 52px 52px; }
  .hero-copy { width: auto; margin: 0 18px; padding-top: 62px; }
  h1 { font-size: clamp(3.35rem, 17vw, 5rem); line-height: .82; }
  .hero-lead { max-width: 94%; font-size: .9rem; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 7px; }
  .hero-panel { right: 18px; bottom: 0; left: 18px; width: auto; padding: 20px 22px 0; }
  .hero-panel > strong { margin: 9px 0 14px; font-size: 1.55rem; }
  .hero-facts { display: none; }
  .hero-number { display: none; }
  .marquee { height: 58px; }
  .marquee > div { animation-duration: 10s; }
  .solutions { padding: 78px 0 84px; }
  .solutions h2, .advantage h2, .process h2, .contact h2 { font-size: clamp(2.55rem, 13vw, 4.1rem); }
  .service-grid { margin-top: 38px; gap: 14px; }
  .service-card-large, .service-card-image, .service-card-red, .service-card-dark { grid-column: span 12; min-height: 470px; }
  .service-card-red, .service-card-dark { min-height: 390px; }
  .service-copy h3, .service-card:not(.service-card-large) .service-copy h3 { font-size: 2.6rem; }
  .advantage-photo { height: 430px; }
  .advantage-panel { padding: 70px 22px; }
  .process { padding: 78px 0; }
  .process-head { grid-template-columns: 1fr; gap: 44px; }
  .process-grid { grid-template-columns: 1fr; margin-top: 45px; }
  .process-grid article, .process-grid article:first-child { min-height: auto; padding: 25px 0 36px; border-left: 0; border-bottom: 1px solid #bfc3c6; }
  .process-grid h3 { margin-top: 26px; }
  .contact { padding: 78px 20px 170px; }
  .contact-meta { width: 100%; margin-top: 35px; }
  .contact-arrow { top: auto; right: 20px; bottom: 36px; width: 95px; height: 95px; transform: none; }
  .contact-arrow:hover { transform: rotate(45deg); }
  footer { display: grid; gap: 12px; padding: 34px 20px; }
  footer nav { margin: 10px 0 0; }
  .mobile-bar { position: fixed; z-index: 120; right: 0; bottom: 0; left: 0; display: grid; grid-template-columns: 1fr 1fr; height: 60px; background: var(--white); box-shadow: 0 -10px 30px rgba(0, 0, 0, .15); }
  .mobile-bar a { display: grid; place-items: center; font-size: .7rem; font-weight: 800; letter-spacing: .1em; }
  .mobile-bar a:last-child { background: var(--red); color: var(--white); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .marquee > div { animation: none; }
  .reveal { opacity: 1; transform: none; transition: none; }
  .service-card, .service-card > img, .service-arrow, .contact-arrow { transition: none; }
}
