---
layout: default
---

<div id="main" role="main">
	<article class="wrap" itemscope itemtype="http://schema.org/Article">
		{% if page.image.feature %}
		<div class="page-feature">
			<div class="page-image">
				<img src="{{ site.url }}/images/{{ page.image.feature }}" class="page-feature-image" alt="{{ page.title }}" itemprop="image">
				{% if page.image.credit %}{% include image-credit.html %}{% endif %}
			</div><!-- /.page-image -->
		</div><!-- /.page-feature -->
		{% endif %}
		{% include breadcrumbs.html %}

		<section id="global-header">
			<div class="container">
				<div class="row">
					<div class="col-md-12">
						<div class="block">
							<h1>{{ page.title }}</h1>
							<p>{{ page.subtitle }}</p>
						</div>
					</div>
				</div>
			</div>
		</section>



		<div class="inner-wrap">
			<div id="content" class="page-content" itemprop="articleBody">
				<section id="intro">
		      <div class="container">
		        <div class="row">
								{{ content }}
		        </div>
		      </div>
		    </section>
				<hr />
				<footer class="page-footer">
					{% if page.categories %}{% include page-author.html %}{% endif %}
					{% if page.share != false %}{% include share-this.html %}{% endif %}
					{% include page-meta.html %}
				</footer><!-- /.footer -->
				<aside>
					{% if page.comments == true %}{% include comments.html %}{% endif %}
				</aside>
			</div><!-- /.content -->
		</div><!-- /.inner-wrap -->
		{% if page.ads == true %}<div class="ads">{% include advertising.html %}</div><!-- /.ads -->{% endif %}
	</article><!-- ./wrap -->
</div><!-- /#main -->
