:root{--ic-navy:#14202b;--ic-red:#e80035;--ic-white:#fff;--ic-soft:#f4f6f7;--ic-text:#27313a;--ic-shadow:0 14px 34px rgba(20,32,43,.12)}
html{scroll-behavior:smooth;overflow-x:hidden}
body{overflow-x:hidden;text-rendering:optimizeLegibility}
img,svg,video,iframe{max-width:100%}
a,button,input,textarea,select{touch-action:manipulation}
.ic-final-mobile-header{display:none}
.elementor-button,.qbutton,.zw-submit{min-height:46px;display:inline-flex;align-items:center;justify-content:center}
input,textarea,select{max-width:100%;box-sizing:border-box}
.zw-privacy-consent{display:flex!important;align-items:flex-start;gap:10px;font-weight:400!important;line-height:1.5}.zw-privacy-consent input{width:18px!important;height:18px!important;min-height:18px!important;flex:0 0 18px;margin:3px 0 0!important}.zw-privacy-consent a{color:var(--ic-red);text-decoration:underline}

@media (max-width:1024px){
  #masthead>.elementor{display:none!important}
  .ic-final-mobile-header{display:flex!important;align-items:center;justify-content:space-between;height:92px;padding:0 24px;box-sizing:border-box;position:relative;background:#fff;z-index:10000;border-bottom:1px solid #e8ebed;box-shadow:0 5px 18px rgba(20,32,43,.08)}
  .ic-final-mobile-header>a{display:flex;align-items:center;height:78px}
  .ic-final-mobile-header img{display:block;width:78px;height:78px;object-fit:contain}
  .ic-final-mobile-header nav{position:absolute;top:92px;left:0;right:0;background:#fff;border-top:3px solid var(--ic-red);box-shadow:0 16px 28px rgba(20,32,43,.18);padding:12px 24px 20px;display:grid;grid-template-columns:1fr 1fr;gap:0 24px;z-index:10001}
  .ic-final-mobile-header nav a{font:600 15px/1.35 Roboto,Arial,sans-serif;color:var(--ic-navy)!important;padding:14px 4px;text-decoration:none;border-bottom:1px solid #e9edef;min-height:48px;box-sizing:border-box;display:flex;align-items:center}
  .ic-final-mobile-header nav a:hover,.ic-final-mobile-header nav a:focus{color:var(--ic-red)!important}
}

@media (max-width:767px){
  body{font-size:16px}
  p,.elementor-widget-text-editor,.elementor-widget-text-editor p{line-height:1.7!important}
  .content,.content_inner,.container,.container_inner,.full_width,.full_width_inner{max-width:100%!important}
  .elementor-top-section:not(.elementor-hidden-mobile){position:relative}
  .elementor-top-section:not(.elementor-hidden-mobile)>.elementor-container{padding-left:20px;padding-right:20px;box-sizing:border-box}
  .elementor-column-gap-default>.elementor-column>.elementor-element-populated{padding-left:12px;padding-right:12px}
  .elementor-widget:not(:last-child){margin-bottom:20px}
  .elementor-heading-title{overflow-wrap:anywhere}
  h1,.elementor-widget-heading h1{font-size:clamp(32px,10vw,46px)!important;line-height:1.08!important;letter-spacing:-.8px!important}
  h2,.elementor-widget-heading h2{font-size:clamp(27px,8vw,38px)!important;line-height:1.14!important;letter-spacing:-.5px!important}
  h3,.elementor-widget-heading h3{font-size:clamp(21px,6vw,29px)!important;line-height:1.22!important}
  .elementor-button,.qbutton,.zw-submit{width:100%;max-width:100%;min-height:50px;padding:14px 20px!important;white-space:normal;text-align:center;line-height:1.35}
  .elementor-widget-image img{height:auto;max-height:none;border-radius:4px}
  .elementor-image-carousel-wrapper{border-radius:4px;overflow:hidden}
  .elementor-toggle .elementor-tab-title{padding:17px 16px!important;font-size:16px;line-height:1.4;border-radius:3px}
  .elementor-toggle .elementor-tab-content{padding:18px 16px 24px!important;line-height:1.7;background:#fff}
  .elementor-icon-list-item{align-items:flex-start!important;margin-bottom:12px!important}
  .elementor-icon-list-text{line-height:1.55!important;overflow-wrap:anywhere}
  .zim-company-history{padding:38px 20px!important}
  .zim-company-history-inner{gap:24px!important}
  .zim-company-history-text{font-size:22px!important;line-height:1.4!important}
  .zim-company-profile-btn{width:100%!important;max-width:290px;min-height:58px!important}
  .zim-sa-footer-inner{padding:52px 22px 36px!important;gap:42px!important}
  .zim-footer-logo{width:170px!important;height:170px!important}
  .zim-footer-menu{gap:0!important}
  .zim-footer-menu a{display:block;padding:13px 5px;border-bottom:1px solid rgba(255,255,255,.14);font-size:16px!important}
  .zim-footer-quote-col h2{font-size:30px!important}
  .zim-footer-quote-col p{font-size:16px!important;line-height:1.6!important}
  .zim-footer-click{width:100%;max-width:220px;min-height:50px;margin-top:6px}
  .zw-estimate-form{padding:22px 0!important}
  .zw-estimate-form label{margin-bottom:18px!important}
  .zw-estimate-form input,.zw-estimate-form textarea,.zw-estimate-form select{min-height:50px!important;padding:14px!important;font-size:16px!important;border-radius:4px!important}
  .zw-estimate-form textarea{min-height:150px!important}
  .chaty-widget,.chaty-widget-i{max-width:calc(100vw - 24px)!important}
}

@media (max-width:480px){
  .ic-final-mobile-header{height:84px;padding:0 16px}
  .ic-final-mobile-header>a{height:72px}.ic-final-mobile-header img{width:70px;height:70px}
  .ic-final-mobile-header nav{top:84px;grid-template-columns:1fr;padding:8px 20px 18px;max-height:calc(100vh - 84px);overflow:auto}
  .ic-final-mobile-header nav a{padding:12px 4px}
  .elementor-top-section:not(.elementor-hidden-mobile)>.elementor-container{padding-left:16px;padding-right:16px}
  .elementor-column-gap-default>.elementor-column>.elementor-element-populated{padding-left:8px;padding-right:8px}
  .zim-brush-title{width:min(290px,100%)!important}
}

@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* Final shared mobile navigation. Native hidden always wins over layout styles. */
#masthead .ic-final-mobile-header{display:none}
#masthead #ic-mobile-navigation[hidden]{display:none!important}
.ic-menu-toggle{font:700 15px/1.2 Roboto,Arial,sans-serif;color:#14202b;background:#fff;border:1px solid #d9dee1;border-radius:3px;min-height:46px;padding:12px 16px;display:flex;align-items:center;gap:12px;cursor:pointer}
.ic-menu-toggle span{font-size:22px}
.ic-menu-toggle:focus-visible{outline:3px solid #e80035;outline-offset:3px}
@media(max-width:1024px){
 #masthead{position:relative!important;z-index:10000!important}
 #masthead>.elementor{display:none!important}
 #masthead .ic-final-mobile-header{display:flex!important}
 #masthead #ic-mobile-navigation:not([hidden]){display:grid!important}
}
