/* ==========================================================
   Build Awesome V3.20 — Pixel-perfect responsive spacing
   Scope: spacing, wrapping, grid rhythm, forms/cards/footer/page sections,
   menu/submenu spacing guard. Does not change hero slider mechanics.
   ========================================================== */
:root{
  --ba-v320-gutter:clamp(18px,4vw,48px);
  --ba-v320-section:clamp(56px,7vw,104px);
  --ba-v320-section-tight:clamp(42px,5.6vw,72px);
  --ba-v320-card-pad:clamp(20px,2.8vw,34px);
  --ba-v320-card-gap:clamp(16px,2.2vw,28px);
  --ba-v320-radius:clamp(22px,2.6vw,34px);
}
html,body{max-width:100%;overflow-x:clip}
body{min-width:320px}
.ba-container{width:min(1180px,calc(100% - var(--ba-v320-gutter)))!important;max-width:1180px}
.ba-section:not(.ba-hero),
.ba-v239-section,
.ba-v35-conversion-cta,
.ba-v319-contact-section{padding-top:var(--ba-v320-section);padding-bottom:var(--ba-v320-section)}
.ba-section-tight:not(.ba-hero),
.ba-v36-recovery-section,
.ba-v36-recent-section{padding-top:var(--ba-v320-section-tight);padding-bottom:var(--ba-v320-section-tight)}
.ba-section-head{margin-bottom:clamp(26px,4vw,46px)}
.ba-section-head :is(h1,h2,h3),
.ba-page-hero :is(h1,h2),
.ba-v239-service-copy h1{max-width:100%;text-wrap:balance}
.ba-section-head p,
.ba-page-hero p,
.ba-v239-service-copy p,
.ba-v319-contact-copy p{text-wrap:pretty}

/* Grid rhythm and equal spacing. */
.ba-card-grid,
.ba-card-grid-4,
.ba-archive-grid,
.ba-v35-trust-grid,
.ba-v35-case-grid,
.ba-v35-faq-grid,
.ba-v239-grid,
.ba-v239-related-grid,
.ba-v319-contact-mini-grid{gap:var(--ba-v320-card-gap)!important}
.ba-card,
.ba-service-card,
.ba-icon-card,
.ba-step,
.ba-price-card,
.ba-work-card,
.ba-post-card,
.ba-v35-trust-card,
.ba-v35-case-card,
.ba-v35-faq-item,
.ba-v239-info-card,
.ba-v239-price-card,
.ba-v239-asset-card,
.ba-v239-related-card,
.ba-v319-contact-copy,
.ba-v319-form-card,
.ba-entry{border-radius:var(--ba-v320-radius)}
.ba-card,
.ba-service-card,
.ba-icon-card,
.ba-step,
.ba-price-card,
.ba-v35-trust-card,
.ba-v35-faq-item,
.ba-v239-info-card,
.ba-v239-price-card,
.ba-v239-asset-card{padding:var(--ba-v320-card-pad)}
.ba-service-card,
.ba-post-card,
.ba-work-card,
.ba-v35-case-card,
.ba-v239-related-card{min-width:0}
.ba-post-body,
.ba-work-content,
.ba-v35-case-body,
.ba-v239-related-body{padding:clamp(18px,2.4vw,26px)}

/* Header/menu spacing guard — keeps the locked V3.17 behavior, refines rhythm only. */
.ba-header-inner{column-gap:clamp(10px,1.4vw,24px)}
.ba-logo{min-width:0}.ba-logo span{overflow:hidden;text-overflow:ellipsis}
.ba-header-actions{min-width:max-content}.ba-nav{min-width:0}.ba-smart-menu{min-width:0}.ba-nav a,.ba-nav-trigger{white-space:nowrap}
.ba-mega-menu{box-sizing:border-box}.ba-dropdown-link{box-sizing:border-box}

/* Page and post spacing. */
.ba-page-hero{padding-top:clamp(54px,7vw,86px);padding-bottom:clamp(34px,5vw,58px)}
.ba-page-wrap{padding-top:clamp(38px,5vw,66px);padding-bottom:clamp(42px,6vw,76px)}
.ba-entry{width:100%;max-width:min(920px,100%);padding:clamp(22px,4vw,52px)}
.ba-entry > *:first-child{margin-top:0}.ba-entry > *:last-child{margin-bottom:0}
.entry-content :where(p,ul,ol,blockquote,figure,.wp-block-group){max-width:100%}
.entry-content :where(img,iframe,video,table){max-width:100%}
.entry-content table{display:block;overflow-x:auto;border-spacing:0}
.wp-block-columns{gap:clamp(18px,3vw,34px)}
.wp-block-media-text{gap:clamp(18px,3vw,36px)}
.wp-block-buttons{gap:12px;flex-wrap:wrap}

/* Archive/search cards and service pages. */
.ba-archive-grid{padding-top:clamp(34px,5vw,58px);padding-bottom:clamp(40px,6vw,72px)}
.ba-post-thumb,.ba-work-image,.ba-service-image,.ba-service-index-image{min-height:clamp(180px,22vw,250px);height:auto;aspect-ratio:16/10}
.ba-v239-service-hero{padding-top:clamp(54px,7vw,92px);padding-bottom:clamp(38px,5vw,66px)}
.ba-v239-service-intro,
.ba-v239-service-shell{gap:clamp(22px,4vw,56px)}
.ba-v239-service-actions,
.ba-actions{gap:clamp(10px,1.5vw,16px)}
.ba-v239-pill{min-width:0;overflow-wrap:anywhere}
.ba-v239-entry{padding:clamp(20px,4vw,48px)}
.ba-v239-entry :where(h2,h3,h4){margin-top:clamp(22px,4vw,36px)}
.ba-v239-final-cta,
.ba-v35-cta-card,
.ba-v35-footer-cta{padding:clamp(22px,4vw,50px)}

/* Contact forms and CTA placement. */
.ba-v319-contact-shell{grid-template-columns:minmax(0,.92fr) minmax(340px,1.08fr);gap:clamp(20px,4vw,48px)}
.ba-v319-form-grid,.ba-v35-form{gap:clamp(12px,2vw,18px)}
.ba-v319-contact-form input,
.ba-v319-contact-form textarea,
.ba-v35-field input,
.ba-v35-field textarea,
.ba-form input,
.ba-form textarea,
.ba-form select{min-width:0;max-width:100%}
.ba-v319-contact-benefits,.ba-v319-direct-contact{gap:10px}
.ba-v319-contact-benefits span,.ba-v319-direct-contact a{min-width:0;max-width:100%;overflow-wrap:anywhere}

/* Footer rhythm. */
.ba-site-footer{padding-top:clamp(46px,6vw,72px);padding-bottom:clamp(22px,4vw,34px)}
.ba-footer-grid{gap:clamp(22px,4vw,42px)}
.ba-footer-links{gap:clamp(8px,1.4vw,12px)}
.ba-footer-bottom{gap:14px;align-items:center}

@media (min-width:1440px){
  .ba-container{width:min(1240px,calc(100% - 72px))!important;max-width:1240px}
  .ba-page-hero .ba-container,.ba-v319-contact-shell{max-width:1180px;margin-inline:auto}
}

@media (max-width:1180px){
  :root{--ba-v320-gutter:40px}
  .ba-footer-grid.ba-v35-footer-grid{grid-template-columns:1.15fr 1fr 1fr}
  .ba-v35-footer-grid > :last-child{grid-column:1/-1}
  .ba-v319-contact-shell{grid-template-columns:1fr;align-items:start}
  .ba-v319-form-card,.ba-v319-contact-copy{max-width:100%}
}

@media (max-width:1024px){
  :root{--ba-v320-gutter:34px;--ba-v320-section:clamp(52px,7vw,82px);--ba-v320-section-tight:clamp(38px,5vw,58px)}
  .ba-card-grid,
  .ba-card-grid-4,
  .ba-archive-grid,
  .ba-v35-trust-grid,
  .ba-v35-case-grid,
  .ba-v239-grid,
  .ba-v239-related-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .ba-split,.ba-contact,.ba-v239-service-intro,.ba-v239-service-shell,.ba-cta .ba-container,.ba-v35-cta-card,.ba-v35-footer-cta{grid-template-columns:1fr!important}
  .ba-contact-card{position:relative!important;top:auto!important}
  .ba-v239-service-visual{max-width:720px;width:100%;margin-inline:auto}
  .ba-footer-grid.ba-v35-footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (max-width:960px){
  html{scroll-padding-top:90px}
  .ba-header-inner{width:min(100% - 28px,1180px)!important}
  .ba-nav{padding-left:max(18px,env(safe-area-inset-left))!important;padding-right:max(18px,env(safe-area-inset-right))!important}
  .ba-smart-menu{gap:clamp(8px,1.8vh,12px)!important}
  .ba-menu-item.is-open > .ba-mega-menu{padding-top:8px!important;padding-bottom:16px!important}
  .ba-dropdown-link{padding:13px 14px!important}
  .ba-v35-breadcrumbs{margin-bottom:14px}
}

@media (max-width:760px){
  :root{--ba-v320-gutter:28px;--ba-v320-card-pad:22px;--ba-v320-card-gap:16px;--ba-v320-radius:24px;--ba-v320-section:56px;--ba-v320-section-tight:42px}
  .ba-section-head{margin-bottom:28px;text-align:left!important}
  .ba-section-head.ba-left{margin-right:0}
  .ba-card-grid,
  .ba-card-grid-4,
  .ba-archive-grid,
  .ba-v35-trust-grid,
  .ba-v35-case-grid,
  .ba-v35-faq-grid,
  .ba-v239-grid,
  .ba-v239-related-grid,
  .ba-v319-contact-mini-grid{grid-template-columns:1fr!important}
  .ba-page-hero{text-align:left;padding-top:48px;padding-bottom:34px}
  .ba-page-wrap{padding-top:34px;padding-bottom:52px}
  .ba-entry{padding:24px;border-radius:24px}
  .ba-actions{width:100%;align-items:stretch}
  .ba-actions .ba-btn{flex:1 1 auto;min-width:min(100%,220px)}
  .ba-v319-form-grid,.ba-v35-form{grid-template-columns:1fr!important}
  .ba-v319-contact-copy,.ba-v319-form-card{padding:24px;border-radius:26px}
  .ba-v319-contact-copy h2{font-size:clamp(30px,8vw,42px)}
  .ba-v35-footer-cta .ba-actions,.ba-v35-cta-actions{width:100%}
  .ba-footer-grid.ba-v35-footer-grid,.ba-footer-grid{grid-template-columns:1fr!important}
  .ba-footer-bottom{display:grid;grid-template-columns:1fr;text-align:left}
}

@media (max-width:560px){
  :root{--ba-v320-gutter:24px;--ba-v320-card-pad:20px;--ba-v320-card-gap:14px;--ba-v320-section:50px;--ba-v320-section-tight:36px}
  h1{font-size:clamp(36px,10.8vw,46px)}
  h2{font-size:clamp(28px,8.3vw,38px)}
  h3{font-size:clamp(20px,5.8vw,26px)}
  p,.entry-content li{font-size:16px;line-height:1.68}
  .ba-logo span{display:inline;max-width:46vw!important}
  .ba-header-inner{width:min(100% - 22px,1180px)!important;gap:8px}
  .ba-menu-toggle{width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;border-radius:15px!important}
  .ba-nav{padding-top:calc(80px + env(safe-area-inset-top))!important;padding-inline:12px!important}
  .ba-nav::before{margin-bottom:14px!important}
  .ba-nav .ba-smart-menu > li > a,
  .ba-nav .ba-nav-trigger{min-height:56px!important;padding:14px 14px!important;border-radius:17px!important;font-size:14.5px!important}
  .ba-dropdown-link{padding:12px 13px!important;border-radius:15px!important}
  .ba-entry,.ba-v319-contact-copy,.ba-v319-form-card,.ba-v35-cta-card,.ba-v35-footer-cta,.ba-v239-entry,.ba-v239-final-cta{border-radius:22px;padding:20px}
  .ba-actions .ba-btn,.ba-v239-service-actions .ba-btn,.ba-v35-cta-actions .ba-btn{width:100%;justify-content:center}
  .ba-post-thumb,.ba-work-image,.ba-service-image,.ba-service-index-image{aspect-ratio:16/11;min-height:170px}
  .ba-v319-contact-benefits{display:grid;grid-template-columns:1fr}
  .ba-v319-direct-contact{display:grid;grid-template-columns:1fr}
  .ba-v319-contact-mini-grid article{min-height:auto}
}

@media (max-width:420px){
  :root{--ba-v320-gutter:20px;--ba-v320-card-pad:18px;--ba-v320-card-gap:12px;--ba-v320-section:44px;--ba-v320-section-tight:32px}
  .ba-logo img{height:38px!important;max-width:38px!important}
  .ba-logo span{max-width:40vw!important;font-size:13.5px!important}
  .ba-page-hero{padding-top:40px;padding-bottom:28px}
  .ba-page-wrap{padding-top:28px;padding-bottom:44px}
  .ba-section-head{margin-bottom:22px}
  .ba-eyebrow{font-size:10.5px;letter-spacing:.08em;padding:6px 10px}
  .ba-btn{min-height:46px;padding:12px 16px;font-size:14px}
  .ba-card,.ba-service-card,.ba-icon-card,.ba-step,.ba-price-card,.ba-v35-trust-card,.ba-v35-faq-item,.ba-v239-info-card,.ba-v239-price-card,.ba-v239-asset-card{padding:18px;border-radius:20px}
  .ba-post-body,.ba-work-content,.ba-v35-case-body,.ba-v239-related-body{padding:18px}
  .ba-v319-contact-form input,.ba-v319-contact-form textarea{border-radius:15px;padding:13px}
  .ba-v319-contact-section::before{background-size:32px 32px}
}

@media (max-width:360px){
  :root{--ba-v320-gutter:16px}
  .ba-logo span{display:none!important}
  .ba-header-inner{width:calc(100% - 18px)!important}
  .ba-nav{padding-inline:10px!important}
  .ba-nav .ba-smart-menu > li > a,
  .ba-nav .ba-nav-trigger{font-size:14px!important;padding-inline:12px!important}
  .ba-entry,.ba-v319-contact-copy,.ba-v319-form-card,.ba-v35-cta-card,.ba-v35-footer-cta,.ba-v239-entry,.ba-v239-final-cta{padding:17px}
}

@media (prefers-reduced-motion:reduce){
  .ba-card,.ba-service-card,.ba-icon-card,.ba-post-card,.ba-work-card,.ba-v35-case-card,.ba-v239-info-card{transition:none!important}
}
