/* ==========================================================================
   DS ARCHVIZ: ds-archviz.css (WordPress + Elementor edition)
   Scoped to body.ds-page. Elementor holds the content; this file holds the
   look. Class names are set in Elementor > Advanced > CSS Classes.
   Type: Hanken Grotesk, one family. Its light-to-medium weights stay crisp at
   display size and read cleanly at 15-16px, so headings, body and the form
   share one voice.
   Colour: neutral white / grey / near-black ground; bronze (from the logo)
   is the lead mark, ink is the flooded field: "gold on black".
   ========================================================================== */

:root {
  --ink: #0B0C0E;
  --ink-soft: #16181C;
  --ink-deep: #070809;
  --paper: #FFFFFF;
  --paper-2: #F4F4F5;
  --charcoal: #111111;
  --steel: #5E6168;
  --ivory: #F5F5F5;
  --ivory-soft: #F4F4F5;
  --ivory-55: rgba(245, 245, 245, .62);
  --bronze: #C59B6C;
  --bronze-light: #E2BC8B;
  --bronze-dark: #8E6A3D;
  --film: #EFEFEF;
  --line-light: rgba(17, 17, 17, .1);
  --line-dark: rgba(245, 245, 245, .1);
  --sans: "Hanken Grotesk", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --serif: var(--sans);
  --mono: var(--sans);
  --max: 1320px;
  --g: 48px;
  --pad: 112px;
  --ease-out: cubic-bezier(.215, .61, .355, 1);
  --ease-io: cubic-bezier(.455, .03, .515, .955);
}

/* ---------- Base + Elementor neutralisers ---------- */
body.ds-page {
  margin: 0;
  background: var(--ink);
  color: var(--ivory);
  font-family: var(--sans);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: "ss01" 0;
  overflow-x: clip;
  color-scheme: dark;
  --widgets-spacing: 0px 0px;
  --widgets-spacing-row: 0px;
  --widgets-spacing-column: 0px;
  --kit-widget-spacing: 0px;
}
.ds-page *, .ds-page *::before, .ds-page *::after { box-sizing: border-box; }
.ds-page .elementor { overflow: visible; }
.ds-page .e-con {
  --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px;
  --gap: 0px; --row-gap: 0px; --column-gap: 0px;
  --margin-top: 0px; --margin-bottom: 0px;
  --content-width: 100%; --width: 100%;
  --container-max-width: none;
  --min-height: 0;
}
.ds-page .elementor-widget { margin: 0 !important; --kit-widget-spacing: 0px; }
.ds-page .elementor-widget:not(:last-child) { margin-block-end: 0; }
body.ds-page .elementor-heading-title,
body.ds-page .elementor-widget-text-editor,
body.ds-page .elementor-widget-text-editor p {
  font: inherit; color: inherit; letter-spacing: inherit; line-height: inherit; text-transform: inherit; margin: 0; padding: 0;
}
body.ds-page .elementor-widget-text-editor p + p { margin-top: 1em; }
.ds-page a { color: inherit; text-decoration: none; }

/* ---------- Link colour: the theme kit turns every hovered link black ---------- */
body.ds-page a:hover { color: inherit; }
body.ds-page a.ds-tile, body.ds-page a.ds-tile:hover, body.ds-page a.ds-tile:focus-visible { color: var(--ivory); }
body.ds-page a.ds-footer__logo, body.ds-page a.ds-footer__logo:hover { color: var(--ivory); }

.ds-page img { display: block; max-width: 100%; height: auto; }
.ds-page ul, .ds-page ol { margin: 0; padding: 0; list-style: none; }
.ds-page ::selection { background: var(--bronze); color: var(--ink); }
.ds-page :focus-visible { outline: 2px solid var(--bronze); outline-offset: 3px; border-radius: 2px; }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-stopped { overflow: hidden; }
.ds-defs { position: absolute; width: 0; height: 0; overflow: hidden; }

/* ---------- Layout ---------- */
.ds-page .ds-wrap {
  position: relative; z-index: 1;
  width: 100%;
  max-width: calc(var(--max) + var(--g) * 2);
  margin-inline: auto;
  padding-left: max(var(--g), env(safe-area-inset-left, 0px));
  padding-right: max(var(--g), env(safe-area-inset-right, 0px));
}
.ds-page .ds-section { position: relative; padding-block: var(--pad); display: block; }
.ds-page .ds-section.ds-light, .ds-page .ds-light { color: var(--charcoal); }
.ds-page .ds-about, .ds-page .ds-support, .ds-page .ds-audiences, .ds-page .ds-process, .ds-page .ds-team, .ds-page .ds-teampage { background: var(--paper); }
.ds-page .ds-faq { background: var(--paper-2); }
.ds-page .ds-teampage__close { background: var(--ink); color: var(--ivory); }
.ds-page section[id] { scroll-margin-top: 88px; }
.ds-page .ds-solutions, .ds-page .ds-capabilities, .ds-page .ds-portfolio { background: var(--paper-2); }
.ds-page .ds-why, .ds-page .ds-contact, .ds-page .ds-integrated, .ds-page .ds-marquee { background: var(--ink); color: var(--ivory); }
.ds-page .ds-dock { margin-top: -32px; border-radius: 32px 32px 0 0; z-index: 2; }

/* ---------- Type ---------- */
body.ds-page .ds-h1 .elementor-heading-title,
body.ds-page .ds-h2 .elementor-heading-title,
body.ds-page .ds-h3 .elementor-heading-title { font-family: var(--sans); font-weight: 500; text-wrap: balance; }
body.ds-page .ds-h1 .elementor-heading-title { font-size: clamp(44px, 6.2vw, 92px); line-height: 1; letter-spacing: -.04em; }
body.ds-page .ds-h2 .elementor-heading-title { font-size: clamp(32px, 3.9vw, 56px); line-height: 1.06; letter-spacing: -.032em; }
.ds-page .ds-h2 { max-width: 22ch; }
.ds-page .ds-solutions .ds-h2 { max-width: 26ch; }
body.ds-page .ds-h3 .elementor-heading-title { font-size: clamp(21px, 1.7vw, 26px); line-height: 1.2; letter-spacing: -.018em; }
body.ds-page .ds-h1 em, body.ds-page .ds-h2 em { font-style: normal; color: #A57C4C; }
body.ds-page .ds-dark .ds-h2 em { color: var(--bronze); }
body.ds-page .ds-small-title .elementor-heading-title { font: 600 17px/1.35 var(--sans); letter-spacing: -.01em; }

body.ds-page .ds-label .elementor-heading-title { font: 600 13px/1.4 var(--sans); letter-spacing: 0; text-transform: none; }
.ds-page .ds-label { color: var(--steel); }
.ds-page .ds-dark .ds-label { color: var(--ivory-55); }
.ds-page .ds-intro { font-size: 17px; line-height: 1.6; color: var(--steel); max-width: 64ch; margin-top: 18px !important; }
.ds-page .ds-dark .ds-intro { color: var(--ivory-55); }
.ds-page .ds-lead { font-size: 20px; line-height: 1.5; color: var(--charcoal); letter-spacing: -.01em; }
.ds-page .ds-head { margin-bottom: 48px; max-width: 1040px; }

/* ---------- Buttons ---------- */
body.ds-page .ds-btn .elementor-button {
  position: relative;
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  height: 48px; padding: 0 24px;
  border-radius: 999px; border: 1px solid transparent;
  font: 500 15px/1 var(--sans); letter-spacing: -.005em; text-transform: none;
  white-space: nowrap; cursor: pointer; overflow: hidden; isolation: isolate;
  box-shadow: none; fill: currentColor;
  transition: background-color .2s var(--ease-out), color .2s var(--ease-out), border-color .2s var(--ease-out);
  --roll: 48px;
}
body.ds-page .ds-btn .elementor-button-content-wrapper { display: flex; align-items: center; gap: 10px; }
body.ds-page .ds-btn--primary .elementor-button { background: var(--bronze); color: var(--ink); }
body.ds-page .ds-btn--light .elementor-button { background: var(--ivory); color: var(--ink); }
body.ds-page .ds-btn--outline .elementor-button { background: transparent; color: inherit; border-color: color-mix(in srgb, currentColor 28%, transparent); }
@media (hover: hover) {
  body.ds-page .ds-btn--primary .elementor-button:hover { background: var(--bronze-light); color: var(--ink); }
  body.ds-page .ds-btn--light .elementor-button:hover { background: #fff; color: var(--ink); }
  body.ds-page .ds-btn--outline .elementor-button:hover { border-color: currentColor; color: inherit; }
}
body.ds-page .ds-btn--primary .elementor-button:active { background: var(--bronze-dark); }
body.ds-page .ds-btn .elementor-button:active { transform: scale(.98); }
body.ds-page .ds-btn--sm .elementor-button { --roll: 40px; height: 40px; padding: 0 18px; font-size: 14px; }
body.ds-page .ds-btn--block, body.ds-page .ds-btn--block .elementor-button-wrapper, body.ds-page .ds-btn--block .elementor-button { width: 100%; }
body.ds-page .ds-btn--block .elementor-button { --roll: 52px; height: 52px; }

/* Text roll hover: the label slides up, a copy (text-shadow) rolls in from below */
body.ds-page .ds-btn .elementor-button-text,
.ds-page .ds-roll-t {
  display: inline-block;
  text-shadow: 0 var(--roll, 48px) currentColor;
  transition: transform .4s var(--ease-out);
}
@media (hover: hover) {
  body.ds-page .ds-btn .elementor-button:hover .elementor-button-text,
  body.ds-page .ds-btn .elementor-button:focus-visible .elementor-button-text,
  .ds-page a:hover > .ds-roll-t, .ds-page a:focus-visible > .ds-roll-t { transform: translateY(calc(var(--roll, 48px) * -1)); }
}

/* ---------- Glass ---------- */
.ds-page .ds-glass {
  position: relative;
  -webkit-backdrop-filter: blur(18px) saturate(160%);
  backdrop-filter: blur(18px) saturate(160%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .5), 0 10px 30px rgba(17, 17, 17, .14);
}
.ds-page .ds-glass::before {
  content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 1px; pointer-events: none;
  background: linear-gradient(135deg, rgba(255, 255, 255, .28), rgba(255, 255, 255, 0) 40%, rgba(255, 255, 255, 0) 65%, rgba(255, 255, 255, .1));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
}

/* ---------- Header / nav: always visible, frosted gray ---------- */
.ds-page .ds-header {
  position: fixed !important; z-index: 100;
  top: calc(14px + env(safe-area-inset-top, 0px)); left: 0; right: 0;
  padding-left: max(14px, env(safe-area-inset-left, 0px));
  padding-right: max(14px, env(safe-area-inset-right, 0px));
  pointer-events: none;
  display: block;
}
.admin-bar.ds-page .ds-header { top: calc(46px + env(safe-area-inset-top, 0px)); }
.ds-page .ds-header__capsule {
  pointer-events: auto;
  max-width: 1280px; margin-inline: auto;
  height: 62px;
  display: flex !important; flex-direction: row !important; align-items: center; gap: 12px;
  padding: 0 8px 0 20px;
  border-radius: 999px;
  color: var(--ink);
  background: rgba(206, 209, 214, .66);
}

.ds-page .ds-logo { flex: none; width: auto !important; }
.ds-page .ds-logo a { display: flex; align-items: center; gap: 12px; }
.ds-page .ds-logo img { height: 28px; width: auto; }
.ds-page .ds-logo a::after, .ds-page .ds-footer__logo::after {
  content: ""; display: block; width: 80px; aspect-ratio: 900 / 92;
  background: currentColor;
  -webkit-mask: var(--ds-word) center / contain no-repeat;
  mask: var(--ds-word) center / contain no-repeat;
}

.ds-page .ds-nav { position: relative; display: flex !important; flex-direction: row !important; align-items: center; margin-left: auto; height: 100%; width: auto !important; }
.ds-page .ds-nav__item { position: relative; z-index: 1; height: 100%; width: auto !important; }
.ds-page .ds-nav__item .elementor-heading-title { height: 100%; }
.ds-page .ds-nav__item a {
  display: flex; align-items: center; height: 100%;
  padding: 0 13px; overflow: hidden;
  font: 500 14px/1 var(--sans); letter-spacing: -.005em; white-space: nowrap;
  color: rgba(11, 12, 14, .72); --roll: 62px;
  transition: color .2s var(--ease-out);
}
.ds-page .ds-nav__item a:hover, .ds-page .ds-nav__item a.is-active, .ds-page .ds-nav__item a:focus-visible { color: var(--ink); outline: none; }
.ds-page .ds-nav__item--drop a::after {
  content: ""; width: 6px; height: 6px; margin-left: 8px; flex: none;
  border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor;
  transform: translateY(-2px) rotate(45deg); transition: transform .2s var(--ease-out);
}
.ds-page .ds-nav__drop { position: relative; display: flex !important; align-items: center; height: 100%; width: auto !important; }
.ds-page .ds-nav__drop.is-open .ds-nav__item--drop a::after { transform: translateY(1px) rotate(-135deg); }
.ds-page .ds-nav__panel {
  position: absolute !important; top: calc(100% + 4px); left: -6px; z-index: 5;
  width: auto !important; min-width: 288px; padding: 6px;
  display: flex !important; flex-direction: column !important;
  background: rgba(226, 228, 231, .94); border: 1px solid rgba(255, 255, 255, .6); border-radius: 16px;
  -webkit-backdrop-filter: blur(18px) saturate(160%); backdrop-filter: blur(18px) saturate(160%);
  box-shadow: 0 24px 48px -16px rgba(17, 17, 17, .28);
  opacity: 0; visibility: hidden; transform: translateY(-4px);
  transition: opacity .18s var(--ease-out), transform .18s var(--ease-out), visibility 0s linear .18s;
}
.ds-page .ds-nav__panel::before { content: ""; position: absolute; left: 0; right: 0; top: -12px; height: 12px; }
@media (hover: hover) { .ds-page .ds-nav__drop:hover .ds-nav__panel { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; } }
.ds-page .ds-nav__drop:focus-within .ds-nav__panel, .ds-page .ds-nav__drop.is-open .ds-nav__panel { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.ds-page .ds-nav__sub a {
  display: block; padding: 11px 14px; border-radius: 10px;
  font: 400 14px/1.3 var(--sans); color: rgba(11, 12, 14, .78); white-space: nowrap;
  transition: background-color .15s, color .15s;
}
.ds-page .ds-nav__sub a:hover, .ds-page .ds-nav__sub a:focus-visible { background: rgba(255, 255, 255, .6); color: var(--ink); outline: none; }

.ds-nav-lens {
  position: absolute; z-index: 0; top: 12px; bottom: 12px; left: 0; width: 0;
  border-radius: 999px; opacity: 0; pointer-events: none;
  background: radial-gradient(80px circle at var(--mx, 50%) var(--my, 50%), rgba(255, 255, 255, .55), transparent 65%), rgba(255, 255, 255, .32);
  -webkit-backdrop-filter: blur(3px) saturate(160%);
  backdrop-filter: blur(3px) saturate(160%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .6), 0 1px 2px rgba(17, 17, 17, .06);
  will-change: transform;
}
.has-refraction .ds-nav-lens { backdrop-filter: url(#ds-liquid) saturate(160%); }
.ds-page .ds-header__cta { margin-left: 6px !important; width: auto !important; flex: none; }
.ds-page .ds-header__contact { margin-left: 10px !important; }
.ds-page .ds-burger-w { display: none; width: auto !important; }
.ds-page .ds-burger {
  display: grid; place-content: center; gap: 7px; width: 44px; height: 44px; border-radius: 50%;
  background: transparent; border: 0; cursor: pointer; color: inherit; padding: 0;
}
body.ds-page .ds-header .ds-burger, body.ds-page .ds-header .ds-burger:hover, body.ds-page .ds-header .ds-burger:focus {
  background: transparent !important; border: 0 !important; color: var(--ink) !important; box-shadow: none !important;
}
body.ds-page .ds-header .ds-burger:focus-visible { outline: 2px solid var(--bronze) !important; outline-offset: 2px; }
.ds-page .ds-burger span { display: block; width: 20px; height: 1.5px; background: currentColor; transition: transform .3s var(--ease-out); }
.ds-page .ds-burger[aria-expanded="true"] span:first-child { transform: translateY(4.25px) rotate(45deg); }
.ds-page .ds-burger[aria-expanded="true"] span:last-child { transform: translateY(-4.25px) rotate(-45deg); }

/* Mobile menu */
.ds-page .ds-menu {
  position: fixed !important; inset: 0; z-index: 90;
  display: flex !important; flex-direction: column !important; justify-content: space-between;
  padding: calc(104px + env(safe-area-inset-top, 0px)) max(22px, env(safe-area-inset-right, 0px)) calc(28px + env(safe-area-inset-bottom, 0px)) max(22px, env(safe-area-inset-left, 0px));
  background: rgba(8, 9, 10, .94);
  -webkit-backdrop-filter: blur(24px); backdrop-filter: blur(24px);
  color: var(--ivory); overflow-y: auto;
  visibility: hidden; opacity: 0;
  transition: opacity .3s var(--ease-out), visibility 0s .3s;
}
.ds-page .ds-menu.is-open { visibility: visible; opacity: 1; transition: opacity .3s var(--ease-out), visibility 0s 0s; }
.ds-page .ds-menu__list { display: flex !important; flex-direction: column !important; gap: 2px; }
.ds-page .ds-menu__link { overflow: hidden; }
body.ds-page .ds-menu__link .elementor-heading-title { font: 500 30px/1.25 var(--sans); letter-spacing: -.025em; }
.ds-page .ds-menu__link a { display: block; padding: 4px 0; }
.ds-page .ds-menu__link .elementor-heading-title { transform: translateY(110%); transition: transform .5s var(--ease-out); }
.ds-page .ds-menu.is-open .ds-menu__link .elementor-heading-title { transform: none; }
.ds-page .ds-menu__link:nth-child(2) .elementor-heading-title { transition-delay: .03s; }
.ds-page .ds-menu__link:nth-child(3) .elementor-heading-title { transition-delay: .06s; }
.ds-page .ds-menu__link:nth-child(4) .elementor-heading-title { transition-delay: .09s; }
.ds-page .ds-menu__link:nth-child(5) .elementor-heading-title { transition-delay: .12s; }
.ds-page .ds-menu__link:nth-child(6) .elementor-heading-title { transition-delay: .15s; }
.ds-page .ds-menu__link:nth-child(7) .elementor-heading-title { transition-delay: .18s; }
.ds-page .ds-menu__link:nth-child(8) .elementor-heading-title { transition-delay: .21s; }
.ds-page .ds-menu__foot { display: flex !important; flex-direction: column !important; gap: 20px; padding-top: 32px; }

/* ---------- HERO ---------- */
.ds-page .ds-hero { position: relative; height: 350vh; background: var(--film); color: var(--charcoal); display: block; }
.ds-page .ds-hero__stage { position: sticky !important; top: 0; height: 100vh; height: 100svh; overflow: hidden; display: block; }
.ds-page .ds-hero__media { position: absolute !important; inset: 0; }
.ds-hero__poster, .ds-hero__canvas { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ds-hero__poster img { width: 100%; height: 100%; object-fit: cover; }
.ds-hero__canvas { opacity: 0; transition: opacity .5s var(--ease-out); }
.ds-hero.is-ready .ds-hero__canvas { opacity: 1; }
.ds-hero__veil {
  position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(239, 239, 239, .55) 0%, rgba(239, 239, 239, 0) 42%), linear-gradient(100deg, rgba(239, 239, 239, .35) 0%, rgba(239, 239, 239, 0) 45%);
}
.ds-hero__night {
  position: absolute; inset: 0; pointer-events: none; opacity: 0;
  background:
    linear-gradient(90deg, rgba(11, 12, 14, .55) 0%, rgba(11, 12, 14, .18) 55%, rgba(11, 12, 14, 0) 100%),
    linear-gradient(0deg, rgba(11, 12, 14, .55) 0%, rgba(11, 12, 14, 0) 45%),
    radial-gradient(ellipse 60% 55% at 62% 58%, rgba(11, 12, 14, .45) 0%, rgba(11, 12, 14, .8) 100%);
}
.ds-hero__dusk {
  position: absolute; inset: 0; pointer-events: none; opacity: 0;
  background: linear-gradient(0deg, var(--ink) 0%, rgba(11, 12, 14, .92) 22%, rgba(11, 12, 14, .55) 48%, rgba(11, 12, 14, 0) 78%);
}
.ds-hero__progress { position: absolute; left: 0; right: 0; bottom: 0; height: 2px; z-index: 5; transition: opacity .6s .2s; }
.ds-hero__progress i { display: block; height: 100%; background: var(--bronze); transform: scaleX(0); transform-origin: left; transition: transform .3s var(--ease-out); }
.ds-hero.is-ready .ds-hero__progress { opacity: 0; }

.ds-page .ds-hero__content { position: absolute !important; inset: 0; z-index: 4; display: block; }
.ds-page .ds-hero__head { position: absolute !important; top: max(20vh, 132px); left: max(var(--g), env(safe-area-inset-left, 0px)); right: var(--g); max-width: 1180px; display: block; }
/* Hero copy moves as one composited layer while the film scrubs (stops glyph shimmer on iOS) */
.ds-page .ds-hero__head, .ds-page .ds-hero__text, .ds-page .ds-hero__ctas { will-change: transform, opacity; backface-visibility: hidden; -webkit-backface-visibility: hidden; }
body.ds-page .ds-hero__title .elementor-heading-title { max-width: 12em; }
body.ds-page .ds-hero__title em { color: var(--bronze-dark); }
.ds-page .ds-hero__foot {
  position: absolute !important;
  left: max(var(--g), env(safe-area-inset-left, 0px)); right: max(var(--g), env(safe-area-inset-right, 0px));
  bottom: calc(56px + env(safe-area-inset-bottom, 0px));
  display: flex !important; flex-direction: row !important; align-items: flex-end; justify-content: space-between; gap: 48px;
  width: auto !important;
}
.ds-page .ds-hero__text { max-width: 34em; font-size: 18px; line-height: 1.55; font-weight: 400; color: var(--charcoal); }
.ds-page .ds-hero__ctas { display: flex !important; flex-direction: row !important; flex-wrap: wrap; justify-content: flex-end; gap: 10px; width: auto !important; flex: none; }
.ds-page .ds-hero__ctas .ds-btn { width: auto !important; }
body.ds-page .ds-hero__ctas .ds-btn .elementor-button { --roll: 52px; height: 52px; padding: 0 26px; }

/* ---------- MARQUEE ---------- */
.ds-page .ds-marquee {
  position: relative; z-index: 1; display: block;
  padding-block: 24px 56px;
  overflow: hidden; cursor: grab; user-select: none; -webkit-user-select: none; touch-action: pan-y;
}
.ds-page .ds-marquee.is-drag { cursor: grabbing; }
.ds-marquee__track { display: flex; width: max-content; will-change: transform; }
.ds-page .ds-marquee__group { display: flex !important; align-items: center; flex: none; margin: 0; padding: 0; list-style: none; }
.ds-page .ds-marquee__group li {
  font: 400 16px/1 var(--sans); letter-spacing: -.005em;
  color: rgba(245, 245, 245, .62); white-space: nowrap; padding-inline: 24px; transition: color .2s;
}
.ds-page .ds-marquee__group li:hover { color: #fff; }
.ds-page .ds-marquee__group li.ds-sep { padding: 0; width: 5px; height: 5px; border-radius: 50%; background: var(--bronze); flex: none; }

/* ---------- ABOUT ---------- */
.ds-page .ds-about__grid { display: grid !important; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: start; }
.ds-page .ds-about__left { grid-column: 1 / span 5; position: sticky !important; top: 104px; display: block; }
.ds-page .ds-about__right { grid-column: 7 / span 6; display: flex !important; flex-direction: column !important; gap: 20px; color: var(--steel); }
.ds-page .ds-about .ds-h2 { max-width: 13ch; }
.ds-page .ds-about__media { margin-top: 32px !important; aspect-ratio: 4 / 3.8; max-height: 58vh; width: 100%; overflow: hidden; background: var(--paper-2); border-radius: 4px; }
.ds-page .ds-about__media img, .ds-page .ds-about__media a { width: 100%; height: 100%; object-fit: cover; }
.ds-page .ds-about__media img { transform: scale(1.12); }
.ds-page .ds-quote { position: relative; padding: 0; margin-block: 8px !important; }
body.ds-page .ds-quote .elementor-heading-title { font: 500 clamp(22px, 2vw, 28px)/1.3 var(--sans); color: var(--charcoal); letter-spacing: -.02em; }

/* ---------- SOLUTIONS ---------- */
.ds-page .ds-solutions__grid {
  display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px;
}
.ds-page .ds-panel {
  position: relative; overflow: hidden; background: var(--paper); padding: 0 28px 30px; border-radius: 16px;
  border: 1px solid rgba(17, 17, 17, .05);
  box-shadow: 0 1px 2px rgba(17, 17, 17, .04), 0 22px 44px -26px rgba(17, 17, 17, .28);
  display: flex !important; flex-direction: column !important; gap: 12px;
  scroll-margin-top: 96px; transition: box-shadow .4s var(--ease-out);
}
.ds-page .ds-panel__media { position: relative; height: 200px; margin: 0 -28px 12px !important; width: calc(100% + 56px) !important; max-width: none !important; overflow: hidden; background: var(--ink-soft); }
.ds-page .ds-panel__media .elementor-widget-container, .ds-page .ds-panel__media a { height: 100%; }
body.ds-page .ds-panel__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .9s var(--ease-out); }
.ds-page .ds-panel .elementor-widget-text-editor { color: var(--steel); font-size: 15px; line-height: 1.55; }
.ds-page .ds-panel .ds-label { margin-top: auto !important; padding-top: 8px; }
.ds-page .ds-chips ul { display: flex; flex-wrap: wrap; gap: 6px; }
.ds-page .ds-chips li {
  font-size: 13.5px; line-height: 1; padding: 9px 12px; border-radius: 999px;
  background: var(--paper-2); color: var(--charcoal);
  transition: background-color .2s var(--ease-out);
}
@media (hover: hover) and (min-width: 1025px) {
  .ds-page .ds-panel:hover { box-shadow: 0 1px 2px rgba(17, 17, 17, .05), 0 32px 60px -28px rgba(17, 17, 17, .36); }
  body.ds-page .ds-panel:hover .ds-panel__media img { transform: scale(1.05); }
}
@media (hover: hover) and (min-width: 1025px) { .ds-page .ds-panel:hover .ds-chips li { background: #ECEBE8; } }

/* ---------- Shared lists ---------- */
.ds-page .ds-bullets { color: var(--steel); font-size: 15px; line-height: 1.5; }
.ds-page .ds-bullets ul { display: flex; flex-direction: column; gap: 9px; }
.ds-page .ds-bullets li { position: relative; padding-left: 16px; }
.ds-page .ds-bullets li::before { content: ""; position: absolute; left: 0; top: .6em; width: 5px; height: 5px; border-radius: 50%; background: var(--bronze); }
.ds-page .ds-dark .ds-bullets { color: var(--ivory-55); }
.ds-page .ds-3d img, .ds-page .ds-who__icon img { width: 72px; height: 72px; object-fit: cover; border-radius: 14px; background: var(--paper-2); box-shadow: 0 1px 2px rgba(17, 17, 17, .06), 0 10px 24px -12px rgba(17, 17, 17, .35); }

/* Tick list: small bronze check, used by the creative rows and the digital cards */
.ds-page .ds-ticks { color: var(--steel); font-size: 15px; line-height: 1.5; }
.ds-page .ds-ticks ul { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
.ds-page .ds-ticks li { position: relative; padding-left: 26px; }
.ds-page .ds-ticks li::before, .ds-page .ds-checks li::before {
  content: ""; position: absolute; left: 0; top: .2em; width: 16px; height: 16px; border-radius: 50%;
  background: rgba(197, 155, 108, .16) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.5 8.2l2.3 2.3 4.7-4.9' fill='none' stroke='%238E6A3D' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 16px no-repeat;
}

/* ---------- INTEGRATED (dark) ---------- */
.ds-page .ds-int2 { display: grid !important; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: stretch; }
.ds-page .ds-int2__copy { grid-column: 1 / span 6; display: flex !important; flex-direction: column !important; }
.ds-page .ds-int2__label { margin-top: 40px !important; margin-bottom: 4px !important; }
.ds-page .ds-checks { color: var(--ivory); font-size: 16px; line-height: 1.45; }
.ds-page .ds-checks ul { display: block; border-bottom: 1px solid var(--line-dark); }
.ds-page .ds-checks li { position: relative; padding: 14px 0 14px 32px; border-top: 1px solid var(--line-dark); }
.ds-page .ds-checks li::before { top: 16px; background-color: rgba(197, 155, 108, .2); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.5 8.2l2.3 2.3 4.7-4.9' fill='none' stroke='%23E2BC8B' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.ds-page .ds-int2__media { grid-column: 8 / -1; position: relative; min-height: 560px; border-radius: 6px; overflow: hidden; background: var(--ink-soft); }
.ds-page .ds-int2__img { position: absolute !important; inset: 0; }
.ds-page .ds-int2__img img { width: 100%; height: 100%; object-fit: cover; }
.ds-page .ds-int2__overlay { position: absolute !important; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgba(11, 12, 14, 0) 45%, rgba(11, 12, 14, .7) 100%); }
.ds-int2__chips { position: absolute; left: 20px; right: 20px; bottom: 20px; display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.ds-int2__chips li {
  display: inline-flex; align-items: center; gap: 8px; padding: 8px 13px; border-radius: 999px;
  background: rgba(11, 12, 14, .5); border: 1px solid rgba(245, 245, 245, .18); color: var(--ivory);
  font: 500 13px/1.2 var(--sans); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
}
.ds-int2__chips li::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--bronze); }
.ds-page .ds-statement { margin-top: 96px !important; padding-top: 40px; border-top: 1px solid var(--line-dark); }
body.ds-page .ds-statement .elementor-heading-title { font: 500 clamp(26px, 2.7vw, 40px)/1.22 var(--sans); letter-spacing: -.028em; color: var(--ivory); max-width: 36ch; text-wrap: balance; }
body.ds-page .ds-statement em { font-style: normal; color: var(--bronze-light); }
.ds-page .ds-why3 { margin-top: 88px; display: block; }
.ds-page .ds-why3__title { margin-bottom: 24px !important; }
.ds-page .ds-why3__grid { display: grid !important; grid-template-columns: repeat(5, minmax(0, 1fr)); border-top: 1px solid var(--line-dark); }
.ds-page .ds-why3__cell { padding: 24px 24px 4px 0; display: flex !important; flex-direction: column !important; gap: 10px; }
.ds-page .ds-why3__cell + .ds-why3__cell { padding-left: 24px; border-left: 1px solid var(--line-dark); }
.ds-page .ds-why3__cell .elementor-widget-text-editor { color: var(--ivory-55); font-size: 15px; }

/* ---------- WHO THESE SERVICES SUPPORT ---------- */
.ds-page .ds-who { display: grid !important; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: stretch; }
.ds-page .ds-who__nav { grid-column: 1 / span 6; display: flex !important; flex-direction: column !important; justify-content: space-between; gap: 48px; }
.ds-page .ds-who__list { display: block; border-top: 1px solid var(--line-light); }
.ds-page .ds-who__tab { position: relative; border-bottom: 1px solid var(--line-light); cursor: pointer; color: #A3A5AB; transition: color .3s; }
body.ds-page .ds-who__tab .elementor-heading-title { font: 500 clamp(22px, 2.2vw, 32px)/1.15 var(--sans); letter-spacing: -.025em; padding: 18px 0; }
.ds-page .ds-who__tab::before { content: ""; position: absolute; left: 0; top: 50%; width: 0; height: 2px; background: var(--bronze); transition: width .4s var(--ease-out); }
.ds-page .ds-who__tab.is-active { color: var(--charcoal); }
body.ds-page .ds-who__tab .elementor-heading-title { transition: transform .4s var(--ease-out); }
body.ds-page .ds-who__tab.is-active .elementor-heading-title { transform: translateX(36px); }
.ds-page .ds-who__tab.is-active::before { width: 20px; }
@media (hover: hover) { .ds-page .ds-who__tab:hover { color: var(--charcoal); } }
.ds-page .ds-who__tab:focus-visible { outline: 2px solid var(--bronze); outline-offset: 2px; }
.ds-page .ds-who__stage { grid-column: 8 / -1; display: grid !important; background: var(--paper-2); border-radius: 6px; padding: 40px; min-height: 480px; overflow: hidden; }
.ds-page .ds-who__panel { grid-area: 1 / 1; display: flex !important; flex-direction: column !important; gap: 12px; opacity: 0; visibility: hidden; transform: translateY(10px); transition: opacity .45s var(--ease-out), transform .45s var(--ease-out), visibility 0s .45s; }
.ds-page .ds-who__panel.is-active { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.ds-page .ds-who__icon { margin-bottom: auto !important; }
.ds-page .ds-who__icon img { width: 220px; height: 220px; border-radius: 18px; }
body.ds-page .ds-who__title .elementor-heading-title { font: 500 clamp(22px, 1.9vw, 28px)/1.2 var(--sans); letter-spacing: -.02em; }
.ds-page .ds-who__text { color: var(--steel); font-size: 17px; line-height: 1.55; max-width: 42ch; }

/* ---------- CAPABILITIES ---------- */
.ds-page .ds-caps { position: relative; display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.ds-page .ds-caps__col { position: relative; background: var(--paper); border-radius: 6px; padding: 26px 26px 30px; display: flex !important; flex-direction: column !important; gap: 12px; }
.ds-page .ds-caps__col .ds-3d img { width: 88px; height: 88px; }
.ds-page .ds-footnote { margin-top: 24px !important; color: var(--steel); max-width: 80ch; font-size: 15px; }

/* ---------- AUDIENCES ---------- */
.ds-page .ds-aud__track { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.ds-page .ds-card { background: var(--paper-2); border-radius: 6px; padding: 24px 26px 28px; display: flex !important; flex-direction: column !important; gap: 10px; }
.ds-page .ds-card .elementor-widget-text-editor { color: var(--steel); font-size: 15px; }
.ds-page .ds-card .ds-3d img { width: 72px; height: 72px; }
.ds-aud__progress { display: none; }

/* ---------- WHY ---------- */
.ds-page .ds-why__grid {
  position: relative; display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px;
  border: 1px solid var(--line-dark); background: var(--line-dark); border-radius: 6px; overflow: hidden;
}
.ds-page .ds-why__cell { position: relative; z-index: 1; background: var(--ink); padding: 28px 30px 32px; display: flex !important; flex-direction: column !important; gap: 10px; }
.ds-page .ds-why__cell .elementor-widget-text-editor { color: var(--ivory-55); font-size: 15px; }
body.ds-page .ds-why .ds-h3 .elementor-heading-title { font-size: clamp(19px, 1.5vw, 22px); }

/* ---------- PROCESS ---------- */
.ds-page .ds-steps { position: relative; display: grid !important; grid-template-columns: repeat(6, minmax(0, 1fr)); grid-template-rows: auto auto auto; column-gap: 24px; row-gap: 0; }
.ds-steps__line { position: absolute; left: 0; right: 0; top: 0; height: 1px; background: var(--line-light); }
.ds-steps__line i { display: block; height: 100%; background: var(--bronze); transform: scaleX(0); transform-origin: left; }
.ds-page .ds-step { position: relative; padding-top: 26px; display: grid !important; grid-row: span 3; grid-template-rows: subgrid; row-gap: 8px; align-content: start; }
.ds-page .ds-step::before { content: ""; position: absolute; left: 0; top: -3px; width: 7px; height: 7px; border-radius: 50%; background: var(--paper); border: 1px solid rgba(17, 17, 17, .25); transition: background-color .3s, border-color .3s; z-index: 1; }
.ds-page .ds-step.is-on::before { background: var(--bronze); border-color: var(--bronze); }
body.ds-page .ds-step__n .elementor-heading-title { font: 500 28px/1 var(--sans); color: var(--bronze-dark); font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
.ds-page .ds-step__n { margin-bottom: 4px !important; }
.ds-page .ds-step .elementor-widget-text-editor { color: var(--steel); font-size: 15px; }

/* ---------- PORTFOLIO ---------- */
.ds-page .ds-works { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; align-items: start; }
.ds-page .ds-works__col { display: flex !important; flex-direction: column !important; gap: 16px; transform: none !important; }
.ds-page .ds-tile { position: relative; display: block !important; overflow: hidden; background: var(--charcoal); color: var(--ivory); aspect-ratio: 4 / 3.2; border-radius: 6px; }
.ds-page .ds-tile--tall { aspect-ratio: 4 / 5.2; }
.ds-page .ds-tile__media { position: absolute !important; inset: 0; transition: transform .8s var(--ease-out); }
.ds-page .ds-tile__media img { width: 100%; height: 100%; object-fit: cover; }
.ds-page .ds-tile::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(0deg, rgba(11, 12, 14, .88) 0%, rgba(11, 12, 14, .5) 32%, rgba(11, 12, 14, 0) 62%);
}
.ds-page .ds-tile__meta { position: absolute !important; left: 24px; right: 76px; bottom: 22px; z-index: 1; display: block; width: auto !important; }
body.ds-page .ds-tile__title .elementor-heading-title { font: 500 clamp(18px, 1.5vw, 22px)/1.2 var(--sans); letter-spacing: -.015em; text-wrap: balance; }
.ds-tile__arrow {
  position: absolute; right: 20px; bottom: 20px; z-index: 1; width: 40px; height: 40px; border-radius: 50%;
  border: 1px solid rgba(245, 245, 245, .35); display: grid; place-items: center;
  transition: transform .3s var(--ease-out), background-color .2s, border-color .2s;
}
.ds-tile__arrow svg { width: 15px; height: 15px; fill: none; stroke: var(--ivory); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
@media (hover: hover) {
  .ds-page .ds-tile:hover .ds-tile__arrow { transform: rotate(45deg); background: var(--bronze); border-color: var(--bronze); }
  .ds-page .ds-tile:hover .ds-tile__arrow svg { stroke: var(--ink); }
}
.ds-page .ds-works__foot { position: relative; margin-top: 48px; padding-top: 28px; display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px; align-items: start; border-top: 1px solid var(--line-light); }
.ds-page .ds-works__foot .elementor-widget-text-editor { color: var(--steel); font-size: 16px; max-width: 60ch; }
body.ds-page .ds-works__line .elementor-heading-title { font: 500 clamp(20px, 1.8vw, 26px)/1.3 var(--sans); color: var(--charcoal); letter-spacing: -.02em; text-wrap: balance; }

/* ---------- FAQ (Elementor Accordion widget) ---------- */
.ds-page .ds-faq__grid { display: grid !important; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: start; }
.ds-page .ds-faq__grid > .ds-head { grid-column: 1 / span 4; margin-bottom: 0; position: sticky; top: 104px; }
.ds-page .ds-faq__grid > .ds-accordion { grid-column: 6 / -1; }
.ds-page .ds-accordion .elementor-accordion { border-top: 1px solid var(--line-light); }
.ds-page .ds-accordion .elementor-accordion-item { border: 0 !important; border-bottom: 1px solid var(--line-light) !important; }
body.ds-page .ds-accordion .elementor-tab-title {
  display: flex; align-items: center; flex-direction: row-reverse; justify-content: space-between; gap: 24px;
  padding: 20px 0; border: 0; cursor: pointer;
  font: 500 clamp(17px, 1.35vw, 19px)/1.35 var(--sans); color: var(--charcoal); letter-spacing: -.01em;
  transition: color .2s var(--ease-out);
}
body.ds-page .ds-accordion .elementor-tab-title a,
body.ds-page .ds-accordion .elementor-accordion-title { color: inherit; font: inherit; }
body.ds-page .ds-accordion .elementor-tab-title:hover,
body.ds-page .ds-accordion .elementor-tab-title.elementor-active { color: var(--bronze-dark); }
body.ds-page .ds-accordion .elementor-accordion-icon { float: none; width: 20px; flex: none; text-align: center; color: currentColor; font-size: 13px; }
body.ds-page .ds-accordion .elementor-accordion-icon svg { width: 13px; height: 13px; fill: currentColor; }
body.ds-page .ds-accordion .elementor-tab-content {
  border: 0; padding: 0 48px 22px 0; color: var(--steel); font-size: 16px; line-height: 1.6; max-width: 70ch;
}

/* ---------- CONTACT ---------- */
.ds-page .ds-contact__grid { display: grid !important; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: start; }
.ds-page .ds-contact__left { grid-column: 1 / span 5; position: sticky !important; top: 104px; display: flex !important; flex-direction: column !important; }
.ds-page .ds-contact__left .ds-h2 { max-width: 14ch; }
.ds-page .ds-contact__left .ds-label { margin-top: 40px !important; padding-top: 24px; border-top: 1px solid var(--line-dark); }
body.ds-page .ds-contact__name .elementor-heading-title { font: 600 28px/1.15 var(--sans); letter-spacing: -.02em; }
.ds-page .ds-contact__name { margin-top: 10px !important; }
.ds-page .ds-contact__sub { color: var(--ivory-55); font-size: 15px; margin-top: 6px !important; }
.ds-page .ds-formpanel {
  grid-column: 7 / span 6; position: relative;
  background: var(--ink-soft); border: 1px solid rgba(245, 245, 245, .07); border-radius: 8px; padding: 36px;
  display: block;
}

/* MetForm restyle */
.ds-page .ds-formpanel .metform-form-content, .ds-page .ds-formpanel .metform-form-main-wrapper { background: none; }
.ds-page .ds-formpanel .mf-form-wrapper .e-con,
.ds-page .ds-formpanel .metform-form-content .e-con { --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px; background: none; box-shadow: none; }
.ds-page .ds-mf-grid { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px 16px; }
.ds-page .ds-mf-grid > .elementor-element { grid-column: span 4; width: auto !important; min-width: 0; position: relative; }
.ds-page .ds-mf-grid > .w50 { grid-column: span 2; }
.ds-page .ds-mf-grid > .w25 { grid-column: span 1; }
.ds-page .ds-mf-grid > .elementor-element:focus-within { z-index: 40; }
body.ds-page .ds-formpanel .mf-input-label {
  display: block; margin: 0 0 8px !important; padding: 0;
  font: 500 13px/1.4 var(--sans) !important; letter-spacing: 0; text-transform: none; color: rgba(245, 245, 245, .66) !important;
  transition: color .2s;
}
body.ds-page .ds-formpanel .mf-input-wrapper:focus-within .mf-input-label { color: var(--bronze-light) !important; }
body.ds-page .ds-formpanel .mf-input-required-indicator { color: inherit !important; }
body.ds-page .ds-formpanel .mf-input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
body.ds-page .ds-formpanel select.mf-input,
body.ds-page .ds-formpanel .mf-textarea {
  width: 100%; min-width: 0; height: 48px; padding: 0 14px; margin: 0; box-sizing: border-box;
  background: rgba(255, 255, 255, .03); border: 1px solid rgba(245, 245, 245, .14); border-radius: 6px; box-shadow: none;
  font: 400 15px/1.4 var(--sans); color: var(--ivory);
  transition: border-color .2s var(--ease-out), box-shadow .2s var(--ease-out);
  -webkit-appearance: none; appearance: none;
}
body.ds-page .ds-formpanel .mf-textarea { height: auto; min-height: 132px; padding: 12px 14px; resize: vertical; }
body.ds-page .ds-formpanel .mf-input::placeholder, body.ds-page .ds-formpanel .mf-textarea::placeholder { color: rgba(245, 245, 245, .34); }
body.ds-page .ds-formpanel .mf-input:focus, body.ds-page .ds-formpanel .mf-textarea:focus { outline: none; border-color: var(--bronze); box-shadow: 0 0 0 3px rgba(197, 155, 108, .18); }

/* Select (react-select): solid, layered menu */
body.ds-page .ds-formpanel .mf-input-select > .mf_select__control { background-color: rgba(255, 255, 255, .03) !important; }
body.ds-page .ds-formpanel .mf_select__control { min-height: 48px; height: 48px; box-sizing: border-box; border: 1px solid rgba(245, 245, 245, .14) !important; border-radius: 6px !important; box-shadow: none !important; cursor: pointer; }
body.ds-page .ds-formpanel .mf_select__control:hover { border-color: rgba(245, 245, 245, .26) !important; }
body.ds-page .ds-formpanel .mf_select__control--is-focused { border-color: var(--bronze) !important; box-shadow: 0 0 0 3px rgba(197, 155, 108, .18) !important; }
body.ds-page .ds-formpanel .mf_select__value-container { padding: 0 6px 0 14px !important; }
body.ds-page .ds-formpanel .mf_select__single-value, body.ds-page .ds-formpanel .mf_select__input-container { color: var(--ivory) !important; font: 400 15px/1.4 var(--sans) !important; margin: 0 !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
body.ds-page .ds-formpanel .mf_select__placeholder { color: rgba(245, 245, 245, .5) !important; font: 400 15px/1.4 var(--sans) !important; margin: 0 !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
body.ds-page .ds-formpanel .mf_select__indicator-separator { display: none; }
body.ds-page .ds-formpanel .mf_select__indicator { color: var(--bronze) !important; }
body.ds-page .ds-formpanel .mf_select__indicators { align-self: stretch; }
body.ds-page .ds-formpanel .mf-input-select .mf_select__dropdown-indicator {
  border: 0 !important; padding: 0 !important; width: 44px; height: auto !important; align-self: stretch;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23C59B6C' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 12px 8px no-repeat !important;
  transition: transform .2s ease;
}
body.ds-page .ds-formpanel .mf-input-select .mf_select__dropdown-indicator svg { display: none !important; }
body.ds-page .ds-formpanel .mf_select__control--menu-is-open .mf_select__dropdown-indicator { transform: rotate(180deg); }
body.ds-page .ds-formpanel .mf-input-select > .mf_select__menu {
  z-index: 60 !important; margin-top: 6px !important; padding: 6px !important; overflow: hidden;
  background: #1C1E23 !important; border: 1px solid rgba(245, 245, 245, .12) !important; border-radius: 8px !important;
  box-shadow: 0 24px 48px -16px rgba(0, 0, 0, .75) !important;
}
body.ds-page .ds-formpanel .mf_select__menu-list { padding: 0 !important; background: transparent !important; max-height: 296px; }
body.ds-page .ds-formpanel .mf_select__option {
  background: transparent !important; border: 0 !important; box-shadow: none !important; border-radius: 5px; cursor: pointer;
  color: rgba(245, 245, 245, .86) !important; font: 400 15px/1.3 var(--sans) !important; padding: 11px 12px !important; margin: 0 !important;
}
body.ds-page .ds-formpanel .mf_select__option--is-focused { background: rgba(255, 255, 255, .07) !important; color: #fff !important; }
body.ds-page .ds-formpanel .mf_select__option--is-selected { background: rgba(197, 155, 108, .18) !important; color: var(--bronze-light) !important; }
body.ds-page .ds-formpanel .mf-error-message, body.ds-page .ds-formpanel .mf-input-wrapper .mf-error-message { font: 400 13px/1.4 var(--sans); color: var(--bronze-light); margin-top: 6px; }

/* Solution chips (MetForm checkbox) */
body.ds-page .ds-formpanel .mf-checkbox { display: flex; flex-wrap: wrap; gap: 8px; }
body.ds-page .ds-formpanel .mf-checkbox-option { margin: 0 !important; padding: 0; display: inline-block; }
body.ds-page .ds-formpanel .mf-checkbox-option label { position: relative; display: inline-block; cursor: pointer; margin: 0; }
body.ds-page .ds-formpanel .mf-checkbox-option input { position: absolute; opacity: 0; width: 1px; height: 1px; }
body.ds-page .ds-formpanel .mf-checkbox-option input + span, body.ds-page .ds-formpanel .mf-checkbox-option span {
  display: inline-flex; align-items: center; min-height: 40px; padding: 0 15px; border-radius: 999px;
  border: 1px solid rgba(245, 245, 245, .16); font: 400 14px/1 var(--sans); color: rgba(245, 245, 245, .82);
  transition: border-color .2s, background-color .2s, color .2s, transform .15s var(--ease-out);
}
body.ds-page .ds-formpanel .mf-checkbox-option span::before { display: none !important; }
body.ds-page .ds-formpanel .mf-checkbox-option label:hover span { border-color: rgba(245, 245, 245, .36); }
body.ds-page .ds-formpanel .mf-checkbox-option input:checked + span { border-color: var(--bronze); background: rgba(197, 155, 108, .14); color: var(--bronze-light); }
body.ds-page .ds-formpanel .mf-checkbox-option label:active span { transform: scale(.97); }
body.ds-page .ds-formpanel .mf-checkbox-option input:focus-visible + span { outline: 2px solid var(--bronze); outline-offset: 2px; }
body.ds-page .ds-formpanel .ds-mf-chips .mf-input-label { margin-bottom: 14px !important; }

/* Location autocomplete (City -> Country) */
body.ds-page .ds-formpanel .ds-geo .mf-input-wrapper { position: relative; }
.ds-page .ds-mf-grid > .ds-geo.is-geo-open { z-index: 45; }
.ds-geo-list {
  position: absolute; left: 0; top: calc(100% + 6px); z-index: 30; width: 100%; min-width: 240px; box-sizing: border-box;
  margin: 0; padding: 6px; list-style: none; max-height: 312px; overflow-y: auto; overscroll-behavior: contain;
  background: #1C1E23; border: 1px solid rgba(245, 245, 245, .12); border-radius: 8px;
  box-shadow: 0 24px 48px -16px rgba(0, 0, 0, .75);
  opacity: 0; transform: translateY(-4px); transition: opacity .18s var(--ease-out), transform .18s var(--ease-out);
}
.ds-geo-list.is-open { opacity: 1; transform: none; }
.ds-geo-list--city { width: calc(200% + 16px); }
.ds-geo-list[hidden] { display: none; }
.ds-geo-list__item, .ds-geo-list__note {
  display: flex; align-items: baseline; justify-content: space-between; gap: 16px;
  margin: 0; padding: 11px 12px; border-radius: 5px; cursor: pointer;
  font: 400 15px/1.3 var(--sans); color: var(--ivory);
}
.ds-geo-list__note { cursor: default; color: var(--ivory-55); font-size: 14px; }
.ds-geo-list__item.is-active { background: rgba(255, 255, 255, .07); }
.ds-geo-list__item.is-active .ds-geo-list__name { color: #fff; }
.ds-geo-list__name { flex: 0 0 auto; transition: color .15s; }
.ds-geo-list__name mark { background: none; color: var(--bronze-light); padding: 0; }
.ds-geo-list__meta {
  flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: right;
  font: 400 13px/1.3 var(--sans); color: rgba(245, 245, 245, .48);
}
.ds-geo-list::-webkit-scrollbar { width: 6px; }
.ds-geo-list::-webkit-scrollbar-thumb { background: rgba(245, 245, 245, .15); border-radius: 3px; }
@keyframes dsGeoFill { 0% { border-color: var(--bronze); box-shadow: 0 0 0 3px rgba(197, 155, 108, .22); } 100% { border-color: rgba(245, 245, 245, .14); box-shadow: 0 0 0 0 rgba(197, 155, 108, 0); } }
body.ds-page .ds-formpanel .is-geo-filled input.mf-input { animation: dsGeoFill 1.2s var(--ease-out); }

/* Upload (MetForm file upload) */
body.ds-page .ds-formpanel .mf-file-upload-container,
body.ds-page .ds-formpanel .mf-input-file-upload-label {
  position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px;
  min-height: 116px; padding: 20px; width: 100%; height: auto;
  border: 1px dashed rgba(245, 245, 245, .18) !important; border-radius: 6px !important; background: transparent !important; box-shadow: none !important;
  color: rgba(245, 245, 245, .72) !important; font: 400 14px/1.4 var(--sans) !important; letter-spacing: 0; text-transform: none; text-align: center; cursor: pointer;
  transition: border-color .2s, background-color .2s;
}
body.ds-page .ds-formpanel .mf-file-upload-container:hover, body.ds-page .ds-formpanel .mf-input-file-upload-label:hover,
body.ds-page .ds-formpanel .mf-file-upload-container.is-over { border-color: var(--bronze) !important; background: rgba(197, 155, 108, .05) !important; }
body.ds-page .ds-formpanel .mf-input-file-upload-label::before {
  content: ""; width: 26px; height: 26px; display: block;
  background: var(--bronze);
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><path d='M24 32V10'/><path d='M15 19l9-9 9 9'/><path d='M8 30v8h32v-8'/></svg>") center / contain no-repeat;
  mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><path d='M24 32V10'/><path d='M15 19l9-9 9 9'/><path d='M8 30v8h32v-8'/></svg>") center / contain no-repeat;
}
body.ds-page .ds-formpanel .mf-input-file-upload-label span { background: none; border: 0; padding: 0; color: inherit; font: inherit; }
body.ds-page .ds-formpanel .mf-file-name, body.ds-page .ds-formpanel .mf-file-upload-container .mf-file-name { color: var(--ivory-55); font: 400 13px/1.4 var(--sans); }

/* Submit (MetForm button) */
body.ds-page .ds-formpanel button.metform-btn {
  position: relative; width: 100%; height: 52px; margin-top: 6px; padding: 0 24px;
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  border: 0 !important; border-radius: 999px !important; background: var(--bronze) !important; color: var(--ink) !important; box-shadow: none !important;
  font: 500 15px/1 var(--sans) !important; letter-spacing: 0; text-transform: none; cursor: pointer;
  transition: background-color .2s var(--ease-out), transform .15s var(--ease-out);
}
@media (hover: hover) { body.ds-page .ds-formpanel button.metform-btn:hover { background: var(--bronze-light) !important; } }
body.ds-page .ds-formpanel button.metform-btn:active { transform: scale(.99); }
body.ds-page .ds-formpanel .mf-btn-wraper { width: 100%; text-align: left; }
body.ds-page .ds-formpanel button.metform-btn[disabled] { cursor: progress; opacity: .8; }

/* Success state */
body.ds-page .ds-formpanel .mf-response-msg-wrap, body.ds-page .ds-formpanel .mf-success-res { background: none; border: 0; box-shadow: none; padding: 0; }
body.ds-page .ds-formpanel .mf-response-msg, body.ds-page .ds-formpanel .mf-success-res .mf-response-msg {
  display: block; margin: 0; padding: 24px 0; background: none; border: 0;
  font: 500 clamp(24px, 2.4vw, 32px)/1.2 var(--sans); letter-spacing: -.02em; color: var(--ivory);
}
body.ds-page .ds-formpanel .mf-response-msg:empty { padding: 0; }
body.ds-page .ds-formpanel .mf-response-msg i, body.ds-page .ds-formpanel .mf-response-msg svg { display: none; }

/* ---------- FOOTER ---------- */
.ds-page .ds-footer { position: relative; background: var(--ink-deep); color: var(--ivory); padding-top: 80px; overflow: hidden; display: block; }
.ds-page .ds-footer__grid { display: grid !important; grid-template-columns: 2fr 1fr 1.3fr; gap: 48px; padding-bottom: 56px; z-index: 1; }
.ds-page .ds-footer__brand { display: flex !important; flex-direction: column !important; gap: 18px; max-width: 440px; }
.ds-page .ds-footer__logo { display: inline-flex !important; flex-direction: row !important; align-items: center; gap: 14px; align-self: flex-start; width: auto !important; color: var(--ivory); }
.ds-page .ds-footer__logo img { height: 40px; width: auto; }
.ds-page .ds-footer__logo::after { width: 110px; }
.ds-page .ds-footer__tag { color: var(--bronze); }
body.ds-page .ds-footer__tag .elementor-heading-title { font: 500 15px/1.4 var(--sans); }
.ds-page .ds-footer__desc { color: var(--ivory-55); font-size: 15px; }
.ds-page .ds-footer__h { color: rgba(245, 245, 245, .5); margin-bottom: 16px !important; }
body.ds-page .ds-footer__h .elementor-heading-title { font: 600 13px/1.4 var(--sans); }
.ds-page .ds-footer__col { display: block; }
.ds-page .ds-footer__links ul { display: flex; flex-direction: column; gap: 10px; }
.ds-page .ds-footer__links a {
  color: rgba(245, 245, 245, .74); font-size: 15px;
  background: linear-gradient(var(--bronze), var(--bronze)) left bottom / 0 1px no-repeat; padding-bottom: 2px;
  transition: color .2s, background-size .3s var(--ease-out);
}
.ds-page .ds-footer__links a:hover, .ds-page .ds-footer__links a:focus-visible { color: #fff; background-size: 100% 1px; }
.ds-page .ds-footer__bar {
  display: flex !important; flex-direction: row !important; justify-content: space-between; align-items: center; gap: 24px; flex-wrap: wrap;
  padding-top: 22px; padding-bottom: calc(26px + env(safe-area-inset-bottom, 0px));
  border-top: 1px solid rgba(245, 245, 245, .08); font-size: 13px; color: var(--ivory-55); z-index: 1;
}
.ds-page .ds-footer__bar > .elementor-widget { width: auto !important; }

/* ==========================================================================
   Narrow desktop / tablet <=1180: nav collapses into the menu
   ========================================================================== */
@media (max-width: 1180px) {
  .ds-page .ds-nav { display: none !important; }
  .ds-page .ds-header__capsule { justify-content: space-between; padding: 0 6px 0 18px; }
  .ds-page .ds-header__cta { margin-left: 6px !important; }
  .ds-page .ds-header__contact { margin-left: auto !important; }
  .ds-page .ds-burger-w { display: block; }
}

/* Process: six steps need room; below 1180 they sit three to a row */
@media (max-width: 1180px) {
  .ds-page .ds-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 40px; }
  .ds-steps__line { display: none; }
  .ds-page .ds-step { border-top: 1px solid var(--line-light); padding-top: 22px; }
  .ds-page .ds-step::before { display: none; }
  .ds-page .ds-step.is-on { border-top-color: var(--bronze); }
}

/* ==========================================================================
   Tablet <=1024
   ========================================================================== */
@media (max-width: 1024px) {
  :root { --g: 32px; --pad: 88px; }
  .ds-page .ds-header__capsule { height: 58px; }
  .ds-page .ds-hero__foot { flex-direction: column !important; align-items: flex-start; gap: 24px; }
  .ds-page .ds-hero__ctas { justify-content: flex-start; }
  .ds-page .ds-about__left, .ds-page .ds-contact__left { position: static !important; grid-column: 1 / -1; }
  .ds-page .ds-about__right { grid-column: 1 / -1; padding-top: 40px; }
  .ds-page .ds-about__media { max-height: none; aspect-ratio: 16 / 10; }
  .ds-page .ds-formpanel { grid-column: 1 / -1; margin-top: 48px; }
  .ds-page .ds-solutions__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .ds-page .ds-int2__copy, .ds-page .ds-int2__media { grid-column: 1 / -1; }
  .ds-page .ds-int2__media { min-height: 0; aspect-ratio: 4 / 3; margin-top: 40px; }
  .ds-page .ds-statement { margin-top: 72px !important; }
  .ds-page .ds-why3 { margin-top: 64px; }
  .ds-page .ds-why3__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; border-top: 0; }
  .ds-page .ds-why3__cell, .ds-page .ds-why3__cell + .ds-why3__cell { padding: 20px 0 22px; border-left: 0; border-top: 1px solid var(--line-dark); }
  .ds-page .ds-who__nav, .ds-page .ds-who__stage { grid-column: 1 / -1; }
  .ds-page .ds-who__list { display: none; }
  .ds-page .ds-who__nav { margin-bottom: 32px; }
  .ds-page .ds-who__stage { background: none; padding: 0; min-height: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .ds-page .ds-who__panel, .ds-page .ds-who__panel.is-active { grid-area: auto; opacity: 1; visibility: visible; transform: none; background: var(--paper-2); border-radius: 6px; padding: 24px; }
  .ds-page .ds-who__icon { margin-bottom: 8px !important; }
  .ds-page .ds-who__icon img { width: 88px; height: 88px; border-radius: 14px; }
  .ds-page .ds-who__text { font-size: 15px; }
  .ds-page .ds-caps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ds-page .ds-aud__track { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ds-page .ds-why__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ds-page .ds-step.is-on { border-top-color: var(--bronze); }
  .ds-page .ds-works { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ds-page .ds-works__col:nth-child(3) { grid-column: 1 / -1; flex-direction: row !important; }
  .ds-page .ds-works__col:nth-child(3) .ds-tile { flex: 1; }
  .ds-page .ds-faq__grid > .ds-head, .ds-page .ds-faq__grid > .ds-accordion { grid-column: 1 / -1; position: static; }
  .ds-page .ds-faq__grid > .ds-head { margin-bottom: 28px; }
  .ds-page .ds-footer__grid { grid-template-columns: 1fr 1fr; }
  .ds-page .ds-footer__brand { grid-column: 1 / -1; }
}

/* ==========================================================================
   Mobile <=767
   ========================================================================== */
@media (max-width: 767px) {
  :root { --g: 20px; --pad: 64px; }
  .ds-page .ds-dock { margin-top: -24px; border-radius: 24px 24px 0 0; }
  .ds-page .ds-head { margin-bottom: 32px; }
  body.ds-page .ds-h2 .elementor-heading-title { font-size: clamp(30px, 8.6vw, 38px); }
  .ds-page .ds-intro { font-size: 16px; }
  .ds-page .ds-lead { font-size: 18px; }
  .ds-page .ds-header { top: calc(10px + env(safe-area-inset-top, 0px)); padding-left: max(10px, env(safe-area-inset-left, 0px)); padding-right: max(10px, env(safe-area-inset-right, 0px)); }
  .ds-page .ds-header__capsule { height: 56px; padding: 0 4px 0 16px; gap: 8px; }
  .ds-page .ds-logo img { height: 26px; }
  .ds-page .ds-logo a::after { width: 70px; }
  body.ds-page .ds-header__cta .elementor-button { height: 38px; padding: 0 14px; font-size: 13.5px; --roll: 38px; }
  .ds-page .ds-header__contact { display: none; }
  .ds-page .ds-header__contact + .ds-header__cta { margin-left: auto !important; }

  .ds-page .ds-hero { height: 250vh; }
  .ds-page .ds-hero__head { top: max(16vh, 104px); right: var(--g); }
  body.ds-page .ds-hero__title .elementor-heading-title { font-size: clamp(40px, 11.6vw, 48px); }
  .ds-page .ds-hero__foot { align-items: stretch; gap: 20px; bottom: calc(24px + env(safe-area-inset-bottom, 0px)); }
  .ds-page .ds-hero__text { font-size: 16px; }
  .ds-page .ds-hero__ctas { flex-direction: column !important; justify-content: stretch; gap: 8px; width: 100% !important; }
  .ds-page .ds-hero__ctas .ds-btn, .ds-page .ds-hero__ctas .elementor-button-wrapper { width: 100% !important; }
  body.ds-page .ds-hero__ctas .ds-btn .elementor-button { --roll: 50px; width: 100%; height: 50px; }

  .ds-page .ds-marquee { padding-block: 20px 44px; }

  .ds-page .ds-solutions__grid { grid-template-columns: 1fr; gap: 12px; }
  .ds-page .ds-panel { padding: 0 20px 24px; border-radius: 14px; }
  .ds-page .ds-panel__media { height: 180px; margin: 0 -20px 8px !important; width: calc(100% + 40px) !important; }
  .ds-page .ds-int2__label { margin-top: 28px !important; }
  .ds-page .ds-int2__media { aspect-ratio: 4 / 4.6; margin-top: 32px; }
  .ds-int2__chips { left: 14px; right: 14px; bottom: 14px; gap: 6px; }
  .ds-int2__chips li { padding: 7px 11px; font-size: 12.5px; }
  .ds-page .ds-statement { margin-top: 56px !important; padding-top: 28px; }
  .ds-page .ds-why3 { margin-top: 48px; }
  .ds-page .ds-why3__grid { grid-template-columns: 1fr; }
  .ds-page .ds-who__stage { grid-template-columns: 1fr; gap: 12px; }
  .ds-page .ds-who__panel, .ds-page .ds-who__panel.is-active { display: grid !important; grid-template-columns: 64px minmax(0, 1fr); column-gap: 16px; row-gap: 4px; padding: 20px; align-items: start; }
  .ds-page .ds-who__icon { grid-row: span 2; margin: 0 !important; }
  .ds-page .ds-who__icon img { width: 64px; height: 64px; border-radius: 12px; }
  body.ds-page .ds-who__title .elementor-heading-title { font-size: 19px; }
  .ds-page .ds-caps { grid-template-columns: 1fr; gap: 12px; }
  .ds-page .ds-caps__col { padding: 22px 20px 24px; }
  .ds-page .ds-caps__col .ds-3d img { width: 72px; height: 72px; }

  .ds-page .ds-aud__track { grid-template-columns: 1fr; gap: 12px; }
  .ds-page .ds-card { width: 100% !important; padding: 22px 20px 24px; }

  .ds-page .ds-why__grid { grid-template-columns: 1fr; }
  .ds-page .ds-why__cell { padding: 22px 20px 24px; }

  .ds-page .ds-steps { grid-template-columns: 1fr; gap: 28px; padding-left: 28px; }
  .ds-steps__line { display: block; left: 0; right: auto; top: 6px; bottom: 6px; width: 1px; height: auto; }
  .ds-steps__line i { transform-origin: top; transform: scaleY(0); width: 1px; height: 100%; }
  .ds-page .ds-step { border-top: 0; padding-top: 0; }
  .ds-page .ds-step::before { display: block; left: -31px; top: 8px; }
  body.ds-page .ds-step__n .elementor-heading-title { font-size: 24px; }

  .ds-page .ds-works { grid-template-columns: 1fr; gap: 12px; }
  .ds-page .ds-works__col, .ds-page .ds-works__col:nth-child(3) { flex-direction: column !important; gap: 12px; grid-column: auto; }
  .ds-page .ds-tile { aspect-ratio: 4 / 3.2; }
  .ds-page .ds-tile--tall { aspect-ratio: 4 / 4.4; }
  .ds-page .ds-tile__meta { left: 18px; bottom: 18px; right: 66px; }
  .ds-tile__arrow { right: 16px; bottom: 16px; }
  .ds-page .ds-works__foot { grid-template-columns: 1fr; gap: 20px; margin-top: 36px; }

  body.ds-page .ds-accordion .elementor-tab-title { padding: 18px 0; gap: 16px; }
  body.ds-page .ds-accordion .elementor-tab-content { padding-right: 0; }

  .ds-page .ds-formpanel { padding: 24px 18px; margin-inline: 0; width: 100% !important; max-width: none !important; }
  .ds-page .ds-mf-grid { grid-template-columns: 1fr; gap: 18px; }
  .ds-page .ds-mf-grid > .elementor-element, .ds-page .ds-mf-grid > .w50, .ds-page .ds-mf-grid > .w25 { grid-column: 1 / -1; }
  .ds-geo-list--city { width: 100%; }
  body.ds-page .ds-formpanel .mf-input:not([type="checkbox"]):not([type="radio"]):not([type="file"]), body.ds-page .ds-formpanel .mf-textarea { font-size: 16px; height: 50px; }
  body.ds-page .ds-formpanel .mf-textarea { height: auto; }
  body.ds-page .ds-formpanel .mf_select__control { height: 50px; min-height: 50px; }
  body.ds-page .ds-formpanel .mf_select__single-value, body.ds-page .ds-formpanel .mf_select__placeholder { font-size: 16px !important; }

  .ds-page .ds-footer { padding-top: 64px; }
  .ds-page .ds-footer__grid { grid-template-columns: 1fr; gap: 36px; padding-bottom: 44px; }
  .ds-page .ds-footer__bar { flex-direction: column !important; align-items: flex-start; gap: 10px; }
}

@media (max-width: 420px) {
  .ds-page .ds-logo a::after { display: none; }
}

/* ==========================================================================
   Reduced motion: static hero with all copy, no reveals
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
  .ds-page .ds-hero { height: auto; }
  .ds-page .ds-hero__stage { position: relative !important; }
  .ds-hero__canvas, .ds-hero__progress, .ds-hero__dusk, .ds-hero__night { display: none; }
  .ds-page .ds-dock { border-radius: 0; margin-top: 0; }
  .ds-page .ds-about__media img { transform: none; }
  .ds-page *, .ds-page *::before, .ds-page *::after { transition-duration: .01ms !important; }
}

/* ==========================================================================
   Inside the Elementor editor: everything static and visible so it can be edited
   ========================================================================== */
.elementor-editor-active .ds-header, .elementor-editor-active .ds-menu { position: relative !important; top: 0 !important; transform: none !important; }
.elementor-editor-active .ds-menu { visibility: visible !important; opacity: 1 !important; min-height: 0; padding: 32px; }
.elementor-editor-active .ds-menu .ds-menu__link .elementor-heading-title { transform: none !important; }
.elementor-editor-active .ds-nav__panel { position: static !important; opacity: 1; visibility: visible; transform: none; }
.elementor-editor-active .ds-hero { height: auto !important; }
.elementor-editor-active .ds-hero__stage { position: relative !important; }
.elementor-editor-active .ds-about__left, .elementor-editor-active .ds-contact__left, .elementor-editor-active .ds-faq__grid > .ds-head { position: static !important; }
.elementor-editor-active .ds-dock { margin-top: 0; }

/* ---------- Card rows line up: titles, text and tags start at the same height across a row ---------- */
@supports (grid-template-rows: subgrid) {
  .ds-page .ds-solutions__grid > .ds-panel { display: grid !important; grid-row: span 5; grid-template-rows: subgrid; row-gap: 12px; align-content: start; }
  .ds-page .ds-solutions__grid > .ds-panel .ds-label { margin-top: 0 !important; align-self: end; }
  .ds-page .ds-caps > .ds-caps__col { display: grid !important; grid-row: span 3; grid-template-rows: subgrid; row-gap: 12px; align-content: start; }
  .ds-page .ds-aud__track > .ds-card { display: grid !important; grid-row: span 3; grid-template-rows: subgrid; row-gap: 10px; align-content: start; }
  .ds-page .ds-why__grid > .ds-why__cell { display: grid !important; grid-row: span 2; grid-template-rows: subgrid; row-gap: 10px; align-content: start; }
  .ds-page .ds-why3__grid > .ds-why3__cell { display: grid !important; grid-row: span 2; grid-template-rows: subgrid; row-gap: 10px; align-content: start; }
}
/* Portfolio: the three columns finish level (the third column's tiles stretch to fill) */
@media (min-width: 1025px) {
  .ds-page .ds-works { align-items: stretch; }
  .ds-page .ds-works__col:nth-child(3) .ds-tile { flex: 1 1 0; aspect-ratio: auto; min-height: 260px; }
}

/* ---------- TEAM (home teaser + Our Team page) ---------- */
.ds-page .ds-team__head, .ds-page .ds-teampage__closewrap { display: grid !important; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: end; }
.ds-page .ds-team__head { max-width: none; }
.ds-page .ds-team__head > .ds-h2, .ds-page .ds-teampage__closewrap > .ds-h2 { grid-column: 1 / span 6; }
.ds-page .ds-team__aside { grid-column: 7 / -1; display: flex !important; flex-direction: column !important; align-items: flex-start; gap: 24px; }
.ds-page .ds-team__aside .ds-intro { margin-top: 0 !important; }
.ds-page .ds-team__grid { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 44px 20px; }
.ds-page .ds-team__grid--strip { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.ds-page .ds-member { display: flex !important; flex-direction: column !important; align-items: center; text-align: center; gap: 6px; }
body.ds-page .ds-member__art { width: 100% !important; max-width: 176px !important; margin: 0 auto 14px !important; }
.ds-ava {
  position: relative; width: 100%; aspect-ratio: 1; border-radius: 50%; overflow: hidden; display: block;
  color: var(--t); background: radial-gradient(circle at 32% 26%, rgba(255, 255, 255, .34), rgba(255, 255, 255, 0) 58%), var(--c);
  box-shadow: inset 0 -10px 24px rgba(0, 0, 0, .10), 0 18px 34px -22px rgba(17, 17, 17, .45);
  transition: transform .6s cubic-bezier(.34, 1.56, .64, 1), box-shadow .4s var(--ease-out);
}
.ds-ava__i, .ds-ava__n { position: absolute; inset: 0; display: grid; place-items: center; font-family: var(--sans); transition: transform .55s cubic-bezier(.65, 0, .35, 1), opacity .4s; }
.ds-ava__i { font-size: clamp(38px, 3.6vw, 52px); font-weight: 600; letter-spacing: -.03em; }
.ds-ava__n { font-size: clamp(19px, 1.6vw, 23px); font-weight: 600; letter-spacing: -.01em; transform: translateY(70%); opacity: 0; }
@media (hover: hover) {
  .ds-page .ds-member:hover .ds-ava { transform: scale(1.06) rotate(-4deg); box-shadow: inset 0 -10px 24px rgba(0, 0, 0, .10), 0 26px 44px -22px rgba(17, 17, 17, .5); }
  .ds-page .ds-member:hover .ds-ava__i { transform: translateY(-70%); opacity: 0; }
  .ds-page .ds-member:hover .ds-ava__n { transform: none; opacity: 1; }
}
.ds-page .ds-member__dept { color: var(--bronze-dark); }
body.ds-page .ds-member__dept .elementor-heading-title { font: 600 13px/1.3 var(--sans); }
body.ds-page .ds-member__name .elementor-heading-title { font: 600 17px/1.3 var(--sans); letter-spacing: -.01em; }
.ds-page .ds-member__role { color: var(--steel); font-size: 14px; line-height: 1.45; max-width: 28ch; }
.ds-page .ds-teampage { padding-top: calc(var(--pad) + 88px); }
.ds-page .ds-teampage__intro { display: block; max-width: 860px; margin-bottom: 72px; }
body.ds-page .ds-teampage__title .elementor-heading-title { font-size: clamp(44px, 5.6vw, 84px); line-height: 1; letter-spacing: -.04em; }
body.ds-page .ds-teampage__title em { color: #A57C4C; }
.ds-page .ds-teampage__group { display: block; }
.ds-page .ds-teampage__group + .ds-teampage__group { margin-top: 88px; }
.ds-page .ds-teampage__h { padding-bottom: 16px; margin-bottom: 32px !important; border-bottom: 1px solid var(--line-light); }
@media (max-width: 1024px) {
  .ds-page .ds-team__head > .ds-h2, .ds-page .ds-teampage__closewrap > .ds-h2, .ds-page .ds-team__aside { grid-column: 1 / -1; }
  .ds-page .ds-team__aside { margin-top: 16px; }
  .ds-page .ds-team__grid--strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .ds-page .ds-team__grid, .ds-page .ds-team__grid--strip { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 12px; }
  body.ds-page .ds-member__art { max-width: 136px !important; margin-bottom: 10px !important; }
  .ds-ava__i { font-size: 34px; }
  body.ds-page .ds-member__name .elementor-heading-title { font-size: 16px; }
  .ds-page .ds-member__role { font-size: 13px; }
  .ds-page .ds-teampage { padding-top: calc(var(--pad) + 64px); }
  .ds-page .ds-teampage__intro { margin-bottom: 48px; }
  .ds-page .ds-teampage__group + .ds-teampage__group { margin-top: 56px; }
}

/* ---------- Contact details ---------- */
.ds-page .ds-cinfo-w { margin-top: 28px !important; }
.ds-cinfo { margin: 0; display: grid; }
.ds-cinfo__row { display: grid; grid-template-columns: 132px minmax(0, 1fr); gap: 16px; padding: 14px 0; border-top: 1px solid var(--line-dark); }
.ds-cinfo__row:last-child { border-bottom: 1px solid var(--line-dark); }
.ds-cinfo dt { font: 500 13px/1.5 var(--sans); color: var(--ivory-55); padding-top: 1px; }
.ds-cinfo dd { margin: 0; font: 400 15px/1.5 var(--sans); color: var(--ivory); }
body.ds-page .ds-cinfo a { color: var(--ivory); background: linear-gradient(var(--bronze), var(--bronze)) left bottom / 0 1px no-repeat; padding-bottom: 1px; transition: background-size .3s var(--ease-out), color .2s; }
body.ds-page .ds-cinfo a:hover, body.ds-page .ds-cinfo a:focus-visible { color: var(--bronze-light); background-size: 100% 1px; }
@media (max-width: 767px) {
  .ds-cinfo__row { grid-template-columns: 1fr; gap: 4px; }
}

/* ---------- Footer legal link ---------- */
body.ds-page .ds-footer__legal a { color: var(--ivory-55); transition: color .2s; }
body.ds-page .ds-footer__legal a:hover, body.ds-page .ds-footer__legal a:focus-visible { color: #fff; }

/* ---------- Floating WhatsApp + Email ---------- */
.ds-fab {
  position: fixed; z-index: 95; right: max(20px, env(safe-area-inset-right, 0px)); bottom: calc(20px + env(safe-area-inset-bottom, 0px));
  display: flex; flex-direction: column; gap: 10px;
  transition: opacity .3s var(--ease-out), visibility 0s;
}
body:has(.ds-menu.is-open) .ds-fab { opacity: 0; visibility: hidden; transition: opacity .2s, visibility 0s .2s; }
.ds-fab__btn {
  position: relative; display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%;
  box-shadow: 0 12px 28px -10px rgba(11, 12, 14, .45), inset 0 1px 0 rgba(255, 255, 255, .28);
  transition: transform .35s cubic-bezier(.34, 1.56, .64, 1), box-shadow .3s var(--ease-out);
}
.ds-fab__btn svg { width: 24px; height: 24px; display: block; }
body.ds-page .ds-fab__btn--wa, body.ds-page .ds-fab__btn--wa:hover { background: #25D366; color: #fff; }
body.ds-page .ds-fab__btn--mail, body.ds-page .ds-fab__btn--mail:hover { background: var(--bronze); color: var(--ink); }
.ds-fab__tip {
  position: absolute; right: calc(100% + 12px); top: 50%; padding: 7px 12px; border-radius: 999px; white-space: nowrap;
  font: 500 13px/1 var(--sans); background: var(--ink); color: var(--ivory);
  opacity: 0; transform: translate(6px, -50%); pointer-events: none; transition: opacity .2s, transform .25s var(--ease-out);
}
@media (hover: hover) {
  .ds-fab__btn:hover { transform: translateY(-3px) scale(1.04); box-shadow: 0 18px 34px -12px rgba(11, 12, 14, .5), inset 0 1px 0 rgba(255, 255, 255, .28); }
  .ds-fab__btn:hover .ds-fab__tip, .ds-fab__btn:focus-visible .ds-fab__tip { opacity: 1; transform: translate(0, -50%); }
}
.ds-fab__btn:focus-visible { outline: 2px solid var(--bronze); outline-offset: 3px; }
@media (max-width: 767px) {
  .ds-fab { right: max(14px, env(safe-area-inset-right, 0px)); bottom: calc(14px + env(safe-area-inset-bottom, 0px)); gap: 8px; }
  .ds-fab__btn { width: 48px; height: 48px; }
  .ds-fab__btn svg { width: 22px; height: 22px; }
}

/* ---------- Privacy Policy page ---------- */
.ds-page .ds-legal { padding-top: calc(var(--pad) + 88px); background: var(--paper); }
.ds-page .ds-legal__wrap { display: grid !important; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: start; }
.ds-page .ds-legal__intro { grid-column: 1 / span 4; position: sticky !important; top: 120px; display: flex !important; flex-direction: column !important; gap: 32px; }
.ds-legal__meta { margin: 0; display: grid; }
.ds-legal__meta > div { padding: 12px 0; border-top: 1px solid var(--line-light); }
.ds-legal__meta > div:last-child { border-bottom: 1px solid var(--line-light); }
.ds-legal__meta dt { font: 500 13px/1.5 var(--sans); color: var(--steel); }
.ds-legal__meta dd { margin: 2px 0 0; font: 400 15px/1.5 var(--sans); color: var(--charcoal); }
body.ds-page .ds-legal a { color: var(--charcoal); text-decoration: underline; text-decoration-color: var(--bronze); text-underline-offset: 3px; }
body.ds-page .ds-legal a:hover { color: var(--bronze-dark); }
.ds-page .ds-legal__body { grid-column: 6 / -1; max-width: 72ch; color: var(--charcoal); font-size: 16px; line-height: 1.7; }
.ds-page .ds-legal__body h2 { font: 600 22px/1.3 var(--sans); letter-spacing: -.015em; color: var(--ink); margin: 56px 0 14px; }
.ds-page .ds-legal__body h2:first-child { margin-top: 0; }
.ds-page .ds-legal__body h3 { font: 600 16px/1.4 var(--sans); color: var(--ink); margin: 24px 0 8px; }
.ds-page .ds-legal__body p { margin: 0 0 14px; color: #3A3C41; }
.ds-page .ds-legal__body ul { margin: 0 0 16px; padding-left: 20px; color: #3A3C41; list-style: disc outside; }
.ds-page .ds-legal__body li { margin: 4px 0; }
.ds-page .ds-legal__body li::marker { color: var(--bronze-dark); }
@media (max-width: 1024px) {
  .ds-page .ds-legal__intro { grid-column: 1 / -1; position: static !important; margin-bottom: 56px; }
  .ds-page .ds-legal__body { grid-column: 1 / -1; }
}
@media (max-width: 767px) {
  .ds-page .ds-legal { padding-top: calc(var(--pad) + 64px); }
  .ds-page .ds-legal__body h2 { font-size: 20px; margin-top: 44px; }
  .ds-page .ds-legal__body { font-size: 15.5px; }
}


/* ---------- Team photos ---------- */
.ds-page .ds-photo .elementor-widget-container, .ds-page .ds-photo { line-height: 0; }
.ds-page .ds-photo img { width: 100% !important; height: auto !important; aspect-ratio: 1; object-fit: cover; object-position: 50% 14%; border-radius: 50% !important; display: block; background: #EDEAE5; box-shadow: inset 0 -10px 24px rgba(0, 0, 0, .10), 0 18px 34px -22px rgba(17, 17, 17, .45); transition: transform .6s cubic-bezier(.34, 1.56, .64, 1), box-shadow .4s var(--ease-out); }
@media (hover: hover) {
  .ds-page .ds-member:hover .ds-photo img { transform: scale(1.06) rotate(-4deg); box-shadow: 0 26px 44px -22px rgba(17, 17, 17, .5); }
}
