/* =========================================================
   SWAT v2.9.6 HARD MOBILE / TABLET / LAPTOP RESPONSIVE FIX
   Purpose: final cascade layer only. No content, URL, image, price, or footer text changes.
   ========================================================= */

html,
body{
  width:100%!important;
  max-width:100%!important;
  overflow-x:hidden!important;
}

html{
  -webkit-text-size-adjust:100%;
}

body{
  position:relative!important;
}

*,
*::before,
*::after{
  box-sizing:border-box!important;
}

img,
svg,
video,
canvas,
iframe,
embed,
object{
  max-width:100%!important;
}

img,
svg,
video,
canvas{
  height:auto;
}

input,
select,
textarea,
button{
  max-width:100%!important;
  font:inherit;
}

pre,
code,
.wp-block-code,
.swat-code{
  white-space:pre-wrap!important;
  overflow-wrap:anywhere!important;
  max-width:100%!important;
}

#page,
.site,
.site-content,
.content-area,
#content,
#primary,
main,
.swat-page-main,
.swat-page-content,
.swat-homepage,
.swat-home-root,
.swat-index-shell,
.swat-content-card,
.swat-master-header-wrap,
.swat-master-header-spacer,
.swat-footer,
.swat-footer-cta,
.swat-footer-main,
.swat-footer-bottom{
  width:100%!important;
  max-width:100%!important;
}

.swat-master-header-wrap{
  overflow:visible!important;
}

/* Header shell: keep 2.5cm desktop gutter, then scale safely down. */
@media (min-width:1561px){
  .swat-header-shell{
    width:calc(100% - 5cm)!important;
    max-width:1920px!important;
    margin-left:auto!important;
    margin-right:auto!important;
    padding-left:0!important;
    padding-right:0!important;
  }
}

@media (max-width:1560px) and (min-width:1321px){
  .swat-header-shell{
    width:calc(100% - 72px)!important;
    max-width:100%!important;
    margin-left:auto!important;
    margin-right:auto!important;
    padding-left:0!important;
    padding-right:0!important;
  }
}

.swat-mobile-button{
  appearance:none!important;
  -webkit-appearance:none!important;
  border:0!important;
  margin:0!important;
  padding:0!important;
  position:relative!important;
  z-index:2147483400!important;
  cursor:pointer!important;
  touch-action:manipulation!important;
  user-select:none!important;
  -webkit-tap-highlight-color:transparent!important;
}

.swat-mobile-button span,
.swat-mobile-button span::before,
.swat-mobile-button span::after{
  display:block!important;
  width:22px!important;
  height:2px!important;
  border-radius:99px!important;
  background:#063b70!important;
  transition:transform .2s ease,opacity .2s ease,background .2s ease!important;
}

.swat-mobile-button span{
  position:relative!important;
}

.swat-mobile-button span::before,
.swat-mobile-button span::after{
  content:''!important;
  position:absolute!important;
  left:0!important;
}

.swat-mobile-button span::before{top:-7px!important;}
.swat-mobile-button span::after{top:7px!important;}

.swat-mobile-button em{
  display:none!important;
}

.swat-header-main.is-mobile-menu-open .swat-mobile-button{
  background:linear-gradient(135deg,#075fb0,#11a5ea)!important;
  border-color:rgba(255,255,255,.75)!important;
  box-shadow:0 16px 30px rgba(5,80,140,.24)!important;
}

.swat-header-main.is-mobile-menu-open .swat-mobile-button span{
  background:transparent!important;
}

.swat-header-main.is-mobile-menu-open .swat-mobile-button span::before{
  top:0!important;
  transform:rotate(45deg)!important;
  background:#fff!important;
}

.swat-header-main.is-mobile-menu-open .swat-mobile-button span::after{
  top:0!important;
  transform:rotate(-45deg)!important;
  background:#fff!important;
}

.swat-mobile-button:focus-visible{
  outline:3px solid #ffbf47!important;
  outline-offset:3px!important;
}

@media (min-width:1321px){
  .swat-mobile-button{display:none!important;}
  .swat-header-menu-area{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:14px!important;
    min-width:0!important;
    max-width:100%!important;
  }
  .swat-nav{max-width:100%!important;}
  .swat-nav a,
  .swat-nav-dropdown summary{white-space:nowrap!important;}
}

@media (max-width:1320px){
  body.swat-mobile-menu-open{
    overflow:hidden!important;
  }

  .swat-header-main{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    align-items:center!important;
    gap:12px!important;
    position:relative!important;
  }

  .swat-brand,
  .swat-brand-text{
    min-width:0!important;
    max-width:100%!important;
  }

  .swat-logo-line,
  .swat-tagline{
    max-width:100%!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }

  .swat-mobile-button{
    display:inline-flex!important;
    width:50px!important;
    height:50px!important;
    flex:0 0 50px!important;
    align-items:center!important;
    justify-content:center!important;
    justify-self:end!important;
    border-radius:17px!important;
    background:linear-gradient(135deg,#f8fcff,#dff2ff)!important;
    border:1px solid rgba(105,173,220,.98)!important;
    box-shadow:0 12px 24px rgba(5,80,140,.14),inset 0 1px 0 rgba(255,255,255,.86)!important;
  }

  .swat-header-menu-area{
    display:none!important;
    visibility:hidden!important;
    opacity:0!important;
    pointer-events:none!important;
  }

  .swat-header-main.is-mobile-menu-open .swat-header-menu-area{
    display:grid!important;
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
    position:absolute!important;
    left:0!important;
    right:0!important;
    top:calc(100% + 12px)!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    grid-template-columns:1fr!important;
    gap:13px!important;
    padding:16px!important;
    border-radius:26px!important;
    background:
      radial-gradient(circle at 10% 0%,rgba(255,255,255,.98),rgba(255,255,255,0) 34%),
      linear-gradient(145deg,#f8fcff 0%,#edf8ff 45%,#dff1ff 100%)!important;
    border:1px solid rgba(164,215,247,.96)!important;
    box-shadow:0 24px 60px rgba(4,74,130,.24),inset 0 1px 0 rgba(255,255,255,.9)!important;
    z-index:2147483300!important;
    max-height:calc(100dvh - var(--swat-adminbar-h,0px) - 132px)!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch!important;
  }

  .swat-header-main.is-mobile-menu-open .swat-nav{
    order:1!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    align-items:stretch!important;
    justify-content:stretch!important;
    gap:9px!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
  }

  .swat-header-main.is-mobile-menu-open .swat-nav > a,
  .swat-header-main.is-mobile-menu-open .swat-nav-dropdown summary{
    width:100%!important;
    max-width:100%!important;
    min-height:50px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:12px!important;
    padding:13px 15px!important;
    border-radius:17px!important;
    color:#0b2f50!important;
    background:linear-gradient(135deg,#ffffff 0%,#edf8ff 100%)!important;
    border:1px solid rgba(191,226,248,.92)!important;
    box-shadow:0 9px 18px rgba(5,80,140,.07),inset 0 1px 0 rgba(255,255,255,.86)!important;
    white-space:normal!important;
    text-align:start!important;
    overflow-wrap:anywhere!important;
  }

  .swat-header-main.is-mobile-menu-open .swat-nav-dropdown{
    display:grid!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }

  .swat-header-main.is-mobile-menu-open .swat-nav-drop-menu{
    position:static!important;
    transform:none!important;
    left:auto!important;
    top:auto!important;
    min-width:0!important;
    width:100%!important;
    max-width:100%!important;
    margin-top:8px!important;
    padding:9px!important;
    border-radius:18px!important;
    background:linear-gradient(135deg,#eef8ff,#e5f4ff)!important;
    border:1px solid rgba(189,225,247,.90)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.8)!important;
  }

  .swat-header-main.is-mobile-menu-open .swat-nav-drop-menu a{
    width:100%!important;
    max-width:100%!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
  }

  .swat-header-main.is-mobile-menu-open .swat-header-actions{
    order:2!important;
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:10px!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }

  .swat-header-main.is-mobile-menu-open .swat-header-btn{
    width:100%!important;
    max-width:100%!important;
    min-height:48px!important;
    padding:12px 14px!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
  }
}

@media (max-width:960px){
  .swat-header-shell{
    width:calc(100% - 32px)!important;
    max-width:100%!important;
    padding-left:0!important;
    padding-right:0!important;
  }

  .swat-shell,
  .shell,
  .swat-page-shell,
  .swat-content-shell,
  .swat-section-shell,
  .swat-footer-shell,
  .swat-footer .swat-shell,
  .swat-footer-cta .swat-shell{
    width:100%!important;
    max-width:100%!important;
    padding-left:16px!important;
    padding-right:16px!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }

  .swat-content-card,
  .swat-index-shell{
    width:calc(100% - 24px)!important;
    max-width:100%!important;
    margin-left:auto!important;
    margin-right:auto!important;
    padding-left:18px!important;
    padding-right:18px!important;
  }

  .swat-topbar-inner{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    flex-wrap:nowrap!important;
    gap:8px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    scrollbar-width:none!important;
    -webkit-overflow-scrolling:touch!important;
  }
  .swat-topbar-inner::-webkit-scrollbar{display:none!important;}

  .swat-topbar-left,
  .swat-topbar-mid,
  .swat-topbar-right{
    width:auto!important;
    max-width:none!important;
    flex:0 0 auto!important;
    flex-wrap:nowrap!important;
  }

  .swat-header-main{
    min-height:70px!important;
    padding-top:7px!important;
    padding-bottom:10px!important;
    gap:9px!important;
  }

  .swat-brand-image-shell{
    width:46px!important;
    height:46px!important;
    flex:0 0 46px!important;
  }

  .swat-logo-line{
    width:auto!important;
    max-width:100%!important;
    font-size:12.8px!important;
    padding:7px 8px!important;
    gap:4px!important;
  }

  .swat-tagline{
    font-size:9.5px!important;
    margin-top:5px!important;
  }

  .swat-mobile-button{
    width:42px!important;
    height:42px!important;
    flex-basis:42px!important;
  }

  .swat-header-main.is-mobile-menu-open .swat-header-menu-area{
    max-height:calc(100dvh - var(--swat-adminbar-h,0px) - 116px)!important;
  }
}

@media (max-width:640px){
  .swat-header-shell{
    width:calc(100% - 22px)!important;
  }

  .swat-shell,
  .shell,
  .swat-page-shell,
  .swat-content-shell,
  .swat-section-shell,
  .swat-footer-shell,
  .swat-footer .swat-shell,
  .swat-footer-cta .swat-shell{
    padding-left:12px!important;
    padding-right:12px!important;
  }

  .swat-header-main{
    min-height:64px!important;
    padding-top:7px!important;
    padding-bottom:9px!important;
  }

  .swat-brand{gap:7px!important;}
  .swat-brand-image-shell{width:42px!important;height:42px!important;flex-basis:42px!important;}
  .swat-brand-text{max-width:calc(100vw - 118px)!important;}
  .swat-logo-line{font-size:10.7px!important;padding:6px 7px!important;}
  .swat-tagline{font-size:8.4px!important;}
  .swat-mobile-button{width:40px!important;height:40px!important;flex-basis:40px!important;}

  .swat-header-main.is-mobile-menu-open .swat-header-menu-area{
    top:calc(100% + 9px)!important;
    padding:12px!important;
    border-radius:22px!important;
    gap:10px!important;
    max-height:calc(100dvh - var(--swat-adminbar-h,0px) - 108px)!important;
  }

  .swat-header-main.is-mobile-menu-open .swat-header-actions{
    grid-template-columns:1fr!important;
  }

  .swat-header-main.is-mobile-menu-open .swat-nav > a,
  .swat-header-main.is-mobile-menu-open .swat-nav-dropdown summary{
    min-height:45px!important;
    padding:12px 13px!important;
    border-radius:15px!important;
    font-size:12.75px!important;
  }
}

@media (max-width:420px){
  .swat-header-shell{width:calc(100% - 18px)!important;}
  .swat-brand-image-shell{width:39px!important;height:39px!important;flex-basis:39px!important;}
  .swat-logo-line{font-size:10px!important;padding:5px 6px!important;}
  .swat-tagline{font-size:7.9px!important;}
  .swat-mobile-button{width:38px!important;height:38px!important;flex-basis:38px!important;}
}

/* Homepage / page content hardening: prevents right-side cut on mobile. */
@media (max-width:960px){
  section,
  article,
  .section,
  .standard,
  .swat-section,
  .swat-hero-pro,
  .swat-page-main section,
  .swat-content-card section{
    max-width:100%!important;
    overflow-x:hidden!important;
  }

  .swat-main-grid,
  .swat-grid,
  .swat-hero-grid,
  .swat-form-grid,
  .swat-contact-grid,
  .swat-proof-row,
  .swat-gallery-wrap,
  .swat-gallery-info,
  .swat-side-thumbs,
  .swat-bottom-thumbs,
  .cards,
  .card-grid,
  .fleet-grid,
  .service-grid,
  .rates-grid,
  .coverage-grid,
  .footer-grid,
  .swat-footer-grid,
  .swat-footer-main-grid,
  .swat-mini-points{
    grid-template-columns:1fr!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }

  .swat-gallery-card,
  .swat-right-card,
  .swat-form-card,
  .swat-contact-card,
  .glass-block,
  .rate-panel,
  .card,
  .service-card,
  .fleet-card,
  .swat-info-card,
  .swat-proof,
  .swat-field,
  .swat-field-full{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }

  .swat-thumb,
  .swat-cta,
  .btn,
  .button,
  .swat-btn,
  .swat-submit{
    max-width:100%!important;
    min-width:0!important;
    white-space:normal!important;
  }

  .table-wrap,
  .swat-table-wrap,
  .rate-table-wrap,
  .swat-rate-table-wrap,
  .swat-pricing-table-wrap,
  .wp-block-table{
    width:100%!important;
    max-width:100%!important;
    overflow-x:auto!important;
    -webkit-overflow-scrolling:touch!important;
  }

  table,
  .rate-table,
  .swat-table-wrap table,
  .rate-table-wrap table,
  .wp-block-table table{
    width:100%!important;
    max-width:100%!important;
    min-width:680px!important;
  }
}

@media (max-width:767px){
  .swat-hero-pro,
  #swatHero2{
    width:100%!important;
    max-width:100%!important;
    padding-left:12px!important;
    padding-right:12px!important;
    overflow-x:hidden!important;
  }

  #swatHero2 .swat-main-grid,
  #swatHero2 .swat-gallery-wrap,
  #swatHero2 .swat-proof-row,
  #swatHero2 .swat-form-grid,
  #swatHero2 .swat-gallery-info,
  #swatHero2 .swat-side-thumbs,
  #swatHero2 .swat-bottom-thumbs,
  #swatHero2 .swat-mini-points,
  #swatHero2 .swat-contact-person{
    grid-template-columns:1fr!important;
  }

  #swatHero2 .swat-main-image-box{
    min-height:260px!important;
    padding:14px!important;
  }

  #swatHero2 .swat-main-image-box img{
    max-height:225px!important;
    width:auto!important;
  }

  #swatHero2 .swat-side-thumbs .swat-thumb,
  #swatHero2 .swat-bottom-thumbs .swat-thumb{
    min-height:0!important;
    height:auto!important;
  }

  h1{font-size:clamp(28px,8vw,38px)!important;}
  h2{font-size:clamp(24px,6.8vw,32px)!important;}
  p{overflow-wrap:break-word;}
}

@media (max-width:380px){
  table,
  .rate-table,
  .swat-table-wrap table,
  .rate-table-wrap table,
  .wp-block-table table{
    min-width:620px!important;
  }
}
