/* =========================================================
   base.css — Shared layout: .wrapper / .container / .row grid
   Used by ALL theme templates. Class names here are a public
   contract — rename or restructure only when updating every
   PHP/HTML file in the theme that uses them.
   Migrated from main.css (visual parity).
   ========================================================= */

.row {
	display: flex;
	flex-wrap: wrap;
	box-sizing: border-box;
	align-items: stretch;
}
.row>* {
	box-sizing: border-box;
}

.row>.col-4 {
	width: 33.3333333333%;
}

.row>.col-8 {
	width: 66.6666666667%;
}

.row.gtr-50 {
	margin-top: 0;
	margin-left: -1.5em;
}
.row.gtr-50>* {
	padding: 0 0 0 1.5em;
}

.row {
	margin-top: 0;
	margin-left: -3em;
}
.row>* {
	padding: 0 0 0 3em;
}

.row.gtr-150 {
	margin-top: 0;
	margin-left: -4.5em;
}
.row.gtr-150>* {
	padding: 0 0 0 4.5em;
}

@media screen and (max-width: 1680px)  {
.row {
		display: flex;
		flex-wrap: wrap;
		box-sizing: border-box;
		align-items: stretch;
	}
.row>* {
		box-sizing: border-box;
	}

.row.gtr-50 {
		margin-top: 0;
		margin-left: -1.5em;
	}
.row.gtr-50>* {
		padding: 0 0 0 1.5em;
	}

.row {
		margin-top: 0;
		margin-left: -3em;
	}
.row>* {
		padding: 0 0 0 3em;
	}

.row.gtr-150 {
		margin-top: 0;
		margin-left: -4.5em;
	}
.row.gtr-150>* {
		padding: 0 0 0 4.5em;
	}

}
@media screen and (max-width: 1280px)  {
.row {
		display: flex;
		flex-wrap: wrap;
		box-sizing: border-box;
		align-items: stretch;
	}
.row>* {
		box-sizing: border-box;
	}

.row.gtr-50 {
		margin-top: 0;
		margin-left: -1em;
	}
.row.gtr-50>* {
		padding: 0 0 0 1em;
	}

.row {
		margin-top: 0;
		margin-left: -2em;
	}
.row>* {
		padding: 0 0 0 2em;
	}

.row.gtr-150 {
		margin-top: 0;
		margin-left: -3em;
	}
.row.gtr-150>* {
		padding: 0 0 0 3em;
	}

}
@media screen and (max-width: 980px)  {
.row {
		display: flex;
		flex-wrap: wrap;
		box-sizing: border-box;
		align-items: stretch;
	}
.row>* {
		box-sizing: border-box;
	}

.row>.col-12-narrow {
		width: 100%;
	}

.row.gtr-50 {
		margin-top: 0;
		margin-left: -1em;
	}
.row.gtr-50>* {
		padding: 0 0 0 1em;
	}

.row {
		margin-top: 0;
		margin-left: -2em;
	}
.row>* {
		padding: 0 0 0 2em;
	}

.row.gtr-150 {
		margin-top: 0;
		margin-left: -3em;
	}
.row.gtr-150>* {
		padding: 0 0 0 3em;
	}

}
@media screen and (max-width: 736px)  {
.row {
		display: flex;
		flex-wrap: wrap;
		box-sizing: border-box;
		align-items: stretch;
	}
.row>* {
		box-sizing: border-box;
	}

.row>.col-12-mobile {
		width: 100%;
	}

.row.gtr-50 {
		margin-top: 0;
		margin-left: -1em;
	}
.row.gtr-50>* {
		padding: 0 0 0 1em;
	}

.row {
		margin-top: 0;
		margin-left: -2em;
	}
.row>* {
		padding: 0 0 0 2em;
	}

.row.gtr-150 {
		margin-top: 0;
		margin-left: -3em;
	}
.row.gtr-150>* {
		padding: 0 0 0 3em;
	}

}
@media screen and (max-width: 480px)  {
.row {
		display: flex;
		flex-wrap: wrap;
		box-sizing: border-box;
		align-items: stretch;
	}
.row>* {
		box-sizing: border-box;
	}

.row.gtr-50 {
		margin-top: 0;
		margin-left: -1em;
	}
.row.gtr-50>* {
		padding: 0 0 0 1em;
	}

.row {
		margin-top: 0;
		margin-left: -2em;
	}
.row>* {
		padding: 0 0 0 2em;
	}

.row.gtr-150 {
		margin-top: 0;
		margin-left: -3em;
	}
.row.gtr-150>* {
		padding: 0 0 0 3em;
	}

}
.container {
	margin: 0 auto;
	width: 1400px;
}
.container.medium {
	width: 900px;
}
@media screen and (max-width: 1680px)  {
.container {
		width: 1080px;
	}
.container.medium {
		width: 810px;
	}
.container {
		width: 90%;
	}
}
@media screen and (max-width: 1280px)  {
.container.medium {
		width: 720px;
	}
}
@media screen and (max-width: 980px)  {
.container {
		width: 90%;
	}
.container.medium {
		width: 90%;
	}
}
@media screen and (max-width: 736px)  {
.container {
		width: 100%;
	}
.container.medium {
		width: 100%;
	}
}
section.special, article.special {
	text-align: center;
}
.wrapper {
	padding: 2em 0 3em 0;
}

.wrapper.style2 {
	background: #ffffff;
	padding: 0;
}
.wrapper.style2 #main {
	padding: 1em 0 0 0;
}

@media screen and (max-width: 1280px)  {
.wrapper {
		padding: 2em 0 2em 0;
	}
}
@media screen and (max-width: 980px)  {
section.special, article.special {
		text-align: center;
	}
}
@media screen and (max-width: 736px)  {
.wrapper {
		padding: 1em;
	}
}
/* ---------- Shared utilities / images (migrated from main.css) ---------- */
p.none {
  margin: 0;
}

.clearfix {
  *zoom: 1;
}
.clearfix:before,
.clearfix:after {
  display: table;
  line-height: 0;
  content: "";
}
.clearfix:after {
  clear: both;
}

.image {
  border: 0;
  display: inline-block;
  position: relative;
}
.image.link:before {
  background: url("images/overlay.png");
  content: "";
  display: block;
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
}
.image img {
  display: block;
}

.image.fit {
  display: block;
  width: 100%;
}
.image.fit img {
  display: block;
  width: 100%;
}

.inner h3 {
  font-size: 1.1em;
  font-weight: 600;
}
