appling different styles based on taxonomy
You can have specific template files by using theme hook suggestions. To change the node template, use the following:

function THEME_preprocess_node(&amp;$vars) {
  $node = $vars['node'];

  // Perform this only on certain content types.
  if ($node-&gt;type == 'YOUR_CONTENT_TYPE') {

    // get the taxonomy term (node category)
    $tid  = $node-&gt;field_YOURTERM[LANGUAGE_NONE][0]['tid'];
    $term = taxonomy_term_load($tid);
    $term_name = drupal_html_class($term-&gt;name);

    // add a css class with the category's name
    $vars['classes_array'][] = 'node-category-' . $term_name;

    // make drupal search for category-specific node templates
    // template files need to be named node--nodetype--termname.tpl.php
    $vars['theme_hook_suggestions'][] = 'node__' . $node-&gt;type.'__' . $term_name;
  }
}


Say your categories are like "Drink Wine", the $term_name would be "drink-wine". Lowercarse, no spaces. You can remove __$node-&gt;type if you want.

To change the page template, use the following:

function THEME_preprocess_page(&amp;$vars) {
  $node = (isset($vars['node']) ? $vars['node'] : null);

  // Perform this only on certain content types.
  if ($node &amp;&amp; $node-&gt;type == 'YOUR_CONTENT_TYPE') {

    // get the taxonomy term (node category)
    $tid  = $node-&gt;field_YOURTERM[LANGUAGE_NONE][0]['tid'];
    $term = taxonomy_term_load($tid);
    $term_name = drupal_html_class($term-&gt;name);

    // add a css class with the category's name
    $vars['classes_array'][] = 'page-node-category-' . $term_name;

    // make drupal search for category-specific page templates
    // template files need to be named page--nodetype--termname.tpl.php
    $vars['theme_hook_suggestions'][] = 'page__' . $node-&gt;type.'__' . $term_name;
  }
}