<?php //Variable declarations for region templates
  $head_title = '<title>The Apache OFBiz&reg; Project - Page Not Found</title>';
?>
<section id="content" class="errorpage">
  <header class="headerPage">
    <div class="container clearfix">
      <div class="row">
        <h1 class="span8">Page Not Found</h1>
        <div class="span4" id="navTrail"> <a href="index.html" class="homeLink">home</a><span>/</span><span class="current">404 error</span> </div>
      </div>
    </div>
  </header>
  <div class="slice  clearfix">
    <div class="container">
      <div class="row">
        <section>
          <div class="span5">
            <div class="imgWrapper"> <img src="images/img-404.jpg" alt="404 image"/> </div>
          </div>
          <div class="span7">
            <h2>The page cannot be found</h2>
            <p> The page you are looking for might have been removed, had its name changed or is temporarily unavailable </p>
          </div>
        </section>
      </div>
    </div>
  </div>
</section>
  <!-- page content -->
