@charset "UTF-8";

*, *:before, *:after { -ms-box-sizing: border-box; box-sizing: border-box; }
/*:root { font-size: calc(12px + (24 - 12) * ((100vw - 400px) / (1140 - 400))); }*/

:root {
	--link: #00bfff;
	--link-alt2: #563918;
	--link-alt1: #b3a44a;
	--accent1: #9b7e12;
	--accent2: #b3a44a;
	--accent3: #563918;
	--btn-bg: #5D4C42;
	--link-hover: #003466;
	--light-slate: #2c3e50;
	--shadow: #CCC;
	--padding: 5vw;
  --max-width: 180ch;
  --logo-green: #316542;
  --logo-light-green: #4b9965;
  --logo-gold: #ad8713;
  --logo-brown: #5D4C42;
  --logo-dark-gold: #80630e;
  --logo-light-gold: #ffc61c;
  --txt: #11112A;
  --color: #F3F4F5;
  --bg: #FFFFFF;
  --white: #FFF;
  --purple: #8d44ad;
  --blue: #2a7fb8;
  --indigo: #003466;
  --green: #8fb021;
  --orange: #d25400;
  --pink: #d45b9e;
  --red: #bb3c2d;
  --teal: #179f87;
  --slate: #263238;
  --cyan: #27ae61;
  --light-gray: #444;
  --light-purple: #ffbfe0;
  --light-blue: #0063da;
  --light-indigo: #003466;
  --light-green: #3baf04;
  --light-orange: #ffa800;
  --light-pink: #ff0084;
  --light-red: #fc0000;
  --light-teal: #04acad;
  --light-slate: #263238;

	--border-color: #CCC;

	--checkerboard-light: #FFF;
	--checkerboard-dark: #DDD;

  --fluid-type-min: 1.5rem;
  --fluid-type-max: 2.5rem;
  --fluid-type-target: 20vw;


  /* Perfect Fourth */
  --type-ratio: 1.33;

  /*  Body font size  */
  --body-font-size: 1rem;

  /* Compounded headlines sizes */
  --font-size-5: calc(var(--body-font-size) * var(--type-ratio));
  --font-size-4: calc(var(--font-size-5) * var(--type-ratio));
  --font-size-3: calc(var(--font-size-4) * var(--type-ratio));
  --font-size-2: calc(var(--font-size-3) * var(--type-ratio));
  --font-size-1: calc(var(--font-size-2) * var(--type-ratio));

  --padding: 5vw;
  --max-width: 180ch;

  --default-font: clamp(2rem, 14vw + 1rem, 15rem);
}

/* --- Custom mini reset ---------------------------------------------- */
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { margin: 0; padding: 0; border: 0; font-size: 100%; vertical-align: baseline; }
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display: block; }
body { line-height: 1; }

ol , ul { list-style: none; }
blockquote, q { quotes: none; }
blockquote:before, blockquote:after, q:before, q:after { content: ''; content: none; }
table { border-collapse: collapse; border-spacing: 0; }
/* -------------------------------------------------------------------- */

html, body { width: 100%; min-height: 100%; }

body { font-family: 'Open Sans'; font-size: 100%; /* 16px = 1rem */ height: 100%!important; -webkit-font-smoothing: antialiased; color: var(--txt); margin: 0; padding: 0; position: relative; overflow-x: hidden; overflow-y: scroll; background: #F1F1F1; }

.bg-pad { display: inline; padding: 0.2rem 0.5rem; line-height: 2; color: #fff; background: rgba(0, 0, 0, 0.75); -webkit-box-decoration-break: clone; box-decoration-break: clone; }

section { display: block; margin: 0.25rem auto 0.5rem auto; padding: 0.5rem 0.75rem; background: #FFF; box-shadow: inset 0px 0px 0px 2px #CCC; } 

strong { display: block; margin-bottom: 1rem; }

.thumbnails { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; grid-gap: 1rem; grid-template-rows: 10rem; }
.thumbnails * { overflow: hidden; }

.flexbin { display: grid; width: 90%; max-width: 1440px; grid-template-columns: 1fr 1fr; grid-template-rows: 15rem; grid-gap: 2rem; margin: 0 auto; }

/* --- START flexithumbs --------------------------------------------------- */

/*.flexbin { display: flex; overflow: hidden; flex-wrap: wrap; margin: -2rem; }
.flexbin:after { content: ""; flex-grow: 999999999; min-width: 12rem; height: 0; }
.flexbin > * { position: relative; display: block; height: 15rem; flex-grow: 1; }
.flexbin > * > img { height: 15rem; object-fit: cover; max-width: 100%; min-width: 100%; vertical-align: bottom; }
.flexbin.flexbin-margin { margin: 2rem; }*/


/*@media (max-width: 980px) {
	.flexbin { display: flex; overflow: hidden; flex-wrap: wrap; margin: -0.25rem; }
	.flexbin:after { content: ""; flex-grow: 999999999; min-width: 4rem; height: 0; }
  .flexbin > * { position: relative; display: block; height: 6rem; margin: 0.25rem; flex-grow: 1; }
  .flexbin > * > img { height: 6rem; object-fit: cover; max-width: 100%; min-width: 100%; vertical-align: bottom; }
  .flexbin.flexbin-margin { margin: 0.25rem; }
}*/
/*@media (max-width: 400px) {
	.flexbin { display: flex; overflow: hidden; flex-wrap: wrap; margin: -0.25rem; }
	.flexbin:after { content: ""; flex-grow: 999999999; min-width: 6rem; height: 0; }
	.flexbin > * { position: relative; display: block; height: 6rem; margin: 0.25rem; flex-grow: 1; }
	.flexbin > * > img { height: 6rem; object-fit: cover; max-width: 100%; min-width: 100%; vertical-align: bottom; }
	.flexbin.flexbin-margin { margin: 0.25rem; }
}*/
/* --- END flexithumbs ----------------------------------------------------- */


@media screen and (max-width: 600px) {
  .fancy-heading {
    font-size: 32px;
  }
  .fancy-heading::after {
    width: 64%;
    left: 18%;
  }
}
@media screen and (max-width: 360px) {
  .fancy-heading {
    font-size: 24px;
  }
  .fancy-heading::after {
    width: 60%;
    left: 20%;
  }
}

h1, h2, h3, h4, h5, h6 { display: block; margin: 0.5rem 0; padding: 0.25rem 0 0.5rem 0; line-height: 1.5; }

h1 { font-size: clamp(1rem, 1.5rem, 2rem); margin: 3rem auto 2rem auto; }
h2 { font-size: clamp(1rem, 1.5rem, 2rem); }
h3 { font-size: clamp(0.75rem, calc(10vw + 1rem), 1.5rem); text-align: left; border-bottom: 2px solid var(--border-color); }
h3 span { background: #800; color: #FFF; padding: 0 0.33rem; }

h4 { display: block; font-family: 'georgia';font-size: 1.25rem; margin: 0; color: var(--light-slate); font-style: italic; text-align: center; }

h5 { font-size: clamp(0.5rem, calc(8vw + 1rem), 1.25rem); padding: 0.5rem 0; text-align: center; border-bottom: 2px solid var(--border-color); border-top: 2px solid var(--border-color); }
h5 span { background: #800; color: #FFF; padding: 0 0.33rem; line-height: 1.5; }

.gallery { width: 100%; display: grid; /*grid-auto-flow: dense;*/ grid-template-columns: 1fr 1fr 1fr 1fr; grid-template-rows: min-content; grid-gap: 1rem; margin: 0.5rem auto 0 auto; overflow: hidden; }
.gallery > * { border: 0; outline: 0; border: none; outline: none; grid-area: span 1/span 1; position: relative; overflow: hidden; }
.gallery .wide { grid-area: span 1/span 2; }
.gallery .tall { grid-area: span 2/span 1; }
.gallery .wider { grid-area: span 1/span 3; }
.gallery .widest { grid-area: span 1/span 4; }
.gallery .tallest { grid-area: span 4/span 1; }
.gallery .taller { grid-area: span 3/span 1; }
.gallery .box { grid-area: span 2/span 2; }
.gallery .item { grid-area: span 1/span 1; }

figure { display: block; width: 100%; height: 100%; }
figure img { transform: scale(125%); transition: transform 0.25s; }
figure:hover img { transform: scale(100%); }


label { display: inline-block; text-align: left; margin: 0.5rem 0; /*font-size: var(--fs-base);*/ }

input[type="text"] { display: block; width: 100%; /*font-size: var(--fs-base);*/ padding: 0.5rem 0.85rem; margin-top: 0.5rem; margin-bottom: 0.5rem; }

textarea { display: block; width: 100%; font-family: 'Open Sans'; font-size: 1rem; padding: 0.5rem 1rem; }

input[type="submit"] { background: var(--txt); color: #FFF; font-size: 1.25rem; border: none; margin: 0.5rem auto; padding: 0.5rem 1rem; }

.btn { display: none; /*font-size: 1rem;*/ line-height: 2rem; border: none; background: var(--logo-brown); padding: 0.5rem 1rem; color: #FFF; text-decoration: none; margin: 0.5rem auto; text-align: center; }
.btn:hover { filter: brightness(115%); cursor: pointer; }

ul, li, p { display: block; color: var(--txt); font-size: clamp(0.75rem, 1rem, 1.25rem);  line-height: 1.33; letter-spacing: 0.1rem; }
li, p { margin: 0.25rem 0; }

header { position: relative; overflow: hidden; margin: 1rem auto; }
header h1 { display: block; text-align: center; color: #800; font-size: clamp(2rem, 4rem, 6rem); text-shadow: 1px 1px 1px rgba(0, 0, 0, 0), 2px 2px 1px #000, 3px 3px 1px #000; margin: 12rem auto 2rem auto; line-height: 1; }


/*header:after { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: url('/images/pattern.png'); }*/

/*ul { display: flex; width: 100%; flex-flow: row wrap; align-items: stretch; list-style-type: none; margin: 1rem 0; padding: 0; }
ul li { flex-grow: 0; flex-shrink: 1; flex-basis: 50%; padding: 0 0.25rem; }*/

.inview { visibility: hidden; opacity: 0; overflow: hidden; }

/* Common helper classes --------------------------------------------------- */
.flex-centered { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }
.respond { display: block; width: 100%; height: 100%; object-fit: cover; }
.fit { display: block; margin: 0 auto; width: 100%; height: 100%; object-fit: contain; }
.respond-fit { display: block; margin: 0 auto; width: 80%; height: 80%; object-fit: contain; }
.respond-fill { display: block; width: 100%; height: 100%; object-fit: cover; }
.limit { width: 90%!important; max-width: 960px!important; margin-left: auto; margin-right: auto; }
.uc { text-transform: uppercase; }
.txt-center { text-align: center; }
.txt-right { text-align: right; }
.txt-left { text-align: left; }
.txt-fill { display: flex; flex-flow: row nowrap; justify-content: space-around; align-items: center; }
.txt-fill span { flex: 1 1 auto; text-align: center; display: inline-block; }
/* ------------------------------------------------------------------------- */

input[type="checkbox"] { position: fixed; top: -9999px; left: -9999px; }
.readmore:checked ~ .summary { display: none; }
.readmore:checked ~ .content { display: block; }
.readmore:not(:checked) ~ .summary { display: block; }
.readmore:not(:checked) ~ .content { display: none; }

label { background: #2f2f2f; color: #FFF; padding: 0.25rem 0.5rem; }

::-webkit-input-placeholder { color: #BBB; }
::-moz-placeholder { color: #BBB; }
:-ms-input-placeholder { color: #BBB; }
:-moz-placeholder { color: #BBB; }

.thumbgrid { list-style: none; padding: 0; width: 100%; display: flex; overflow: hidden; flex-wrap: wrap; margin: -2.5px; }
.thumbgrid:after { content: ''; flex-grow: 999999999; min-width: 50px; height: 0; }
.thumbgrid > * { position: relative; display: block; height: 150px; margin: 2.5px; flex-grow: 1; }
.thumbgrid > * > img { height: 150px; object-fit: cover; max-width: 100%; min-width: 100%; vertical-align: bottom; }
.thumbgrid.thumbgrid-margin { margin: 2.5px; overflow: hidden; }
@media (max-width: 980px) {
  .thumbgrid { display: flex; overflow: hidden; flex-wrap: wrap; margin: -2.5px;  }
  .thumbgrid:after { content: ''; flex-grow: 999999999; min-width: 120px; height: 0;  }
  .thumbgrid > * { position: relative; display: block; height: 120px; margin: 2.5px; flex-grow: 1; }
  .thumbgrid > * > img { height: 120px; object-fit: cover; max-width: 100%; min-width: 100%; vertical-align: bottom; }
  .thumbgrid.thumbgrid-margin { margin: 2.5px; }
}
@media (max-width: 400px) {
  .thumbgrid { display: flex; overflow: hidden; flex-wrap: wrap; margin: -2.5px; }
  .thumbgrid:after { content: ''; flex-grow: 999999999; min-width: 80px; height: 0; }
  .thumbgrid > * { position: relative; display: block; height: 80px; margin: 2.5px; flex-grow: 1; }
  .thumbgrid > * > img { height: 80px; object-fit: cover; max-width: 100%; min-width: 100%; vertical-align: bottom;   }
  .thumbgrid.thumbgrid-margin { margin: 2.5px; }
}

/* No Media Query Grid ----------------------------------------------------- */
.grid:before, .grid:after { content: ''; display: table; }
.grid:after { clear: both; }
.grid { display: flex; flex-flow: row wrap; align-items: stretch; }
[class*="column--"] { flex-grow: 0; flex-shrink: 1; position: relative; padding: 0  0.5rem 0.5rem 0.5rem; }
.column--full { min-width: 100%; max-width: 100%; flex-basis: calc((700px - 100%) * 700); }
.column--half { min-width: 50%; max-width: 100%; flex-basis: calc((700px - 100%) * 700); }
.column--one-fifth, .column--fifth { min-width: 20%; max-width: 100%; flex-basis: calc((700px - 100%) * 700); }
.column--two-fifth { min-width: 40%; max-width: 100%; flex-basis: calc((700px - 100%) * 700); }
.column--three-fifth { min-width: 60%; max-width: 100%; flex-basis: calc((700px - 100%) * 700); }
.column--four-fifth { min-width: 80%; max-width: 100%; flex-basis: calc((700px - 100%) * 700); }
.column--quarter { min-width: 25%; max-width: 100%; flex-basis: calc((700px - 100%) * 700); }
.column--third { min-width: 33.3333%; max-width: 100%; flex-basis: calc((700px - 100%) * 700); }
.column--three-quarter { min-width: 75%; max-width: 100%; flex-basis: calc((700px - 100%) * 700); }
.column--two-third { min-width: 66.6666%; max-width: 100%; flex-basis: calc((700px - 100%) * 700); }
/* ------------------------------------------------------------------------- */

.video-wrapper { max-height: 80vh; margin: 0 auto; width: 100%; object-fit: cover; height: 100%; display: block; position: relative; }
.video-wrapper:after { padding-top: 56.25%; display: block;  content: ''; }
.video-content { position: absolute; top: 0; bottom: 0; right: 0; left: 0; color: white; background: #F00; }
.video-content video { width: 100%; height: 100%; object-fit: cover; }

/* --- Clamp CSS --------------------------------------------------- */
.line-clamp { display: block; display: -webkit-box; -webkit-box-orient: vertical; position: relative; line-height: 1.5; overflow: hidden; text-overflow: ellipsis; }
.line-clamp:after { content: '\022EE'; color: #666!important; text-align: right; bottom: 0; right: 0; width: 10%; display: block; position: absolute; height: calc(0.75rem * 0.9rem); }
@supports (-webkit-line-clamp: 1) {
	.line-clamp:after { display : none !important; }
}
.line-clamp-1 { -webkit-line-clamp: 1; height: calc(var(--fs-sm) * 1.5 * 1); }
.line-clamp-2 { -webkit-line-clamp: 2; height: calc(var(--fs-sm) * 1.5 * 2); }
.line-clamp-3 { -webkit-line-clamp: 3; height: calc(var(--fs-sm) * 1.5 * 3); }
.line-clamp-4 { -webkit-line-clamp: 4; height: calc(0.75rem * 1.25 * 4); }
.line-clamp-5 { -webkit-line-clamp: 5; height: calc(0.75rem * 1.25 * 5); }
/* ----------------------------------------------------------------- */

/* --- Flexbox Grid ------------------------------------------------ */
.row:before, .row:after { content: ''; display: table; }
.row:after { clear: both; }
.row { display: flex; flex-flow: row wrap; }
[class*="col-"] { flex: 0; position: relative; }
.col-1of12 { flex-basis: calc((1/12) * 100%); }
.col-2of12 { flex-basis: calc((2/12) * 100%); }
.col-3of12 { flex-basis: calc((3/12) * 100%); }
.col-4of12 { flex-basis: calc((4/12) * 100%); max-width: calc((4/12) * 100%); }
.col-5of12 { flex-basis: calc((5/12) * 100%); }
.col-6of12 { flex-basis: calc((6/12) * 100%); }
.col-7of12 { flex-basis: calc((7/12) * 100%); }
.col-8of12 { flex-basis: calc((8/12) * 100%); max-width: calc((8/12) * 100%); }
.col-9of12 { flex-basis: calc((9/12) * 100%); }
.col-10of12 { flex-basis: calc((10/12) * 100%); }
.col-11of12 { flex-basis: calc((11/12) * 100%); }
.col-12of12 { flex-basis: calc((12/12) * 100%); }
/* ----------------------------------------------------------------- */

@media screen and (max-width: 600px) {
}

