.elementor-kit-7{--e-global-color-primary:#F4F4F1;--e-global-color-secondary:#8E8E8A;--e-global-color-text:#C7C7C3;--e-global-color-accent:#D7FF3F;--e-global-color-obsidian:#101214;--e-global-color-carbon:#0B0B0B;--e-global-color-line:#242424;--e-global-color-ink-dark:#050505;--e-global-typography-primary-font-family:"Clash Display";--e-global-typography-primary-font-weight:600;--e-global-typography-primary-text-transform:none;--e-global-typography-primary-font-style:normal;--e-global-typography-primary-text-decoration:none;--e-global-typography-primary-letter-spacing:0px;--e-global-typography-secondary-font-family:"Clash Display";--e-global-typography-secondary-font-weight:500;--e-global-typography-secondary-text-transform:none;--e-global-typography-secondary-font-style:normal;--e-global-typography-secondary-text-decoration:none;--e-global-typography-secondary-letter-spacing:0px;--e-global-typography-text-font-family:"Manrope";--e-global-typography-text-font-weight:400;--e-global-typography-text-text-transform:none;--e-global-typography-text-font-style:normal;--e-global-typography-text-text-decoration:none;--e-global-typography-text-letter-spacing:0px;--e-global-typography-accent-font-family:"Manrope";--e-global-typography-accent-font-weight:600;--e-global-typography-accent-text-transform:uppercase;--e-global-typography-accent-font-style:normal;--e-global-typography-accent-text-decoration:none;--e-global-typography-accent-letter-spacing:0px;background-color:#101214;color:#C7C7C3;font-family:"Manrope", Sans-serif;font-size:17px;font-weight:400;line-height:1.6em;letter-spacing:0px;overscroll-behavior:none;}.elementor-kit-7 button,.elementor-kit-7 input[type="button"],.elementor-kit-7 input[type="submit"],.elementor-kit-7 .elementor-button{background-color:#050505;font-family:"Manrope", Sans-serif;font-size:13px;font-weight:600;text-transform:uppercase;line-height:1.2em;letter-spacing:0px;color:#F4F4F1;border-style:solid;border-width:1px 1px 1px 1px;border-color:#F4F4F1;border-radius:999px 999px 999px 999px;padding:13px 22px 13px 22px;}.elementor-kit-7 button:hover,.elementor-kit-7 button:focus,.elementor-kit-7 input[type="button"]:hover,.elementor-kit-7 input[type="button"]:focus,.elementor-kit-7 input[type="submit"]:hover,.elementor-kit-7 input[type="submit"]:focus,.elementor-kit-7 .elementor-button:hover,.elementor-kit-7 .elementor-button:focus{background-color:#F4F4F1;color:#050505;}.elementor-kit-7 e-page-transition{background-color:#FFBC7D;}.elementor-kit-7 p{margin-block-end:20px;}.elementor-kit-7 a{color:#F4F4F1;font-family:"Manrope", Sans-serif;font-weight:600;text-decoration:none;letter-spacing:0px;}.elementor-kit-7 a:hover{color:#F4F4F1;}.elementor-kit-7 h1{color:#F4F4F1;font-family:"Clash Display", Sans-serif;font-size:112px;font-weight:600;line-height:1em;letter-spacing:0px;}.elementor-kit-7 h2{color:#F4F4F1;font-family:"Clash Display", Sans-serif;font-size:80px;font-weight:600;line-height:1.02em;letter-spacing:0px;}.elementor-kit-7 h3{color:#F4F4F1;font-family:"Clash Display", Sans-serif;font-size:56px;font-weight:500;line-height:1.06em;letter-spacing:0px;}.elementor-kit-7 h4{color:#F4F4F1;font-family:"Clash Display", Sans-serif;font-size:36px;font-weight:500;line-height:1.12em;letter-spacing:0px;}.elementor-kit-7 h5{color:#F4F4F1;font-family:"Clash Display", Sans-serif;font-size:24px;font-weight:500;line-height:1.2em;letter-spacing:0px;}.elementor-kit-7 h6{color:#8E8E8A;font-family:"Manrope", Sans-serif;font-size:13px;font-weight:600;text-transform:uppercase;line-height:1.2em;letter-spacing:0px;}.elementor-kit-7 img{border-radius:0px 0px 0px 0px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1440px;}.e-con{--container-max-width:1440px;--container-default-padding-top:0px;--container-default-padding-right:32px;--container-default-padding-bottom:0px;--container-default-padding-left:32px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-kit-7{font-size:16px;}.elementor-kit-7 h1{font-size:72px;}.elementor-kit-7 h2{font-size:56px;}.elementor-kit-7 h3{font-size:42px;}.elementor-kit-7 h4{font-size:30px;}.elementor-kit-7 h5{font-size:22px;}.elementor-kit-7 h6{font-size:12px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;--container-default-padding-top:0px;--container-default-padding-right:24px;--container-default-padding-bottom:0px;--container-default-padding-left:24px;}}@media(max-width:767px){.elementor-kit-7{font-size:16px;}.elementor-kit-7 h1{font-size:48px;}.elementor-kit-7 h2{font-size:40px;}.elementor-kit-7 h3{font-size:32px;}.elementor-kit-7 h4{font-size:26px;}.elementor-kit-7 h5{font-size:20px;}.elementor-kit-7 h6{font-size:12px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;--container-default-padding-top:0px;--container-default-padding-right:18px;--container-default-padding-bottom:0px;--container-default-padding-left:18px;}}:root { --Obsidian:#050505; --Carbon:#0B0B0B; --Porcelain:#F4F4F1; --Mist:#C7C7C3; --Muted:#8E8E8A; --Graphite:#242424; --Volt:#D7FF3F; --DisplayFont:Clash Display; --BodyFont:Manrope; --SpaceXS:8px; --SpaceSM:16px; --SpaceMD:24px; --SpaceLG:48px; --SpaceXL:96px; --ContentMax:1440px; }
/* Start custom CSS */@font-face {
  font-family: "Clash Display";
  src: url("https://cdn.fontshare.com/wf/2GQIT54GKQY3JRFTSHS4ARTRNRQISSAA/3CIP5EBHRRHE5FVQU3VFROPUERNDSTDF/JTSL5QESUXATU47LCPUNHZQBDDIWDOSW.woff2") format("woff2");
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}
@font-face {
  font-family: "Clash Display";
  src: url("https://cdn.fontshare.com/wf/FPDAZ2S6SW4QMSRIIKNNGTPM6VIXYMKO/5HNPQ453FRLIQWV2FNOBUU3FKTDZQVSG/Z3MGHFHX6DCTLQ55LJYRJ5MDCZPMFZU6.woff2") format("woff2");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}
:root {
  --mz-bg: #101214;
  --mz-surface: #0B0B0B;
  --mz-ink: #F4F4F1;
  --mz-body: #C7C7C3;
  --mz-muted: #8E8E8A;
  --mz-line: #242424;
  --mz-accent: #D7FF3F;
  --mz-shell: 1440px;
}
html {
  background: var(--mz-bg);
}
body {
  background-color: var(--mz-bg);
  background-image:
    linear-gradient(to right, transparent calc(25% - .5px), rgba(255,255,255,.055) 25%, transparent calc(25% + .5px)),
    linear-gradient(to right, transparent calc(50% - .5px), rgba(255,255,255,.055) 50%, transparent calc(50% + .5px)),
    linear-gradient(to right, transparent calc(75% - .5px), rgba(255,255,255,.055) 75%, transparent calc(75% + .5px)),
    url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.035'/%3E%3C/svg%3E");
  background-attachment: fixed;
}
::selection {
  color: var(--mz-bg);
  background: var(--mz-accent);
}
.mz-section-shell {
  width: 100%;
  max-width: var(--mz-shell);
  margin-inline: auto;
  padding: 120px 32px;
}
.mz-grid-divider {
  border-bottom: 1px solid var(--mz-line);
}
.mz-micro-label {
  color: var(--mz-muted);
  font: 600 12px/1.2 "Manrope", sans-serif;
  letter-spacing: 0;
  text-transform: uppercase;
}
.mz-display-heading {
  color: var(--mz-ink);
  font: 600 112px/1 "Clash Display", sans-serif;
  letter-spacing: 0;
}
.mz-media-frame {
  overflow: hidden;
  border: 1px solid var(--mz-line);
  border-radius: 0;
}
.mz-text-link {
  color: var(--mz-ink);
  font: 600 14px/1.2 "Manrope", sans-serif;
  letter-spacing: 0;
  text-decoration: none;
}
.mz-text-link:hover,
.mz-text-link:focus-visible {
  color: var(--mz-accent);
}
@media (max-width: 1024px) {
  .mz-section-shell { padding: 88px 24px; }
  .mz-display-heading { font-size: 72px; }
}
@media (max-width: 767px) {
  body {
    background-image:
      linear-gradient(to right, transparent calc(50% - .5px), rgba(255,255,255,.05) 50%, transparent calc(50% + .5px)),
      url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.03'/%3E%3C/svg%3E");
  }
  .mz-section-shell { padding: 64px 18px; }
  .mz-display-heading { font-size: 48px; line-height: 1.02; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

/* Phase 2: global header and Elementor Pro full-screen menu */
.mz-global-header {
  transition: min-height .35s ease, padding .35s ease, background-color .35s ease, border-color .35s ease, backdrop-filter .35s ease;
}
.mz-global-header.elementor-sticky--effects {
  min-height: 68px !important;
  padding-top: 10px !important;
  padding-bottom: 10px !important;
  background-color: rgba(5,5,5,.82) !important;
  border-bottom-color: rgba(255,255,255,.10) !important;
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}
.mz-menu-trigger .elementor-button {
  position: relative;
  width: 46px;
  height: 46px;
  min-width: 46px;
  padding: 0 !important;
  display: inline-grid;
  place-items: center;
}
.mz-menu-trigger .elementor-button-text {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}
.mz-menu-trigger .elementor-button::before {
  content: "";
  width: 15px;
  height: 15px;
  background-image: radial-gradient(circle, currentColor 2px, transparent 2.5px);
  background-size: 7.5px 7.5px;
  background-position: 0 0;
}
#elementor-popup-modal-78 {
  background: rgba(5,5,5,.96);
}
#elementor-popup-modal-78 .dialog-widget-content {
  width: 100vw !important;
  max-width: none !important;
  height: 100dvh !important;
  max-height: none !important;
  margin: 0 !important;
  border-radius: 0;
  box-shadow: none;
  overflow: hidden;
  background-color: var(--mz-bg);
  background-image:
    linear-gradient(to right, transparent calc(25% - .5px), rgba(255,255,255,.06) 25%, transparent calc(25% + .5px)),
    linear-gradient(to right, transparent calc(50% - .5px), rgba(255,255,255,.06) 50%, transparent calc(50% + .5px)),
    linear-gradient(to right, transparent calc(75% - .5px), rgba(255,255,255,.06) 75%, transparent calc(75% + .5px));
}
#elementor-popup-modal-78 .dialog-message {
  width: 100vw;
  height: 100dvh;
  max-height: none;
  overflow: auto;
}
.mz-popup-nav,
.mz-popup-nav .elementor-nav-menu--main,
.mz-popup-nav .elementor-nav-menu {
  width: 100%;
}
.mz-popup-nav .elementor-nav-menu {
  display: flex;
  flex-direction: column;
  margin: 0;
}
.mz-popup-nav .elementor-nav-menu a.elementor-item {
  padding: 0 !important;
  justify-content: center;
  transition: color .25s ease, transform .25s ease;
}
.mz-popup-nav .elementor-nav-menu a.elementor-item:hover,
.mz-popup-nav .elementor-nav-menu a.elementor-item:focus-visible {
  transform: translateX(8px);
}
.s-menu-contact,
.s-menu-socials {
  flex-wrap: wrap;
}
@media (max-width: 767px) {
  .mz-global-header .mz-header-book .elementor-button {
    padding: 11px 14px;
    font-size: 11px;
  }
  .mz-menu-trigger .elementor-button {
    width: 42px;
    height: 42px;
    min-width: 42px;
  }
  #elementor-popup-modal-78 .dialog-widget-content {
    background-image:
      linear-gradient(to right, transparent calc(50% - .5px), rgba(255,255,255,.055) 50%, transparent calc(50% + .5px));
  }
  .mz-popup-nav .elementor-nav-menu a.elementor-item:hover,
  .mz-popup-nav .elementor-nav-menu a.elementor-item:focus-visible {
    transform: none;
  }
}


#elementor-popup-modal-78 .s-menu-close,
#elementor-popup-modal-78 .s-menu-close:focus,
#elementor-popup-modal-78 .s-menu-close:focus-visible,
#elementor-popup-modal-78 .s-menu-close:active {
  color: #050505 !important;
  background: #F4F4F1 !important;
  outline: none;
}


/* Phase 2 refinement: Porto-style carbon menu and reveal motion */
#elementor-popup-modal-78 .dialog-widget-content {
  background-color: #060606 !important;
  background-image:
    linear-gradient(45deg, rgba(255,255,255,.075) 25%, transparent 25%, transparent 75%, rgba(255,255,255,.075) 75%),
    linear-gradient(45deg, rgba(255,255,255,.075) 25%, transparent 25%, transparent 75%, rgba(255,255,255,.075) 75%),
    linear-gradient(-45deg, rgba(255,255,255,.035) 25%, transparent 25%, transparent 75%, rgba(255,255,255,.035) 75%),
    linear-gradient(-45deg, rgba(255,255,255,.035) 25%, transparent 25%, transparent 75%, rgba(255,255,255,.035) 75%) !important;
  background-position: 0 0, 4px 4px, 0 4px, 4px 0 !important;
  background-size: 8px 8px !important;
}

#elementor-popup-modal-78 .mz-popup-nav .elementor-nav-menu > li {
  clip-path: inset(0 0 100% 0);
  transform: translateY(42px);
  animation: mz-menu-row-in .82s cubic-bezier(.22,1,.36,1) forwards;
}

#elementor-popup-modal-78 .mz-popup-nav .elementor-nav-menu > li:nth-child(1) { animation-delay: .16s; }
#elementor-popup-modal-78 .mz-popup-nav .elementor-nav-menu > li:nth-child(2) { animation-delay: .23s; }
#elementor-popup-modal-78 .mz-popup-nav .elementor-nav-menu > li:nth-child(3) { animation-delay: .30s; }
#elementor-popup-modal-78 .mz-popup-nav .elementor-nav-menu > li:nth-child(4) { animation-delay: .37s; }
#elementor-popup-modal-78 .mz-popup-nav .elementor-nav-menu > li:nth-child(5) { animation-delay: .44s; }

#elementor-popup-modal-78 .s-menu-footer {
  opacity: 0;
  transform: translateY(18px);
  animation: mz-menu-footer-in .5s cubic-bezier(.22,1,.36,1) .52s forwards;
}

#elementor-popup-modal-78 .s-menu-close {
  position: relative;
  width: 48px;
  height: 48px;
  min-width: 48px;
  padding: 0 !important;
  border-radius: 50% !important;
  font-size: 0 !important;
  transform: scale(.6) rotate(-45deg);
  animation: mz-menu-close-in .55s cubic-bezier(.22,1,.36,1) .3s forwards;
}

#elementor-popup-modal-78 .s-menu-close::before,
#elementor-popup-modal-78 .s-menu-close::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 14px;
  height: 1.5px;
  border-radius: 2px;
  background: currentColor;
}

#elementor-popup-modal-78 .s-menu-close::before { transform: translate(-50%,-50%) rotate(45deg); }
#elementor-popup-modal-78 .s-menu-close::after { transform: translate(-50%,-50%) rotate(-45deg); }

.mz-menu-trigger .elementor-button {
  position: relative;
}

.mz-menu-trigger .elementor-button-content-wrapper {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.mz-menu-trigger .elementor-button::before {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 3px;
  height: 3px;
  margin: 0;
  border-radius: 50%;
  background: currentColor !important;
  background-image: none !important;
  box-shadow: 8px 0 currentColor, 0 8px currentColor, 8px 8px currentColor;
  transform: translate(-5.5px,-5.5px);
  transition: transform .35s cubic-bezier(.22,1,.36,1);
}

.mz-menu-trigger .elementor-button:hover::before,
.mz-menu-trigger .elementor-button:focus-visible::before {
  transform: translate(-5.5px,-5.5px) rotate(90deg);
}

@keyframes mz-menu-panel-in {
  0% { clip-path: inset(0 0 100% 0); opacity: .35; }
  100% { clip-path: inset(0 0 0 0); opacity: 1; }
}

@keyframes mz-menu-row-in {
  0% { clip-path: inset(0 0 100% 0); transform: translateY(42px); }
  100% { clip-path: inset(0 0 0 0); transform: translateY(0); }
}

@keyframes mz-menu-footer-in {
  to { opacity: 1; transform: translateY(0); }
}

@keyframes mz-menu-close-in {
  to { transform: scale(1) rotate(0); }
}

@media (max-width: 767px) {
  #elementor-popup-modal-78 .dialog-widget-content {
    background-image:
      linear-gradient(45deg, rgba(255,255,255,.075) 25%, transparent 25%, transparent 75%, rgba(255,255,255,.075) 75%),
      linear-gradient(45deg, rgba(255,255,255,.075) 25%, transparent 25%, transparent 75%, rgba(255,255,255,.075) 75%),
      linear-gradient(-45deg, rgba(255,255,255,.035) 25%, transparent 25%, transparent 75%, rgba(255,255,255,.035) 75%),
      linear-gradient(-45deg, rgba(255,255,255,.035) 25%, transparent 25%, transparent 75%, rgba(255,255,255,.035) 75%) !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  #elementor-popup-modal-78 .dialog-widget-content,
  #elementor-popup-modal-78 .mz-popup-nav .elementor-nav-menu > li,
  #elementor-popup-modal-78 .s-menu-footer,
  #elementor-popup-modal-78 .s-menu-close {
    animation: none !important;
    clip-path: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}

/* Porto carbon tile: local CSS recreation of the measured 12.8px checker */
#elementor-popup-modal-78 .dialog-widget-content {
  background-image: conic-gradient(from 90deg, #171717 25%, #070707 0 50%, #171717 0 75%, #070707 0) !important;
  background-size: 6.4px 6.4px !important;
  background-position: 0 0 !important;
}


/* Center trigger click motion */
.mz-menu-trigger.is-opening .elementor-button::before {
  animation: mz-trigger-spin .58s cubic-bezier(.22,1,.36,1) both;
}

@keyframes mz-trigger-spin {
  0% { transform: translate(-5.5px,-5.5px) rotate(0); }
  55% { transform: translate(-5.5px,-5.5px) rotate(220deg) scale(.82); }
  100% { transform: translate(-5.5px,-5.5px) rotate(360deg) scale(1); }
}

@media (prefers-reduced-motion: reduce) {
  .mz-menu-trigger.is-opening .elementor-button::before {
    animation: none !important;
  }
}


.mz-menu-trigger-mobile {
  position: fixed !important;
  top: 15px !important;
  right: 18px !important;
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  z-index: 1003 !important;
}
@media (min-width: 768px) {
  .mz-menu-trigger-mobile {
    display: none !important;
  }
}

/* Phase 3: Mzansi homepage experience */
body.home .site-main,
body.page-id-110 .site-main {
  overflow: clip;
}
body.page-id-110 .page-header,
body.page-id-110 .entry-title {
  display: none;
}
.mz-home-hero,
.mz-home-section {
  width: 100%;
  max-width: var(--mz-shell);
  margin-inline: auto;
}
.mz-home-hero {
  min-height: calc(100svh - 92px) !important;
  isolation: isolate;
}
.mz-hero-copy {
  position: relative;
  z-index: 2;
  text-align: center;
}
.mz-hero-kicker .elementor-heading-title,
.mz-home-marker .elementor-heading-title {
  color: var(--mz-muted);
  font-family: "Manrope", sans-serif !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
}
.mz-hero-kicker .elementor-heading-title {
  color: var(--mz-accent);
}
.mz-hero-title .elementor-heading-title {
  color: var(--mz-ink);
  font-size: 104px !important;
  line-height: .88 !important;
  text-align: center;
}
.mz-hero-intro {
  width: min(100%, 580px);
}
.mz-hero-intro,
.mz-hero-intro p {
  margin: 0;
  color: var(--mz-body);
  text-align: center;
}
.mz-hero-cta .elementor-button,
.mz-final-button .elementor-button {
  color: var(--mz-bg) !important;
  background: var(--mz-ink) !important;
  border: 1px solid var(--mz-ink);
  border-radius: 999px;
  padding: 14px 22px;
  transition: color .25s ease, background-color .25s ease, transform .25s ease;
}
.mz-hero-cta .elementor-button:hover,
.mz-hero-cta .elementor-button:focus-visible,
.mz-final-button .elementor-button:hover,
.mz-final-button .elementor-button:focus-visible {
  color: var(--mz-ink) !important;
  background: transparent !important;
  transform: translateY(-2px);
}
.mz-hero-cta .elementor-button-text,
.mz-final-button .elementor-button-text {
  position: relative !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  overflow: visible !important;
  clip: auto !important;
  color: inherit !important;
  opacity: 1 !important;
}
.mz-hero-car {
  width: min(100%, 1540px);
  margin-top: -12px;
  position: relative;
  z-index: 1;
}
.mz-hero-car img {
  display: block;
  width: 100%;
  height: clamp(410px, 54svh, 620px);
  object-fit: cover;
  object-position: center 61%;
}
.mz-home-section {
  border-top: 1px solid var(--mz-line);
}
.mz-home-marker .elementor-heading-title {
  text-transform: uppercase;
}
.mz-section-title .elementor-heading-title,
.mz-final-title .elementor-heading-title {
  color: var(--mz-ink);
}
.mz-section-copy p,
.mz-lead-copy p,
.mz-note-copy p,
.mz-proof-copy p,
.mz-partners-intro p,
.mz-contact-copy p,
.mz-project-detail p,
.mz-service-caption p,
.mz-step-copy p,
.mz-faq-answer p {
  margin: 0;
}
.mz-lead-copy {
  max-width: 560px;
}
.mz-note-copy,
.mz-service-caption,
.mz-project-detail,
.mz-step-copy,
.mz-faq-answer {
  color: var(--mz-muted);
}
.mz-text-action .elementor-button,
.mz-project-link .elementor-button {
  padding: 0 0 7px !important;
  color: var(--mz-ink);
  background: transparent !important;
  border: 0;
  border-bottom: 1px solid currentColor;
  border-radius: 0;
}
.mz-text-action .elementor-button::after,
.mz-project-link .elementor-button::after {
  content: "2197";
  margin-left: 9px;
}
.mz-text-action .elementor-button:hover,
.mz-project-link .elementor-button:hover {
  color: var(--mz-accent);
}
.mz-process-grid {
  border-top: 1px solid var(--mz-line);
  border-bottom: 1px solid var(--mz-line);
}
.mz-process-step {
  min-height: 330px;
  border-right: 1px solid var(--mz-line);
}
.mz-process-step:last-child {
  border-right: 0;
}
.mz-step-number .elementor-heading-title {
  color: var(--mz-line);
}
.mz-step-title .elementor-heading-title {
  color: var(--mz-ink);
}
.mz-project-card {
  min-width: 0;
}
.mz-project-image {
  overflow: hidden;
  background: var(--mz-surface);
}
.mz-project-image img {
  width: 100%;
  height: 680px;
  object-fit: cover;
  object-position: center;
  transition: transform .7s cubic-bezier(.22,1,.36,1), filter .4s ease;
}
.mz-project-two {
  margin-top: 96px;
}
.mz-project-card:hover .mz-project-image img {
  transform: scale(1.025);
  filter: brightness(1.06);
}
.mz-project-title .elementor-heading-title {
  color: var(--mz-ink);
}
.mz-service-list {
  border-top: 1px solid var(--mz-line);
}
.mz-service-row {
  border-bottom: 1px solid var(--mz-line);
  transition: padding-left .3s ease, border-color .3s ease;
}
.mz-service-row:hover {
  padding-left: 12px !important;
  border-color: var(--mz-muted);
}
.mz-service-name .elementor-heading-title {
  color: var(--mz-ink);
}
.mz-service-plus .elementor-heading-title {
  color: var(--mz-muted);
}
.mz-service-visual {
  position: sticky;
  top: 100px;
  align-self: flex-start;
}
.mz-service-image {
  overflow: hidden;
}
.mz-service-image img {
  width: 100%;
  height: 720px;
  object-fit: cover;
  object-position: center;
}
.mz-service-caption {
  max-width: 420px;
  margin-top: 18px;
}
.mz-standard {
  max-width: none;
  padding-left: max(32px, calc((100vw - var(--mz-shell)) / 2 + 32px)) !important;
  padding-right: max(32px, calc((100vw - var(--mz-shell)) / 2 + 32px)) !important;
  background: var(--mz-ink);
}
.mz-standard .mz-home-marker .elementor-heading-title,
.mz-standard .mz-note-copy,
.mz-standard .mz-lead-copy {
  color: #5E5E5A;
}
.mz-standard .mz-section-title .elementor-heading-title {
  color: var(--mz-bg);
}
.mz-standard .mz-text-action .elementor-button {
  color: var(--mz-bg);
}
.mz-standard-image img {
  width: 100%;
  height: 760px;
  object-fit: cover;
  object-position: center;
}
.mz-proof {
  min-height: 520px;
}
.mz-proof-copy {
  width: min(100%, 470px);
}
.mz-partners-intro {
  width: min(100%, 680px);
}
.mz-partner-grid {
  border-top: 1px solid var(--mz-line);
  border-bottom: 1px solid var(--mz-line);
}
.mz-partner {
  min-height: 210px;
  border-right: 1px solid var(--mz-line);
}
.mz-partner:last-child {
  border-right: 0;
}
.mz-partner-logo img {
  width: min(100%, 190px);
  height: 88px;
  object-fit: contain;
  filter: grayscale(1) brightness(1.7);
  opacity: .78;
  transition: opacity .3s ease, filter .3s ease;
}
.mz-partner:hover .mz-partner-logo img {
  opacity: 1;
  filter: grayscale(0) brightness(1);
}
.mz-faq-list {
  border-top: 1px solid var(--mz-line);
}
.mz-faq-row {
  border-bottom: 1px solid var(--mz-line);
}
.mz-faq-question .elementor-heading-title {
  color: var(--mz-ink);
}
.mz-contact-copy a {
  color: var(--mz-ink);
}
.mz-final-cta {
  border-top: 1px solid var(--mz-line);
}
.mz-hero-kicker,
.mz-hero-title,
.mz-hero-intro,
.mz-hero-cta,
.mz-hero-car {
  opacity: 0;
  animation: mz-home-reveal .8s cubic-bezier(.22,1,.36,1) forwards;
}
.mz-hero-kicker { animation-delay: .12s; }
.mz-hero-title { animation-delay: .2s; }
.mz-hero-intro { animation-delay: .3s; }
.mz-hero-cta { animation-delay: .4s; }
.mz-hero-car { animation-delay: .48s; }
@keyframes mz-home-reveal {
  from { opacity: 0; transform: translateY(28px); clip-path: inset(0 0 18% 0); }
  to { opacity: 1; transform: translateY(0); clip-path: inset(0 0 0 0); }
}
@media (max-width: 1024px) {
  .mz-home-hero {
    min-height: calc(100svh - 80px) !important;
  }
  .mz-hero-title .elementor-heading-title {
    font-size: 76px !important;
  }
  .mz-hero-car img {
    height: 500px;
  }
  .mz-split,
  .mz-standard,
  .mz-faq-layout {
    flex-direction: column !important;
  }
  .mz-split > .e-con,
  .mz-standard > .e-con,
  .mz-faq-layout > .e-con,
  .mz-section-copy {
    width: 100% !important;
  }
  .mz-project-image img,
  .mz-service-image img,
  .mz-standard-image img {
    height: 560px;
  }
  .mz-services-layout {
    gap: 36px !important;
  }
  .mz-service-list {
    width: 52% !important;
  }
  .mz-service-visual {
    width: 48% !important;
  }
  .mz-standard {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
}
@media (max-width: 767px) {
  .mz-home-hero {
    min-height: calc(100svh - 72px) !important;
  }
  .mz-header-left {
    width: 100% !important;
    justify-content: space-between !important;
  }
  .mz-header-center {
    width: 50% !important;
    justify-content: flex-end !important;
  }
  .mz-header-right {
    display: none !important;
  }
  .mz-global-header {
    position: relative;
  }
  .mz-global-header [data-id="header-center"] {
    display: none !important;
  }
  .mz-global-header .mz-menu-trigger-mobile {
    position: relative !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    z-index: 1003 !important;
  }
  .mz-global-header [data-id="header-menu-trigger"] {
    position: relative !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
  }
  .mz-global-header .mz-menu-trigger-mobile .elementor-button,
  .mz-global-header [data-id="header-menu-trigger"] .elementor-button {
    z-index: 1003 !important;
    display: grid !important;
    place-items: center !important;
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    color: var(--mz-ink) !important;
    background: rgba(5,5,5,.62) !important;
    border: 1px solid rgba(255,255,255,.24) !important;
    border-radius: 50% !important;
  }
  .mz-header-logo img {
    width: 92px !important;
  }
  .mz-hero-title .elementor-heading-title {
    font-size: 42px !important;
    line-height: .94 !important;
  }
  .mz-hero-intro,
  .mz-hero-intro p {
    font-size: 15px;
    line-height: 1.5;
  }
  .mz-hero-car {
    width: calc(100% + 36px);
    margin-inline: -18px;
    margin-top: 8px;
  }
  .mz-hero-car img {
    height: 410px;
    object-position: center 61%;
  }
  .mz-section-title .elementor-heading-title {
    font-size: 44px !important;
    line-height: 1 !important;
  }
  .mz-final-title .elementor-heading-title {
    font-size: 48px !important;
  }
  .mz-process-grid,
  .mz-project-grid,
  .mz-services-layout,
  .mz-partner-grid,
  .mz-final-cta {
    flex-direction: column !important;
  }
  .mz-process-step,
  .mz-project-card,
  .mz-service-list,
  .mz-service-visual,
  .mz-partner {
    width: 100% !important;
  }
  .mz-process-step {
    min-height: 0;
    border-right: 0;
    border-bottom: 1px solid var(--mz-line);
    padding: 28px 0 !important;
  }
  .mz-process-step:last-child {
    border-bottom: 0;
  }
  .mz-project-two {
    margin-top: 28px;
  }
  .mz-project-image img,
  .mz-standard-image img {
    height: 470px;
  }
  .mz-service-visual {
    position: static;
  }
  .mz-service-image img {
    height: 460px;
  }
  .mz-service-name .elementor-heading-title {
    font-size: 20px !important;
  }
  .mz-standard {
    padding-left: 18px !important;
    padding-right: 18px !important;
  }
  .mz-partner {
    min-height: 150px;
    border-right: 0;
    border-bottom: 1px solid var(--mz-line);
  }
  .mz-partner:last-child {
    border-bottom: 0;
  }
  .mz-final-cta {
    align-items: flex-start !important;
    gap: 32px !important;
  }
}


/* Phase 3 layered hero v2 */
.mz-home-hero {
  --mz-car-y: 0px;
  --mz-reflection-y: 0px;
  --mz-glow-y: 0px;
  position: relative;
  overflow: hidden;
}
.mz-hero-copy {
  z-index: 4;
}
.mz-hero-scene {
  position: relative;
  z-index: 1;
  width: min(114vw, 1700px) !important;
  height: clamp(500px, 58svh, 680px);
  min-height: 500px !important;
  margin-top: -34px;
  pointer-events: none;
  isolation: isolate;
  opacity: 0;
  animation: mz-home-reveal .95s cubic-bezier(.22,1,.36,1) .46s forwards;
}
.mz-hero-scene::before {
  content: "";
  position: absolute;
  z-index: -2;
  left: 50%;
  top: calc(49% + var(--mz-glow-y));
  width: min(76vw, 1100px);
  height: 42%;
  transform: translate(-50%,-50%);
  background: radial-gradient(ellipse at center, rgba(255,255,255,.095) 0%, rgba(140,145,150,.038) 42%, transparent 74%);
  filter: blur(18px);
  opacity: .82;
}
.mz-hero-scene::after {
  content: "";
  position: absolute;
  z-index: -1;
  left: 50%;
  top: 56%;
  width: min(62vw, 920px);
  height: 11%;
  transform: translate(-50%,-50%);
  border-radius: 50%;
  background: rgba(0,0,0,.74);
  filter: blur(28px);
  opacity: .78;
}
.mz-hero-car-layer,
.mz-hero-reflection-layer {
  position: absolute !important;
  inset: 0;
  width: 100% !important;
  height: 100%;
  margin: 0 !important;
  will-change: transform;
  backface-visibility: hidden;
}
.mz-hero-car-layer {
  z-index: 2;
  clip-path: inset(0 0 43% 0);
  transform: translate3d(0,var(--mz-car-y),0) scale(1.008);
  filter: drop-shadow(0 22px 22px rgba(0,0,0,.72)) drop-shadow(0 0 16px rgba(255,255,255,.025));
}
.mz-hero-reflection-layer {
  z-index: 1;
  clip-path: inset(53.5% 0 0 0);
  transform: translate3d(0,var(--mz-reflection-y),0) scale(.998);
  opacity: .82;
  filter: brightness(.82) contrast(1.12) saturate(.82) blur(.15px);
  -webkit-mask-image: linear-gradient(to bottom, transparent 49%, #000 55%, #000 78%, transparent 98%);
  mask-image: linear-gradient(to bottom, transparent 49%, #000 55%, #000 78%, transparent 98%);
}
.mz-hero-car-layer .elementor-widget-container,
.mz-hero-reflection-layer .elementor-widget-container {
  width: 100%;
  height: 100%;
}
.mz-hero-car-layer img,
.mz-hero-reflection-layer img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center center;
}
.mz-hero-parallax-script {
  display: none !important;
}
@media (max-width: 1024px) {
  .mz-hero-scene {
    width: calc(100% + 100px) !important;
    height: 500px;
    min-height: 500px !important;
    margin-inline: -50px;
    margin-top: -18px;
  }
}
@media (max-width: 767px) {
  .mz-home-hero {
    overflow: hidden;
  }
  .mz-hero-scene {
    width: calc(100% + 180px) !important;
    height: 330px;
    min-height: 330px !important;
    margin-inline: -90px;
    margin-top: 10px;
  }
  .mz-hero-scene::before {
    width: 76%;
    height: 38%;
    filter: blur(13px);
  }
  .mz-hero-scene::after {
    width: 58%;
    filter: blur(18px);
  }
  .mz-hero-reflection-layer {
    opacity: .72;
  }
}
@media (prefers-reduced-motion: reduce) {
  .mz-hero-scene {
    --mz-car-y: 0px;
    --mz-reflection-y: 0px;
    --mz-glow-y: 0px;
  }
  .mz-hero-car-layer,
  .mz-hero-reflection-layer {
    transform: none !important;
  }
}


/* Layered hero QA refinement */
.mz-hero-car-layer {
  clip-path: inset(0 0 25% 0);
}
.mz-hero-reflection-layer {
  opacity: .34;
  mix-blend-mode: screen;
}
.mz-hero-car-layer img,
.mz-hero-reflection-layer img {
  transform: scale(1.18);
  transform-origin: 50% 54%;
}
.mz-mobile-menu-hard {
  display: none !important;
}
@media (max-width: 767px) {
  .mz-hero-scene {
    width: calc(100% + 80px) !important;
    margin-inline: -40px;
  }
  .mz-hero-car-layer img,
  .mz-hero-reflection-layer img {
    transform: translateX(-7%) scale(1.02);
  }
  .mz-global-header [data-id="header-center"],
  .mz-global-header .mz-menu-trigger-mobile {
    display: none !important;
  }
  .mz-mobile-menu-hard {
    position: fixed !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    z-index: 1006 !important;
    top: 15px !important;
    right: 18px !important;
    width: 42px !important;
    height: 42px !important;
    margin: 0 !important;
  }
  .mz-mobile-menu-hard .elementor-widget-container,
  .mz-mobile-menu-hard .elementor-button {
    display: grid !important;
    place-items: center !important;
    width: 42px !important;
    height: 42px !important;
  }
  .mz-mobile-menu-hard .elementor-button {
    position: relative !important;
    padding: 0 !important;
    color: var(--mz-ink) !important;
    background: rgba(5,5,5,.62) !important;
    border: 1px solid rgba(255,255,255,.24) !important;
    border-radius: 50% !important;
  }
}


/* Mzansi continuous charcoal canvas + white hover — 2026-09-21 */
:root {
  --mz-canvas: #101214;
  --mz-canvas-deep: #0b0d0e;
  --mz-canvas-gradient:
    radial-gradient(circle at 14% 0%, rgba(255,255,255,.055) 0, transparent 34%),
    radial-gradient(circle at 88% 28%, rgba(148,160,168,.045) 0, transparent 30%),
    linear-gradient(135deg, #121416 0%, #0d0f10 52%, #111315 100%);
}

html {
  background: var(--mz-canvas);
}

body {
  background-color: var(--mz-canvas) !important;
  background-image: var(--mz-canvas-gradient) !important;
  background-repeat: no-repeat !important;
  background-size: 100% 100% !important;
  background-attachment: fixed !important;
}

#page,
.site,
.elementor-location-single,
.elementor-location-archive,
.home #page,
.home .site,
.home .elementor,
.home .mz-home-hero,
.home .elementor-element-phase2-cinematic,
.mz-project-case,
.mz-showroom-portal,
.mz-cinematic-stage,
.mz-wordmark-reveal,
.mz-brand-manifesto,
.mz-featured-works,
.mz-palmer-services,
.mz-palmer-story,
.mz-palmer-reviews,
.mz-palmer-orbit,
.mz-palmer-faq,
.mz-palmer-footer,
.mz-social-gallery,
.mz-template-shell,
.mz-page-shell {
  background-color: transparent !important;
  background-image: none !important;
}

.home .mz-home-hero::after {
  display: none !important;
}

.home .mz-hero-background-video {
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 76%, transparent 100%);
  mask-image: linear-gradient(to bottom, #000 0%, #000 76%, transparent 100%);
}

.mz-site-preloader,
.s-menu-canvas {
  background-color: var(--mz-canvas) !important;
  background-image: var(--mz-canvas-gradient) !important;
  background-repeat: no-repeat !important;
  background-size: cover !important;
}

body::after {
  content: "";
  position: fixed;
  z-index: 999999;
  inset: 0;
  pointer-events: none;
  opacity: .085;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.42'/%3E%3C/svg%3E");
  background-repeat: repeat;
  background-size: 180px 180px;
  mix-blend-mode: soft-light;
}

a {
  transition: color .24s ease, opacity .24s ease;
}

a:not(.elementor-button):hover,
a:not(.elementor-button):focus-visible,
.mz-text-link:hover,
.mz-text-link:focus-visible,
.mz-text-action .elementor-button:hover,
.mz-text-action .elementor-button:focus-visible,
.mz-project-link .elementor-button:hover,
.mz-project-link .elementor-button:focus-visible {
  color: #f4f4f1 !important;
}

.mz-global-header.elementor-sticky__spacer {
  display: none !important;
}

.mz-global-header:not(.elementor-sticky__spacer) {
  position: fixed !important;
  z-index: 1002 !important;
  top: 0 !important;
  right: 0;
  left: 0;
  width: 100%;
  background-color: transparent !important;
  background-image: none !important;
  border-bottom-color: transparent !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  transform: translate3d(0,0,0);
  will-change: transform;
  transition:
    transform .38s cubic-bezier(.22,1,.36,1),
    background-color .3s ease,
    border-color .3s ease,
    backdrop-filter .3s ease !important;
}

.mz-global-header.is-mz-header-top,
.elementor-location-header .mz-global-header.elementor-element.is-mz-header-top:not(.elementor-sticky__spacer) {
  background-color: transparent !important;
  border-bottom-color: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

.mz-global-header.is-mz-header-hidden {
  pointer-events: none;
  transform: translate3d(0,-112%,0) !important;
}

.mz-global-header.is-mz-header-up,
.elementor-location-header .mz-global-header.elementor-element.is-mz-header-up:not(.elementor-sticky__spacer) {
  pointer-events: auto;
  background-color: rgba(16,18,20,.66) !important;
  border-bottom-color: rgba(255,255,255,.10) !important;
  backdrop-filter: blur(18px) saturate(135%) !important;
  -webkit-backdrop-filter: blur(18px) saturate(135%) !important;
}

.s-menu-canvas > .mz-menu-brandmark {
  top: 104px !important;
}

@media (max-width: 767px) {
  .s-menu-canvas > .mz-menu-brandmark {
    top: 92px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  a {
    transition: none;
  }
  .mz-global-header:not(.elementor-sticky__spacer) {
    transition: none !important;
  }
}

/* Charcoal treatment for the Elementor full-screen menu shell */
#elementor-popup-modal-78 .dialog-widget-content {
  background-color: var(--mz-canvas) !important;
  background-image: var(--mz-canvas-gradient) !important;
  background-repeat: no-repeat !important;
  background-size: cover !important;
}




/* Automotive Icons: luminous media frames */
.mz-palmer-orbit__panel {
  border-color: rgba(244,244,241,.78) !important;
  box-shadow:
    inset 0 0 0 .5px rgba(255,255,255,.28),
    0 0 8px rgba(255,255,255,.18),
    0 0 22px rgba(255,255,255,.08),
    0 28px 70px rgba(0,0,0,.38) !important;
}

.mz-palmer-orbit__media {
  filter: saturate(1.02) brightness(1.08) contrast(1.03) !important;
}


/* Projects archive white labels + cursor-follow porcelain light */
.post-type-archive-mz_project .mz-section-marker__index,
.post-type-archive-mz_project .mz-project-card__meta {
  color: #f4f4f1 !important;
}

body::before {
  content: "";
  position: fixed;
  z-index: 0;
  inset: 0;
  pointer-events: none;
  opacity: var(--mz-cursor-glow-opacity, 0);
  background:
    radial-gradient(
      520px circle at var(--mz-cursor-x, 50vw) var(--mz-cursor-y, 45vh),
      rgba(244,244,241,.115) 0%,
      rgba(244,244,241,.052) 30%,
      rgba(244,244,241,.018) 50%,
      transparent 72%
    );
  mix-blend-mode: screen;
  transition: opacity .32s ease;
}

#page,
.site {
  position: relative;
  z-index: 1;
}

@media (hover: none), (pointer: coarse), (prefers-reduced-motion: reduce) {
  body::before {
    display: none;
  }
}

@media (max-width: 767px) {
  body::before {
    display: none;
  }
}/* End custom CSS */