
/* ============================================================
   CENTERSPREAD v5.4 — SITE-WIDE RESPONSIVE SYSTEM
   Loaded LAST so it normalizes every page without redesigning desktop.
============================================================ */

/* ---------- universal safety ---------- */
html{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  overflow-x:hidden;
}

body{
  overflow-x:clip;
}

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

img,
picture,
video,
canvas,
svg{
  max-width:100%;
}

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

iframe,
embed,
object{
  max-width:100%;
}

table{
  max-width:100%;
}

pre,
code{
  max-width:100%;
  overflow-wrap:anywhere;
  word-break:break-word;
}

input,
select,
textarea,
button{
  max-width:100%;
}

:where(
  .cs-home-v11,
  .cs-services-v2,
  .cs-industries-v2,
  .cs-insights-exact,
  .cs-contact-v43,
  .cs-hazwoper-v40,
  .cs-adenwalla-v42,
  .cs-urban-glo-v50
){
  width:100%;
  max-width:100%;
  overflow-x:clip;
}

/* ---------- consistent content widths ---------- */
:where(
  .cs-home-v11,
  .cs-services-v2,
  .cs-industries-v2,
  .cs-insights-exact,
  .cs-contact-v43,
  .cs-hazwoper-v40,
  .cs-adenwalla-v42,
  .cs-urban-glo-v50
) .wrap{
  width:min(1220px,calc(100% - 44px)) !important;
  max-width:1220px !important;
  margin-inline:auto !important;
}

/* ---------- text resilience ---------- */
:where(
  .cs-home-v11,
  .cs-services-v2,
  .cs-industries-v2,
  .cs-insights-exact,
  .cs-contact-v43,
  .cs-hazwoper-v40,
  .cs-adenwalla-v42,
  .cs-urban-glo-v50
) :where(h1,h2,h3,h4,h5,h6,p,li,a,span,strong,small,label,blockquote){
  overflow-wrap:anywhere;
}

:where(
  .cs-home-v11,
  .cs-services-v2,
  .cs-industries-v2,
  .cs-insights-exact,
  .cs-contact-v43,
  .cs-hazwoper-v40,
  .cs-adenwalla-v42,
  .cs-urban-glo-v50
) :where(p,li){
  line-height:1.55;
}

/* ---------- flexible buttons / CTAs ---------- */
:where(
  .cs-home-v11,
  .cs-services-v2,
  .cs-industries-v2,
  .cs-insights-exact,
  .cs-contact-v43,
  .cs-hazwoper-v40,
  .cs-adenwalla-v42,
  .cs-urban-glo-v50
) :where(.btn,button,[class*="button"]){
  min-width:0;
  white-space:normal;
  text-align:center;
}

/* ---------- media should never escape cards ---------- */
:where(
  .cs-home-v11,
  .cs-services-v2,
  .cs-industries-v2,
  .cs-insights-exact,
  .cs-contact-v43,
  .cs-hazwoper-v40,
  .cs-adenwalla-v42,
  .cs-urban-glo-v50
) :where(.card,.panel,.box,.visual,.media,.image,.art,.hero-visual){
  max-width:100%;
}

/* ---------- rich content tables ---------- */
.entry-content table,
.wp-block-table,
.cs-hazwoper-v40 table,
.cs-adenwalla-v42 table,
.cs-urban-glo-v50 table{
  display:block;
  width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}

/* ============================================================
   LARGE TABLETS / SMALL LAPTOPS — <= 1200
============================================================ */
@media(max-width:1200px){

  :where(
    .cs-home-v11,
    .cs-services-v2,
    .cs-industries-v2,
    .cs-insights-exact,
    .cs-contact-v43,
    .cs-hazwoper-v40,
    .cs-adenwalla-v42,
    .cs-urban-glo-v50
  ) .wrap{
    width:min(100% - 36px,1120px) !important;
  }

  /* prevent large decorative panels from touching viewport edges */
  :where(
    .cs-services-v2 .hero-visual,
    .cs-industries-v2 .hero-visual,
    .cs-contact-v43 .contact-visual,
    .cs-insights-exact .hero-art,
    .cs-hazwoper-v40 .hero-visual,
    .cs-adenwalla-v42 .aden-hero-visual,
    .cs-urban-glo-v50 .hero-visual
  ){
    max-width:100% !important;
  }
}

/* ============================================================
   TABLETS / LANDSCAPE PHONES — <= 1024
============================================================ */
@media(max-width:1024px){

  :root{
    --cs-mobile-side:24px;
  }

  :where(
    .cs-home-v11,
    .cs-services-v2,
    .cs-industries-v2,
    .cs-insights-exact,
    .cs-contact-v43,
    .cs-hazwoper-v40,
    .cs-adenwalla-v42,
    .cs-urban-glo-v50
  ) .wrap{
    width:calc(100% - 48px) !important;
  }

  /* universal two-column hero -> one column */
  :where(
    .cs-services-v2 .hero-grid,
    .cs-industries-v2 .hero-grid,
    .cs-insights-exact .hero-grid,
    .cs-contact-v43 .hero-grid,
    .cs-contact-v43 .contact-layout,
    .cs-hazwoper-v40 .hero-grid,
    .cs-adenwalla-v42 .aden-hero-grid,
    .cs-urban-glo-v50 .hero-grid
  ){
    grid-template-columns:1fr !important;
    gap:40px !important;
  }

  /* content first, visual second */
  :where(
    .cs-services-v2 .hero-copy,
    .cs-industries-v2 .hero-copy,
    .cs-insights-exact .hero-copy,
    .cs-contact-v43 .hero-copy,
    .cs-hazwoper-v40 .hero-copy,
    .cs-adenwalla-v42 .aden-hero-copy,
    .cs-urban-glo-v50 .hero-copy
  ){
    max-width:760px !important;
  }

  :where(
    .cs-services-v2 .hero-visual,
    .cs-industries-v2 .hero-visual,
    .cs-insights-exact .hero-art,
    .cs-contact-v43 .contact-visual,
    .cs-hazwoper-v40 .hero-visual,
    .cs-adenwalla-v42 .aden-hero-visual,
    .cs-urban-glo-v50 .hero-visual
  ){
    width:min(760px,100%) !important;
    margin-inline:auto !important;
  }

  /* three/four card grids become two */
  :where(
    .cs-insights-exact .top-grid,
    .cs-insights-exact .library-grid,
    .cs-contact-v43 .expect-grid,
    .cs-hazwoper-v40 .metric-grid,
    .cs-hazwoper-v40 .frontier-grid,
    .cs-adenwalla-v42 .aden-image-gallery,
    .cs-urban-glo-v50 .journey-bar
  ){
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }

  /* sticky/side chapter helpers should not crush tablet layout */
  :where(
    .cs-hazwoper-v40 .chapter-nav,
    .cs-adenwalla-v42 .chapter-nav,
    .cs-urban-glo-v50 .chapter-nav
  ){
    display:none !important;
  }
}

/* ============================================================
   TABLETS / PORTRAIT — <= 820
============================================================ */
@media(max-width:820px){

  :where(
    .cs-home-v11,
    .cs-services-v2,
    .cs-industries-v2,
    .cs-insights-exact,
    .cs-contact-v43,
    .cs-hazwoper-v40,
    .cs-adenwalla-v42,
    .cs-urban-glo-v50
  ) .wrap{
    width:calc(100% - 36px) !important;
  }

  /* scale large headings consistently */
  :where(
    .cs-services-v2,
    .cs-industries-v2,
    .cs-insights-exact,
    .cs-contact-v43,
    .cs-hazwoper-v40,
    .cs-adenwalla-v42,
    .cs-urban-glo-v50
  ) h1{
    font-size:clamp(48px,8.3vw,70px) !important;
    line-height:.98 !important;
    letter-spacing:-.045em !important;
  }

  :where(
    .cs-services-v2,
    .cs-industries-v2,
    .cs-insights-exact,
    .cs-contact-v43,
    .cs-hazwoper-v40,
    .cs-adenwalla-v42,
    .cs-urban-glo-v50
  ) h2{
    font-size:clamp(34px,5.6vw,50px) !important;
    line-height:1.02 !important;
  }

  /* card collections to one column when cramped */
  :where(
    .cs-insights-exact .top-grid,
    .cs-insights-exact .library-grid,
    .cs-contact-v43 .expect-grid,
    .cs-hazwoper-v40 .frontier-grid,
    .cs-urban-glo-v50 .journey-bar
  ){
    grid-template-columns:1fr !important;
  }

  /* forms */
  :where(
    .cs-contact-v43 .form-grid,
    .cs-insights-exact .subscribe-inline
  ){
    grid-template-columns:1fr !important;
  }

  .cs-contact-v43 .field.full,
  .cs-contact-v43 .form-consent,
  .cs-contact-v43 .form-actions,
  .cs-contact-v43 .success-message{
    grid-column:auto !important;
  }

  /* footer market cards and footer navigation */
  .cs-v41-footer .cs-v41-offices-grid{
    grid-template-columns:1fr !important;
    gap:18px !important;
  }

  .cs-v41-footer .cs-v41-footer-main{
    grid-template-columns:1fr !important;
    gap:32px !important;
  }

  .cs-v41-footer .cs-v41-footer-menus{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:24px !important;
  }
}

/* ============================================================
   MOBILE — <= 720
============================================================ */
@media(max-width:720px){

  :root{
    --cs-mobile-side:13px;
  }

  body{
    min-width:0;
  }

  :where(
    .cs-home-v11,
    .cs-services-v2,
    .cs-industries-v2,
    .cs-insights-exact,
    .cs-contact-v43,
    .cs-hazwoper-v40,
    .cs-adenwalla-v42,
    .cs-urban-glo-v50
  ) .wrap{
    width:calc(100% - 26px) !important;
  }

  /* primary typography */
  :where(
    .cs-services-v2,
    .cs-industries-v2,
    .cs-insights-exact,
    .cs-contact-v43,
    .cs-hazwoper-v40,
    .cs-adenwalla-v42,
    .cs-urban-glo-v50
  ) h1{
    font-size:clamp(40px,11.5vw,58px) !important;
    line-height:.96 !important;
    letter-spacing:-.05em !important;
  }

  :where(
    .cs-services-v2,
    .cs-industries-v2,
    .cs-insights-exact,
    .cs-contact-v43,
    .cs-hazwoper-v40,
    .cs-adenwalla-v42,
    .cs-urban-glo-v50
  ) h2{
    font-size:clamp(30px,8.5vw,42px) !important;
    line-height:1 !important;
    letter-spacing:-.04em !important;
  }

  :where(
    .cs-services-v2,
    .cs-industries-v2,
    .cs-insights-exact,
    .cs-contact-v43,
    .cs-hazwoper-v40,
    .cs-adenwalla-v42,
    .cs-urban-glo-v50
  ) h3{
    font-size:clamp(20px,5.6vw,28px) !important;
    line-height:1.08 !important;
  }

  :where(
    .cs-services-v2,
    .cs-industries-v2,
    .cs-insights-exact,
    .cs-contact-v43,
    .cs-hazwoper-v40,
    .cs-adenwalla-v42,
    .cs-urban-glo-v50
  ) :where(.lead,.hero-sub,.hero-copy>p){
    font-size:16px !important;
    line-height:1.55 !important;
  }

  /* actions stack and become thumb-friendly */
  :where(
    .cs-services-v2 .hero-actions,
    .cs-industries-v2 .hero-actions,
    .cs-contact-v43 .hero-actions,
    .cs-hazwoper-v40 .hero-actions,
    .cs-adenwalla-v42 .aden-hero-actions,
    .cs-urban-glo-v50 .hero-actions,
    .cs-contact-v43 .form-actions
  ){
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:12px !important;
  }

  :where(
    .cs-services-v2 .hero-actions .btn,
    .cs-industries-v2 .hero-actions .btn,
    .cs-contact-v43 .hero-actions .btn,
    .cs-hazwoper-v40 .hero-actions .btn,
    .cs-adenwalla-v42 .aden-hero-actions .btn,
    .cs-urban-glo-v50 .hero-actions .btn,
    .cs-contact-v43 .form-actions .btn,
    .cs-insights-exact .closing-action .btn
  ){
    width:100% !important;
    min-height:50px !important;
    justify-content:center !important;
  }

  /* form inputs: 16px prevents iOS zoom */
  :where(
    .cs-contact-v43 input,
    .cs-contact-v43 select,
    .cs-contact-v43 textarea,
    .cs-insights-exact input,
    .cs-insights-exact select,
    .cs-insights-exact textarea
  ){
    width:100% !important;
    font-size:16px !important;
  }

  /* featured / card media ratios */
  .cs-insights-exact .featured-visual,
  .cs-insights-exact .card-visual{
    min-height:240px !important;
  }

  .cs-insights-exact .article-card-image,
  .cs-insights-exact .featured-post-image,
  .cs-insights-exact .library-featured-image{
    object-position:center !important;
  }

  /* category filters stay usable horizontally */
  .cs-insights-exact .category-scroll{
    display:flex !important;
    flex-wrap:nowrap !important;
    overflow-x:auto !important;
    gap:9px !important;
    padding-bottom:8px !important;
    scroll-snap-type:x proximity;
    -webkit-overflow-scrolling:touch;
  }

  .cs-insights-exact .filter-btn{
    flex:0 0 auto !important;
    scroll-snap-align:start;
  }

  /* services orbit / visual cards */
  .cs-services-v2 .service-orbit{
    width:100% !important;
    min-height:auto !important;
  }

  /* industries visual */
  .cs-industries-v2 .hero-visual{
    min-height:auto !important;
  }

  /* contact */
  .cs-contact-v43 .contact-form-card{
    padding:20px 15px !important;
    border-radius:22px !important;
  }

  .cs-contact-v43 .contact-visual{
    min-height:440px !important;
  }

  /* growth stories */
  .cs-hazwoper-v40 :where(.section,.section-sm),
  .cs-adenwalla-v42 :where(.section,.section-sm),
  .cs-urban-glo-v50 .section{
    padding-block:68px !important;
  }

  .cs-hazwoper-v40 .metric-grid,
  .cs-adenwalla-v42 .aden-image-gallery{
    grid-template-columns:1fr !important;
  }

  .cs-adenwalla-v42 .aden-reel-gallery{
    grid-template-columns:1fr !important;
  }

  .cs-urban-glo-v50 .engine-grid,
  .cs-urban-glo-v50 .performance-grid,
  .cs-urban-glo-v50 .os-grid{
    grid-template-columns:1fr !important;
  }

  /* prevent giant proof/video blocks */
  .cs-urban-glo-v50 .evidence-card,
  .cs-urban-glo-v50 .evidence-placeholder,
  .cs-urban-glo-v50 .video-card{
    min-height:360px !important;
  }

  /* footer */
  .cs-v41-footer{
    overflow-x:clip;
  }

  .cs-v41-footer .cs-v41-footer-wrap{
    width:calc(100% - 26px) !important;
  }

  .cs-v41-footer .cs-v41-footer-menus{
    grid-template-columns:1fr 1fr !important;
  }

  .cs-v41-footer .cs-v41-legal-inner{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:12px !important;
    text-align:center !important;
  }

  .cs-v41-footer .cs-v41-legal-links{
    justify-content:center !important;
    flex-wrap:wrap !important;
  }

  /* WordPress content */
  .entry-content :where(img,video,iframe){
    max-width:100% !important;
  }

  .entry-content .alignwide,
  .entry-content .alignfull{
    width:100% !important;
    max-width:100% !important;
    margin-inline:0 !important;
  }
}

/* ============================================================
   SMALL PHONES — <= 560
============================================================ */
@media(max-width:560px){

  :where(
    .cs-home-v11,
    .cs-services-v2,
    .cs-industries-v2,
    .cs-insights-exact,
    .cs-contact-v43,
    .cs-hazwoper-v40,
    .cs-adenwalla-v42,
    .cs-urban-glo-v50
  ) .wrap{
    width:calc(100% - 22px) !important;
  }

  /* slightly tighter hero copy */
  :where(
    .cs-services-v2,
    .cs-industries-v2,
    .cs-insights-exact,
    .cs-contact-v43,
    .cs-hazwoper-v40,
    .cs-adenwalla-v42,
    .cs-urban-glo-v50
  ) h1{
    font-size:clamp(38px,12vw,52px) !important;
  }

  /* card padding */
  :where(
    .cs-insights-exact .insight-card,
    .cs-insights-exact .library-card,
    .cs-contact-v43 .expect-card,
    .cs-hazwoper-v40 .metric-card,
    .cs-hazwoper-v40 .frontier-card,
    .cs-adenwalla-v42 .workstream,
    .cs-urban-glo-v50 .engine-card,
    .cs-urban-glo-v50 .metric-card,
    .cs-urban-glo-v50 .os-card
  ){
    padding:18px !important;
  }

  /* footer single column */
  .cs-v41-footer .cs-v41-footer-menus{
    grid-template-columns:1fr !important;
  }

  .cs-v41-footer .cs-v41-office{
    padding:18px !important;
  }

  .cs-v41-footer .cs-v41-market-image{
    opacity:.82;
  }
}

/* ============================================================
   VERY SMALL PHONES — <= 430
============================================================ */
@media(max-width:430px){

  :where(
    .cs-home-v11,
    .cs-services-v2,
    .cs-industries-v2,
    .cs-insights-exact,
    .cs-contact-v43,
    .cs-hazwoper-v40,
    .cs-adenwalla-v42,
    .cs-urban-glo-v50
  ) .wrap{
    width:calc(100% - 18px) !important;
  }

  :where(
    .cs-services-v2,
    .cs-industries-v2,
    .cs-insights-exact,
    .cs-contact-v43,
    .cs-hazwoper-v40,
    .cs-adenwalla-v42,
    .cs-urban-glo-v50
  ) h1{
    font-size:clamp(36px,12.8vw,48px) !important;
  }

  :where(
    .cs-services-v2,
    .cs-industries-v2,
    .cs-insights-exact,
    .cs-contact-v43,
    .cs-hazwoper-v40,
    .cs-adenwalla-v42,
    .cs-urban-glo-v50
  ) h2{
    font-size:clamp(28px,9vw,38px) !important;
  }

  .cs-insights-exact .featured-visual,
  .cs-insights-exact .card-visual{
    min-height:210px !important;
  }

  .cs-contact-v43 .contact-visual{
    min-height:390px !important;
  }

  .cs-urban-glo-v50 .evidence-card,
  .cs-urban-glo-v50 .evidence-placeholder,
  .cs-urban-glo-v50 .video-card{
    min-height:320px !important;
  }

  .cs-v41-footer .cs-v41-footer-wrap{
    width:calc(100% - 18px) !important;
  }
}

/* ============================================================
   TINY PHONES — <= 370
============================================================ */
@media(max-width:370px){

  :where(
    .cs-home-v11,
    .cs-services-v2,
    .cs-industries-v2,
    .cs-insights-exact,
    .cs-contact-v43,
    .cs-hazwoper-v40,
    .cs-adenwalla-v42,
    .cs-urban-glo-v50
  ) .wrap{
    width:calc(100% - 14px) !important;
  }

  :where(
    .cs-services-v2,
    .cs-industries-v2,
    .cs-insights-exact,
    .cs-contact-v43,
    .cs-hazwoper-v40,
    .cs-adenwalla-v42,
    .cs-urban-glo-v50
  ) h1{
    font-size:36px !important;
  }

  .cs-insights-exact .category-scroll .filter-btn{
    font-size:12px !important;
    padding-inline:12px !important;
  }

  .cs-contact-v43 .contact-form-card{
    padding:16px 11px !important;
  }

  .cs-v41-footer .cs-v41-office{
    padding:15px !important;
  }
}

/* ============================================================
   ORIENTATION / ACCESSIBILITY / MOTION
============================================================ */
@media(orientation:landscape) and (max-height:520px) and (max-width:1000px){
  :where(
    .cs-services-v2,
    .cs-industries-v2,
    .cs-insights-exact,
    .cs-contact-v43,
    .cs-hazwoper-v40,
    .cs-adenwalla-v42,
    .cs-urban-glo-v50
  ) .hero{
    min-height:auto !important;
  }
}

@media(prefers-reduced-motion:reduce){
  html{
    scroll-behavior:auto !important;
  }

  *,
  *::before,
  *::after{
    scroll-behavior:auto !important;
  }
}
