/* Ceacio site styles layered on top of the Framer export.
   Loaded on every page after Framer's own styles. */

/* Some Framer text boxes have fixed widths wider than their cards on tablet and phone,
   which cut text off at the card edge. Let them shrink to the card instead. */
@media (max-width: 1199.98px) {
  #main [data-framer-component-type="RichTextContainer"] {
    max-width: 100%;
  }
}

/* About → "Who we are": keep a gap between its two paragraphs. */
#main .framer-64sitg > p + p {
  margin-top: 1em !important;
}

/* ---------------------------------------------------------------------------
   "What we do at a glance" (Home and Services)
   --------------------------------------------------------------------------- */
.cx-glance {
  --cx-teal: #198075;
  --cx-teal-light: #59e3d5;
  --cx-ink: #051c1a;
  --cx-mint: #ebf4f5;
  --cx-text: #555;
  box-sizing: border-box;
  width: 100%;
  align-self: stretch;
  padding: 100px 40px;
  background: #fff;
  font-family: "Manrope", "Manrope Placeholder", sans-serif;
  color: var(--cx-ink);
}
.cx-glance--tint { background: #fafafa; }
.cx-glance *, .cx-glance *::before, .cx-glance *::after { box-sizing: border-box; }
.cx-glance__inner { max-width: 1120px; margin: 0 auto; }
.cx-glance__head { max-width: 720px; margin: 0 auto 56px; text-align: center; }
.cx-glance__eyebrow {
  margin: 0 0 16px;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--cx-teal);
}
.cx-glance__title {
  margin: 0;
  font-size: 56px;
  line-height: 1.2;
  font-weight: 700;
  letter-spacing: -0.05em;
  color: var(--cx-ink);
}
.cx-glance__title em { font-style: italic; color: var(--cx-teal); }
.cx-glance__lead {
  margin: 20px auto 0;
  max-width: 560px;
  font-size: 16px;
  line-height: 1.5;
  font-weight: 500;
  color: var(--cx-text);
}
.cx-glance__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  align-items: stretch; /* both cards the same height */
}
.cx-glance__card { border-radius: 16px; padding: 36px 36px 28px; }
.cx-glance__card--materials { background: var(--cx-mint); }
.cx-glance__card--services { background: var(--cx-ink); color: #fff; }
.cx-glance__card-head {
  display: flex;
  align-items: center;
  gap: 14px;
  padding-bottom: 20px;
  margin-bottom: 8px;
  border-bottom: 1px solid rgba(5, 28, 26, 0.12);
}
.cx-glance__card--services .cx-glance__card-head { border-bottom-color: rgba(255, 255, 255, 0.14); }
.cx-glance__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: var(--cx-teal);
  color: #fff;
}
.cx-glance__card-title {
  margin: 0;
  font-size: 28px;
  line-height: 1.2;
  font-weight: 700;
  letter-spacing: -0.03em;
}
.cx-glance__count {
  margin-left: auto;
  font-size: 14px;
  font-weight: 500;
  color: var(--cx-teal);
  white-space: nowrap;
}
.cx-glance__card--services .cx-glance__count { color: var(--cx-teal-light); }
.cx-glance__list { list-style: none; margin: 0; padding: 0; }
.cx-glance__list li {
  display: flex;
  align-items: baseline;
  gap: 16px;
  padding: 14px 0;
  border-bottom: 1px solid rgba(5, 28, 26, 0.08);
  font-size: 17px;
  line-height: 1.45;
  font-weight: 500;
}
.cx-glance__list li:last-child { border-bottom: 0; }
.cx-glance__card--services .cx-glance__list li { border-bottom-color: rgba(255, 255, 255, 0.08); }
.cx-glance__num {
  flex: 0 0 auto;
  min-width: 24px;
  font-size: 14px;
  font-weight: 700;
  color: var(--cx-teal);
  font-variant-numeric: tabular-nums;
}
.cx-glance__card--services .cx-glance__num { color: var(--cx-teal-light); }

@media (max-width: 1199.98px) {
  .cx-glance { padding: 80px 20px; }
  .cx-glance__title { font-size: 44px; }
}
@media (max-width: 809.98px) {
  .cx-glance { padding: 64px 20px; }
  .cx-glance__head { margin-bottom: 36px; }
  .cx-glance__eyebrow { font-size: 16px; }
  .cx-glance__title { font-size: 36px; }
  .cx-glance__grid { grid-template-columns: 1fr; gap: 16px; }
  .cx-glance__card { padding: 28px 22px 18px; }
  .cx-glance__card-title { font-size: 24px; }
  .cx-glance__list li { font-size: 16px; padding: 12px 0; }
}

/* ---------------------------------------------------------------------------
   "Who we are" value cards (Home, About, and Services on phone)
   Operational Excellence · Uncompromising Integrity · Empowering People ·
   Safety & Sustainability. Framer lays these out with fixed sizes and
   absolutely positioned text; this turns them into a responsive grid, gives
   each card an icon and the #EBF4F5 background.
   Desktop/tablet versions show at 810px and up, phone versions below 810px
   (Framer hides the other one), so each rule is scoped to its own range.
   --------------------------------------------------------------------------- */
:root {
  --cx-values-icon-excellence: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='6'/%3E%3Cpath d='M15.477 12.89 17 22l-5-3-5 3 1.523-9.11'/%3E%3C/svg%3E");
  --cx-values-icon-integrity: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E");
  --cx-values-icon-people: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.87'/%3E%3Cpath d='M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E");
  --cx-values-icon-safety: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 20A7 7 0 0 1 9.8 6.1C15.5 5 17 4.48 19 2c1 2 2 4.18 2 8 0 5.5-4.78 10-10 10Z'/%3E%3Cpath d='M2 21c0-3 1.85-5.36 5.08-6C9.5 14.52 12 13 13 12'/%3E%3C/svg%3E");
}

/* Shared card look, used at every size */
.framer-rh27ks, .framer-ceog1b, .framer-1e20pi1, .framer-15546z6,      /* Home, desktop/tablet */
.framer-j0ywxs, .framer-gb73qs, .framer-1otd7dk, .framer-1nj3vf4,      /* Home, phone */
.framer-1cs0w4e, .framer-rtyb83, .framer-1nio2kj, .framer-y3v1be,      /* About, desktop/tablet */
.framer-v2upql, .framer-1g4u65g, .framer-1hkg6he, .framer-sdt1wv,      /* About, phone */
.framer-xa85g0, .framer-121akrh, .framer-1heeqis, .framer-1vh7qp9 {    /* Services, phone */
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: flex-start !important;
  gap: 16px !important;
  box-sizing: border-box !important;
  width: auto !important;
  height: auto !important;
  min-width: 0 !important;
  padding: 28px 24px !important;
  background: #ebf4f5 !important;
  border: 1px solid rgba(25, 128, 117, 0.12) !important;
  border-radius: 16px !important;
  overflow: visible !important;
}
/* The icon tile */
:is(.framer-rh27ks, .framer-ceog1b, .framer-1e20pi1, .framer-15546z6,
    .framer-j0ywxs, .framer-gb73qs, .framer-1otd7dk, .framer-1nj3vf4,
    .framer-1cs0w4e, .framer-rtyb83, .framer-1nio2kj, .framer-y3v1be,
    .framer-v2upql, .framer-1g4u65g, .framer-1hkg6he, .framer-sdt1wv,
    .framer-xa85g0, .framer-121akrh, .framer-1heeqis, .framer-1vh7qp9)::before {
  content: "";
  flex: none;
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: #198075 center / 24px 24px no-repeat;
}
:is(.framer-rh27ks, .framer-j0ywxs, .framer-1cs0w4e, .framer-v2upql, .framer-xa85g0)::before { background-image: var(--cx-values-icon-excellence); }
:is(.framer-ceog1b, .framer-gb73qs, .framer-rtyb83, .framer-1g4u65g, .framer-121akrh)::before { background-image: var(--cx-values-icon-integrity); }
:is(.framer-1e20pi1, .framer-1otd7dk, .framer-1nio2kj, .framer-1hkg6he, .framer-1heeqis)::before { background-image: var(--cx-values-icon-people); }
:is(.framer-15546z6, .framer-1nj3vf4, .framer-y3v1be, .framer-sdt1wv, .framer-1vh7qp9)::before { background-image: var(--cx-values-icon-safety); }

/* The text block inside each card: Framer centres it absolutely; put it back in the flow */
:is(.framer-rh27ks, .framer-ceog1b, .framer-1e20pi1, .framer-15546z6,
    .framer-j0ywxs, .framer-gb73qs, .framer-1otd7dk, .framer-1nj3vf4,
    .framer-1cs0w4e, .framer-rtyb83, .framer-1nio2kj, .framer-y3v1be,
    .framer-v2upql, .framer-1g4u65g, .framer-1hkg6he, .framer-sdt1wv,
    .framer-xa85g0, .framer-121akrh, .framer-1heeqis, .framer-1vh7qp9) > * {
  position: static !important;
  inset: auto !important;
  transform: none !important;
  width: 100% !important;
  height: auto !important;
  gap: 8px !important;
  justify-content: flex-start !important;
}
:is(.framer-rh27ks, .framer-ceog1b, .framer-1e20pi1, .framer-15546z6,
    .framer-j0ywxs, .framer-gb73qs, .framer-1otd7dk, .framer-1nj3vf4,
    .framer-1cs0w4e, .framer-rtyb83, .framer-1nio2kj, .framer-y3v1be,
    .framer-v2upql, .framer-1g4u65g, .framer-1hkg6he, .framer-sdt1wv,
    .framer-xa85g0, .framer-121akrh, .framer-1heeqis, .framer-1vh7qp9) [data-framer-component-type="RichTextContainer"] {
  align-self: stretch !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
}
/* Readable sizes everywhere (Framer drops descriptions to 10–12px on tablet and phone) */
:is(.framer-rh27ks, .framer-ceog1b, .framer-1e20pi1, .framer-15546z6,
    .framer-j0ywxs, .framer-gb73qs, .framer-1otd7dk, .framer-1nj3vf4,
    .framer-1cs0w4e, .framer-rtyb83, .framer-1nio2kj, .framer-y3v1be,
    .framer-v2upql, .framer-1g4u65g, .framer-1hkg6he, .framer-sdt1wv,
    .framer-xa85g0, .framer-121akrh, .framer-1heeqis, .framer-1vh7qp9) p.framer-text {
  font-size: 14px !important;
  line-height: 1.55 !important;
  color: #555 !important;
}
:is(.framer-rh27ks, .framer-ceog1b, .framer-1e20pi1, .framer-15546z6,
    .framer-j0ywxs, .framer-gb73qs, .framer-1otd7dk, .framer-1nj3vf4,
    .framer-1cs0w4e, .framer-rtyb83, .framer-1nio2kj, .framer-y3v1be,
    .framer-v2upql, .framer-1g4u65g, .framer-1hkg6he, .framer-sdt1wv,
    .framer-xa85g0, .framer-121akrh, .framer-1heeqis, .framer-1vh7qp9) > * > :first-child p.framer-text {
  font-size: 17px !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  color: #051c1a !important;
}

/* Rows and per-card wrappers step aside so the cards sit directly in one grid */
.framer-1ltjlfp, .framer-jmlm4z, .framer-1y684in, .framer-1az4z4t, .framer-1uvp356, .framer-mp1hmt,
.framer-1qk3tvn, .framer-5o4lwe, .framer-1k3lgdp, .framer-1h0wy45, .framer-3j7eu9, .framer-qat4yj {
  /* desktop/tablet versions; harmless below 810px, where their parents are hidden */
  display: contents !important;
}
.framer-zpz13s, .framer-twirts, .framer-13o9xpi, .framer-b2c08, .framer-anjdzh, .framer-1eq71od,
.framer-1cpmwtk, .framer-oqzbxi, .framer-u28lqh, .framer-158vvch, .framer-1lqhe97, .framer-8qncmp,
.framer-hz9cm9, .framer-8dqsrk, .framer-tzvwzd, .framer-18eft1n, .framer-g0dntn, .framer-1vp2zjf {
  display: contents !important;
}

/* ---- Desktop and tablet (810px and up) ---- */
@media (min-width: 810px) {
  .framer-vaio5t, .framer-8q7x8w {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px !important;
    align-items: stretch !important;
    box-sizing: border-box !important;
    width: 100% !important;
    height: auto !important;
    padding: 0 !important;
  }
  /* Home: cards share the row with the "Who we are" text */
  .framer-vaio5t { flex: 1 1 0 !important; min-width: 0 !important; max-width: 580px !important; }
  .framer-wlkmtn { gap: 48px !important; height: auto !important; }
  /* About: one row of four on desktop */
  .framer-8q7x8w { max-width: 1120px !important; }
}
@media (min-width: 1200px) {
  .framer-8q7x8w { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
/* Tablet: Home stacks the text above a full-width 2×2 grid */
@media (min-width: 810px) and (max-width: 1199.98px) {
  .framer-wlkmtn {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 40px !important;
  }
  .framer-1c9ptc { width: 100% !important; max-width: 720px !important; }
  .framer-vaio5t { flex: none !important; max-width: none !important; }
  .framer-8q7x8w { max-width: 760px !important; }
}

/* ---- Phone (below 810px) ---- */
@media (max-width: 809.98px) {
  .framer-ie1wxj, .framer-nytpfl, .framer-ik2xs2 {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px !important;
    align-items: stretch !important;
    box-sizing: border-box !important;
    width: 100% !important;
    height: auto !important;
    padding: 0 !important;
  }
}
/* Small phones: one card per row, icon beside the text */
@media (max-width: 559.98px) {
  .framer-ie1wxj, .framer-nytpfl, .framer-ik2xs2 { grid-template-columns: minmax(0, 1fr); }
  .framer-j0ywxs, .framer-gb73qs, .framer-1otd7dk, .framer-1nj3vf4,
  .framer-v2upql, .framer-1g4u65g, .framer-1hkg6he, .framer-sdt1wv,
  .framer-xa85g0, .framer-121akrh, .framer-1heeqis, .framer-1vh7qp9 {
    flex-direction: row !important;
    gap: 16px !important;
    padding: 20px !important;
  }
  :is(.framer-j0ywxs, .framer-gb73qs, .framer-1otd7dk, .framer-1nj3vf4,
      .framer-v2upql, .framer-1g4u65g, .framer-1hkg6he, .framer-sdt1wv,
      .framer-xa85g0, .framer-121akrh, .framer-1heeqis, .framer-1vh7qp9)::before {
    width: 44px;
    height: 44px;
    background-size: 22px 22px;
  }
  :is(.framer-j0ywxs, .framer-gb73qs, .framer-1otd7dk, .framer-1nj3vf4,
      .framer-v2upql, .framer-1g4u65g, .framer-1hkg6he, .framer-sdt1wv,
      .framer-xa85g0, .framer-121akrh, .framer-1heeqis, .framer-1vh7qp9) > * {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    width: auto !important;
  }
}


/* ---------------------------------------------------------------------------
   "What drives us" (Home and About): Our Mission / Our Vision
   Same card look, icon tiles and text sizes as the "Who we are" value cards,
   and the same overall width as the section above it.
   --------------------------------------------------------------------------- */
:root {
  --cx-drives-icon-mission: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Ccircle cx='12' cy='12' r='6'/%3E%3Ccircle cx='12' cy='12' r='2'/%3E%3C/svg%3E");
  --cx-drives-icon-vision: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E");
}
.framer-1hqbmzc, .framer-1ybn3y4, .framer-ug8y8r, .framer-1na7cx7, .framer-1vtpd8x, .framer-vi91k9, .framer-8he119, .framer-144klsr {
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: flex-start !important;
  gap: 16px !important;
  box-sizing: border-box !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  padding: 28px 24px !important;
  background: #ebf4f5 !important;
  border: 1px solid rgba(25, 128, 117, 0.12) !important;
  border-radius: 16px !important;
  overflow: visible !important;
}
:is(.framer-1hqbmzc, .framer-1ybn3y4, .framer-ug8y8r, .framer-1na7cx7, .framer-1vtpd8x, .framer-vi91k9, .framer-8he119, .framer-144klsr)::before {
  content: "";
  flex: none;
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: #198075 center / 24px 24px no-repeat;
}
:is(.framer-1hqbmzc, .framer-ug8y8r, .framer-1vtpd8x, .framer-8he119)::before { background-image: var(--cx-drives-icon-mission); }
:is(.framer-1ybn3y4, .framer-1na7cx7, .framer-vi91k9, .framer-144klsr)::before { background-image: var(--cx-drives-icon-vision); }
/* Text block back in the flow; Framer's black icon images replaced by the tiles above */
:is(.framer-1hqbmzc, .framer-1ybn3y4, .framer-ug8y8r, .framer-1na7cx7, .framer-1vtpd8x, .framer-vi91k9, .framer-8he119, .framer-144klsr) > * {
  position: static !important;
  inset: auto !important;
  transform: none !important;
  width: 100% !important;
  height: auto !important;
  gap: 8px !important;
  justify-content: flex-start !important;
}
:is(.framer-1hqbmzc, .framer-1ybn3y4, .framer-ug8y8r, .framer-1na7cx7, .framer-1vtpd8x, .framer-vi91k9, .framer-8he119, .framer-144klsr) > * > :first-child { display: none !important; }
:is(.framer-1hqbmzc, .framer-1ybn3y4, .framer-ug8y8r, .framer-1na7cx7, .framer-1vtpd8x, .framer-vi91k9, .framer-8he119, .framer-144klsr) [data-framer-component-type="RichTextContainer"] {
  align-self: stretch !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
}
:is(.framer-1hqbmzc, .framer-1ybn3y4, .framer-ug8y8r, .framer-1na7cx7, .framer-1vtpd8x, .framer-vi91k9, .framer-8he119, .framer-144klsr) p.framer-text {
  font-size: 14px !important;
  line-height: 1.55 !important;
  color: #555 !important;
}
:is(.framer-1hqbmzc, .framer-1ybn3y4, .framer-ug8y8r, .framer-1na7cx7, .framer-1vtpd8x, .framer-vi91k9, .framer-8he119, .framer-144klsr) > * > :nth-child(2) p.framer-text {
  font-size: 17px !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  color: #051c1a !important;
}
/* Framer splits some descriptions into two paragraphs mid-sentence; rejoin them */
:is(.framer-1hqbmzc, .framer-1ybn3y4, .framer-ug8y8r, .framer-1na7cx7, .framer-1vtpd8x, .framer-vi91k9, .framer-8he119, .framer-144klsr) [data-framer-component-type="RichTextContainer"]:has(> p.framer-text + p.framer-text) { display: block !important; }
:is(.framer-1hqbmzc, .framer-1ybn3y4, .framer-ug8y8r, .framer-1na7cx7, .framer-1vtpd8x, .framer-vi91k9, .framer-8he119, .framer-144klsr) [data-framer-component-type="RichTextContainer"] > p.framer-text + p.framer-text,
:is(.framer-1hqbmzc, .framer-1ybn3y4, .framer-ug8y8r, .framer-1na7cx7, .framer-1vtpd8x, .framer-vi91k9, .framer-8he119, .framer-144klsr) [data-framer-component-type="RichTextContainer"]:has(> p.framer-text + p.framer-text) > p.framer-text { display: inline !important; }
:is(.framer-1hqbmzc, .framer-1ybn3y4, .framer-ug8y8r, .framer-1na7cx7, .framer-1vtpd8x, .framer-vi91k9, .framer-8he119, .framer-144klsr) [data-framer-component-type="RichTextContainer"] > p.framer-text + p.framer-text::before { content: " "; }
/* "What drives us" heading: left-aligned with the content at every size */
.framer-zytspw, .framer-13ws4gu {
  box-sizing: border-box !important;
  width: 100% !important;
  padding: 0 !important;
  align-self: center !important;
}
.framer-zytspw p, .framer-13ws4gu p { text-align: left !important; }
/* Card columns: two cards share the image's height */
.framer-1shr9cr, .framer-platw2, .framer-1ej0sdw, .framer-dpw9a4 {
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;
  width: 100% !important;
  height: auto !important;
  min-width: 0 !important;
}
.framer-6m4130, .framer-1qxrgha, .framer-17wrg4j, .framer-kfh598,
.framer-16dc1qf, .framer-fq2i1b, .framer-1uj4c83, .framer-1ib10av {
  flex: 1 1 auto !important;
  width: 100% !important;
  height: auto !important;
}
/* Image: fill its column, rounded like the cards */
.framer-8pbjip, .framer-61e4cw, .framer-b858bm, .framer-jd5qal {
  width: 100% !important;
  height: auto !important;
  min-height: 300px !important;
  align-self: stretch !important;
  border-radius: 16px !important;
  overflow: hidden !important;
}
.framer-8pbjip > :not(.ssr-variant), .framer-8pbjip > .ssr-variant > *,
.framer-61e4cw > :not(.ssr-variant), .framer-61e4cw > .ssr-variant > * {
  width: 100% !important;
  height: 100% !important;
  border-radius: 16px !important;
}

/* ---- Desktop and tablet (810px and up) ---- */
@media (min-width: 810px) {
  .framer-1kg6d1c, .framer-1en0ge1 {
    display: grid !important;
    align-items: stretch !important;
    box-sizing: border-box !important;
    width: 100% !important;
    height: auto !important;
    padding: 0 !important;
  }
}
/* Desktop: Home mirrors "Who we are" (564px text | 48px | 580px cards); About mirrors its two halves */
@media (min-width: 1200px) {
  .framer-wlkmtn { width: 100% !important; max-width: 1192px !important; }
  .framer-1kg6d1c, .framer-zytspw { max-width: 1192px !important; }
  .framer-1kg6d1c { grid-template-columns: minmax(0, 564fr) minmax(0, 580fr); gap: 48px !important; }
  .framer-1en0ge1, .framer-13ws4gu { max-width: 1106px !important; }
  .framer-1en0ge1 { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 30px !important; }
}
/* Tablet: image and cards side by side at the full content width */
@media (min-width: 810px) and (max-width: 1199.98px) {
  .framer-1kg6d1c, .framer-1en0ge1 { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px !important; }
}

/* ---- Phone (below 810px): image on top, cards stacked ---- */
@media (max-width: 809.98px) {
  .framer-10ztnqn, .framer-jzd6hx {
    gap: 16px !important;
    width: 100% !important;
    height: auto !important;
  }
  .framer-b858bm, .framer-jd5qal { min-height: 240px !important; }
}
@media (max-width: 559.98px) {
  .framer-1vtpd8x, .framer-vi91k9, .framer-8he119, .framer-144klsr {
    flex-direction: row !important;
    padding: 20px !important;
  }
  :is(.framer-1vtpd8x, .framer-vi91k9, .framer-8he119, .framer-144klsr)::before { width: 44px; height: 44px; background-size: 22px 22px; }
  :is(.framer-1vtpd8x, .framer-vi91k9, .framer-8he119, .framer-144klsr) > * { flex: 1 1 0 !important; min-width: 0 !important; width: auto !important; }
}

/* ---------------------------------------------------------------------------
   Home → "Your single trusted partner": rounded image like the rest of the site
   --------------------------------------------------------------------------- */
.framer-12ougbl {
  border-radius: 16px !important;
  overflow: hidden !important;
}
.framer-12ougbl > div, .framer-12ougbl img { border-radius: 16px !important; }
/* Phone: Framer sets this image to 200% wide; keep it inside the screen */
@media (max-width: 809.98px) {
  .framer-12ougbl {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 1.66667 !important;
  }
}

/* ---------------------------------------------------------------------------
   Footer → Contact: email address removed (all pages)
   --------------------------------------------------------------------------- */
.framer-7r88r { display: none !important; }

/* ---------------------------------------------------------------------------
   Home → "Let's work together" contact form
   Light #EBF4F5 card, white fields with teal focus, teal submit button
   (#198075, the colour of the site's green bands).
   --------------------------------------------------------------------------- */
form.framer-bbuiry {
  background: #ebf4f5 !important;
  border: 1px solid rgba(25, 128, 117, 0.15) !important;
  border-radius: 20px !important;
  padding: 40px 32px !important;
  gap: 20px !important;
  overflow: hidden !important;
}
/* Labels */
form.framer-bbuiry label p.framer-text {
  color: #051c1a !important;
  font-weight: 600 !important;
  font-size: 14px !important;
}
form.framer-bbuiry label p.framer-text span.framer-text {
  color: #6b7f7c !important;
  font-weight: 500 !important;
}
/* Fields: Framer styles its inputs through these variables */
form.framer-bbuiry .framer-form-input-wrapper {
  --framer-input-background: #ffffff !important;
  --framer-input-border-color: #cfe0df !important;
  --framer-input-border-top-width: 1px !important;
  --framer-input-border-right-width: 1px !important;
  --framer-input-border-bottom-width: 1px !important;
  --framer-input-border-left-width: 1px !important;
  --framer-input-border-style: solid !important;
  --framer-input-border-radius-top-left: 10px !important;
  --framer-input-border-radius-top-right: 10px !important;
  --framer-input-border-radius-bottom-right: 10px !important;
  --framer-input-border-radius-bottom-left: 10px !important;
  --framer-input-focused-border-color: #198075 !important;
  --framer-input-focused-border-width: 1px !important;
  --framer-input-focused-border-style: solid !important;
  --framer-input-font-color: #051c1a !important;
  --framer-input-placeholder-color: #8a9b99 !important;
  --framer-input-box-shadow: none !important;
  background: #ffffff !important;
  border-radius: 10px !important;
  transition: box-shadow 0.15s ease !important;
}
form.framer-bbuiry .framer-form-input-wrapper:hover { --framer-input-border-color: #9fc7c2 !important; }
form.framer-bbuiry .framer-form-input-wrapper:focus-within {
  box-shadow: 0 0 0 3px rgba(25, 128, 117, 0.18) !important;
}
form.framer-bbuiry .framer-form-input {
  color: #051c1a !important;
  -webkit-text-fill-color: #051c1a !important;
  font-size: 15px !important;
  background: transparent !important;
  box-shadow: none !important;
  outline: none !important;
}
form.framer-bbuiry .framer-form-input::placeholder {
  color: #8a9b99 !important;
  -webkit-text-fill-color: #8a9b99 !important;
  opacity: 1 !important;
}
form.framer-bbuiry textarea.framer-form-input { min-height: 130px !important; }
/* Browser autofill keeps the white field */
form.framer-bbuiry .framer-form-input:-webkit-autofill {
  -webkit-box-shadow: 0 0 0 1000px #fff inset !important;
}
/* Submit */
form.framer-bbuiry button {
  height: 52px !important;
  background: #198075 !important;
  border: none !important;
  border-radius: 10px !important;
  box-shadow: none !important;
  cursor: pointer;
  transition: background-color 0.15s ease, transform 0.15s ease !important;
}
form.framer-bbuiry button:hover { background: #146a61 !important; }
form.framer-bbuiry button:active { transform: translateY(1px); }
form.framer-bbuiry button:focus-visible { outline: 3px solid rgba(25, 128, 117, 0.4) !important; outline-offset: 2px; }
form.framer-bbuiry button p.framer-text,
form.framer-bbuiry button p.framer-text * {
  color: #ffffff !important;
  font-weight: 600 !important;
  font-size: 16px !important;
}
form.framer-bbuiry button * { background: transparent !important; }
/* Phone: Name and Email stacked */
@media (max-width: 809.98px) {
  form.framer-bbuiry { padding: 28px 20px !important; }
  .framer-133l8r5 { flex-direction: column !important; gap: 20px !important; }
  .framer-133l8r5 > label { width: 100% !important; flex: none !important; }
}
