/* Mobile patch: limited to <=850px. Desktop is untouched. */
@media (max-width:850px) {
  html, body { max-width:100%; overflow-x:clip; }
  .wp-site-blocks, .cm-home, .cm-page, .cm-footer { min-width:0; max-width:100%; }
  img, video, iframe { max-width:100%; }
  .cm-header { width:100%; max-width:100%; min-width:0; padding-inline:20px; }
  .cm-brand { font-size:clamp(15px,4.2vw,18px); }
  .cm-menu {
    display:flex!important; flex:0 0 44px; width:44px; height:44px;
    align-items:center; justify-content:center; position:relative; z-index:101;
    padding:0; color:inherit; cursor:pointer; border:0; background:transparent;
    font-size:0!important; overflow:hidden;
  }
  .cm-menu::before {
    content:""; display:block; width:25px; height:18px;
    background:linear-gradient(currentColor,currentColor) left top/25px 2px no-repeat,
               linear-gradient(currentColor,currentColor) left center/25px 2px no-repeat,
               linear-gradient(currentColor,currentColor) left bottom/25px 2px no-repeat;
  }
  .cm-menu[aria-expanded="true"]::before {
    background:linear-gradient(currentColor,currentColor) center/25px 2px no-repeat;
    transform:rotate(45deg);
  }
  .cm-menu[aria-expanded="true"]::after {
    content:""; position:absolute; width:25px; height:2px;
    background:currentColor; transform:rotate(-45deg);
  }
  .cm-header .cm-nav {
    display:none!important; position:absolute; z-index:100; top:100%; left:0; right:0;
    background:#f4f1ea; color:#111; border-bottom:1px solid rgba(0,0,0,.15);
    padding:24px 20px 30px; flex-direction:column; align-items:stretch; gap:0;
    box-shadow:0 14px 22px rgba(0,0,0,.08);
  }
  .cm-header .cm-nav.cm-mobile-open { display:flex!important; }
  .cm-header .cm-nav a { padding:13px 4px; font-size:17px; }
  .cm-header .cm-nav .nav-cta { margin-top:14px; text-align:center; }
  .cm-home > .services-cards, .cm-home > .studio,
  .cm-home > .flexible, .wp-site-blocks > .cm-footer {
    width:100%!important; max-width:100%!important;
    margin-left:0!important; margin-right:0!important;
  }
  .cm-footer { box-sizing:border-box; grid-template-columns:minmax(0,1fr)!important;
    padding:72px 20px 34px!important; gap:48px!important; overflow:hidden; }
  .cm-footer > div, .cm-footer .footer-right { min-width:0; max-width:100%; }
  .cm-footer h2, .cm-footer h2 span {
    font-size:clamp(44px,12vw,82px)!important;
    line-height:.95!important; letter-spacing:-.055em!important;
    overflow-wrap:break-word; max-width:100%;
  }
  .cm-footer h2 { margin:24px 0 0!important; }
  .cm-footer .cm-footer-headline-line { display:inline; }
  .cm-footer a { overflow-wrap:anywhere; }
  .cm-footer .cm-footer-social, .cm-footer .cm-footer-legal {
    display:flex; flex-wrap:wrap; gap:12px 20px; max-width:100%;
  }
  .cm-footer .footer-right small { margin-top:18px; }
  .gravity-title, .cm-inner-hero h1, .cm-contact h1,
  .cm-contact-v2 h1, .cm-case-hero h1, .cm-case-cta h2 {
    max-width:100%; overflow-wrap:anywhere;
  }
}
