.elementor-kit-7{--e-global-color-primary:#000000;--e-global-color-secondary:#000000;--e-global-color-text:#4F4F4F;--e-global-color-accent:#FFFFFF;--e-global-typography-primary-font-family:"Roboto";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Roboto Slab";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Roboto";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Roboto";--e-global-typography-accent-font-weight:500;color:#000000;font-family:"DM Sans", Sans-serif;font-size:17px;font-weight:400;line-height:1.5882352941em;}.elementor-kit-7 h1{color:#000000;font-family:"Unbounded", Sans-serif;font-size:55px;font-weight:700;text-transform:uppercase;line-height:1.0909090909em;}.elementor-kit-7 h2{color:#000000;font-family:"Unbounded", Sans-serif;font-size:45px;font-weight:700;text-transform:uppercase;line-height:1.1111111111em;}.elementor-kit-7 h3{color:#000000;font-family:"Unbounded", Sans-serif;font-size:38px;font-weight:700;text-transform:uppercase;line-height:1.1315789474em;}.elementor-kit-7 h4{color:#000000;font-family:"Unbounded", Sans-serif;font-size:32px;font-weight:700;text-transform:none;line-height:1.15625em;}.elementor-kit-7 h5{color:#000000;font-family:"Unbounded", Sans-serif;font-size:24px;font-weight:700;text-transform:none;line-height:1.25em;}.elementor-kit-7 h6{color:#000000;font-family:"Unbounded", Sans-serif;font-size:19px;font-weight:700;text-transform:none;line-height:1.3157894737em;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){margin-block-end: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-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS *//* ===== SXM WEBFONTS (managed by Claude) ===== */
/* Elementor's Custom Fonts only emit @font-face when a family is chosen through a
   typography control, so families referenced from raw CSS never load. Declaring them
   here makes every face available site-wide to hand-written CSS.

   Files: wp-content/uploads/sxm-fonts/ — a plain directory, not media-library
   attachments, so the whole set moves to live as one rsync. woff2 first, woff as the
   fallback. Sources are Juan's SXM-FONTS folder (2026-08-27); the .otf-only weights
   were converted with ~/tools/fonts/conv.mjs (woff2 is a container, so CFF outlines
   compress straight across with no glyf conversion). */
@font-face{font-family:"F37 Stout Black Compressed";src:url("https://staging.speedxmedia.com/wp-content/uploads/sxm-fonts/F37Stout-BlackCompressed.woff2") format("woff2"),url("https://staging.speedxmedia.com/wp-content/uploads/sxm-fonts/F37Stout-BlackCompressed.woff") format("woff");font-weight:900;font-style:normal;font-display:swap;}
@font-face{font-family:"Nord Regular";src:url("https://staging.speedxmedia.com/wp-content/uploads/sxm-fonts/NordRegular.woff2") format("woff2"),url("https://staging.speedxmedia.com/wp-content/uploads/sxm-fonts/NordRegular.woff") format("woff");font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:"Nord Medium";src:url("https://staging.speedxmedia.com/wp-content/uploads/sxm-fonts/NordMedium.woff2") format("woff2"),url("https://staging.speedxmedia.com/wp-content/uploads/sxm-fonts/NordMedium.woff") format("woff");font-weight:500;font-style:normal;font-display:swap;}
@font-face{font-family:"Microgramma D Extended Bold";src:url("https://staging.speedxmedia.com/wp-content/uploads/sxm-fonts/MicrogrammaD-BoldExte.woff2") format("woff2"),url("https://staging.speedxmedia.com/wp-content/uploads/sxm-fonts/MicrogrammaD-BoldExte.woff") format("woff");font-weight:700;font-style:normal;font-display:swap;}
@font-face{font-family:"Staff X Condensed Black";src:url("https://staging.speedxmedia.com/wp-content/uploads/sxm-fonts/StaffXCondensed-Black.woff2") format("woff2"),url("https://staging.speedxmedia.com/wp-content/uploads/sxm-fonts/StaffXCondensed-Black.woff") format("woff");font-weight:900;font-style:normal;font-display:swap;}
@font-face{font-family:"Staff X Condensed";src:url("https://staging.speedxmedia.com/wp-content/uploads/sxm-fonts/StaffXCondensed-Bold.woff2") format("woff2"),url("https://staging.speedxmedia.com/wp-content/uploads/sxm-fonts/StaffXCondensed-Bold.woff") format("woff");font-weight:700;font-style:normal;font-display:swap;}
@font-face{font-family:"Staff X Condensed";src:url("https://staging.speedxmedia.com/wp-content/uploads/sxm-fonts/StaffXCondensed-Black.woff2") format("woff2"),url("https://staging.speedxmedia.com/wp-content/uploads/sxm-fonts/StaffXCondensed-Black.woff") format("woff");font-weight:900;font-style:normal;font-display:swap;}
@font-face{font-family:"Staff XX Condensed";src:url("https://staging.speedxmedia.com/wp-content/uploads/sxm-fonts/StaffXXCondensed-Bold.woff2") format("woff2"),url("https://staging.speedxmedia.com/wp-content/uploads/sxm-fonts/StaffXXCondensed-Bold.woff") format("woff");font-weight:700;font-style:normal;font-display:swap;}
@font-face{font-family:"Staff XX Condensed";src:url("https://staging.speedxmedia.com/wp-content/uploads/sxm-fonts/StaffXXCondensed-Black.woff2") format("woff2"),url("https://staging.speedxmedia.com/wp-content/uploads/sxm-fonts/StaffXXCondensed-Black.woff") format("woff");font-weight:900;font-style:normal;font-display:swap;}
@font-face{font-family:"Staff Condensed";src:url("https://staging.speedxmedia.com/wp-content/uploads/sxm-fonts/StaffCondensed-Black.woff2") format("woff2"),url("https://staging.speedxmedia.com/wp-content/uploads/sxm-fonts/StaffCondensed-Black.woff") format("woff");font-weight:900;font-style:normal;font-display:swap;}
@font-face{font-family:"Exposure";src:url("https://staging.speedxmedia.com/wp-content/uploads/sxm-fonts/Exposure-60-Regular.woff2") format("woff2"),url("https://staging.speedxmedia.com/wp-content/uploads/sxm-fonts/Exposure-60-Regular.woff") format("woff");font-weight:400;font-style:normal;font-display:swap;}
/* pre-existing, still media-library attachments */
@font-face{font-family:"Chomsky";src:url("https://staging.speedxmedia.com/wp-content/uploads/2026/03/Chomsky.woff2") format("woff2"),url("https://staging.speedxmedia.com/wp-content/uploads/2026/03/Chomsky.woff") format("woff");font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:"Ocr A Tribute";src:url("https://staging.speedxmedia.com/wp-content/uploads/2025/11/OCRATributeW01-Regular.woff") format("woff");font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:"OCRATributeW01 Regular Mono";src:url("https://staging.speedxmedia.com/wp-content/uploads/2026/03/OCRATributeW01-RegularMono.woff") format("woff");font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:"Eurostile Extended Black";src:url("https://staging.speedxmedia.com/wp-content/uploads/2026/03/EurostileExtended-Black.woff") format("woff");font-weight:900;font-style:normal;font-display:swap;}
/* STILL MISSING from SXM-FONTS — DM Sans / Ocr A Tribute stand in, tagged
   SXM FONT SUBSTITUTE in the page CSS:
     "Circular Std" Light/Book/Bold/Black — body copy, row labels, FAQ questions
     "OCR A Extended"                     — /work/ card nicknames */
/* ===== END SXM WEBFONTS ===== */
/* SXM: base heading margins ported from EverHue theme (2026-08-26) */
h1,h2,h3,h4,h5,h6{margin:25px 0;overflow-wrap:break-word;}
body.pw-protected-page {
    background:#000;
}

.qodef-m-pagination.qodef--standard .qodef-m-pagination-item .qodef-svg--pagination-circle{
    display: none!important;
}

/* Inner pages: black header background */
.qodef-header--standard #qodef-page-header {
    background-color: #000;
}

/* Homepage: transparent header (overrides above) */
.home .qodef-header--standard #qodef-page-header {
    background-color: transparent;
}

.qodef-icon-with-text.qodef--custom-icon .qodef-m-icon-wrapper{
display: none!important;    
}

.qodef-header-navigation>ul>li>a .qodef-menu-item-text .qodef-svg--menu-item, .qodef-svg--title-decoration-3{
    display: none!important;
}

footer .qodef-widget-title{
    font-family: 'Unbounded', sans-serif;
    font-size: 1.2rem;    
    font-weight: bold;
}

body.pw-protected-page  #qodef-page-outer {
    margin-top: 160px;
}

.post-password-form{
color: #fff !important;
    max-width: 500px;
    margin: 0 auto;
    text-align: center;
    margin-bottom: 100px;
}

    .post-password-form input[type=password] {
            max-width: 100%;
        border: 1px solid #fff;
        height: 60px;
        padding: 10px 20px;
        color:#fff!important;
    }
    
     .post-password-form input[type=password]:placeholder{
            color:#fff!important;
     }

.post-template #qodef-page-outer {
    margin-top: -250px!important;
}

.qodef-e-top-holder{
    display: none!important;
}

.post-template h1{
    font-size: 30px;
}

.start-project{
    font-weight: 700!important;
    text-transform: uppercase!important;
    color: #fff!important;
    background: none!important;
    border: 1px solid!important;
}

.footer-image img {
  filter: brightness(0) invert(1);
}

#qodef-page-comments{
    display: none!important;
}

/* SCOPED: Only homepage gets full height header */
.home #qodef-page-header {
    height: 100%;
}

/* SCOPED: Only homepage gets white logo */
.home #qodef-page-header-inner .qodef-header-logo-image {
  filter: brightness(0) invert(1);
}

/* STICKY HEADER: force the logo to white */
.qodef-header-sticky .qodef-header-sticky-inner
  .qodef-header-logo-link.qodef-source--image
  .qodef-header-logo-image {
  filter: brightness(0) invert(1) !important;
  -webkit-filter: brightness(0) invert(1) !important;
  width: 300px !important;
}

/* Safety: make sure no parent adds a counter-filter */
.qodef-header-sticky .qodef-header-logo-link.qodef-source--image {
  filter: none !important;
  -webkit-filter: none !important;
}

#qodef-page-header-inner .qodef-header-logo-image {
  width: 100% !important;
  height: auto !important;
  max-width: 100% !important;
}

/* Clean, minimal logo animation styles */
.sxm-animated-logo {
  width: 100%;
  height: auto;
  display: block;
  filter: brightness(0) invert(1);
  opacity: 0;
  transition: opacity 0.6s ease;
}

.sxm-animated-logo.sxm-visible {
  opacity: 1;
}

.sxm-animated-logo path {
  fill: transparent;
  stroke: #ffffff;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: fill 0.8s ease 0.3s;
}

.sxm-animated-logo.sxm-filled path {
  fill: #ffffff;
  stroke: transparent;
}

@keyframes sxm-draw {
  to { stroke-dashoffset: 0; }
}

.sxm-logo-animating .qodef-header-logo-image {
  display: none !important;
}

.home-services .qodef-m-item {
  display: flex;
  flex-direction: column-reverse;
  margin-bottom: 45px!important;
}

.qodef-header--sticky-display #qodef-page-header .qodef-header-logo-link.qodef-source--textual{
    color:#ffffff!important;
}

.qodef-header--sticky-display #qodef-page-header .qodef-header-logo-link.qodef-source--textual {
    font-size: 45px;
    height: 90px;
    width: auto;
    top: 0%;
}

/* Running animations by default */
.qodef-opener-icon.qodef-source--predefined.qodef-rotating-opener--enabled 
  .qodef--open .qodef-svg--opener-rotate {
  overflow: visible;
  transform-origin: center;
  animation: qode-rotate 11s linear infinite;
  animation-play-state: running;
}

.qodef-opener-icon.qodef-source--predefined.qodef-rotating-opener--enabled 
  .qodef--open .qodef-svg--star-opener {
  transform-origin: center;
  animation: qode-rotate 13s linear infinite reverse;
  animation-play-state: running;
}

.qodef-opener-icon.qodef-source--predefined.qodef-rotating-opener--enabled 
  .qodef--open:hover .qodef-svg--opener-rotate,
.qodef-opener-icon.qodef-source--predefined.qodef-rotating-opener--enabled 
  .qodef--open:hover .qodef-svg--star-opener {
  animation-play-state: paused;
}

#qodef-fullscreen-area {
  position: relative;
}

#qodef-fullscreen-area::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100vw;
  aspect-ratio: 1928 / 181;
  background: url("https://staging.speedxmedia.com/wp-content/uploads/2025/09/SXM_Logo.svg")
              no-repeat center bottom;
  background-size: 100% 100%;
  z-index: 999;
  opacity: 0;
  transition: opacity 1.2s cubic-bezier(0.77, 0, 0.175, 1);
  pointer-events: none;
}

.qodef-fullscreen-menu-animate--in #qodef-fullscreen-area::after {
    opacity: 1;
}

.qodef-fullscreen-menu-animate--out #qodef-fullscreen-area::after {
    opacity: 0;
    transition: opacity 1.2s cubic-bezier(0.77, 0, 0.175, 1);
}

.qodef-fullscreen-menu-social-icons a{
    color:#000!important;
}

.qodef-fullscreen-contact-info {
  margin-top: 0rem;
}

.qodef-fullscreen-contact-info .qodef-contact-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  color: #000;
  margin-bottom: 15px;
}

.qodef-fullscreen-contact-info .qodef-contact-item:last-child {
  margin-bottom: 0;
}

.qodef-fullscreen-contact-info .qodef-contact-item i {
  font-size: 1.5rem;
}

.qodef-fullscreen-contact-info .qodef-contact-text {
  font-family: 'Unbounded', sans-serif;
  font-size: 1rem;
}

.qodef-contact-icon {
  width: 1.5rem;
  height: 1.5rem;
  flex-shrink: 0;
}

.qodef-fullscreen-menu-social-icons{
     margin-top: 1rem;  
}

@media(min-width:968px){
  #qodef-fullscreen-area-inner {
      padding: 0 0 10% 0%;
  }
}

.footer-social.social-icons {
  list-style: none;
  padding: 0;
  margin: 0;
}

.footer-social.social-icons li {
  margin-bottom: 1.5rem;
}

.footer-social.social-icons li a {
  display: inline-flex;
  align-items: center;
  font-family: 'Unbounded', sans-serif;
  font-size: 2.5rem;
  line-height: 1.2;
  color: #fff;
  text-decoration: none;
  overflow: visible;
  padding-right: 2.5rem;
  transition: all .3s ease;
}

.footer-social.social-icons li a i {
  font-size: 0;
  opacity: 0;
  margin-right: 0;
  transition: all .3s ease;
  color: currentColor;
}

.footer-social.social-icons li a span {
  display: inline-block;
  transition: transform .3s ease;
}

.footer-social.social-icons li a:hover span {
  transform: translateX(1rem);
}

.footer-social.social-icons li a:hover i {
  font-size: 2rem;
  opacity: 1;
  margin-right: 0.75rem;
}

#qodef-page-footer-bottom-area .qodef-grid.qodef-col-num--2>.qodef-grid-inner {
    --qode-columns: 1!important;
}

#qodef-page-footer-bottom-area-inner {
    padding-top: 0;
    padding-bottom: 0;
    border-top: 0 solid #000;
}

.fullbleed {
  position: relative;
  width: 100vw;               
  left: 50%;                  
  transform: translateX(-50%);
  text-transform: uppercase;
  font-family: 'Unbounded', sans-serif;
  font-size: 10.6vw;                 
  white-space: nowrap;        
  text-align: center;         
  overflow: visible;  
}

.fullbleed-middle {
  position: relative;
  width: 100vw;               
  left: 50%;                  
  transform: translateX(-50%);
  white-space: nowrap;        
  text-align: center;         
  font-family: 'Unbounded', sans-serif;
  font-size: 5vw;
  line-height: 1.2;
  overflow: visible;          
  text-transform: uppercase;
}

.fullbleed-top {
  position: relative;
  display: block;
  width: 100vw;
  left: 50%;
  transform: translateX(-50%);
  text-transform: uppercase;
  text-align: center;
  font-family: 'Unbounded', sans-serif;
  font-size: 3.6vw;
  margin: 2rem 0;
  white-space: nowrap;
  overflow: visible;
  text-overflow: unset !important;
}

@media(max-width:1200px){
    #qodef-page-mobile-header .qodef-mobile-header-logo-link.qodef-source--textual {
        font-size: 30px;
        line-height: 1.2em;
        color: #fff;
        border-top: 1px solid #fff;
        border-bottom: 1px solid #fff;
        height: 35px;
    }
    
    #qodef-page-mobile-header{
        background-color: transparent!important;
    }
}

.qodef-header--sticky-display #qodef-page-header-inner .qodef-opener-icon{
    display: none!important;
}

/* Hide the star wrapper */
.qodef-opener-icon .qodef-m-icon.qodef--open .qodef-svg--star-wrapper {
  display: none !important;
}

.qodef-opener-icon .qodef-m-icon.qodef--open {
  position: relative;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 3rem;
  height: 3rem;
}

.qodef-opener-icon .qodef-m-icon.qodef--open::before {
  content: '+';
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-family: 'Unbounded', sans-serif;
  font-size: 3rem;
  line-height: 1;
  color: currentColor;
  animation: plus-spin 4s linear infinite;
  pointer-events: none;
}

@keyframes plus-spin {
  from { transform: translate(-50%, -50%) rotate(0deg); }
  to   { transform: translate(-50%, -50%) rotate(360deg); }
}

.qodef-header-sticky-inner .widget.widget_block{
    margin: 0px!important;
}

.qodef-header-sticky-inner {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100%;
  padding: 0 40px;
}

.qodef-header-sticky-inner > a.qodef-header-logo-link.qodef-source--textual {
  position: absolute!important;
  left: 50%!important;
  transform: translateX(-50%)!important;
  margin: 0 auto !important;         
  width: auto;
  white-space: nowrap;
  text-align: center;
}

#menu-primary-3 .sub-menu {
  display: none;
  overflow: hidden;
}

#menu-primary-3 > li.expanded {
  order: -1;
}

.qodef-fullscreen-menu .qodef-drop-down-second-inner ul li>a {
  font-size: 45px;
  line-height: 1.1111111111em;
  text-transform: uppercase;
  color: #f2f2f2;
  font-weight: 400;
}

.qodef-fullscreen-menu ul.sub-menu {
    width: 100% !important;
}

#qodef-fullscreen-area {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #fff;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  overflow-x: hidden !important;
  z-index: 99;
  transition: transform 0.6s cubic-bezier(0.77, 0, 0.175, 1);
  transform: translateY(-105%);
}

.qodef-fullscreen-menu-animate--in #qodef-fullscreen-area {
    transform: translateY(0%);
}

@media(max-width: 768px){
    .qodef-opener-icon .qodef-m-icon.qodef--open::before {
      content: '+';
      display: block;
      position: absolute;
      top: 42%;
      left: 50%;
      transform: translate(-50%, -50%);
      font-size: 2.5rem;
    }

    .qodef-fullscreen-menu>ul>li>a {
        font-size: 22px;
        line-height: 1.1428571429em;
    }
    
    #qodef-page-mobile-header {
      background-color: transparent;
    }

    .qodef-opener-icon.qodef-source--predefined.qodef-rotating-opener--enabled .qodef--open svg {
      overflow: visible;
      width: 40px;
      height: 40px;
    }

    #qodef-fullscreen-area .qodef-content-grid .qodef-fullscreen-menu {
        width: 80%;
    }

    .qodef-fullscreen-menu {
        left: 0%!important;
    }

    #qodef-fullscreen-area::after {
        font-size: 11.1vw;
    }
}

#qodef-fullscreen-area,
#qodef-fullscreen-area * {
  color: #000 !important;
}

.qodef-m-icon.qodef--close:hover svg,
.qodef-m-icon.qodef--close:hover svg * {
  stroke: #000 !important;
  fill: #000 !important;
  color:#000!important;
}

.qodef-svg--close {
    fill: #000;
}

.qodef--close *{
  stroke: #000 !important;
  fill: #000 !important;
  color:#000!important;
}

@media(min-width:992px){
   #qodef-fullscreen-area-inner .qodef-fullscreen-menu-image{
    width:50%;
  } 
}

/* NEW STYLES FOR FULL SCREEN MENU */
.qodef-fullscreen-menu {
    width: 50%;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}

.qodef-fullscreen-menu-image {
    width: 50vw;
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    min-width: 0;
}

.qodef-fullscreen-menu-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
    display: block;
}

#qodef-fullscreen-area .qodef-content-grid {
    height: 100%;
    width: 100%;
    padding: 0 !important;
}

.qodef-fullscreen-menu{
    left:10%;
}

@media only screen and (max-width: 1600px) {
    #qodef-fullscreen-area-inner .qodef-fullscreen-menu-image {
        max-width: 50%!important;
    }
}

#obj-3d-container {
  width: 100%;
  max-width: 100%;
  height: 280px;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0 auto;
  overflow: hidden;
  padding: 0;
}

@media (max-width: 768px) {
  #obj-3d-container {
    height: 200px;
  }
}

canvas {
  display: block !important;
}

.menu-login a {
    border: 3px solid;
    padding: 6px 40px;
    display: inline-block;
    font-size: 25px !important;
}

.qodef-fullscreen-menu .qodef-drop-down-second-inner ul li>a {
  font-size: 35px;
  font-family: Unbounded, sans-serif;
}

.qodef-button.qodef-layout--circle .qodef-m-text {
    height: 90px;
}

.post-template #qodef-page-header{
    background-color: transparent!important;
}

#qodef-fullscreen-area-inner {
  padding-bottom: clamp(120px, 12vw, 200px);
}

#qodef-fullscreen-area .qodef-content-grid .qodef-fullscreen-menu {
    padding-top: clamp(60px, 8vh, 120px);
}

#qodef-fullscreen-area::after {
  font-size: 10.8vw;
}

.qodef-fullscreen-menu-animate--in #qodef-fullscreen-area::after {
  opacity: 1;
}

.qodef-fullscreen-menu-animate--out #qodef-fullscreen-area::after {
  opacity: 0;
  transition: opacity 1.2s cubic-bezier(0.77, 0, 0.175, 1);
}

.qodef-fullscreen-menu-social-icons .widget.widget_block{
    margin-bottom: 25px!important;
}

/* Smaller font on laptop screens */
@media (max-width: 1500px) {
  #qodef-fullscreen-area::after {
      display: block !important;
  }

  .qodef-fullscreen-menu > ul > li > a {
      font-size: 30px;
  }
  
  #qodef-fullscreen-area-inner {
      padding-bottom: 0 !important;
  }
}

.qodef-fullscreen-menu > ul > li > a {
    font-size: 26px!important;
}

@media (max-width: 992px) {
  .qodef-fullscreen-menu > ul > li > a {
      font-size: 24px;
  }
}

@media (max-width: 768px) {
  .qodef-fullscreen-menu > ul > li > a {
      font-size: 22px;
      line-height: 1.2;
  }
  
  #qodef-page-footer-top-area-inner {
      padding-top: 50px !important;
      padding-bottom: 50px !important;
      padding-left: 40px !important;
      padding-right: 40px !important;
  }
    
  #qodef-page-footer-top-area-inner .widget_media_image{
      margin-bottom: 0px!important;
  }
}
  

.gform-theme--foundation .gfield .ginput_password.large, 
.gform-theme--foundation .gfield input.large, 
.gform-theme--foundation .gfield select.large {
    inline-size: 100%;
    font-family: "Unbounded", Sans-serif!important;
    font-weight: 500;
    font-size: 20px;
    height: 60px;
    border: 1px solid #000 !important;
    outline: 0 !important;
}

.gform-theme--foundation .gfield textarea{
    font-family: "Unbounded", Sans-serif!important;
    font-weight: 500;
    font-size: 20px;
    height: 160px;
    border: 1px solid #000 !important;
    outline: 0 !important;
}

.gform-theme--foundation input[type=submit] {
    font-family: Unbounded, sans-serif;
    font-size: 12px;
    line-height: 2em;
    font-weight: 500;
    position: relative;
    display: inline-flex;
    vertical-align: middle;
    width: auto;
    margin: 0;
    text-decoration: none;
    text-transform: uppercase;
    border-radius: 0;
    outline: 0;
    transition: color .2s ease-out, background-color .2s ease-out, border-color .2s ease-out;
    padding: 11px 60px;
    cursor: pointer;
    background: #000 !important;
    width: 100% !important;
    font-family: "Unbounded", Sans-serif !important;
    font-weight: 500 !important;
    font-size: 30px !important;
    text-transform: uppercase !important;
    padding: 17px 40px !important;
}

.gform-theme--foundation .gfield textarea.large {
    min-block-size: 4rem!important;
}

.gform-theme--foundation .gform_fields {
    row-gap: 15px!important;
}

.gform_heading{
    display: none!important;
}

.footer-image{
    width: 70%!important;
    margin: 0 auto;
}

/* Footer full-width logo */
.footer-logo {
  position: relative;
  width: 100vw;
  left: 50%;
  transform: translateX(-50%);
  aspect-ratio: 1928 / 181;
  background: url("https://staging.speedxmedia.com/wp-content/uploads/2025/09/SXM_Logo.svg")
              no-repeat center center;
  background-size: contain;
  filter: brightness(0) invert(1);
  display: block;
  max-width: 100%;
  margin: 0 auto;
}

#qodef-page-footer-bottom-area-inner{
    width: 100%!important;
}

@media (max-width: 768px) {
  .footer-logo {
    width: 100vw;
  }
}

/* Fix the mobile header layout and make logo white */
#qodef-page-mobile-header-inner {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  padding: 0 15px !important;
}

#qodef-page-mobile-header .qodef-mobile-header-logo-link {
  position: relative !important;
  flex: 1 !important;
  max-width: calc(100% - 60px) !important;
  display: flex !important;
  justify-content: flex-start !important;
  align-items: center !important;
}

#qodef-page-mobile-header .qodef-header-logo-image {
  filter: brightness(0) invert(1) !important;
  width: 100% !important;
  height: auto !important;
  max-width: 160px !important;
  min-width: 160px !important;
}

#qodef-page-mobile-header .qodef-header-logo-image.qodef--dark,
#qodef-page-mobile-header .qodef-header-logo-image.qodef--light {
  display: none !important;
}

#qodef-page-mobile-header .qodef-opener-icon {
  flex-shrink: 0 !important;
  margin-left: 10px !important;
  width: 40px !important;
  height: 40px !important;
}

body.error404 #qodef-page-header{
    display: none!important;
}

.footer-logo-juan img{
    filter: brightness(0) invert(1);
}

footer .qodef-svg--menu-item, 
footer .qodef-svg--menu-item, 
#qodef-page-footer svg{
    display: none!important;
}

.sxm-mobile-contact-btn {
    font-family: 'Unbounded', sans-serif;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #fff !important;
    text-decoration: none !important;
    border: 1.5px solid #fff;
    background: transparent;
    padding: 6px 12px;
    margin-right: 12px;
    display: inline-flex;
    align-items: center;
    transition: background 0.3s ease, color 0.3s ease;
    flex-shrink: 0;
}

.sxm-mobile-contact-btn:hover {
    background: #fff;
    color: #000 !important;
}

.qodef-mobile-header--sticky-display #qodef-page-mobile-header {
    background-color: #000 !important;
    top: 0 !important;
    position: fixed !important;
    width: 100% !important;
    z-index: 1000 !important;
}

.qodef-icon-with-text .qodef-m-icon-wrapper img {
    filter: brightness(0);
}

.qodef-svg-image .qodef-svg--title-decoration-3 path {
    stroke: #000 !important;
}

.menu-item-6172 > a {
    pointer-events: none;
    cursor: default;
}

.menu-item-6172:hover > a {
    pointer-events: none;
}

.elementor-widget-text-editor a{
    text-decoration: underline;
}

.start-project:hover{
    background:#fff!important;
    color:#000!important;
}

.start-project:hover span{
    color:#000!important;
}

.post-template.qodef-header--fixed-display #qodef-page-header,
.post-template.qodef-header--sticky-display #qodef-page-header {
    background: #000 !important;
}

/* ===== SXM GLOBAL FOOTER FIXES (managed by Claude) ===== */
/* the X loop is wider than its frame; never slice it */
.main-footer .elementor-widget-video video,
.main-footer .elementor-widget-video .elementor-wrapper{object-fit:contain!important;background:transparent;}
.main-footer .elementor-widget-video .elementor-fit-aspect-ratio{background:transparent;}
/* ===== END SXM GLOBAL FOOTER FIXES ===== */

/* ===== HELLO ELEMENTOR RESET NEUTRALISER (managed by Claude) ===== */
/* hello-elementor/assets/css/reset.css skins every bare <a> and <button> with #c36
   (pink): a 1px pink border, pink text, and a solid pink fill on hover. EverHue used to
   override that, so it only became visible after the theme switch - e.g. the FAQ
   accordions on /marketing/ turning pink on hover. Elementor widgets set their own
   colours, so bare elements should simply inherit from their container. */
:where(.elementor) a{color:inherit;}   /* :where() keeps this a low-priority default so page CSS can override it */
a.skip-link{color:#fff!important;background:#000!important;border-color:#fff!important;}
/* :where() everywhere: this is a DEFAULT, not an override. Zero specificity means any
   component rule (even a single class) wins without needing an exemption listed here. */
:where(.elementor) button:where(:not([class*="elementor-button"],.elementor-menu-toggle,[class*="swiper"])),
:where(.elementor) [type="button"]:where(:not([class*="elementor-button"])),
:where(.elementor) [type="reset"],
:where(.elementor) [type="submit"]:where(:not([class*="elementor-button"],[class*="gform"])){
  background-color:transparent;border:0;border-radius:0;color:inherit;padding:0;
  font-size:inherit;font-weight:inherit;text-align:inherit;white-space:normal;}
:where(.elementor) button:where(:not([class*="elementor-button"],.elementor-menu-toggle,[class*="swiper"])):is(:hover,:focus,:active,:focus-visible),
:where(.elementor) [type="button"]:where(:not([class*="elementor-button"])):is(:hover,:focus,:active,:focus-visible){
  background-color:transparent;}   /* only the pink FILL is neutralised here: colour is left to the component, otherwise this (0,2,0) rule beat every two-class component colour on hover/focus (the FAQ question went black on click, 2026-09-03) */
/* Gravity Forms submit buttons on pages we have not redesigned yet: give them the brand
   look instead of the pink reset. Redesigned pages override this with their own rules. */
.elementor .gform_wrapper .gform_footer input[type="submit"]{
  background-color:#000;border:1px solid #000;border-radius:4px;color:#fff;
  padding:14px 34px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  transition:opacity .25s ease;}
.elementor .gform_wrapper .gform_footer input[type="submit"]:hover{background-color:#000;color:#fff;opacity:.85;}
/* A Qi/Swiper carousel whose JS never initialises lays every slide out in a row and
   blows the page width out. Swiper containers are meant to clip; enforce it so an
   un-initialised carousel degrades to a clipped strip instead of a horizontal scroll. */
.elementor .swiper,.elementor .swiper-container,.elementor .qodef-swiper-container{overflow:hidden;}
/* WordPress core forms (password protect, comments) render outside .elementor, so
   they also picked up the pink reset skin. */
.post-password-form input[type=submit],.comment-form input[type=submit],
.wp-block-search__button{background-color:#000;border:1px solid #000;border-radius:4px;
  color:#fff;padding:10px 22px;}
.post-password-form input[type=submit]:hover,.comment-form input[type=submit]:hover{
  background-color:#000;color:#fff;opacity:.85;}
/* ===== END HELLO ELEMENTOR RESET NEUTRALISER ===== */

/* === SXM HEADER CTA NOWRAP === */
/* The header CTA said CONTACT when the mobile bar was sized; BOOK A CALL (2026-08-31)
   is four characters longer and wrapped to two lines at 390. A header chip must never
   wrap — keep it one line and let the padding set the box. */
.elementor-location-header .elementor-button,
.elementor-location-header .elementor-button-text{ white-space: nowrap; }
/* === /SXM HEADER CTA NOWRAP === */

/* === SXM HEADER DROPDOWN === */
/* Elementor sizes a horizontal menu's sub-menu to its parent item (156px under SERVICES);
   the longest child overran the card. Size the card to its content, keep the parent as a floor. */
.sxm-header-nav .elementor-nav-menu--main .sub-menu{
  width: max-content !important; min-width: 100%;
  box-shadow: 0 22px 44px -22px rgba(0,0,0,.7);
}
/* the homepage's page CSS (body.home *{color:#fff}) turned the white card's items white:
   the dropdown states are pinned here above any page-level rule */
.sxm-header-nav .sub-menu a, .sxm-header-nav .sub-menu a.elementor-item-active{ color: #000 !important; background: transparent !important; }
.sxm-header-nav .sub-menu a:hover, .sxm-header-nav .sub-menu a:focus, .sxm-header-nav .sub-menu a:focus-visible{ color: #fff !important; background: #000 !important; }
/* === /SXM HEADER DROPDOWN === */

/* === SXM POLISH === */
/* cross-document view transitions: a 200ms crossfade between pages (Chrome/Safari; others ignore) */
@view-transition { navigation: auto; }
::view-transition-old(root){ animation: 180ms ease-out both sxm-vt-out; }
::view-transition-new(root){ animation: 220ms ease-out both sxm-vt-in; }
@keyframes sxm-vt-out{ to{ opacity: 0; } }
@keyframes sxm-vt-in{ from{ opacity: 0; transform: translateY(6px); } }
@media (prefers-reduced-motion: reduce){ ::view-transition-old(root), ::view-transition-new(root){ animation: none; } }
/* the brand's own inversion for text selection */
::selection{ background: #fff; color: #000; }
/* footer links: 27px rows are under the 44px touch guideline on a phone */
@media (max-width: 1024px){
  [data-elementor-type="footer"] .elementor-icon-list-item a,
  [data-elementor-type="footer"] .elementor-heading-title a{ display: inline-block; padding: 7px 0; }
}
/* the wordmark is present at first paint and settles in 420ms (the old draw/flash/scan snippet
   left the header blank for ~2s on every load) */
@keyframes sxm-logo-in{ from{ opacity: 0; transform: translateY(5px); } }
.sxm-hd .main-logo img, .sxm-mobile-header .elementor-widget-image img{ animation: sxm-logo-in .42s cubic-bezier(.16,.84,.44,1) both; }
@media (prefers-reduced-motion: reduce){ .sxm-hd .main-logo img, .sxm-mobile-header .elementor-widget-image img{ animation: none; } }
/* === /SXM POLISH === */

/* === SXM FLEX WRAP === */
/* Elementor's container default is flex-wrap:wrap at the tablet/mobile breakpoints. A COLUMN flex
   container with wrap and an indefinite height sizes its item to the item's INTRINSIC (max-content)
   height in Chromium — on /blog/ that inflated the shortcode mount from 2875px to 5130px, leaving
   2325px of dead black space above the footer on a phone (same cause as the homepage blog band,
   §37.1). A column container holding one component never needs to wrap. */
@media (max-width: 1024px){
  .e-con:has(> .e-con-inner > .elementor-widget-shortcode),
  .e-con:has(> .elementor-widget-shortcode){ flex-wrap: nowrap; }
  /* named fallback for engines without :has() */
  .sxm-bl-shell, .sxm-lp-host, .sxm-pf-host, .sxm-ed-shell{ flex-wrap: nowrap; }
}
/* === /SXM FLEX WRAP === */

/* === SXM DEVICE FRAME === */
/* SXM DEVICE FRAME — a phone for case-study mobile captures (markup: tools/sxm-scripts/device.php).
   Anatomy: bezel with side keys → screen (9:19.5, size container) → status bar in the client's own
   header colour, dynamic island, the capture, home indicator. Hover scrolls the capture to its end
   (fine pointers only); reduced motion shows the top of the page and nothing moves. */
.sxm-dev{
  --dev-w: clamp(240px, 21vw, 300px); --dev-r: 46px; --dev-pad: 10px; --dev-bar-h: 44px;
  --dev-bezel: #0b0b0b; --dev-line: rgba(255,255,255,.16); --dev-glow: rgba(0,0,0,.55); --dev-bar: #000;
  width: var(--dev-w); max-width: 100%; margin: 0 auto; position: relative;
  display: flex; flex-direction: column; align-items: center; gap: 14px;
}
.sxm-dev-frame{
  position: relative; width: 100%; box-sizing: border-box;
  padding: var(--dev-pad); border-radius: var(--dev-r); background: var(--dev-bezel);
  box-shadow: 0 0 0 1px var(--dev-line), inset 0 0 0 1px rgba(255,255,255,.05),
              0 44px 80px -28px var(--dev-glow), 0 14px 30px -14px rgba(0,0,0,.5);
  transition: transform .5s cubic-bezier(.2,.7,.2,1);
}
/* side keys: volume rocker left, power right */
.sxm-dev-frame::before, .sxm-dev-frame::after{
  content: ""; position: absolute; width: 3px; border-radius: 2px;
  background: var(--dev-bezel); box-shadow: 0 0 0 1px var(--dev-line);
}
.sxm-dev-frame::before{ left: -4px; top: 19%; height: 20%; }
.sxm-dev-frame::after{ right: -4px; top: 24%; height: 13%; }
.sxm-dev-screen{
  position: relative; overflow: hidden; border-radius: calc(var(--dev-r) - var(--dev-pad));
  aspect-ratio: 9 / 19.5; background: var(--dev-bar); container-type: size; isolation: isolate;
}
.sxm-dev-bar{
  position: absolute; z-index: 3; inset: 0 0 auto 0; height: var(--dev-bar-h);
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 24px 0 28px; background: var(--dev-bar); color: #fff;
  font-family: ui-monospace, "SF Mono", Menlo, monospace; font-size: 13px; font-weight: 600; letter-spacing: 0; line-height: 1;
}
.sxm-dev-bar b{ font-weight: 600; font-variant-numeric: tabular-nums; }
.sxm-dev-ic{ display: inline-flex; align-items: center; gap: 5px; }
.sxm-dev-ic i{ display: block; }
.sxm-dev-sig{ width: 17px; height: 11px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 12' fill='%23fff'%3E%3Crect x='0' y='8' width='3' height='4' rx='.8'/%3E%3Crect x='5' y='5.5' width='3' height='6.5' rx='.8'/%3E%3Crect x='10' y='3' width='3' height='9' rx='.8'/%3E%3Crect x='15' y='0' width='3' height='12' rx='.8'/%3E%3C/svg%3E") no-repeat center / contain; }
.sxm-dev-wifi{ width: 15px; height: 11px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 12' fill='%23fff'%3E%3Cpath d='M8 12 1.6 5.6a9 9 0 0 1 12.8 0Z'/%3E%3C/svg%3E") no-repeat center / contain; }
.sxm-dev-bat{ width: 24px; height: 12px; box-sizing: border-box; border: 1.5px solid rgba(255,255,255,.5); border-radius: 4px; position: relative; }
.sxm-dev-bat::before{ content: ""; position: absolute; top: 2px; bottom: 2px; left: 2px; right: 4px; background: #fff; border-radius: 1.5px; }
.sxm-dev-bat::after{ content: ""; position: absolute; right: -4.5px; top: 2.5px; width: 2px; height: 4px; border-radius: 0 1px 1px 0; background: rgba(255,255,255,.5); }
.sxm-dev-island{
  position: absolute; z-index: 4; top: 11px; left: 50%; translate: -50% 0;
  width: 36%; height: 25px; border-radius: 14px; background: #000;
  box-shadow: 0 0 0 1px rgba(255,255,255,.07);
}
.sxm-dev-island::after{
  content: ""; position: absolute; right: 9px; top: 50%; translate: 0 -50%; width: 9px; height: 9px; border-radius: 50%;
  background: radial-gradient(circle at 40% 40%, #2a3547 0 25%, #0b0f16 60%); box-shadow: inset 0 0 0 1px rgba(255,255,255,.08);
}
.sxm-dev .sxm-dev-shot{
  position: absolute; left: 0; top: var(--dev-bar-h); width: 100%; height: auto; display: block;
  margin: 0; border: 0; border-radius: 0; max-width: none; box-shadow: none;
  transition: transform 2.6s cubic-bezier(.4,0,.2,1); will-change: transform;
}
.sxm-dev-home{
  position: absolute; z-index: 3; bottom: 8px; left: 50%; translate: -50% 0;
  width: 38%; height: 4px; border-radius: 2px; background: #fff; mix-blend-mode: difference; opacity: .85;
}
.sxm-dev .sxm-dev-hint{
  font-family: var(--sxm-mono, ui-monospace, monospace); font-size: 10px; letter-spacing: 2px; text-transform: uppercase;
  color: currentColor; opacity: .5; display: none; transition: opacity .4s; margin: 0;
}
@media (hover: hover) and (pointer: fine){
  .sxm-dev .sxm-dev-hint{ display: block; }
  .sxm-dev:hover .sxm-dev-hint{ opacity: 0; }
  .sxm-dev:hover .sxm-dev-frame{ transform: translateY(-6px); }
  .sxm-dev:hover .sxm-dev-shot{ transform: translateY(calc(100cqh - var(--dev-bar-h) - 100%)); }
}
@media (prefers-reduced-motion: reduce){
  .sxm-dev-shot, .sxm-dev-frame{ transition: none; }
  .sxm-dev:hover .sxm-dev-shot, .sxm-dev:hover .sxm-dev-frame{ transform: none; }
  .sxm-dev .sxm-dev-hint{ display: none; }
}
@media (max-width: 767px){ .sxm-dev{ --dev-w: 232px; --dev-r: 40px; --dev-pad: 8px; } }

/* the phone band: a short caption column beside the device, the pair centred in the measure */
.sxm-dev-band{
  display: grid; grid-template-columns: minmax(0, 400px) auto; justify-content: center; align-items: center;
  gap: clamp(36px, 6vw, 96px); padding: clamp(40px, 5vw, 72px) 0 0;
}
.sxm-dev-band .sxm-dev-band__text{ display: flex; flex-direction: column; gap: 14px; }
.sxm-dev-band .sxm-dev-band__k{ font-family: var(--sxm-mono, ui-monospace, monospace); font-size: clamp(10px, .83vw, 12px); letter-spacing: 2px; text-transform: uppercase; opacity: .62; margin: 0; }
.sxm-dev-band .sxm-dev-band__h{ font-family: var(--sxm-wide, inherit); font-weight: 500; font-size: clamp(18px, 1.8vw, 26px); line-height: 1.2; letter-spacing: .04em; text-transform: uppercase; margin: 0; }
.sxm-dev-band .sxm-dev-band__p{ font-family: var(--sxm-copy, inherit); font-weight: 300; font-size: clamp(14px, 1.15vw, 17px); line-height: 1.65; margin: 0; opacity: .78; max-width: 44ch; }
@media (max-width: 767px){
  .sxm-dev-band{ grid-template-columns: 1fr; gap: 28px; text-align: center; }
  .sxm-dev-band .sxm-dev-band__text{ align-items: center; }
}
/* === /SXM DEVICE FRAME === */

/* === SXM VARDGES FIXES === */
/* Vardges' phone review, 2026-09-21 (CLAUDE.md §57) */
/* 4. "when you start using a form the website lock gets unlocked": iOS Safari zooms the page into any field
      under 16px on focus, and the zoomed page pans sideways. 16px on every field on a phone ends the zoom. */
@media (max-width: 767px){
  .elementor input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="hidden"]),
  .elementor textarea, .elementor select,
  .gform_wrapper input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="hidden"]),
  .gform_wrapper textarea, .gform_wrapper select,
  /* the homepage form pins its fields at 14px !important with three classes: outrank it */
  body .elementor .gform_wrapper .gfield textarea, body .elementor .gform_wrapper .gfield input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="hidden"]){ font-size: 16px !important; }
}
/* 3. the accessibility widget (accessibitly.com, WPCode 18081) paints a 60px blue disc bottom-left; on a phone
      it covers the footer's copyright. The icon is the vendor's; its size and place are ours. */
/* Juan 2026-09-22 (evening): bottom RIGHT, stacked above the reCAPTCHA badge (bottom 14, 60 tall → the disc starts at
   88), 33px desktop / 30px phone (his "even smaller"), hidden while the phone menu is open so it covers nothing in it
   (the preloader already hides it while the stage is up). The vendor's stylesheet sets left/bottom; ours wins on !important. */
#_ada-friendly-embed-button-wrapper_{ left: auto !important; right: 14px !important; bottom: 88px !important; top: auto !important;
  transform: scale(.55); transform-origin: right bottom; opacity: .92; }
@media (max-width: 767px){ #_ada-friendly-embed-button-wrapper_{ transform: scale(.5); right: 12px !important; bottom: 86px !important; } }
body:has(.sxm-mn.is-open) #_ada-friendly-embed-button-wrapper_{ visibility: hidden !important; }
/* Juan: "the 2026 in the footer bar is not visible" — the homepage's body.home *{color:#fff} (0,1,1) ties the strip's
   own rule and loads later, so the whole copyright line went white on the white strip there */
body .sxm-copyright p, body .sxm-copyright p span{ color: rgba(0,0,0,.55); }
/* (the phone copyright strip no longer needs room on the left: the disc lives bottom-right now) */
/* === /SXM VARDGES FIXES === */

/* === SXM FORMS POLISH === */
/* SXM FORMS POLISH — the pre-launch forms audit, 2026-09-22 (CLAUDE.md §58) */
/* validation in the site's own accent, readable (GF's default red is 3.6:1 on black): the summary, the
   per-field messages, and a gold ring on the field that failed */
.gform_wrapper .gform_validation_errors{ border-color:#E8C33C !important; background:rgba(232,195,60,.06) !important; }
.gform_wrapper .gform_validation_errors > h2, .gform_wrapper .gform_validation_errors > h2 .gform-icon,
.gform_wrapper .gfield_validation_message, .gform_wrapper .validation_message, .gform_wrapper .gform_submission_error{ color:#E8C33C !important; }
.gform_wrapper .gfield_error input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]),
.gform_wrapper .gfield_error textarea, .gform_wrapper .gfield_error select{ box-shadow: inset 0 0 0 1px #E8C33C !important; }
/* keyboard focus on a field was invisible (outline none, border unchanged): a white inset ring */
.gform_wrapper input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]):focus-visible,
.gform_wrapper textarea:focus-visible, .gform_wrapper select:focus-visible{ outline:none !important; box-shadow: inset 0 0 0 2px #fff !important; }
/* the submit's focus ring, white like every other ring on the site (GF's default is blue) */
.gform_wrapper input[type="submit"]:focus-visible, .gform_wrapper .gform_button:focus-visible{ outline:2px solid #fff !important; outline-offset:3px !important; box-shadow:none !important; }
/* the "Phone format: (###) ###-####" hint rendered BESIDE the field inside the house flex containers and shrank
   it 677 → 522 in the error state; keep it for screen readers only (the input mask already formats) */
.gform_wrapper .ginput_container_phone .gfield_description.instruction{ position:absolute !important; width:1px !important; height:1px !important; overflow:hidden !important; clip:rect(0 0 0 0) !important; white-space:nowrap !important; margin:0 !important; padding:0 !important; }
/* the homepage's absolute send strip spans the form's full height and covered the right end of the summary */
.get-in-touch-form .gform_validation_errors{ width:calc(100% - 100px) !important; box-sizing:border-box; }
/* /contact/: the whole send strip is the button (a click relay in sxm-head.php submits from anywhere on it) */
.sxm-c-form .gform_wrapper .gform_footer{ cursor:pointer; }
/* === /SXM FORMS POLISH === */

/* === SXM SR SEP === */
/* A word space between the halves of a display lockup whose container is not flex (inline-block / absolute
   spans): painted nowhere, but present in the DOM text so crawlers and screen readers read "CASE STUDIES",
   not "CASESTUDIES". Flex lockups just carry a real whitespace node instead (flex ignores it). */
.sxm-sr{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; margin:0; padding:0; border:0; }
/* === /SXM SR SEP === */

/* === SXM LP HOST PAD === */
/* The blog band's host container carries Elementor's default 10px padding on the Elementor-hosted pages, so the
   band sat at 50..1390 while the form above it sits on the 40..1400 measure (30 vs 20 on a phone). §58 */
.e-con.sxm-lp-host{ padding:0; }
/* /paid-ads-law/ keeps its campaign layout on the theme's white body; the band and footer seams need the black ground */
body.page-id-17674{ background:#000; }
/* === /SXM LP HOST PAD === */

/* === SXM WEBFONTS 2 === */
/* Bookman JFPro Regular (Elementor Custom Font 16092) for raw CSS: the /services/ page sets "Marketing" in it outside any
   typography control, and Elementor only emits a custom font's @font-face when a control picks it (§13). */
@font-face{ font-family:'Bookman JFPro Regular'; src:url('https://staging.speedxmedia.com/wp-content/uploads/2026/03/BookmanJFPro-Regular.woff') format('woff'); font-weight:400; font-style:normal; font-display:swap; }
/* === /SXM WEBFONTS 2 === */

/* === SXM PAID ADS LAW NAV === */
/* /paid-ads-law/ (17674) is a campaign landing page with its own fixed nav (logo, Specialties / Why us / Results /
   Book a strategy call). The global header rendered underneath it, so the MENU ring hung orphaned below the landing
   nav over an empty band, and on phones the global bar peeked out behind it (review 2026-09-24). /paid-ads/ already
   hides the global header the same way (§43). */
.page-id-17674 .sxm-hd, .page-id-17674 .sxm-hd-spacer, .page-id-17674 .sxm-hd-fx,
.page-id-17674 .sxm-mobile-header, .page-id-17674 .sxm-mh-spacer{ display: none !important; }
/* === /SXM PAID ADS LAW NAV === *//* End custom CSS */