/* ClinicaMOB v252 — global left-anchor elimination / geometry lock.
   Loaded last on every public page. Functional behavior untouched. */
:root{--cm252-grid:1160px;--cm252-read:980px;--cm252-gutter:48px;--cm252-mobile-gutter:28px}

/* Any direct content container is centered on the shared site grid. */
main > .container,
main > div.container,
main > .cm-editorial-note.container,
main > section.container,
main > div[class*="container"]:not(.cm-hero-grid),
main ~ section > .container,
main + section > .container{
  box-sizing:border-box!important;
  max-width:var(--cm252-grid)!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* Direct design objects: never viewport-left anchored. */
main > section.cm-v219-content-card:not(.page-hero),
main > section.cm-deal-note,
main > section.cm-question-set,
main > section.ks-glossary-note,
main > section.cm-client-proof,
main > section.cm-experience-band{
  box-sizing:border-box!important;
  width:min(calc(100% - var(--cm252-gutter)),var(--cm252-grid))!important;
  max-width:var(--cm252-grid)!important;
  margin-left:auto!important;
  margin-right:auto!important;
  float:none!important;
  left:auto!important;
  right:auto!important;
  transform:none!important;
}

/* Narrow reading components stay centered rather than becoming left columns. */
main > section.cm-question-set,
main > .cm-editorial-note.container,
main .ks-glossary-note{
  max-width:var(--cm252-read)!important;
}

/* Hero bands may be full bleed, but all their content lives on the common grid. */
main > section.page-hero > .container,
main > section.page-hero .container,
main > .page-hero > .container,
main > .page-hero .container{
  box-sizing:border-box!important;
  width:min(calc(100% - var(--cm252-gutter)),var(--cm252-grid))!important;
  max-width:var(--cm252-grid)!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* Legacy specialty / medical / resource article bands: background can span, content cannot drift. */
main > section.soft > .container,
main > section.band > .container,
main > section:not([class]) > .container,
main > section.cm-compact-band > .container{
  box-sizing:border-box!important;
  width:min(calc(100% - var(--cm252-gutter)),var(--cm252-grid))!important;
  max-width:var(--cm252-grid)!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* Tool and paid-search shells. */
main .pdt-wrap,
main .cm-lp-wrap,
main .cm-lp-hero-grid,
main .cm-lp-trust-grid,
main .cm-lp-search-card,
main .cm-res-shell,
main #clinicamob-knowledge-search,
main .form-shell{
  box-sizing:border-box!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* Market-detail family: reinforce every direct market card even if old CSS wins elsewhere. */
body.cm-v219-market-page main > section.cm-v219-content-card,
body.cm-v219-market-page main > section.page-hero.cm-v219-content-card,
body.cm-v219-market-page main > .container,
body.cm-v219-market-page main > div.container,
body.cm-v219-market-page main ~ section.soft > .container{
  box-sizing:border-box!important;
  width:min(calc(100% - var(--cm252-gutter)),var(--cm252-grid))!important;
  max-width:var(--cm252-grid)!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
body.cm-v219-market-page main > section.cm-v219-content-card > .container,
body.cm-v219-market-page main > section.page-hero.cm-v219-content-card > .container{
  width:100%!important;
  max-width:none!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-left:0!important;
  padding-right:0!important;
}

/* Existing purpose-built pages keep their own composition, but their shells remain centered. */
body.cm-v219-search-page main > section:not(.cm-v219-search-hero) > .container,
body.cm-v244-markets main > section > .container,
body.cm-v219-general.cm-fixed-interior .cm-resources-main .cm-res-shell,
body.cm-v219-general.cm-fixed-interior .cm-resources-main #clinicamob-knowledge-search{
  margin-left:auto!important;
  margin-right:auto!important;
}

/* Guard against skinny grid children / overflow that visually mimics misalignment. */
main [class*="grid"] > *,main .two > *,main .three > *,main .four > *,main .cards > *{min-width:0!important}
main img,main svg,main video,main iframe,main canvas,main table,main pre{max-width:100%!important}

@media(max-width:760px){
  main > section.cm-v219-content-card:not(.page-hero),
  main > section.cm-deal-note,
  main > section.cm-question-set,
  main > section.ks-glossary-note,
  main > section.cm-client-proof,
  main > section.cm-experience-band,
  main > section.page-hero > .container,
  main > section.page-hero .container,
  main > section.soft > .container,
  main > section.band > .container,
  main > section:not([class]) > .container,
  main > section.cm-compact-band > .container,
  body.cm-v219-market-page main > section.cm-v219-content-card,
  body.cm-v219-market-page main > section.page-hero.cm-v219-content-card,
  body.cm-v219-market-page main > .container,
  body.cm-v219-market-page main > div.container,
  body.cm-v219-market-page main ~ section.soft > .container{
    width:min(calc(100% - var(--cm252-mobile-gutter)),var(--cm252-grid))!important;
  }
}
