Hide a region from a specific node? (Without CSS)
Try doing it via hook_page_alter


  Perform alterations before a page is rendered.
  
  Use this hook when you want to remove or alter elements at the page
  level, or add elements at the page level that depend on an other
  module's elements (this hook runs after hook_page_build().


You can then get the page you are on by calling menu_get_object without parameters and inspect the returned node object.

Add this code to your theme's template.php file:

function MYTHEME_page_alter(&amp;$page){
  //dpm($page);
  if ($node = menu_get_object()) {
    if ($node-&gt;nid == 72) { // pick your node or add a condition to your liking
      // remove sidebar first region
      unset($page['sidebar_first']); // remove the regeion here
    }
  }
}


If your theme depends on it, and depending on the region you are removing, you should also implement template_preprocess_html and adjust your body classes so that they are in sync.

As to the CSS, dispay:none as a css rule should remove the element from display, whereas visibility:hidden hides an element, but it will still take up the same space as before. CSS Display and Visibility