.elementor-widget-toggle .elementor-toggle-title, .elementor-widget-toggle .elementor-toggle-icon{color:var( --e-global-color-primary );}.elementor-widget-toggle .elementor-toggle-icon svg{fill:var( --e-global-color-primary );}.elementor-widget-toggle .elementor-tab-title.elementor-active a, .elementor-widget-toggle .elementor-tab-title.elementor-active .elementor-toggle-icon{color:var( --e-global-color-accent );}.elementor-widget-toggle .elementor-toggle-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-widget-toggle .elementor-tab-content{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-594 .elementor-element.elementor-element-d58db35 .elementor-tab-title{border-width:1px;border-color:#ECECEC;background-color:#00000000;padding:26px 0px 26px 0px;}.elementor-594 .elementor-element.elementor-element-d58db35 .elementor-tab-content{border-width:1px;border-block-end-color:#ECECEC;background-color:#00000000;color:#4D4C51;font-family:"aktiv-grotesk-condensed", Sans-serif;font-size:clamp(1.0625rem, 0.919rem + 0.224vw, 1.1875rem);font-weight:300;line-height:1.75em;padding:0px 39px 30px 0px;}.elementor-594 .elementor-element.elementor-element-d58db35 .elementor-toggle-title, .elementor-594 .elementor-element.elementor-element-d58db35 .elementor-toggle-icon{color:#39050B;}.elementor-594 .elementor-element.elementor-element-d58db35 .elementor-toggle-icon svg{fill:#39050B;}.elementor-594 .elementor-element.elementor-element-d58db35 .elementor-tab-title.elementor-active a, .elementor-594 .elementor-element.elementor-element-d58db35 .elementor-tab-title.elementor-active .elementor-toggle-icon{color:#39050B;}.elementor-594 .elementor-element.elementor-element-d58db35 .elementor-toggle-title{font-family:"aktiv-grotesk-condensed", Sans-serif;font-size:clamp(1.1875rem, 0.973rem + 0.335vw, 1.375rem);font-weight:500;line-height:1.4em;}.elementor-594 .elementor-element.elementor-element-d58db35 .elementor-tab-title .elementor-toggle-icon i:before{color:#9D0D1F;}.elementor-594 .elementor-element.elementor-element-d58db35 .elementor-tab-title .elementor-toggle-icon svg{fill:#9D0D1F;}.elementor-594 .elementor-element.elementor-element-d58db35 .elementor-tab-title.elementor-active .elementor-toggle-icon i:before{color:#9D0D1F;}.elementor-594 .elementor-element.elementor-element-d58db35 .elementor-tab-title.elementor-active .elementor-toggle-icon svg{fill:#9D0D1F;}.elementor-594 .elementor-element.elementor-element-d58db35 .elementor-toggle-icon{margin-inline-end:16px;}@media(max-width:1024px){.elementor-594 .elementor-element.elementor-element-d58db35 .elementor-toggle-title{font-size:1.25rem;}}@media(max-width:767px){.elementor-594 .elementor-element.elementor-element-d58db35 .elementor-toggle-title{font-size:1.1875rem;}.elementor-594 .elementor-element.elementor-element-d58db35 .elementor-tab-title{padding:18px 0px 18px 0px;}.elementor-594 .elementor-element.elementor-element-d58db35 .elementor-tab-content{font-size:1.125rem;padding:0px 27px 20px 0px;}}/* Start custom CSS *//* Service Page (594) — only effects the V4 prop schema cannot express.
   Everything else lives in class / element style variants. */

/* Safety net: the decorative vector bleeds past the inline edge by design.
   overflow-x:clip (not hidden) so the sticky rail keeps working. */
.svc-body-section { overflow-x: clip; }

/* Reveal fade-up: animates on load and always ends visible (no JS, no .is-in).
   Doubled class = specificity over any global copy. */
@keyframes svcRevealUp { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }
.svc-reveal.svc-reveal { opacity: 1; animation: svcRevealUp .8s cubic-bezier(.22,.8,.32,1) both; }
@media (prefers-reduced-motion: reduce) { .svc-reveal.svc-reveal { animation: none; } }

/* Contact photos: greyscale, colour on card hover (applies once real headshots land) */
.svc-contact-card img { filter: grayscale(1); transition: filter .4s ease, transform .5s cubic-bezier(.22,.8,.32,1); }
.svc-contact-card:hover img { filter: grayscale(0); transform: scale(1.03); }

/* FAQ row hover tint + hairline rhythm (descendant body.elementor-page-594s on a classic widget) */
.svc-faq .elementor-toggle-item { transition: background-color .25s ease; }
.svc-faq .elementor-toggle-item:hover { background-color: #FAF8F7; }
.svc-faq .elementor-tab-title { align-items: baseline; }

/* Related-link arrow nudge on hover (child-of-hover body.elementor-page-594) */
.e-con .e-svg svg { transition: transform .3s cubic-bezier(.22,.8,.32,1); }

/* Mobile: the index rail rotates 90deg, per the approved mobile design.
   rotate() transforms are not reliably expressible as V4 props. */
@media (max-width: 767px) {
  .svc-rail > * { display: flex; align-items: center; justify-content: center;
                  width: 100%; height: 128px; }
  .svc-rail > * span { white-space: nowrap; }
  .svc-rail > * { writing-mode: vertical-rl; transform: rotate(180deg); }
}

/* Sticky index rail navigation: smooth scroll + offset so the sticky header
   never covers the anchored section. */
html { scroll-behavior: smooth; }
#about, #capabilities, #contacts, #faq { scroll-margin-block-start: 110px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }/* End custom CSS */