:root { --ink: #17191b; --ink-soft: #25282b; --blue: #48a8d0; --blue-pale: #dff2f9; --silver: #cfd1d2; --paper: #f5f5f2; --white: #ffffff; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: Arial, Helvetica, sans-serif; }
a { color: inherit; text-decoration: none; }

.site-header { position: absolute; z-index: 10; top: 0; left: 0; width: 100%; display: flex; align-items: center; justify-content: space-between; padding: 24px clamp(24px, 5vw, 76px); color: white; }
.brand { display: block; width: clamp(178px, 18vw, 246px); }
.brand img { width: 100%; display: block; }
nav { display: flex; align-items: center; gap: 34px; font-size: 13px; font-weight: 700; }
nav a:not(.nav-cta) { opacity: .72; transition: opacity .2s; }
nav a:hover { opacity: 1; }
.nav-cta { padding: 14px 20px; border: 1px solid rgba(255,255,255,.34); border-radius: 999px; }

.hero { position: relative; min-height: 780px; height: 100vh; max-height: 980px; overflow: hidden; display: grid; align-items: center; padding: 126px clamp(24px, 7.5vw, 116px) 56px; background: var(--ink); color: white; }
.hero-grid { position: absolute; inset: 0; opacity: .11; background-image: linear-gradient(rgba(255,255,255,.13) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.13) 1px, transparent 1px); background-size: 80px 80px; mask-image: linear-gradient(to right, transparent 0, black 70%, black 100%); }
.hero:after { content: ""; position: absolute; width: 480px; height: 480px; right: -180px; top: -170px; background: var(--blue); filter: blur(160px); opacity: .18; }
.hero-copy { position: relative; z-index: 2; max-width: 740px; }
.kicker { display: flex; align-items: center; gap: 12px; margin: 0 0 34px; font-size: 11px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; color: var(--silver); }
.kicker span { width: 34px; height: 2px; background: var(--blue); }
.hero h1 { margin: 0; font-size: clamp(74px, 9.6vw, 145px); line-height: .79; letter-spacing: -.075em; font-weight: 800; }
.hero h1 em { color: var(--blue); font-style: normal; }
.hero-intro { max-width: 610px; margin: 38px 0 0; color: #c8cccf; font-size: clamp(16px, 1.5vw, 20px); line-height: 1.65; }
.hero-actions { display: flex; align-items: center; gap: 30px; margin-top: 38px; }
.button { display: inline-flex; align-items: center; justify-content: space-between; gap: 34px; min-width: 214px; padding: 17px 20px; border-radius: 4px; font-size: 13px; font-weight: 800; transition: transform .2s, background .2s; }
.button:hover { transform: translateY(-2px); }
.button-primary { background: var(--blue); color: #0f1a1e; }
.button-dark { background: var(--ink); color: white; }
.text-link { font-size: 13px; color: #d8dadb; border-bottom: 1px solid #555b5e; padding: 0 0 7px; }
.text-link span { color: var(--blue); margin-left: 10px; }
.hero-mark { position: absolute; z-index: 1; right: clamp(-160px, 0vw, 20px); top: 49%; transform: translateY(-50%); width: min(50vw, 660px); aspect-ratio: 1; opacity: .9; }
.mark-ring { position: absolute; border-radius: 50%; border: 1px solid rgba(255,255,255,.15); }
.ring-one { inset: 5%; }.ring-two { inset: 22%; border-color: rgba(72,168,208,.42); }
.mark-core { position: absolute; inset: 35%; border-radius: 50%; overflow: hidden; background: rgba(72,168,208,.08); border: 1px solid var(--blue); }
.mark-core img { position: absolute; width: 300%; max-width: none; height: auto; left: 5%; top: 50%; transform: translateY(-50%); clip-path: inset(0 70% 0 0); }
.mark-label { position: absolute; display: flex; align-items: center; gap: 10px; min-width: 116px; padding: 10px 13px 10px 11px; border: 1px solid rgba(117,198,232,.28); border-radius: 3px; background: linear-gradient(110deg, rgba(24,29,32,.88), rgba(31,42,47,.58)); box-shadow: 0 12px 35px rgba(0,0,0,.34), inset 0 1px 0 rgba(255,255,255,.06), 0 0 24px rgba(72,168,208,.06); backdrop-filter: blur(10px); color: #dbe7eb; animation: callout-float 5s ease-in-out infinite; }
.mark-label:before { content: ""; width: 5px; height: 5px; flex: 0 0 auto; border-radius: 50%; background: var(--blue); box-shadow: 0 0 0 4px rgba(72,168,208,.11), 0 0 15px rgba(72,168,208,.85); }
.mark-label:after { content: ""; position: absolute; height: 1px; width: 58px; background: linear-gradient(90deg, rgba(72,168,208,.75), rgba(72,168,208,.05)); }
.mark-label i { color: var(--blue); font-size: 7px; font-style: normal; font-weight: 800; letter-spacing: .12em; opacity: .8; }
.mark-label b { font-size: 9px; font-weight: 800; letter-spacing: .25em; text-shadow: 0 0 16px rgba(219,231,235,.18); }
.mark-label-a { left: 2%; top: 21%; }.mark-label-a:after { left: 100%; top: 50%; }
.mark-label-b { right: -1%; top: 49%; animation-delay: -1.7s; }.mark-label-b:after { right: 100%; top: 50%; transform: rotate(180deg); }
.mark-label-c { left: 16%; bottom: 7%; animation-delay: -3.2s; }.mark-label-c:after { left: 100%; top: 10%; transform-origin: left; transform: rotate(-35deg); }
@keyframes callout-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }
@media (prefers-reduced-motion: reduce) { .mark-label { animation: none; } }
.hero-foot { position: absolute; bottom: 28px; left: clamp(24px, 7.5vw, 116px); right: clamp(24px, 7.5vw, 116px); display: flex; justify-content: space-between; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.12); color: #82888b; font-size: 10px; text-transform: uppercase; letter-spacing: .14em; }

.statement { display: grid; grid-template-columns: .7fr 2fr 1fr; gap: 50px; padding: 125px clamp(24px, 7.5vw, 116px) 90px; }
.section-label { margin: 0; font-size: 10px; font-weight: 800; letter-spacing: .2em; color: #6b7478; }
.section-label:before { content: ""; display: inline-block; width: 18px; height: 2px; margin: 0 10px 3px 0; background: var(--blue); }
.statement h2, .approach h2, .contact h2 { margin: 0; font-size: clamp(42px, 5vw, 73px); line-height: .98; letter-spacing: -.055em; }
.statement > p:last-child { margin: 0; align-self: end; color: #60686c; line-height: 1.75; font-size: 15px; }

.services { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid #d7d9d8; border-bottom: 1px solid #d7d9d8; }
.service-card { min-height: 520px; padding: 36px clamp(24px, 3.5vw, 54px) 44px; display: flex; flex-direction: column; justify-content: space-between; border-right: 1px solid #d7d9d8; transition: background .25s, color .25s; }
.service-card:last-child { border-right: 0; }
.service-card:hover { background: var(--ink); color: white; }
.service-top { display: flex; justify-content: space-between; align-items: center; }
.service-number { font-size: 11px; color: #7e8588; }.service-eyebrow { color: var(--blue); font-size: 9px; font-weight: 800; letter-spacing: .2em; }
.service-card h3 { font-size: clamp(34px, 3vw, 50px); margin: 0 0 22px; letter-spacing: -.05em; }
.service-card > div:nth-child(2) p { color: #687074; line-height: 1.65; max-width: 360px; font-size: 14px; }
.service-card:hover > div:nth-child(2) p { color: #aeb4b6; }
.service-partner { display: block; margin-top: 25px; }
.control4-wordmark { width: 112px; height: auto; opacity: .72; }
.niceic-wordmark { width: 106px; height: auto; }
.fgas-wordmark { width: fit-content; padding: 7px 9px 6px; border: 1px solid #9ac9dc; border-radius: 3px; color: #397d9a; font-size: 8px; font-weight: 900; letter-spacing: .15em; }
.service-card:hover .control4-wordmark { filter: invert(1); opacity: .85; }
.service-card:hover .niceic-wordmark { filter: brightness(0) invert(1); opacity: .9; }
.service-card:hover .fgas-wordmark { color: #9fd9f1; border-color: rgba(159,217,241,.5); }
.service-card ul { list-style: none; padding: 0; margin: 0; }.service-card li { border-top: 1px solid #d5d7d6; padding: 12px 0; font-size: 12px; font-weight: 700; }.service-card:hover li { border-color: #3b3f42; }

.credentials { padding: 88px clamp(24px, 7.5vw, 116px); background: white; }
.credentials-copy { display: grid; grid-template-columns: .55fr 1.45fr; gap: 8vw; align-items: end; }
.credentials h2 { max-width: 700px; margin: 0; font-size: clamp(31px, 3.5vw, 52px); line-height: 1.02; letter-spacing: -.05em; }
.credential-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 48px; }
.credential-card { min-height: 164px; display: grid; grid-template-columns: 112px 1fr auto; gap: 20px; align-items: center; padding: 24px; border: 1px solid #dadedd; background: #f8f8f6; transition: transform .2s, border-color .2s, box-shadow .2s; }
.credential-card:hover { transform: translateY(-3px); border-color: #96cce2; box-shadow: 0 14px 34px rgba(23,25,27,.08); }
.credential-logo { display: block; max-width: 112px; height: auto; }
.niceic-logo { width: 112px; }
.control4-logo { width: 112px; }
.fgas-logo-crop { display: block; width: 112px; height: 63px; overflow: hidden; border-radius: 5px; }
.fgas-logo-crop img { display: block; width: 112px; height: auto; }
.credential-card > span:nth-child(2) { display: flex; flex-direction: column; gap: 6px; }
.credential-card b { font-size: 14px; }
.credential-card small { color: #6b7478; font-size: 11px; line-height: 1.45; }
.credential-card i { align-self: start; color: var(--blue); font-size: 15px; font-style: normal; }

.approach { display: grid; grid-template-columns: 1fr 1.1fr; gap: 10vw; padding: 125px clamp(24px, 7.5vw, 116px); background: var(--ink); color: white; }
.section-label.light { color: #9aa0a3; }.approach h2 { margin-top: 30px; max-width: 560px; }
.approach-intro > p:last-child { max-width: 500px; margin-top: 35px; color: #aeb4b6; line-height: 1.75; }
.principles article { display: grid; grid-template-columns: 50px 1fr; gap: 20px; padding: 28px 0; border-top: 1px solid #3b3f42; }.principles article:last-child { border-bottom: 1px solid #3b3f42; }.principles article > span { color: var(--blue); font-size: 10px; }.principles h3 { margin: 0 0 9px; font-size: 19px; }.principles p { margin: 0; color: #9ca2a5; line-height: 1.6; font-size: 13px; }

.contact { display: grid; grid-template-columns: 1.3fr .7fr; gap: 10vw; padding: 120px clamp(24px, 7.5vw, 116px); background: var(--blue-pale); }.contact h2 { margin-top: 28px; }.contact-copy { align-self: end; }.contact-copy > p:first-child { margin: 0 0 30px; color: #4e5b60; line-height: 1.7; }.contact-note { margin: 26px 0 0; font-size: 10px; text-transform: uppercase; letter-spacing: .12em; color: #68767b; }
footer { min-height: 150px; padding: 35px clamp(24px, 5vw, 76px); display: flex; align-items: center; justify-content: space-between; background: var(--ink-soft); color: #8e9598; font-size: 10px; text-transform: uppercase; letter-spacing: .12em; }footer img { width: 190px; }

@media (max-width: 900px) {
  nav a:not(.nav-cta) { display: none; }.hero { min-height: 760px; height: auto; }.hero-mark { width: min(72vw, 560px); right: 2vw; opacity: .52; }
  .statement { grid-template-columns: 1fr; gap: 28px; padding-top: 90px; }.statement > p:last-child { max-width: 580px; }
  .services { grid-template-columns: 1fr; }.service-card { min-height: 460px; border-right: 0; border-bottom: 1px solid #d7d9d8; }
  .credentials-copy, .approach, .contact { grid-template-columns: 1fr; gap: 55px; }.credential-grid { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .site-header { padding: 20px; }.brand { width: 166px; }.nav-cta { padding: 11px 14px; font-size: 11px; }
  .hero { min-height: 1120px; padding: 132px 20px 470px; align-items: start; }.hero h1 { font-size: clamp(69px, 22vw, 106px); }.hero-intro { margin-top: 30px; }.hero-actions { align-items: flex-start; flex-direction: column; gap: 22px; }
  .hero-mark { width: min(92vw, 420px); right: auto; left: 50%; top: auto; bottom: 82px; transform: translateX(-50%); opacity: .92; }
  .hero-foot { left: 20px; right: 20px; }.hero-foot p:last-child { display: none; }.statement, .approach, .contact { padding-left: 22px; padding-right: 22px; }.service-card { padding-left: 22px; padding-right: 22px; }
  .credentials { padding: 70px 22px; }.credential-grid { grid-template-columns: 1fr; }.credential-card { grid-template-columns: 102px 1fr auto; padding: 21px 18px; }.credential-logo { max-width: 102px; }.control4-logo { width: 102px; }.fgas-logo-crop { width: 102px; height: 57px; }.fgas-logo-crop img { width: 102px; }
  footer { align-items: flex-start; flex-direction: column; gap: 20px; }
}
