:root {
  --ink: #101318;
  --muted: #667079;
  --brand-blue: #00a0d8;
  --brand-blue-dark: #007da9;
  --cream: #f7f8f8;
}

* { box-sizing: border-box; }
.ui-icon { display:block; width:1em; height:1em; fill:currentColor; }
html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--cream);
  color: var(--ink);
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
}

a { color: inherit; text-decoration: none; }
button,input,textarea,select { font: inherit; }

.header-cta,.company-content > a,.metrics-cta a,.cta-action a {
  min-height: 3.65rem;
  font-size: .84rem;
  line-height: 1;
  font-weight: 500;
  letter-spacing: -.01em;
}

.solutions-head h2,.services-intro h2,.companies-heading h2,.testimonials-heading h2 {
  font-size: clamp(2.65rem, 4.2vw, 5.1rem);
  line-height: 1.02;
  letter-spacing: -.055em;
  font-weight: 400;
}

.site-shell {
  min-height: 100svh;
  padding: 0 2.25rem 2.25rem;
}

.topbar {
  height: 5.75rem;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 2rem;
}

.brand { display: inline-flex; align-items: center; width: max-content; }
.brand-logo { display: block; width: clamp(9.5rem, 12vw, 12rem); height: auto; }

.desktop-nav { display: flex; align-items: center; gap: clamp(1.5rem, 2.8vw, 3.5rem); }
.desktop-nav a { color: #2f353a; font-size: .93rem; transition: color .2s ease; }
.desktop-nav a:hover { color: var(--brand-blue-dark); }

.header-cta {
  justify-self: end;
  display: inline-flex;
  align-items: center;
  gap: 1rem;
  padding: .7rem .78rem .7rem 1.18rem;
  border-radius: 999px;
  border: 1px solid #d5d2cb;
  font-size: .88rem;
  transition: background .2s ease, color .2s ease;
}
.header-cta span { display: grid; place-items: center; width: 2.15rem; height: 2.15rem; border-radius: 50%; background: var(--brand-blue); color: white; }
.header-cta:hover { background: var(--brand-blue); border-color: var(--brand-blue); color: white; }
.mobile-menu { display: none; }
.menu-button { border: 0; background: none; padding: .55rem; cursor: pointer; list-style: none; }
.menu-button::-webkit-details-marker { display: none; }

.hero {
  position: relative;
  min-height: calc(100svh - 8rem);
  overflow: hidden;
  border-radius: 2rem;
  color: white;
  isolation: isolate;
}
.hero-picture { position:absolute; inset:0; z-index:-3; display:block; }
.hero-image { position:absolute; inset:0; width: 100%; height: 100%; object-fit: cover; }
.hero-shade { position: absolute; inset: 0; z-index: -2; background: linear-gradient(90deg, rgba(4,24,36,.72) 0%, rgba(4,24,36,.28) 45%, rgba(4,24,36,.04) 72%), linear-gradient(0deg, rgba(3,18,27,.58) 0%, transparent 48%); }

.hero-kicker { position: absolute; top: 2rem; left: 2.25rem; display: inline-flex; align-items: center; gap: .75rem; padding: .55rem .9rem; border: 1px solid rgba(255,255,255,.3); border-radius: 99px; background: rgba(7,15,26,.22); backdrop-filter: blur(10px); font-size: .78rem; letter-spacing: .02em; }
.live-dot { width: .48rem; height: .48rem; border-radius: 50%; background: #44c7f4; box-shadow: 0 0 0 .25rem rgba(0,160,216,.18); }

.hero-copy { position: absolute; left: 3.2rem; bottom: 11.2rem; }
.hero-copy h1 { margin: 0; max-width: 17ch; font-size: clamp(3.5rem, 4.25vw, 4.4rem); line-height: 1; letter-spacing: -.06em; font-weight: 400; }
.hero-copy h1 span { color: #42c4ee; }

.hero-description { position: absolute; right: 3rem; bottom: 10.9rem; width: min(27rem, 29vw); }
.hero-description p { margin: 0 0 1.4rem; color: rgba(255,255,255,.88); font-size: clamp(1rem, 1.25vw, 1.3rem); line-height: 1.45; }
.hero-description a { display: inline-flex; align-items: center; gap: 1.2rem; font-size: .9rem; border-bottom: 1px solid rgba(255,255,255,.5); padding-bottom: .5rem; }
.hero-description a span { color: #42c4ee; }

.hero-footer { position: absolute; left: 3.2rem; right: 3rem; bottom: 2.5rem; display: flex; align-items: flex-end; gap: 2.5rem; }
.trust-block { flex: none; display: grid; gap: .32rem; }
.trust-block strong { font-size: 1rem; font-weight: 500; }
.trust-block span { color: rgba(255,255,255,.62); font-size: .78rem; }
.divider { height: 1px; flex: 1; margin-bottom: 1rem; background: linear-gradient(90deg, rgba(255,255,255,.55), rgba(255,255,255,.05)); }
.service-pills { display: flex; gap: .55rem; }
.service-pills > span { display: flex; align-items: center; gap: .72rem; padding: .62rem .9rem .62rem .62rem; border: 1px solid rgba(255,255,255,.18); border-radius: 999px; background: rgba(255,255,255,.12); backdrop-filter: blur(9px); font-size: .78rem; white-space: nowrap; }
.service-pills i { display: grid; place-items: center; width: 1.75rem; height: 1.75rem; border-radius: 50%; background: rgba(0,160,216,.2); color: #72d4f5; font-size: .75rem; font-style: normal; }

.solutions { padding: clamp(5rem, 9vw, 9rem) 0 1rem; }
.solutions-head { display: grid; grid-template-columns: 1.1fr .9fr; align-items: end; gap: 2rem 4rem; margin: 0 clamp(1rem, 4vw, 4.5rem) clamp(3rem, 5vw, 5rem); }
.solutions-head .section-label { grid-column: 1 / -1; }
.solutions-head h2 { margin: 0; font-size: clamp(2.65rem, 4.2vw, 5.1rem); line-height: 1.02; letter-spacing: -.055em; font-weight: 400; }
.solutions-head h2 span { color: var(--brand-blue-dark); }
.solutions-side { align-self: end; display: grid; justify-items: start; gap: 1.4rem; padding-bottom: .35rem; }
.solutions-side p { max-width: 32rem; margin: 0; color: #4f595f; font-size: clamp(1rem, 1.25vw, 1.2rem); line-height: 1.55; }

.solutions-cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .8rem; }
.solution-card { position: relative; height: clamp(24rem, 33vw, 31rem); overflow: hidden; border-radius: 1.65rem; color: white; background-image:linear-gradient(0deg,rgba(3,18,27,.72) 0%,rgba(3,18,27,.06) 62%),var(--solution-image); background-size: cover; background-position: center; background-repeat: no-repeat; isolation: isolate; }
.solution-card--alarms { background-image: linear-gradient(0deg, rgba(3, 18, 27, .86) 0%, rgba(3, 18, 27, .36) 56%, rgba(3, 18, 27, .12) 100%), var(--solution-image); }
.solution-card::after { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(0,160,216,0); transition: background .35s ease; }
.solution-card:hover::after { background: rgba(0,125,169,.13); }
.solution-copy { position: absolute; left: clamp(1.4rem, 2vw, 2rem); right: clamp(1.4rem, 2vw, 2rem); bottom: clamp(1.4rem, 2vw, 2rem); display: grid; gap: .55rem; }
.solution-copy small { color: #84daf6; font-size: .75rem; letter-spacing: .06em; text-transform: uppercase; }
.solution-copy strong { font-size: clamp(1.5rem, 2vw, 2.15rem); line-height: 1.05; letter-spacing: -.04em; font-weight: 500; }
.solution-copy em { max-width: 18rem; color: rgba(255,255,255,.72); font-size: .82rem; line-height: 1.4; font-style: normal; }
.card-actions { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .55rem; }
.card-actions a { display: inline-flex; align-items: center; gap: .55rem; min-height: 2.55rem; padding: .65rem .9rem; border: 1px solid rgba(255,255,255,.32); border-radius: 999px; background: rgba(5,20,28,.3); backdrop-filter: blur(8px); color: white; font-size: .75rem; font-style: normal; transition: background .2s ease, border-color .2s ease; }
.card-actions a:first-child { background: white; color: var(--ink); }
.card-actions a:hover { border-color: var(--brand-blue); background: var(--brand-blue); color: white; }

.services-section { padding: clamp(6rem, 10vw, 10rem) clamp(1rem, 4vw, 4.5rem) 2rem; }
.services-intro { display: grid; justify-items: center; padding-bottom: clamp(4rem, 7vw, 7rem); text-align: center; }
.services-intro .section-label { grid-column: 1 / -1; justify-self: center; }
.services-intro h2 { max-width: 58rem; margin: 2rem auto 1.5rem; font-size: clamp(2.65rem, 4.2vw, 5.1rem); line-height: 1.02; letter-spacing: -.055em; font-weight: 400; }
.services-intro h2 span { color: var(--brand-blue-dark); }
.services-intro > p { max-width: 40rem; margin: 0; color: #4f595f; font-size: clamp(1rem, 1.3vw, 1.25rem); line-height: 1.55; }
.services-intro .flow-final { white-space:nowrap; }
.services-stack { position: relative; }
.service-stack-item { position: sticky; top: 1rem; display: grid; grid-template-columns: .14fr .62fr .82fr 1.25fr; align-items: center; gap: clamp(1rem, 2.5vw, 3rem); min-height: 21rem; padding: 1.1rem 0; border-top: 1px solid #dfe3e4; border-bottom: 1px solid #e5e8e9; background: var(--cream); box-shadow: 0 -1rem 2rem var(--cream); }
.service-stack-item:nth-child(1) { z-index: 1; }
.service-stack-item:nth-child(2) { z-index: 2; }
.service-stack-item:nth-child(3) { z-index: 3; }
.service-stack-item:nth-child(4) { z-index: 4; }
.service-stack-item:nth-child(5) { z-index: 5; }
.service-stack-item:nth-child(6) { z-index: 6; }
.service-number { align-self: start; padding-top: 1.2rem; color: #8d969a; font-size: .78rem; }
.service-title-block { display: grid; align-content: center; gap: 1.25rem; }
.service-stack-item h3 { margin: 0; font-size: clamp(1.55rem, 2vw, 2.4rem); line-height: 1.08; letter-spacing: -.04em; font-weight: 500; }
.service-stack-item p { margin: 0; color: #697277; font-size: clamp(.9rem, 1.1vw, 1.08rem); line-height: 1.5; }
.service-actions { display: flex; flex-wrap: wrap; align-items: flex-start; gap: .45rem; }
.service-actions a { display: inline-flex; align-items: center; justify-content: space-between; gap: .75rem; min-width: 10.4rem; min-height: 2.7rem; padding: .65rem .9rem; border: 1px solid #d9dfe1; border-radius: 999px; font-size: .75rem; transition: background .2s ease, color .2s ease, border-color .2s ease; }
.service-actions a:first-child { background: var(--ink); border-color: var(--ink); color: white; }
.service-actions a:hover { background: var(--brand-blue); border-color: var(--brand-blue); color: white; }
.service-eyebrow { color:var(--brand-blue-dark); font-size:.78rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; }
.service-scene { height: 17rem; border-radius: .8rem; background-image:var(--service-image); background-size: cover; background-position: center; background-repeat: no-repeat; }
.service-stack-item--tower .service-scene { background-position: left center; }

.companies-section { padding: clamp(6rem, 10vw, 10rem) clamp(1rem, 5vw, 6rem) clamp(3rem, 5vw, 5rem); }
.companies-heading { display: grid; justify-items: center; margin-bottom: clamp(3.5rem, 6vw, 6rem); text-align: center; }
.companies-heading .section-label { grid-column: auto; justify-self: center; }
.companies-heading h2 { max-width: 66rem; margin: 2rem auto 1.5rem; font-size: clamp(2.65rem, 4.2vw, 5.1rem); line-height: 1.02; letter-spacing: -.055em; font-weight: 400; }
.companies-heading h2 span { color: var(--brand-blue-dark); }
.companies-heading h2 span { white-space: nowrap; }
.companies-heading > p { max-width: 42rem; margin: 0; color: #556066; font-size: clamp(1rem, 1.25vw, 1.2rem); line-height: 1.55; }
.companies-stack { position: relative; max-width: 92rem; margin: 0 auto; }
.company-card { position: sticky; display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(2rem, 5vw, 6rem); min-height: 35rem; margin-bottom: 4rem; padding: 1.2rem; border: 1px solid #e3e7e8; border-radius: 2rem; background: #fff; box-shadow: 0 1.5rem 4rem rgba(23, 42, 50, .09); }
.company-card:nth-child(1) { top: 1rem; z-index: 1; }
.company-card:nth-child(2) { top: 3.75rem; z-index: 2; }
.company-card:nth-child(3) { top: 6.5rem; z-index: 3; }
.company-card:nth-child(4) { top: 9.25rem; z-index: 4; margin-bottom: 0; }
.company-image { min-height: 32.5rem; border-radius: 1.35rem; background-image:var(--company-image); background-size: cover; background-position: center; background-repeat: no-repeat; }
.company-content { align-self: center; display: flex; flex-direction: column; align-items: flex-start; padding: clamp(1rem, 2vw, 2.2rem) clamp(1rem, 3vw, 3.5rem) clamp(1rem, 2vw, 2.2rem) 0; }
.company-index { color: var(--brand-blue-dark); font-size: .75rem; letter-spacing: .07em; text-transform: uppercase; }
.company-content h3 { margin: 1.1rem 0 .9rem; font-size: clamp(2.15rem, 3.2vw, 3.75rem); line-height: 1; letter-spacing: -.05em; font-weight: 400; }
.company-content > p { max-width: 34rem; margin: 0; color: #59636a; font-size: clamp(.95rem, 1.1vw, 1.08rem); line-height: 1.55; }
.company-content ul { display: grid; gap: .85rem; width: 100%; margin: 2rem 0; padding: 1.6rem 0 0; border-top: 1px solid #e4e7e8; list-style: none; }
.company-content li { display: flex; align-items: center; gap: .8rem; color: #313a3f; font-size: .9rem; }
.company-content li span { display: grid; place-items: center; width: 1.45rem; height: 1.45rem; border-radius: 50%; background: #e5f7fd; color: var(--brand-blue-dark); font-size: .75rem; }
.company-actions { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: auto; }
.company-actions a { display: inline-flex; align-items: center; gap: .8rem; min-height: 3rem; padding: .72rem 1rem; border: 1px solid #dce1e3; border-radius: 999px; font-size: .76rem; transition: background .2s ease, color .2s ease, border-color .2s ease; }
.company-actions a:first-child { background: var(--ink); border-color: var(--ink); color: white; }
.company-actions a:hover { background: var(--brand-blue); border-color: var(--brand-blue); color: white; }

.partners-carousel { padding: clamp(1.5rem, 2.5vw, 2.5rem) 0 0; }
.partners-label { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin: 0 clamp(1rem, 4vw, 4.5rem) 1.5rem; }
.partners-label > span { font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; color: var(--brand-blue-dark); }
.partners-label p { max-width: 26rem; margin: 0; color: #667076; font-size: .85rem; line-height: 1.4; text-align: right; }
.partners-window { overflow: hidden; mask-image: linear-gradient(90deg, transparent, black 5%, black 95%, transparent); }
.partners-track { display: flex; gap: .8rem; width: max-content; animation: partners-loop 78s linear infinite; animation-play-state:running; will-change:transform; transform:translate3d(0,0,0); backface-visibility:hidden; }
.partners-group { display: flex; gap: .8rem; }
.partner-card { display: flex; align-items: center; justify-content: center; gap: .8rem; width: clamp(14rem, 18vw, 19rem); height: clamp(8rem, 11vw, 10.5rem); padding:clamp(1.4rem,2.5vw,2.4rem); border: 1px solid #edf0f1; border-radius: 1.5rem; background: #f4f6f7; color: #92999d; }
.partner-card img { display:block; width:100%; height:100%; object-fit:contain; filter:grayscale(1); opacity:.62; mix-blend-mode:multiply; transition:filter .25s ease,opacity .25s ease,transform .25s ease; }
.partner-card:hover img { filter:grayscale(0); opacity:1; transform:scale(1.04); }

@keyframes partners-loop {
  to { transform: translateX(calc(-50% - .4rem)); }
}

.testimonials { padding: clamp(5rem, 9vw, 9rem) 0 3rem; }
.testimonials-heading { display: grid; grid-template-columns: 1.1fr .9fr; align-items: end; gap: 3rem; margin: 0 clamp(1rem, 4vw, 4.5rem) clamp(3rem, 5vw, 5rem); }
.section-label { grid-column: 1 / -1; justify-self: start; display: inline-flex; align-items: center; gap: .58rem; padding: .66rem 1rem; border: 1px solid rgba(0,125,169,.22); border-radius: 999px; background: #e8f7fc; box-shadow: 0 .5rem 1.6rem rgba(0,125,169,.08); color: var(--brand-blue-dark); font-size: .75rem; font-weight: 600; letter-spacing: .035em; text-transform: uppercase; }
.section-label::before { content: ""; width: .42rem; height: .42rem; flex: none; border-radius: 50%; background: var(--brand-blue); box-shadow: 0 0 0 .24rem rgba(0,160,216,.12); }
.testimonials-heading h2 { margin: 0; font-size: clamp(2.65rem, 4.2vw, 5.1rem); line-height: 1.02; letter-spacing: -.055em; font-weight: 400; }
.testimonials-heading h2 span { color: var(--brand-blue-dark); }
.testimonials-heading > p { justify-self: end; max-width: 32rem; margin: 0 0 .5rem; color: #4f595f; font-size: clamp(1rem, 1.3vw, 1.25rem); line-height: 1.55; }

.testimonials-grid { display: grid; grid-template-columns: minmax(16rem, .82fr) minmax(25rem, 1.18fr) minmax(18rem, .82fr); gap: .8rem; height: min(48rem, 72vw); min-height: 39rem; }
.metrics-card,.testimonial-card { border-radius: 1.6rem; background: #eef1f2; }
.metrics-card { display: flex; flex-direction: column; padding: clamp(1.6rem, 2.4vw, 2.6rem); border: 1px solid rgba(0,125,169,.12); background: #f5fafc; box-shadow: 0 1.4rem 3rem rgba(13,48,66,.06); }
.metrics-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; padding-bottom: 1.25rem; }
.metrics-heading span { color: var(--brand-blue-dark); font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.metrics-heading p { max-width: 10.5rem; margin: 0; color: #667076; font-size: .76rem; line-height: 1.35; text-align: right; }
.metrics-card ul { display: grid; padding: 0; margin: 0; border-bottom: 1px solid #dce6ea; list-style: none; }
.metrics-card li { display: grid; gap: .45rem; padding: clamp(1rem, 1.4vw, 1.4rem) 0; border-top: 1px solid #dce6ea; }
.metrics-card li strong { color: var(--brand-blue-dark); font-size: clamp(2.7rem, 3.7vw, 4.5rem); line-height: .82; letter-spacing: -.075em; font-weight: 400; }
.metrics-card li > span { color: #505a60; font-size: .78rem; font-weight: 600; line-height: 1.25; letter-spacing: .035em; text-transform: uppercase; }
.metrics-cta { margin-top: auto; }
.metrics-cta p { margin: 0 0 1rem; font-size: 1.08rem; line-height: 1.35; }
.metrics-cta a { display: flex; align-items: center; justify-content: space-between; padding: .75rem .8rem .75rem 1.15rem; border-radius: 999px; background: var(--ink); color: white; font-size: .85rem; }
.metrics-cta a span { display: grid; place-items: center; width: 2.3rem; height: 2.3rem; border-radius: 50%; background: var(--brand-blue); font-size: 1rem; }

.testimonial-feature { position: relative; overflow: hidden; margin: 0; border-radius: 1.6rem; color: white; }
.testimonial-feature::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(3,18,27,.72), rgba(3,18,27,0) 58%); }
.testimonial-feature picture { display:block; width:100%; height:100%; }
.testimonial-feature img { width: 100%; height: 100%; object-fit: cover; object-position: center 38%; }
.testimonial-feature figcaption { position: absolute; z-index: 1; left: clamp(1.5rem, 3vw, 3rem); right: clamp(1.5rem, 3vw, 3rem); bottom: clamp(1.5rem, 3vw, 3rem); }
.testimonial-feature blockquote { margin: 0 0 1rem; font-size: clamp(1.5rem, 2vw, 2.2rem); line-height: 1.18; letter-spacing: -.035em; }
.testimonial-feature figcaption span { color: rgba(255,255,255,.66); font-size: .88rem; }

.testimonials-rail { position: relative; overflow: hidden; border-radius: 1.6rem; mask-image: linear-gradient(transparent 0%, black 8%, black 92%, transparent 100%); }
.testimonials-track { display: grid; gap: .8rem; animation: testimonials-down 28s linear infinite; }
.testimonials-rail:hover .testimonials-track { animation-play-state: paused; }
.testimonial-card { min-height: 13.5rem; padding: 1.5rem; }
.stars { color: var(--brand-blue-dark); font-size: .82rem; letter-spacing: .14em; }
.testimonial-card blockquote { margin: 1.1rem 0 1.35rem; color: #21272b; font-size: 1rem; line-height: 1.42; }
.testimonial-card footer { display: flex; align-items: center; gap: .8rem; }
.testimonial-avatar { display: grid; place-items: center; flex: none; width: 2.75rem; height: 2.75rem; border-radius: 50%; background: #d5eef7; color: var(--brand-blue-dark); font-size: .75rem; font-weight: 700; }
.testimonial-card footer > span:last-child { display: grid; gap: .2rem; }
.testimonial-card footer strong { font-size: .83rem; font-weight: 500; }
.testimonial-card footer small { color: #6a7378; font-size: .75rem; }

@keyframes testimonials-down {
  from { transform: translateY(calc(-50% - .4rem)); }
  to { transform: translateY(0); }
}

.closing-cta { position: relative; min-height: min(46rem, 78svh); overflow: hidden; margin-top: clamp(4rem, 8vw, 8rem); border-radius: 2rem; color: white; isolation: isolate; }
.closing-cta > img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: center 58%; transform: scale(1.04); transition: transform 1.2s ease; }
.closing-cta:hover > img { transform: scale(1); }
.closing-cta-shade { position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(4,24,36,.7) 0%, rgba(4,24,36,.12) 58%, rgba(4,24,36,.36) 100%), linear-gradient(0deg, rgba(4,24,36,.5), transparent 58%); }
.cta-brand { position: absolute; top: clamp(1.6rem, 3vw, 3rem); left: clamp(1.6rem, 3vw, 3rem); display: flex; align-items: center; gap: .7rem; font-size: .9rem; font-weight: 600; }
.cta-brand-mark { width: .7rem; height: .7rem; border-radius: 50%; background: var(--brand-blue); box-shadow: 0 0 0 .28rem rgba(0,160,216,.2); }
.closing-cta h2 { position: absolute; top: clamp(5rem, 8vw, 8rem); left: clamp(1.6rem, 3vw, 3rem); margin: 0; max-width: 15ch; font-size: clamp(2.65rem, 4.2vw, 5.1rem); line-height: 1.02; letter-spacing: -.055em; font-weight: 400; }
.cta-services { position: absolute; left: clamp(1.6rem, 3vw, 3rem); bottom: clamp(1.6rem, 3vw, 3rem); display: flex; flex-wrap: wrap; max-width: 34rem; gap: .5rem; }
.cta-services span { padding: .72rem 1rem; border: 1px solid rgba(255,255,255,.18); border-radius: .65rem; background: rgba(255,255,255,.14); backdrop-filter: blur(10px); font-size: .82rem; }
.cta-action { position: absolute; right: clamp(1.6rem, 4vw, 5rem); bottom: clamp(1.6rem, 3vw, 3rem); width: min(28rem, 34vw); }
.cta-action p { margin: 0 0 1.5rem; color: rgba(255,255,255,.82); font-size: clamp(1rem, 1.2vw, 1.22rem); line-height: 1.5; }
.cta-action a { display: inline-flex; align-items: center; gap: 1.5rem; padding: .78rem .8rem .78rem 1.25rem; border-radius: 999px; background: white; color: var(--ink); font-size: .9rem; }
.cta-action a span { display: grid; place-items: center; width: 2.35rem; height: 2.35rem; border-radius: 50%; background: var(--brand-blue); color: white; transition: transform .2s ease; }
.cta-action a:hover span { transform: rotate(45deg); }

.site-footer { margin-top: .8rem; padding: clamp(2rem, 5vw, 5rem) clamp(1.6rem, 3.5vw, 4rem) 1.6rem; overflow: hidden; border-radius: 2rem; background: #eef1f2; }
.footer-top { display: grid; grid-template-columns: minmax(18rem, 2.4fr) repeat(3, minmax(9rem, 1fr)); gap: clamp(2rem, 5vw, 6rem); }
.footer-intro > img { display: block; width: 10rem; height: auto; }
.footer-intro > p { max-width: 24rem; margin: 1.4rem 0 1.6rem; color: #5b6469; line-height: 1.5; }
.social-links { display: flex; gap: .55rem; }
.social-links a { display: grid; place-items: center; width: 2.8rem; height: 2.8rem; border-radius: .65rem; background: white; color: #31383c; transition: background .2s ease, color .2s ease, transform .2s ease; }
.social-links svg { display: block; width: 1.05rem; height: 1.05rem; fill: currentColor; }
.social-links a:hover { transform: translateY(-2px); background: var(--brand-blue); color: white; }
.footer-column { display: flex; flex-direction: column; align-items: flex-start; gap: .9rem; }
.footer-column strong { margin-bottom: .25rem; font-size: .92rem; font-weight: 600; }
.footer-column a { color: #626a6f; font-size: .87rem; transition: color .2s ease; }
.footer-column a:hover { color: var(--brand-blue-dark); }
.footer-wordmarks { width:calc(100% + clamp(3.2rem,7vw,8rem)); margin:clamp(5rem,9vw,9rem) 0 clamp(4rem,6vw,6rem) calc(clamp(1.6rem,3.5vw,4rem) * -1); overflow:hidden; mask-image:linear-gradient(90deg,transparent,black 5%,black 95%,transparent); }
.footer-wordmarks-track { display:flex; width:max-content; animation:footer-wordmarks-loop 28s linear infinite; will-change:transform; }
.footer-wordmarks-group { display:flex; align-items:center; }
.footer-wordmark-item { display:flex; align-items:center; gap:clamp(1.5rem,3vw,3.5rem); padding-right:clamp(1.5rem,3vw,3.5rem); }
.footer-wordmarks img { width:clamp(18rem,27vw,35rem); height:auto; filter:grayscale(1) brightness(.22); }
.footer-wordmarks i { color:var(--brand-blue); font-size:clamp(1.5rem,2.6vw,3rem); font-style:normal; }
@keyframes footer-wordmarks-loop { to { transform:translateX(-50%); } }
.footer-bottom { display: flex; align-items: center; justify-content: space-between; padding-top: 1.4rem; border-top: 1px solid #d9dddf; color: #626a6f; font-size: .78rem; }
.footer-bottom a { display: inline-flex; align-items: center; gap: .65rem; color: var(--ink); }
.footer-bottom .footer-credit { color:#626a6f; transition:color .2s ease; }
.footer-bottom .footer-credit:hover { color:var(--brand-blue-dark); }
.footer-bottom a span { color: var(--brand-blue-dark); }

@media (max-width: 980px) {
  .site-shell { padding-inline: 1rem; padding-bottom: 1rem; }
  .topbar { height: 4.8rem; grid-template-columns: 1fr auto; }
  .desktop-nav,.topbar > .header-cta { display: none; }
  .mobile-menu { display: block; justify-self: end; position: relative; z-index: 20; }
  .menu-button { display: grid; gap: .36rem; }
  .menu-button span { display: block; width: 1.55rem; height: 2px; background: var(--ink); }
  .mobile-menu[open] .menu-button span:first-child { transform: translateY(.25rem) rotate(45deg); }
  .mobile-menu[open] .menu-button span:last-child { transform: translateY(-.25rem) rotate(-45deg); }
  .menu-button span { transition: transform .2s ease; }
  .mobile-panel {
    position: absolute;
    top: calc(100% + .75rem);
    right: 0;
    width: min(21rem, calc(100vw - 2rem));
    padding: .7rem;
    border: 1px solid rgba(16,19,24,.1);
    border-radius: 1.25rem;
    background: rgba(255,255,255,.96);
    box-shadow: 0 1.2rem 3.5rem rgba(6,24,34,.18);
    backdrop-filter: blur(16px);
  }
  .mobile-panel > a:not(.mobile-cta) { display: flex; align-items: center; gap: 1rem; padding: .95rem .8rem; border-bottom: 1px solid #eceeef; font-size: 1.05rem; }
  .mobile-panel > a:not(.mobile-cta) span { color: var(--brand-blue-dark); font-size: .75rem; }
  .mobile-cta { display: flex; align-items: center; justify-content: space-between; margin-top: .7rem; padding: .95rem 1rem; border-radius: .85rem; background: var(--brand-blue); color: white; font-size: .92rem; }
  .mobile-cta span { font-size: 1.1rem; }
  .brand-logo { width: 8.8rem; }
  .hero { min-height: calc(100svh - 5.8rem); border-radius: 1.25rem; }
  .hero-image { object-position: 62% center; }
  .hero-copy { left: 1.35rem; right: 1.35rem; bottom: 17rem; }
  .hero-copy h1 { font-size: clamp(2.7rem, 10.5vw, 3.5rem); line-height: 1.02; }
  .hero-description { left: 1.35rem; right: 1.35rem; bottom: 10.2rem; width: auto; }
  .hero-description p { max-width: 26rem; }
  .hero-footer { left: 1.35rem; right: 1.35rem; bottom: 1.35rem; }
  .divider,.service-pills span:nth-child(n+2) { display: none; }
  .service-pills { margin-left: auto; }
  .solutions-head { grid-template-columns: 1fr; gap: 1.5rem; margin-inline: .35rem; }
  .solutions-cards { grid-template-columns: repeat(2, 1fr); }
  .solution-card { height: 30rem; }
  .services-intro { gap: 0; }
  .services-intro h2 { justify-self: center; max-width: 48rem; text-align: center; }
  .services-intro > p { justify-self: center; }
  .service-stack-item { grid-template-columns: .15fr .72fr 1.2fr; min-height: 22rem; }
  .service-stack-item p { display: none; }
  .companies-heading { gap: 0; }
  .companies-heading > p { justify-self: center; }
  .companies-heading h2 span { white-space: normal; }
  .company-card { grid-template-columns: .9fr 1.1fr; min-height: 32rem; gap: 2rem; }
  .company-image { min-height: 29.5rem; }
  .company-content { padding-right: 1rem; }
  .testimonials-heading { grid-template-columns: 1fr; gap: 1.5rem; margin-inline: .35rem; }
  .testimonials-heading > p { justify-self: start; }
  .testimonials-grid { grid-template-columns: .9fr 1.1fr; height: auto; min-height: 0; }
  .metrics-card { min-height: 34rem; }
  .testimonial-feature { min-height: 34rem; }
  .testimonials-rail { grid-column: 1 / -1; height: 26rem; }
  .closing-cta { min-height: 42rem; }
  .cta-action { width: min(24rem, 43vw); }
  .footer-top { grid-template-columns: 1.4fr 1fr 1fr; }
  .footer-intro { grid-column: 1 / -1; }
}

@media (max-width: 520px) {
  .hero-kicker { top: 1.1rem; left: 1.1rem; }
  .hero-copy { bottom: 19rem; }
  .hero-description { bottom: 10.5rem; }
  .hero-footer { align-items: center; }
  .service-pills { position: relative; flex: 0 0 min(12.75rem, 56vw); height: 3rem; margin-left: auto; }
  .service-pills > span,.service-pills > span:nth-child(n+2) {
    position: absolute;
    inset: 0;
    display: flex;
    justify-content: flex-start;
    padding: .58rem .82rem .58rem .58rem;
    opacity: 0;
    font-size: .75rem;
    animation: hero-mobile-service 9s ease-in-out infinite;
  }
  .service-pills > span:nth-child(2) { animation-delay: 3s; }
  .service-pills > span:nth-child(3) { animation-delay: 6s; }
  .service-pills > span:nth-child(4) { animation-delay: 9s; }
  .service-pills i { flex: none; font-size: .75rem; }
  .solutions { padding-top: 5.5rem; }
  .solutions-head h2 { font-size: clamp(2.6rem, 11vw, 3.6rem); }
  .solutions-cards { display: grid; grid-template-columns: 1fr; gap: 1rem; margin-inline: 0; padding-inline: 0; overflow: visible; scroll-snap-type: none; }
  .solution-card { width: 100%; height: clamp(29rem, 132vw, 34rem); }
  .services-section { padding: 5.5rem .35rem 1rem; }
  .service-stack-item { position: relative; top: auto; grid-template-columns: 1fr; gap: .8rem; min-height: 0; padding: 1.3rem 0 2rem; box-shadow: none; }
  .service-number { padding-top: 0; }
  .service-stack-item p { display: block; }
  .service-scene { grid-row: 4; height: 15rem; margin-top: .5rem; }
  .service-actions { margin-top: .25rem; }
  .companies-section { padding: 5.5rem .35rem 6rem; }
  .companies-heading h2 { font-size: clamp(2.6rem, 11vw, 3.6rem); }
  .company-card,.company-card:nth-child(n) { position: relative; top: auto; grid-template-columns: 1fr; gap: 1.4rem; min-height: 0; margin-bottom: 1rem; padding: .65rem; border-radius: 1.35rem; }
  .company-image { min-height: 22rem; border-radius: .95rem; }
  .company-content { padding: 1rem .65rem 1.2rem; }
  .company-content h3 { font-size: 2.45rem; }
  .partners-label { align-items: flex-start; flex-direction: column; gap: .6rem; margin-inline: .35rem; }
  .partners-label p { text-align: left; }
  .partner-card { width: 13rem; height: 7.5rem; border-radius: 1.2rem; }
  .testimonials { padding-top: 5.5rem; }
  .testimonials-heading h2 { font-size: clamp(2.6rem, 11vw, 3.6rem); }
  .testimonials-grid { grid-template-columns: 1fr; }
  .metrics-card,.testimonial-feature { min-height: 32rem; }
  .testimonial-feature { grid-row: 1; }
  .testimonials-rail { grid-column: auto; height: 25rem; }
  .closing-cta { display:flex; align-items:flex-start; flex-direction:column; min-height:47rem; padding:1.2rem; border-radius:1.25rem; }
  .cta-brand { position:relative; top:auto; left:auto; }
  .closing-cta h2 { position:relative; top:auto; left:auto; right:auto; max-width:12ch; margin:3rem 0 0; font-size:clamp(2.5rem,10.5vw,3.5rem); }
  .cta-services { position:relative; left:auto; right:auto; bottom:auto; max-width:100%; margin-top:auto; }
  .cta-services span { padding: .58rem .72rem; font-size: .75rem; }
  .cta-action { position:relative; left:auto; right:auto; bottom:auto; width:100%; margin-top:1.25rem; }
  .cta-action p { margin-bottom:1rem; font-size:.94rem; }
  .site-footer { border-radius: 1.25rem; }
  .footer-top { grid-template-columns: 1fr 1fr; gap: 2.5rem 1.5rem; }
  .footer-intro { grid-column: 1 / -1; }
  .footer-column:last-child { grid-column: 1 / -1; }
  .footer-wordmarks { margin-block: 4rem; }
  .footer-wordmarks img { width: 18rem; }
  .footer-bottom { align-items: flex-start; gap: 1.2rem; flex-direction: column; }
}

@keyframes hero-mobile-service {
  0%, 20% { opacity: 1; transform: translateY(0); }
  26%, 100% { opacity: 0; transform: translateY(-.45rem); }
}

@media (max-width: 760px) {
  html.mobile-motion-ready .solutions-cards .solution-card,html.mobile-motion-ready .services-stack .service-stack-item,html.mobile-motion-ready .companies-stack .company-card {
    opacity: 0;
    transform: translateY(1.5rem);
    transition:
      opacity .55s ease var(--mobile-motion-delay, 0ms),
      transform .55s cubic-bezier(.2, .8, .2, 1) var(--mobile-motion-delay, 0ms);
  }

  html.mobile-motion-ready .solutions-cards .solution-card.is-mobile-visible,html.mobile-motion-ready .services-stack .service-stack-item.is-mobile-visible,html.mobile-motion-ready .companies-stack .company-card.is-mobile-visible {
    opacity: 1;
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .testimonials-track { animation: none; }
  .service-pills > span { animation: none; }
  .service-pills > span:first-child { opacity: 1; transform: none; }
}
.diagnostic-modal { position: fixed; inset: 0; z-index: 300; display: grid; place-items: center; padding: clamp(.65rem, 2vw, 2rem); visibility: hidden; opacity: 0; transition: opacity .28s ease, visibility .28s ease; }
.diagnostic-modal.is-open { visibility: visible; opacity: 1; }
.diagnostic-backdrop { position: absolute; inset: 0; border: 0; background: rgba(4,18,27,.7); backdrop-filter: blur(12px); cursor: default; }
.diagnostic-dialog { position: relative; display: grid; grid-template-columns: minmax(15rem, .65fr) minmax(28rem, 1.35fr); width: min(70rem, 100%); height: min(47rem, calc(100svh - 2rem)); overflow: hidden; border: 1px solid rgba(255,255,255,.3); border-radius: 2rem; background: white; box-shadow: 0 2.5rem 7rem rgba(2,17,26,.35); transform: translateY(2rem) scale(.98); transition: transform .38s cubic-bezier(.2,.8,.2,1); }
.diagnostic-modal.is-open .diagnostic-dialog { transform: translateY(0) scale(1); }
.diagnostic-aside { position: relative; display: flex; flex-direction: column; justify-content: space-between; overflow: hidden; padding: clamp(1.5rem, 3vw, 3rem); background: #07364a; color: white; isolation: isolate; }
.diagnostic-aside::before,.diagnostic-aside::after { content: ""; position: absolute; z-index: -1; border-radius: 50%; }
.diagnostic-aside::before { width: 22rem; height: 22rem; right: -11rem; top: -8rem; border: 1px solid rgba(85,208,244,.3); box-shadow: 0 0 0 4rem rgba(0,160,216,.05), 0 0 0 8rem rgba(0,160,216,.04); }
.diagnostic-aside::after { width: 12rem; height: 12rem; left: -7rem; bottom: 2rem; background: rgba(0,160,216,.16); filter: blur(1px); }
.diagnostic-aside img { width: 9.5rem; height: auto; padding: .65rem; border-radius: .65rem; background: white; }
.diagnostic-aside > div { display: grid; gap: 1rem; }
.diagnostic-aside > div span { color: #63d9ff; font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.diagnostic-aside > div strong { max-width: 13ch; font-size: clamp(1.7rem, 2.6vw, 2.7rem); line-height: 1.05; letter-spacing: -.045em; font-weight: 400; }
.diagnostic-aside > p { display: flex; align-items: center; gap: .7rem; margin: 0; color: rgba(255,255,255,.7); font-size: .78rem; }
.diagnostic-aside > p i { width: .52rem; height: .52rem; border-radius: 50%; background: #55d0f4; box-shadow: 0 0 0 .3rem rgba(85,208,244,.13); }
.diagnostic-form { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; min-width: 0; background: #fbfcfc; }
.diagnostic-form > header { position: relative; display: flex; align-items: center; gap: 1rem; padding: 1.5rem clamp(1.4rem, 3vw, 3rem) 1rem; }
.diagnostic-progress { flex: 1; height: .28rem; overflow: hidden; border-radius: 1rem; background: #e5ebee; }
.diagnostic-progress span { display: block; width: 100%; height: 100%; border-radius: inherit; background: var(--brand-blue); transform: scaleX(var(--progress, 0)); transform-origin: left center; transition: transform .45s cubic-bezier(.2,.8,.2,1); }
.diagnostic-form > header small { flex: none; color: #687278; font-size: .75rem; font-weight: 600; }
.diagnostic-form > header > button { display: grid; place-items: center; flex: none; width: 2.25rem; height: 2.25rem; border: 1px solid #dce3e6; border-radius: 50%; background: white; color: #27343a; font-size: 1.4rem; line-height: 1; cursor: pointer; }
.diagnostic-step { min-height: 0; overflow-y: auto; padding: clamp(1rem, 2.5vw, 2.5rem) clamp(1.4rem, 4vw, 4rem) 1.5rem; animation: diagnostic-step-in .38s cubic-bezier(.2,.8,.2,1); }
@keyframes diagnostic-step-in { from { opacity: 0; transform: translateX(1.4rem); } to { opacity: 1; transform: translateX(0); } }
.diagnostic-kicker { display: block; margin-bottom: .65rem; color: var(--brand-blue-dark); font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.diagnostic-step h2 { max-width: 17ch; margin: 0; color: var(--ink); font-size: clamp(2rem, 3.2vw, 3.4rem); line-height: 1.02; letter-spacing: -.05em; font-weight: 400; }
.diagnostic-step > p { max-width: 35rem; margin: .8rem 0 1.8rem; color: #687278; font-size: .9rem; line-height: 1.5; }
.diagnostic-options { display: grid; gap: .65rem; }
.diagnostic-segments { grid-template-columns: repeat(3, 1fr); margin-top: 2rem; }
.diagnostic-choice { display: flex; align-items: center; justify-content: space-between; gap: .7rem; min-height: 3.3rem; padding: .75rem .8rem .75rem 1rem; border: 1px solid #dce3e6; border-radius: .9rem; background: white; color: #26343b; font: inherit; font-size: .78rem; text-align: left; cursor: pointer; transition: border-color .2s ease, background .2s ease, color .2s ease, transform .2s ease; }
.diagnostic-choice:hover { border-color: rgba(0,160,216,.55); transform: translateY(-1px); }
.diagnostic-choice i { display: grid; place-items: center; flex: none; width: 1.8rem; height: 1.8rem; border-radius: 50%; background: #eef5f7; color: var(--brand-blue-dark); font-size: .75rem; font-style: normal; }
.diagnostic-choice.is-selected { border-color: var(--brand-blue); background: #e9f8fd; color: #07516d; box-shadow: 0 .5rem 1.4rem rgba(0,125,169,.08); }
.diagnostic-choice.is-selected i { background: var(--brand-blue); color: white; }
.diagnostic-field { display: grid; gap: .7rem; margin-top: 1.35rem; }
.diagnostic-field > span,.diagnostic-step label { display: grid; gap: .65rem; color: #354249; font-size: .76rem; font-weight: 600; }
.diagnostic-chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.diagnostic-chips .diagnostic-choice { min-height: 2.8rem; padding: .55rem .65rem .55rem .9rem; border-radius: 999px; }
.diagnostic-chips .diagnostic-choice i { width: 1.55rem; height: 1.55rem; }
.diagnostic-step > label { margin-top: 1.35rem; }
.diagnostic-step select,.diagnostic-step input { width: 100%; height: 3.45rem; padding: 0 1rem; border: 1px solid #dce3e6; border-radius: .8rem; outline: none; background: white; color: var(--ink); font: inherit; font-size: .85rem; transition: border-color .2s ease, box-shadow .2s ease; }
.diagnostic-step select:focus,.diagnostic-step input:focus { border-color: var(--brand-blue); box-shadow: 0 0 0 .22rem rgba(0,160,216,.1); }
.diagnostic-contact-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 2rem; }
.diagnostic-contact-fields label:first-child { grid-column: 1 / -1; }
.diagnostic-summary { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; margin: 1.8rem 0 0; }
.diagnostic-summary div { min-width: 0; padding: 1rem; border: 1px solid #e1e7e9; border-radius: .85rem; background: white; }
.diagnostic-summary dt { margin-bottom: .35rem; color: var(--brand-blue-dark); font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.diagnostic-summary dd { overflow: hidden; margin: 0; color: #344148; font-size: .78rem; line-height: 1.35; text-overflow: ellipsis; }
.diagnostic-form > footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem clamp(1.4rem, 3vw, 3rem) 1.5rem; border-top: 1px solid #e7ecee; }
.diagnostic-form > footer button { min-height: 3rem; border-radius: 999px; font: inherit; font-size: .78rem; font-weight: 600; cursor: pointer; }
.diagnostic-previous { padding: 0 1.2rem; border: 1px solid #dce3e6; background: white; color: #4e5a60; }
.diagnostic-previous:disabled { visibility: hidden; }
.diagnostic-next { display: flex; align-items: center; gap: 1.5rem; padding: .35rem .4rem .35rem 1.3rem; border: 0; background: var(--ink); color: white; }
.diagnostic-next span { display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: 50%; background: var(--brand-blue); font-size: 1rem; }
.diagnostic-next:disabled { opacity: .35; cursor: not-allowed; }

@media (max-width: 760px) {
  .diagnostic-modal { padding: .5rem; }
  .diagnostic-dialog { grid-template-columns: 1fr; height: calc(100svh - 1rem); border-radius: 1.25rem; }
  .diagnostic-aside { display: none; }
  .diagnostic-form > header { padding: 1rem 1rem .7rem; }
  .diagnostic-step { padding: 1rem 1.15rem; }
  .diagnostic-step h2 { font-size: clamp(2rem, 10vw, 2.8rem); }
  .diagnostic-segments { grid-template-columns: 1fr; margin-top: 1.3rem; }
  .diagnostic-contact-fields,.diagnostic-summary { grid-template-columns: 1fr; }
  .diagnostic-contact-fields label:first-child { grid-column: auto; }
  .diagnostic-form > footer { padding: .8rem 1rem 1rem; }
}

@media (prefers-reduced-motion: reduce) {
  .diagnostic-dialog,.diagnostic-step,.diagnostic-progress span,.footer-wordmarks-track { transition: none; animation: none; }
}
a.action-button {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  border-radius: 999px;
  cursor: pointer;
  transition: transform .24s cubic-bezier(.2,.8,.2,1), box-shadow .24s ease, background-color .24s ease, border-color .24s ease, color .24s ease, filter .24s ease;
  will-change: transform;
}

a.action-button--dark { border-color: var(--ink); background: var(--ink); color: white; }
a.action-button--blue { border-color: var(--brand-blue); background: var(--brand-blue); color: white; }
a.action-button--light { border-color: rgba(255,255,255,.9); background: white; color: var(--ink); }
a.action-button--outline { border-color: #cfdadd; background: transparent; color: var(--ink); }
a.action-button--glass { border-color: rgba(255,255,255,.34); background: rgba(5,20,28,.3); color: white; backdrop-filter: blur(8px); }

a.action-button .action-button__icon {
  display: grid;
  place-items: center;
  flex: none;
  border-radius: 50%;
  transition: transform .24s cubic-bezier(.2,.8,.2,1), background-color .24s ease, color .24s ease;
}

a.action-button:hover {
  transform: translateY(-2px);
  border-color: var(--brand-blue);
  background-color: var(--brand-blue);
  color: white;
  box-shadow: 0 .8rem 1.8rem rgba(0,125,169,.18);
}

a.action-button--icon-arrow:hover .action-button__icon { transform: rotate(45deg); }
a.action-button--icon-down:hover .action-button__icon { transform: translateY(.14rem); }
a.action-button:active { transform: translateY(0) scale(.985); box-shadow: 0 .35rem .9rem rgba(0,125,169,.12); }
a.action-button:focus-visible { outline: 3px solid rgba(0,160,216,.3); outline-offset: 3px; }

.diagnostic-form > header > button,.diagnostic-form > footer button { transition: transform .22s ease, box-shadow .22s ease, background-color .22s ease, border-color .22s ease, color .22s ease; }
.diagnostic-next:hover:not(:disabled) { transform: translateY(-2px); background: var(--brand-blue-dark); box-shadow: 0 .8rem 1.8rem rgba(0,125,169,.2); }
.diagnostic-next:hover:not(:disabled) span { transform: rotate(45deg); }
.diagnostic-next span { transition: transform .22s ease; }
.diagnostic-previous:hover:not(:disabled),.diagnostic-form > header > button:hover { border-color: var(--brand-blue); background: #e9f8fd; color: var(--brand-blue-dark); transform: translateY(-1px); }
.diagnostic-form button:focus-visible { outline: 3px solid rgba(0,160,216,.3); outline-offset: 3px; }

@media (prefers-reduced-motion: reduce) {
  a.action-button,a.action-button .action-button__icon,.diagnostic-form button { transition: none; }
  a.action-button:hover,a.action-button:active,.diagnostic-form button:hover { transform: none; }
}
.floating-nav { position:fixed; left:50%; bottom:1.15rem; z-index:180; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:clamp(.65rem,1.2vw,1.2rem); width:min(60rem,calc(100% - 2rem)); padding:.45rem .5rem .45rem .85rem; border:1px solid rgba(255,255,255,.24); border-radius:999px; background:rgba(5,31,43,.64); box-shadow:0 1rem 3.5rem rgba(5,25,35,.24),inset 0 1px 0 rgba(255,255,255,.16); backdrop-filter:blur(24px) saturate(150%); -webkit-backdrop-filter:blur(24px) saturate(150%); opacity:0; visibility:hidden; pointer-events:none; transform:translate(-50%,calc(100% + 2rem)) scale(.97); transition:opacity .3s ease,visibility .3s ease,transform .4s cubic-bezier(.2,.8,.2,1); }
.floating-nav.is-docked { position:absolute; top:var(--floating-top); bottom:auto; }
.floating-nav::before { content:""; position:absolute; inset:.2rem; z-index:-1; border-radius:inherit; background:linear-gradient(115deg,rgba(255,255,255,.13),rgba(255,255,255,.015) 55%,rgba(0,160,216,.12)); }
.floating-nav.is-visible { opacity:1; visibility:visible; pointer-events:auto; transform:translate(-50%,0) scale(1); }
.floating-brand { display:grid; place-items:center; width:6.7rem; height:3.1rem; overflow:hidden; }
.floating-brand img { width:6.1rem; height:auto; filter:grayscale(1) brightness(0) invert(1); opacity:.94; }
.floating-links { display:flex; align-items:center; justify-content:center; gap:clamp(.8rem,2vw,2rem); }
.floating-links a { position:relative; color:rgba(255,255,255,.76); font-size:.875rem; font-weight:500; transition:color .2s ease; }
.floating-links a::after { content:""; position:absolute; right:0; bottom:-.35rem; left:0; height:1px; background:var(--brand-blue); transform:scaleX(0); transition:transform .2s ease; }
.floating-links a:hover { color:#72daf8; }
.floating-links a:hover::after { transform:scaleX(1); }
.floating-cta { min-height:3.15rem; padding:.42rem .46rem .42rem 1rem; font-size:.875rem; }
.floating-cta .action-button__icon { width:2.25rem; height:2.25rem; background:var(--brand-blue); }
.floating-mobile-menu { display:none; }

@media (max-width:820px) {
  .floating-nav { bottom:.7rem; grid-template-columns:auto 1fr auto; width:calc(100% - 1rem); padding:.4rem; }
  .floating-nav.is-docked { bottom:auto; }
  .floating-brand { width:5.8rem; height:2.85rem; }
  .floating-brand img { width:5.2rem; }
  .floating-links { display:none; }
  .floating-mobile-menu { position:relative; display:block; justify-self:start; }
  .floating-mobile-menu summary { display:flex; align-items:center; gap:.7rem; padding:.75rem .85rem; border-radius:999px; color:rgba(255,255,255,.84); cursor:pointer; font-size:.875rem; font-weight:600; list-style:none; }
  .floating-mobile-menu summary::-webkit-details-marker { display:none; }
  .floating-mobile-menu summary span { color:#72daf8; font-size:1rem; transition:transform .2s ease; }
  .floating-mobile-menu[open] summary span { transform:rotate(45deg); }
  .floating-mobile-menu nav { position:absolute; bottom:calc(100% + .8rem); left:-3.25rem; display:grid; width:min(19rem,calc(100vw - 2rem)); overflow:hidden; padding:.55rem; border:1px solid rgba(255,255,255,.75); border-radius:1.15rem; background:rgba(245,249,250,.94); box-shadow:0 1rem 3rem rgba(5,25,35,.2); backdrop-filter:blur(20px); }
  .floating-mobile-menu nav a { display:flex; align-items:center; justify-content:space-between; padding:.9rem .85rem; border-bottom:1px solid #e0e7e9; color:#354249; font-size:.875rem; }
  .floating-mobile-menu nav a:last-child { border-bottom:0; }
  .floating-mobile-menu nav a span { color:var(--brand-blue-dark); }
  .floating-cta { justify-self:end; min-height:2.9rem; padding:.35rem .4rem .35rem .85rem; font-size:.875rem; }
  .floating-cta .action-button__icon { width:2.1rem; height:2.1rem; }
}

@media (max-width:420px) {
  .floating-brand { display:none; }
  .floating-nav { grid-template-columns:1fr auto; }
}

@media (prefers-reduced-motion:reduce) {
  .floating-nav { transition:none; }
}

.lucide-icon { display:block; flex:none; }
.action-button__icon .lucide-icon { width:1rem; height:1rem; }

.whatsapp-float {
  position:fixed;
  right:clamp(1rem,2vw,1.75rem);
  bottom:clamp(1rem,2vw,1.75rem);
  z-index:90;
  display:inline-flex;
  align-items:center;
  gap:.65rem;
  min-height:3.35rem;
  padding:.75rem 1.05rem;
  border:1px solid rgba(255,255,255,.38);
  border-radius:999px;
  background:#25d366;
  box-shadow:0 .8rem 2rem rgba(12,48,28,.24);
  color:#fff;
  font-size:.82rem;
  font-weight:650;
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease;
}
.whatsapp-float:hover { transform:translateY(-2px); background:#1fbd59; box-shadow:0 1rem 2.35rem rgba(12,48,28,.3); }
.whatsapp-float .ui-icon { width:1.35rem; height:1.35rem; fill:currentColor; }
@media (max-width:560px) {
  .whatsapp-float { width:3.5rem; height:3.5rem; min-height:0; justify-content:center; padding:0; }
  .whatsapp-float span { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
}