/* Small additions to the Framer CSS (copied verbatim per page). */
.ethos-faq-answer { width: 100%; padding: 12px 0 0; }
.ethos-faq-answer p {
  margin: 0;
  font-family: "Satoshi", "Satoshi Placeholder", sans-serif;
  font-size: 16px;
  line-height: 24px;
  letter-spacing: -0.32px;
  color: rgb(153, 153, 153);
}
[data-ethos-faq] { cursor: pointer; flex-wrap: wrap; }
[data-ethos-faq][aria-expanded="true"] [data-framer-name="vertical"] { transform: rotate(90deg); opacity: 0; }
[data-ethos-faq] [data-framer-name="vertical"] { transition: transform 0.3s, opacity 0.3s; }
[name="Hamburger icon"] { cursor: pointer; }

/* Phone: the footer newsletter row (Framer gives it a fixed 619px width) fits the screen,
   with the button under the email field. The live site overflows here; fixed on purpose. */
@media (max-width: 809.98px) {
  [class*="-container"]:has(> div > form[data-ethos-form="newsletter"]) {
    width: calc(100vw - 48px) !important;
    max-width: 100% !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
    align-self: center;
    margin: 0 auto;
  }
  form[data-ethos-form="newsletter"] { flex-direction: column !important; }
  form[data-ethos-form="newsletter"] > div:not([aria-hidden]) { width: 100%; }
}

/* Nav: content scrolling underneath never shows through or around it.
   Desktop pill: 90% dark, no blur (blur costs frame rate). Once the page is scrolled, a dark
   band sits behind the whole bar so text above and beside the pill is covered too. */
[data-framer-name="Desktop"].framer-18g6jok {
  background-color: rgba(13, 13, 13, 0.9) !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}
html.ethos-scrolled [class*="-container"]:has(> .ssr-variant > nav.framer-p7JP1):not(:has(nav.framer-v-1p9artn))::before {
  content: "";
  position: absolute;
  left: 50%;
  width: 100vw;
  transform: translateX(-50%);
  top: -40px;
  height: calc(100% + 40px);
  background: linear-gradient(to bottom, rgb(10, 10, 10) 0%, rgb(10, 10, 10) 80%, rgba(10, 10, 10, 0) 92%);
  pointer-events: none;
  z-index: -1;
}

/* Footer (home, about, blog, careers, case studies, thank-you) */
/* bottom row: links, logo + copyright, badges and social icons on one centre line; if the
   window is too narrow it wraps into a second, centred row instead of hanging */
.framer-W0Yc8 .framer-k3duib {
  align-items: center !important;
  justify-content: center !important;
  flex-wrap: wrap !important;
  gap: 16px 40px !important;
}
.framer-W0Yc8 .framer-uqpesh { align-items: center !important; }
.framer-W0Yc8 .framer-34skce {
  flex-wrap: nowrap !important;
  flex: none !important;
  width: auto !important;
  padding: 0 !important;
  gap: 24px !important;
}
.framer-W0Yc8 .framer-44o78m { padding: 0 !important; }
/* copyright reads like the links beside it */
.framer-W0Yc8 .framer-z7p9gf p,
.framer-W0Yc8 .framer-z7p9gf p * {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  opacity: 1 !important;
}
/* every accreditation badge: the same white circle */
.framer-W0Yc8 .framer-44o78m img {
  background: #fff !important;
  border-radius: 50% !important;
  object-fit: contain !important;
}
.framer-W0Yc8 .framer-44o78m img[src*="a3wfsSQOlvqi3OzUWHBR0LOHiLc"],
.framer-W0Yc8 .framer-44o78m img[src*="C7wNrb4sFkzAEexkMSHeNq23I"] { padding: 7px !important; }

/* Careers: Framer renders the desktop block on every screen size AND a tablet/phone copy
   under it (the live site shows the page twice). Keep one block, laid out for the screen. */
.framer-5oq9U .framer-1m2jj5w,
.framer-5oq9U .framer-vb18e { display: none !important; }
@media (max-width: 809.98px) {
  .framer-5oq9U .framer-1izqchu { padding: 0 20px !important; }
  .framer-5oq9U .framer-7zpw68,
  .framer-5oq9U .framer-1xz4yia { width: 100% !important; padding-left: 0 !important; padding-right: 0 !important; }
  .framer-5oq9U .framer-cvumna,
  .framer-5oq9U .framer-1d7fm6m,
  .framer-5oq9U .framer-1989hnz,
  .framer-5oq9U .framer-dokzfr { width: 100% !important; max-width: 100% !important; }
  .framer-5oq9U .framer-vuyvfb,
  .framer-5oq9U .framer-zwyrc2 { width: 100% !important; }
  /* the Team / Role / Location header row is a desktop table header; each team is a card below */
  .framer-5oq9U .framer-q16j3r { display: none !important; }
  .framer-5oq9U .framer-1ub0rpi { flex-direction: column !important; align-items: stretch !important; gap: 12px !important; width: 100% !important; }
  .framer-5oq9U .framer-lqkr5n,
  .framer-5oq9U .framer-1xkjmmp { width: 100% !important; flex: none !important; }
  .framer-5oq9U .framer-p6aaze { width: 100% !important; justify-content: space-between !important; gap: 16px !important; }
  .framer-5oq9U .framer-p6aaze > * { flex: 1 1 0 !important; width: auto !important; }
}

/* Footer stays inside the screen at every width (careers uses the desktop footer on phones) */
.framer-W0Yc8 .framer-siy6us,
.framer-W0Yc8 .framer-13b04j2,
.framer-W0Yc8 .framer-k3duib { max-width: calc(100vw - 40px) !important; }
.framer-W0Yc8 .framer-lq4yz3,
.framer-W0Yc8 .framer-pe4fsh,
.framer-W0Yc8 .framer-6t15g5 { max-width: 100% !important; }
.framer-W0Yc8 .framer-pe4fsh :is(h1, h2),
.framer-W0Yc8 .framer-pe4fsh :is(h1, h2) span { --framer-font-size: clamp(34px, 6.6vw, 100px) !important; }
.framer-W0Yc8 .framer-uqpesh { flex-wrap: wrap !important; justify-content: center !important; max-width: 100% !important; }
@media (max-width: 809.98px) {
  .framer-W0Yc8 .framer-lq4yz3,
  .framer-W0Yc8 .framer-pe4fsh,
  .framer-W0Yc8 .framer-6t15g5 { width: 100% !important; }
  .framer-W0Yc8 .framer-pe4fsh,
  .framer-W0Yc8 .framer-pe4fsh :is(h1, h2),
  .framer-W0Yc8 .framer-6t15g5 p { white-space: normal !important; text-align: center !important; }
  .framer-W0Yc8 .framer-6t15g5 p { --framer-font-size: 18px !important; }
  .framer-W0Yc8 .framer-uqpesh { gap: 12px 20px !important; }
  .framer-W0Yc8 .framer-34skce { flex-wrap: wrap !important; justify-content: center !important; gap: 16px !important; }
}


/* Blog posts: previous / next links sit side by side inside the column and wrap, instead of
   running off both edges of the screen */
:has(> [data-framer-name="Previous"]) { justify-content: space-between !important; gap: 32px !important; }
[data-framer-name="Previous"],
[data-framer-name="Next"] { flex: 1 1 0 !important; min-width: 0 !important; width: auto !important; white-space: normal !important; }
[data-framer-name="Previous"] p,
[data-framer-name="Next"] p { white-space: normal !important; }
[data-framer-name="Next"] p { text-align: right !important; }
@media (min-width: 810px) {
  .framer-W0Yc8 .framer-uqpesh { width: max-content !important; flex-wrap: nowrap !important; }
}
@media (max-width: 1199.98px) {
  .framer-W0Yc8 .framer-13b04j2 { padding: 28px 20px !important; }
}
@media (max-width: 809.98px) {
  .framer-W0Yc8 .framer-34skce { flex-wrap: wrap !important; justify-content: center !important; }
  .framer-W0Yc8 .framer-34skce > .framer-44o78m { flex-basis: 100% !important; }
  .framer-W0Yc8 .framer-44o78m { flex-wrap: wrap !important; justify-content: center !important; max-width: calc(100vw - 40px) !important; width: auto !important; overflow: visible !important; }
}

/* Short windows: the fixed footer is a set height, so tighten it until everything fits */
@media (max-height: 640px) and (min-width: 810px) {
  .framer-W0Yc8 .framer-siy6us > div:first-child { display: none !important; } /* "Start Your Project Now" pill */
  .framer-W0Yc8 .framer-siy6us { gap: 10px !important; padding-top: 0 !important; padding-bottom: 0 !important; }
  .framer-W0Yc8 .framer-pe4fsh :is(h1, h2),
  .framer-W0Yc8 .framer-pe4fsh :is(h1, h2) span { --framer-font-size: clamp(30px, 4.6vw, 64px) !important; }
  .framer-W0Yc8 .framer-6t15g5 p,
  .framer-W0Yc8 .framer-6t15g5 p span { --framer-font-size: 18px !important; }
  .framer-W0Yc8 .framer-13b04j2 { padding: 8px 20px !important; }
  .framer-W0Yc8 .framer-k3duib { gap: 10px 32px !important; }
  .framer-W0Yc8 .framer-44o78m img { width: 44px !important; height: 44px !important; }
}
/* phone footer: four equal white badges on one line, social icons centred under them */
.framer-W0Yc8 .framer-v8n0lg { flex-wrap: wrap !important; justify-content: center !important; gap: 12px 10px !important; height: auto !important; width: 232px !important; padding: 0 !important; }
.framer-W0Yc8 .framer-v8n0lg > div { width: 48px !important; height: 48px !important; flex: none !important; position: relative !important; inset: auto !important; transform: none !important; }
.framer-W0Yc8 .framer-v8n0lg > a { position: relative !important; inset: auto !important; transform: none !important; flex: none !important; }
.framer-W0Yc8 .framer-v8n0lg img { background: #fff !important; border-radius: 50% !important; object-fit: contain !important; width: 100% !important; height: 100% !important; }
.framer-W0Yc8 .framer-v8n0lg img[src*="a3wfsSQOlvqi3OzUWHBR0LOHiLc"],
.framer-W0Yc8 .framer-v8n0lg img[src*="C7wNrb4sFkzAEexkMSHeNq23I"] { padding: 6px !important; }
@media (max-width: 809.98px) {
  .framer-W0Yc8 .framer-34skce { width: 100% !important; }
}
.framer-W0Yc8 .framer-hv1i8a p,
.framer-W0Yc8 .framer-hv1i8a p * { color: #fff !important; -webkit-text-fill-color: #fff !important; }

/* Blog posts and job pages on phones and small tablets: header, footer and a few fixes.
   Desktop (810px and up) never shows any of this. */
.ethos-mhead, .ethos-mfoot { display: none; }
@media (max-width: 809.98px) {
  .ethos-mhead {
    display: block; position: fixed; top: 0; left: 0; right: 0; z-index: 50;
    background: rgb(10, 10, 10); border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  }
  .ethos-mhead-bar { display: flex; align-items: center; justify-content: space-between; height: 64px; padding: 0 20px; }
  .ethos-mhead-logo img { display: block; width: 104px; height: auto; }
  .ethos-mhead-btn { width: 44px; height: 44px; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 6px; background: none; border: 0; cursor: pointer; padding: 0; }
  .ethos-mhead-btn span { display: block; width: 26px; height: 2px; background: #fff; border-radius: 2px; transition: transform 0.2s, opacity 0.2s; }
  .ethos-mhead.is-open .ethos-mhead-btn span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
  .ethos-mhead.is-open .ethos-mhead-btn span:nth-child(2) { opacity: 0; }
  .ethos-mhead.is-open .ethos-mhead-btn span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }
  .ethos-mhead-menu { display: flex; flex-direction: column; padding: 8px 20px 20px; }
  .ethos-mhead-menu[hidden] { display: none; }
  .ethos-mhead-menu a { color: #fff; text-decoration: none; font: 500 18px/1.2 "Satoshi", "Satoshi Placeholder", sans-serif; padding: 12px 0; border-bottom: 1px solid rgba(255, 255, 255, 0.08); }
  a.ethos-mhead-cta, a.ethos-mfoot-cta {
    margin-top: 16px; border: 0; border-radius: 999px; background: rgb(79, 70, 229); text-align: center; padding: 14px 20px;
    color: #fff; text-decoration: none; font: 500 17px/1.2 "Satoshi", "Satoshi Placeholder", sans-serif; display: block;
  }
  #main[data-page^="/blog/"], #main[data-page^="/careers/"] { padding-top: 64px; }
  .ethos-mfoot {
    display: flex; flex-direction: column; align-items: center; gap: 18px; text-align: center;
    padding: 48px 20px 40px; background: rgb(10, 10, 10); border-top: 1px solid rgba(255, 255, 255, 0.08);
    font-family: "Satoshi", "Satoshi Placeholder", sans-serif; color: #fff;
  }
  .ethos-mfoot-title { margin: 0; font-size: 28px; line-height: 1.15; font-weight: 500; }
  a.ethos-mfoot-cta { margin-top: 0; min-width: 200px; }
  .ethos-mfoot p { margin: 0; }
  .ethos-mfoot-contact { display: flex; flex-direction: column; gap: 6px; }
  .ethos-mfoot a { color: #fff; text-decoration: none; font-size: 16px; }
  .ethos-mfoot-contact a, .ethos-mfoot-links a, .ethos-mfoot-social a { padding: 6px 4px; display: inline-block; }
  .ethos-mfoot-links, .ethos-mfoot-social { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 16px; }
  .ethos-mfoot-social a { color: rgb(170, 170, 190); }
  .ethos-mfoot-copy { font-size: 14px; color: rgb(170, 170, 170); }
  /* previous / next: stacked, full width, easy to tap */
  :has(> [data-framer-name="Previous"]) { flex-direction: column !important; align-items: stretch !important; gap: 8px !important; width: 100% !important; }
  [data-framer-name="Previous"], [data-framer-name="Next"] { flex: none !important; width: 100% !important; }
  [data-framer-name="Previous"] a, [data-framer-name="Next"] a { display: block; padding: 10px 0; }
  /* job pages: the role name reads as the page heading */
  .ethos-role-title { font-size: 30px !important; --framer-font-size: 30px !important; line-height: 1.15 !important; color: #fff !important; -webkit-text-fill-color: #fff !important; font-weight: 600 !important; }
  .ethos-role-title * { font-size: inherit !important; color: inherit !important; -webkit-text-fill-color: inherit !important; }
  #main[data-page^="/blog/"] img, #main[data-page^="/careers/"] img { max-width: 100%; }
}

/* Anchor jumps (e.g. /#solutions) land below the fixed nav, not under it. */
html { scroll-padding-top: 170px; }

/* Home: "Where insight meets innovation" removed (also stripped server-side). */
[data-page="/"] .framer-9r87wk { display: none !important; }
