.brand-logo { display:inline-block; position:relative; width:136px; aspect-ratio:125/46; line-height:0; }
.brand-logo img { display:block; width:100%; height:100%; margin:0; transition:opacity .25s ease; }
.brand-logo__white { opacity:1; }
.brand-logo__black { position:absolute; inset:0; opacity:0; }
.nav.is-solid .brand-logo__white { opacity:0; }
.nav.is-solid .brand-logo__black { opacity:1; }
.footer .brand-logo { width:160px; }
.footer__logo { margin-bottom:25px; }
.nav__link[aria-current=page] { color:var(--ub-accent); }
.capabilities-row { display:flex; justify-content:center; gap:30px 42px; flex-wrap:wrap; align-items:center; }
.capabilities-row span { font-weight:600; font-size:clamp(19px,2.2vw,27px); letter-spacing:-.035em; color:#505050; }
/* Contact uses the same headings, panels, and spacing as the service pages. */
.contact-details { padding-bottom:80px; }
.contact-details > *, .contact-start > * { min-width:0; }
.contact-details .tag, .contact-start .tag { margin-bottom:22px; }
.contact-direct { display:grid; gap:24px; margin-top:32px; }
.contact-direct a { display:block; max-width:100%; width:fit-content; }
.contact-direct__label { display:block; margin-bottom:8px; font-size:12px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:#626262; }
.contact-direct__value { display:block; font-size:clamp(18px,2vw,24px); font-weight:600; line-height:1.4; overflow-wrap:anywhere; }
.contact-direct__value > span { display:inline-block; margin-left:8px; }
.contact-direct a:hover .contact-direct__value { text-decoration:underline; text-underline-offset:5px; }
.contact-details .contact-panel { padding:40px 34px; }
.contact-details__copy { margin:22px 0 28px; max-width:42ch; font-size:17px; line-height:1.65; color:#B8B8B8; }
.contact-details__number { margin:16px 0 0; color:#B8B8B8; font-size:15px; }
.contact-start { display:grid; grid-template-columns:.95fr 1.05fr; gap:56px; padding-block:64px 96px; border-top:1px solid #DDDDDD; }
.contact-starter { display:grid; grid-template-columns:24px minmax(0,1fr) 22px; gap:16px; padding:24px 0; border-bottom:1px solid #DDDDDD; }
.contact-starter:first-child { padding-top:0; }
.contact-starter__number { padding-top:4px; font-size:12px; color:#626262; }
.contact-starter__title { display:block; font-size:21px; font-weight:600; line-height:1.25; letter-spacing:-.02em; }
.contact-starter__copy { display:block; margin-top:8px; font-size:15px; line-height:1.6; color:#626262; }
.contact-starter__arrow { font-size:22px; transition:transform .2s; }
.contact-starter:hover .contact-starter__title { text-decoration:underline; text-underline-offset:4px; }
.contact-starter:hover .contact-starter__arrow { transform:translateX(3px); }
@media(max-width:900px) { .contact-start { grid-template-columns:1fr; gap:34px; padding-block:48px 64px; } .contact-details { padding-bottom:56px; } }
@media(max-width:640px) { .contact-details .contact-panel { padding:32px 24px; } .contact-starter { gap:10px; } .contact-starter__title { font-size:19px; } .contact-details .btn { max-width:100%; padding-inline:16px; } }
section[id] { scroll-margin-top:80px; }
.contact-panel small { display:block; color:#B8B8B8; font-size:12px; margin-top:3px; }
.enquiry-result { border-top:1px solid #DDDDDD; padding-top:24px; }
.enquiry-result h2 { font-size:25px; letter-spacing:-.025em; margin:0 0 12px; }
.enquiry-result p { font-size:15px; line-height:1.6; }
.enquiry-result a { text-decoration:underline; }
.form__note,.form label { color:#666666; }
.mnav:not(.is-open) { visibility:hidden; }
.mnav.is-open { visibility:visible; }
.mnav { overflow-y:auto; }
.mnav__contact { padding-top:24px; }
.hero__content { pointer-events:none; }
.hero__content a { pointer-events:auto; }
[hidden] { display:none!important; }
@media(max-width:640px) { .hero__title { font-size:clamp(46px,11vw,70px); } .hero__content { padding:90px 22px 76px; } .hero__ctas { gap:12px; } .nav .brand-logo { width:125px; } }

/* Digital Orbit: monochrome surfaces and quiet, rounded details. */
.section-dark,
.scard--dark,
.contact-panel,
.footer,
.cta-block,
.article__cta { --ub-accent:#FFFFFF; }
::selection { background:#D4D4D4; color:#000000; }
.nav { color:#FFFFFF; }
.nav.is-solid { background:rgba(255,255,255,.92); }
.nav__link[aria-current=page] { text-decoration:underline; text-underline-offset:6px; text-decoration-thickness:1px; }
.hero__content { color:#FFFFFF; }
.hero__video { filter:grayscale(1) contrast(1.05); }
.hero__scrim { background:linear-gradient(180deg,rgba(0,0,0,.60) 0%,rgba(0,0,0,.64) 45%,rgba(0,0,0,.66) 68%,rgba(0,0,0,.78) 100%); }
.scard__media img,
.scard:hover .scard__media img,
.founder__photo img { filter:grayscale(1); }

.btn,
.nav__cta,
.nav__burger { clip-path:none; border-radius:10px; }
.btn {
  justify-content:center;
  min-height:54px;
  padding:13px 25px;
  gap:12px;
  line-height:1.2;
  transition:background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}
.btn--light { background:#FFFFFF; color:#111111; }
.btn--light:hover { background:#E8E8E8; }
.btn--ink { background:#111111; color:#FFFFFF; }
.btn--ink:hover { background:#303030; }
.btn--ghost { background:transparent; color:#FFFFFF; border-color:rgba(255,255,255,.55); }
.btn--ghost:hover { background:rgba(255,255,255,.12); border-color:#FFFFFF; }
.btn--md { min-height:50px; padding:11px 23px; }
.btn--lg { min-height:58px; padding:15px 28px; }
.btn > span[aria-hidden="true"] {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:none;
  width:26px;
  height:26px;
  border:1px solid currentColor;
  border-radius:50%;
  transition:transform .2s ease;
}
.btn:hover > span[aria-hidden="true"] { transform:translateX(2px); }
.nav__cta { min-height:44px; padding:12px 19px; gap:12px; background:#FFFFFF; color:#111111; }
.nav.is-solid .nav__cta { background:#111111; color:#FFFFFF; }
.btn:focus-visible,
.nav__cta:focus-visible,
.nav__burger:focus-visible { outline:2px solid #FFFFFF; outline-offset:2px; box-shadow:0 0 0 5px #111111; }
.hero__ctas { gap:16px; margin-top:34px; }
.cta-block__ctas { gap:16px; }

.tag__chip { width:10px; height:10px; border-radius:50%; clip-path:none; }
.svc__list li::before { width:7px; height:7px; margin-top:7px; border-radius:50%; clip-path:none; }
.scard,
.gcard,
.svc__card,
.contact-card,
.contact-panel,
.founder,
.founder__photo,
.article__cta,
.legal__card { clip-path:none; border-radius:14px; }
.scard { overflow:hidden; }
.scard:hover { transform:translateY(-4px); }
.cta-block { clip-path:none; border-radius:20px; }
.form input,
.form select,
.form textarea { border-radius:8px; }
.footer__label,
.footer__loc,
.footer__bottom,
.contact-panel__label,
.contact-panel__entity { color:#A3A3A3; }

@media(min-width:901px) {
  .w-1180 { max-width:1240px; }
  .grid--3 { gap:24px; }
  .scard__body { padding:30px 32px 34px; }
  .services-home__title { text-align:left; margin-bottom:44px; }
  .process__steps { gap:31px; }
  .cta-block { padding:80px 50px; }
}
@media(max-width:640px) {
  .hero__ctas,
  .cta-block__ctas { flex-direction:column; align-items:stretch; width:100%; max-width:320px; gap:12px; }
  .hero__ctas .btn,
  .cta-block__ctas .btn { width:100%; }
}

.mnav__link[aria-current=page] { text-decoration:underline; text-underline-offset:7px; }
/* Animated service stories use the same strokes, scale and transparent surface. */
.service-scene { height:240px; display:grid; place-items:center; color:inherit; background:none; border:0; overflow:hidden; }
.service-scene svg { display:block; width:100%; height:100%; max-width:430px; }
.service-float { animation:service-float 5s ease-in-out infinite!important; }
.story-bar { transform-box:fill-box; transform-origin:center bottom; animation:story-grow 4s ease-in-out infinite!important; }
.bar-two { animation-delay:.25s!important; }
.bar-three { animation-delay:.5s!important; }
.story-route { stroke-dasharray:1; animation:story-route 4s ease-in-out infinite!important; }
.brand-reach > path,.system-connection { animation:story-connect 2s linear infinite!important; }
.customer,.system-node { animation:story-appear 4s ease-in-out infinite!important; }
.customer-two,.system-node--second { animation-delay:.5s!important; }
.customer-three { animation-delay:1s!important; }
.web-module { transform-box:fill-box; transform-origin:center; animation:story-build 4s ease-in-out infinite!important; }
.module-two { animation-delay:.3s!important; }
.module-three { animation-delay:.6s!important; }
@keyframes service-float { 0%,100% { transform:translateY(3px); } 50% { transform:translateY(-3px); } }
@keyframes story-grow { 0%,100% { transform:scaleY(.35); } 40%,75% { transform:scaleY(1); } }
@keyframes story-route { 0%,10% { stroke-dashoffset:1; } 65%,100% { stroke-dashoffset:0; } }
@keyframes story-connect { to { stroke-dashoffset:-36; } }
@keyframes story-appear { 0%,100% { opacity:.25; transform:translateY(6px); } 40%,70% { opacity:1; transform:translateY(0); } }
@keyframes story-build { 0%,100% { transform:scale(.75); } 40%,70% { transform:scale(1); } }
@media(max-width:640px) { .service-scene { height:200px; } }
