/* ==========================================================================
   Styling and layout for all media
   ========================================================================== */


/* ==========================================================================
   Styling and layout for screen media (mobile first)
   ========================================================================== */

@media screen {

/* Layout
   ========================================================================== */

body {
    background: 0;
}

.wrapper {
    background: 0;
    margin-left: auto;
    margin-right: auto;
    max-width: 1080px;
    width: 100%;
    min-width: 320px;
}

header, #container, .container {
    margin: 0 auto;
    width: 100%;
}

/* Header Container Alignment */
header[role="banner"] {
    display: flex;
    flex-direction: column;
    align-items: flex-end; /* Pushes content to the right */
    padding-right: 1.5em;  /* Restores original right margin offset */
    box-sizing: border-box;
}

header[role="banner"] hgroup {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    text-align: right;
    width: 100%;
}

header[role="banner"] h1,
header[role="banner"] h3 {
    float: none;           /* Cancels legacy float rules */
    margin: 0;             /* Resets browser default margins */
    text-align: right;
}

header[role="banner"] h1 {
    margin-top: 0.125em;    /* Original h1 top offset */
}

header[role="banner"] h3 {
    margin-top: 0.5em;      /* Gap between h1 and h3 */
}

#front_showcase {
    height: auto;
}

#container {
    margin: 0 auto;
    overflow: auto;
    padding-bottom: 3.5em;
    width: 100%;
    max-width: 86em;
}

#content {
    margin-top: 2.8em;
    margin-left: 3em;
    margin-bottom: 1em;
    float: left;
    width: 63%;
}

#site-list {
    margin-left: 1.5em;
    text-align: left;
    float: left;
}

.slides {
    padding-bottom: 1.0em;
}

#navi {
    float: right;
    margin-right: 1.5em;
    width: 25%;
    max-width: 23em;
    background: 0;
}

nav ul {
    margin: 0 auto;
    list-style: none;
    list-style-image: none;
    display: block;
}

nav li {
    text-align: right;
    margin: 0;
    border-bottom: 0;
    padding: .5em 0;
}

nav li.active {
    color: #00a400;
    border-left: 2px solid #00a400;
}

footer {
    margin-top: -2em;
    margin-left: auto;
    margin-right: auto;
    position: relative;
    width: 95%;
    height: 5em;
    clear: both;
    text-align: center;
    border-style: dotted none none none;
    border-width: 1px;
    border-color: #99FF00;
    padding-top: 1em;
}

/* 1. Global Content Images (Photos, Hero, Article Images) */
img, video {
    display: block;
    max-width: 100%;
    height: auto;
    margin-left: auto;
    margin-right: auto;
    aspect-ratio: 9 / 5; /* Handles all standard content photos */
}

/* 2. Fix Divider & Icon Images (Resets height so lines don't stretch) */
.divider img,
img.divider {
    aspect-ratio: auto !important;
    height: auto !important;
    max-width: 100%;
}

/* 3. Divider Container (Your existing style) */
.divider {
    text-align: center;
    margin-left: auto;
    margin-right: auto;
    margin-top: 0em;
    margin-bottom: 0em;
    max-width: 100%;
}

.thumb {
    text-align: center;
    max-width: 480px;
    margin-left: auto;
    margin-right: auto;
    margin-top: 0em;
    margin-bottom: 0em;
}
 

/* Links
   ========================================================================== */

a {
   position: relative;
   text-decoration: none;
   -webkit-tap-highlight-color: rgba(153, 255, 0, 1);
}

a:link {
   text-decoration: none;
   color: #02cc00;
}

a:hover {
   outline: 0;
   text-decoration: none;
   color: #99ff00; 
}

a:active {
   outline: 0;
   top: 1px;
   color: #007900;
}

a:focus {
   outline: thin dotted #06f;
}

header a {
   color: #02cc00;
}

[role="main"] a:hover,
[role="complementary"] a:hover {
    text-decoration: none;
    color: #99ff00 !important;
}

[role="complementary"] a:active {
    text-decoration: none;
    color: #009900;
}

[role="main"] a:visited,
[role="complementary"] a:visited {
    color: #02cc00;
}

[role="main"] h1 a, h1 a:visited {
    color: #02cc00;
}

[role="main"] h1 a:hover {
     text-decoration: underline;
     color: #99ff00;
}

nav .current {
    color: #007900; 
    padding-right: 0.5em;
    border-right: 0.5em solid #007900;
}

.menu_article {
    font-size: 0.875em !important;
    padding-right: 1.25em;
    line-height: 1.5;
}

#sitemap .menu_article {
    font-size: 0.9375em !important;
    padding-left: 3em;
    line-height: 1.5;
}

.menuparent {
    padding-left: 0;
    padding-top: .5em;
    line-height: 1.5;
}

.paginator-l {
    float: left;
    width: 40%;
    text-align: left;
}

.paginator-r {
    float: right;
    width: 40%;
    text-align: right;
}

/* Typography
   ========================================================================== */

body {
    font-family: 'open sans', sans-serif;
    font-size: 1.2em;
    line-height: 1.5;
    font-weight: 300;
    color: #333;  
    margin: 0;
}

h1 {
    font-family: 'Oswald', sans-serif;
    font-size: 3.5em;
    line-height: 1;
    color: #00a400;
}

h2 {
    font-family: 'Oswald', sans-serif;
    font-size: 1.5em;
    line-height: 1.25;
    color: #00a400;
    margin-top: 0.5em;
    text-align: center;
}

h3 {
    font-family: 'Oswald', sans-serif;
    font-size: 1.3125em;
    line-height: 1.25;
    font-weight: normal;
    font-style: italic;
    color: #00a400;
}

h4 {
    font-family: 'Oswald', sans-serif;
    font-size: 1.3125em;
    color: #666666;
    text-align: center;
    margin-top: 0em;
    margin-bottom: 0.5em;
}

h5 {
    color: #333;
    font-family: 'Oswald';
    font-size: 1.25em;
    font-style: normal;
    font-weight: 400;
    line-height: 1.4em;
    text-align: center;
    margin: 1.0em 0;
}

h6 {
    color: #333;
    font-family: 'Oswald';
    font-size: 1em;
    font-style: normal;
    font-weight: 300;
    line-height: 1.4em;
    text-align: center;
    margin: 1.0em 0;
}

blockquote {
    font-size: 0.9375em;
    font-style: italic;
    margin-left: 2em;
}

small {
    font-size: .9125em;
}

b, strong, em {
    font-weight: 500;
    font-style: italic;
}

p.route {
    margin-left: 1em;
}

nav {
    font-family: Oswald, sans-serif;
    font-weight: normal;
    font-size: 1.25em;
    padding-top: 2.8em;
}

p {
    font-family: 'open sans', sans-serif;
    font-size: 1em;
}

p.align-center {
    text-align: center;
}

p.align-right {
    text-align: right;
}

sub, sup {
    font-size: .85714285714286em;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
}

sup {
    top: -0.5em;
}

sub {
    bottom: -0.25em;
}

/* Embedded content
   ========================================================================== */

/* 1. Global Responsive Images & Aspect Ratio Fix */
img, video {
    display: block;
    max-width: 100%;
    height: auto;
    margin-left: auto;
    margin-right: auto;
    aspect-ratio: 9 / 5; /* Instantly reserves height for 1080x600 & 1080x500 images */
}

/* 4. Alignment Clean-up */
.align-center {
    display: block;
    max-width: 100%;
    height: auto;
    margin-top: 0;
    margin-bottom: 1em;
    margin-left: auto;
    margin-right: auto;
}

img:hover {
    opacity: .9;
}

figure {
    margin: 0;
}

svg:not(:root) {
    overflow: hidden;
}

} /* End @media screen */


/* ==========================================================================
   Additional layout for screen media 450px and under
   ========================================================================== */

@media only screen and (max-width: 450px) {

.wrapper {
    background: 0;
    margin-left: auto;
    margin-right: auto;
    max-width: 450px;
    width: 100%;
    min-width: 320px;
}

#front_showcase {
    width: 100%;
    margin: 0;
}

#container {
    width: 100%;
    max-width: 450px;
}

#content {
    float: left !important;
    width: 90%;
    max-width: 450px;
    margin-top: 0.5em;
    margin-left: 1em;
    margin-right: 1em;
}

body {
    font-family: 'open sans', sans-serif;
    font-size: 0.875em;
    line-height: 1.375;
    font-weight: 300;
    color: #333;  
    margin: 0;
}

h1 {
    font-family: 'Oswald', sans-serif;
    font-size: 2.6em;
    line-height: 1;
    font-weight: bold;
    color: #00a400;
}

h2 {
    font-family: 'Oswald', sans-serif;
    font-size: 1.25em;
    line-height: 1.125;
    color: #00a400;
    margin-top: 0.5em;
    text-align: center;
}

h3 {
    font-family: 'Oswald', sans-serif;
    font-size: 1em;
    line-height: 1.25;
    font-weight: normal;
    font-style: italic;
    color: #00a400;
}

h4 {
    font-family: 'Oswald', sans-serif;
    font-size: 1.125em;
    color: #666666;
    text-align: center;
    margin-left: 0.5em;
    margin-right: 0.5em;
}

h5 {
    color: #333;
    font-family: 'Oswald';
    font-size: 1em;
    font-style: normal;
    font-weight: 400;
    line-height: 1.4em;
    text-align: center;
    margin: 1.0em 0;
}

small {
    font-size: .75em;
}

p.paginator {
    margin: 0;
}

.menu_article {
    padding-right: 1em;
    font-size: 0.875em !important;
    line-height: 1.5;
}

nav ul.menu {
    display: block;
    float: right;
    text-align: right;
}

#navi {
    float: right;
    margin-right: 2em;
    width: 90%;
    background: 0;
}

nav {
    padding-top: 2.0em;
    width: 100%;
}

header {
    float: right;
    display: block;
    padding-right: 1.5em;
    text-align: right;
}

header h1 {
    float: right;
    display: block;
    margin: 0.125em 0 0 0;
    text-align: right;
}

header h3 {
    float: right;
    display: block;
    margin: 0.5em 0 0 0;
    text-align: right;
}

.align-center {
    display: block;
    max-width: 100%;
    height: 100%;
    margin-top: 0;
    margin-left: auto;
    margin-right: auto;
}

img, video {
    display: block;
    max-width: 100%;
    height: auto;
    margin-left: auto;
    margin-right: auto;
}

} /* End @media only screen and (max-width: 450px) */


/* Contact Page & Utility Lists
   ========================================================================== */

#contact {
    padding: 0;
}

#contact fieldset {
    border: none;
    padding-bottom: 1em;
}

#contact legend {
    color: #333;
    font-size: 0.875em;
    padding: 0 0 1em 0;
    text-align: left;
    display: none;
}

#contact label {
    float: left;
    font-size: 0.875em;
    width: 8em;
    padding-top: 0.3em;
    margin: 0em 1em 0 0;
    text-align: right;
    color: #333;
}

#contact input {
    margin-bottom: 0.5em;
    width: 50%;
}

#contact br {
    clear: left;
}

#contact Submit {
    margin: 2em 0px 1em 4em;
}

li {
    list-style: none;
    padding-top: .5em;
}

li.menu_article {
    list-style: none;
    padding-top: 0.5em;
}

.section_list {
    font-size: 1.1375em;
}


/* Forms
   ========================================================================== */

form {
    margin: 0;
}

fieldset {
    margin: 0;
    border: 0;
    padding: 0;
}

legend {
    border: 0;
    padding: 0;
    white-space: normal;
}

button, input, select, textarea {
    font-size: 100%;
    margin: 0;
    vertical-align: baseline;
}

input::-webkit-input-placeholder, textarea::-webkit-input-placeholder {
    color: #888;
}
input:-moz-placeholder, textarea:-moz-placeholder {
    color: #888;
}

button:invalid, a.button:invalid, input:invalid, input[type="button"]:invalid, 
input[type="reset"]:invalid, input[type="submit"]:invalid, textarea:invalid {
    box-shadow: none;
}

button::-moz-focus-inner, a.button::-moz-focus-inner, input::-moz-focus-inner, 
input[type="button"]::-moz-focus-inner, input[type="reset"]::-moz-focus-inner, 
input[type="submit"]::-moz-focus-inner, textarea::-moz-focus-inner {
    border: 0;
    padding: 0;
}

button:focus, a.button:focus, input:focus, input[type="button"]:focus, 
input[type="reset"]:focus, input[type="submit"]:focus, select:focus, textarea:focus {
    box-shadow: 0 0 7px #0066ff;
    z-index: 1;
}

input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button {
    -webkit-appearance: none;
}

input[type="file"]:focus, input[type="file"]:active,
input[type="radio"]:focus, input[type="radio"]:active,
input[type="checkbox"]:focus, input[type="checkbox"]:active {
    box-shadow: none;
}

textarea, input[type="color"], input[type="date"], input[type="datetime"], 
input[type="datetime-local"], input[type="email"], input[type="month"], 
input[type="number"], input[type="password"], input[type="search"], 
input[type="tel"], input[type="text"], input[type="time"], 
input[type="url"], input[type="week"] {
  -webkit-appearance: none;
  font-family: Arial, Helvetica, sans-serif;
  font-size: .8571em;
  text-align: left;
  border: solid 1px #ccc;
  padding: .5em;
  margin-bottom: 0.5em;
  background: #fff;
  outline: 0;
  box-sizing: border-box;
  border-radius: 0;
  width: 50%;
}

input[type="color"] {
  padding: 0;
  height: 2.3333em;
}

[role="complementary"] input[type="search"] {
  margin-right: 2px;
  width: 66.666666666667%;
  display: inline-block;
}

textarea {
  min-height: 3em;
  overflow: auto;
  vertical-align: top;
  resize: vertical;
}

select {
  font-family: Arial, Helvetica, sans-serif;
  font-size: .85714285714286em;
  text-align: left;
  border: solid 1px #ccc;
  padding: .5em;
  background: #fff;
  box-sizing: border-box;
}

textarea, select[size], select[multiple] {
  height: auto;
}

optgroup {
  font-family: Arial, Helvetica, sans-serif;
  font-style: normal;
  font-weight: normal;
  color: #333;
}

optgroup::-moz-focus-inner {
  border: 0;
  padding: 0;
}

input[type="checkbox"], input[type="radio"] {
  box-sizing: border-box;
  padding: 0;
}

button[disabled], input[disabled], input[type="button"][disabled], 
input[type="reset"][disabled], input[type="submit"][disabled], 
select[disabled], select[disabled] option, select[disabled] optgroup, 
textarea[disabled], span.disabled {
  opacity: 1;
  user-select: none;
  border: solid 1px #d2d2d2 !important;
  text-shadow: none !important;
  color: #888888 !important;
  background: #eee !important;
  cursor: default !important;
  top: 0 !important;
}

.large input {
  width: 50%;
  min-width: 302px;
}

.large textarea {
  height: 156px;
}

.small input {
  width: 25%;
  min-width: 151px;
}

.small textarea {
  height: 5.5em;
}


/* ==========================================================================
   GLightbox Custom Overrides
   ========================================================================== */

.glightbox-clean .gslide-inner-content {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    width: fit-content !important;
    max-width: 100% !important;
    margin: 0 auto !important;
}

.glightbox-clean .gslide-description {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    background: #ffffff !important;
}

.glightbox-clean .gdesc-inner {
    padding: 9px 12px 18px !important;
}

.glightbox-clean .gslide-desc {
    font-family: 'Open Sans', sans-serif !important;
    color: #000000 !important;
    font-size: 0.9em !important;
    margin: 0 !important;
    line-height: 1.2 !important;
    text-align: center !important;
}


/* ==========================================================================
   HERO BANNER & SPLIDE SLIDESHOW STYLES
   ========================================================================== */

/* 2. Hero Banner Container (The Anchor) */
.hero-banner, 
#front_showcase {
    max-width: 1080px;
    width: 100%;
    margin: 0 auto;
    padding: 0;
    border: 0;
    overflow: hidden;
    position: relative;
    background-color: #000;
    box-sizing: border-box;
    aspect-ratio: 9 / 5; /* Reserves container space BEFORE image or Splide JS loads */
}

figure.hero-banner {
  margin: 0 auto;
  padding: 0;
}

.hero-banner ul,
.hero-banner li,
.splide__track,
.splide__list,
.splide__slide {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  border: 0 !important;
}

/* 3. Hero Banner Image Fill */
.hero-banner img {
    display: block;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    object-fit: cover; /* Perfectly fills the 9/5 box without distortion */
}

/* ==========================================================================
   SPLIDE PAGINATION DOTS (TOP-RIGHT CORNER WITH LIME GREEN ACCENT)
   ========================================================================== */

.hero-banner .splide__pagination,
.splide__pagination {
  top: 12px !important;
  bottom: auto !important;
  left: auto !important;
  right: 15px !important;
  width: auto !important;
  padding: 0 !important;
  margin: 0 !important;
  z-index: 10 !important;
}

/* Inactive Dots */
.hero-banner .splide__pagination__page,
.splide__pagination__page {
  width: 10px !important;
  height: 10px !important;
  background: rgba(255, 255, 255, 0.6) !important;
  border: 1px solid rgba(0, 0, 0, 0.3) !important;
  border-radius: 50% !important;
  margin: 0 3px !important;
  opacity: 0.8 !important;
  cursor: pointer !important;
}

/* Active Dot (Bright Lime Green) */
.hero-banner .splide__pagination__page.is-active,
.splide__pagination__page.is-active {
  background: #ccff00 !important;
  border-color: #333333 !important;
  transform: scale(1.1) !important;
  opacity: 1 !important;
}

/* ==========================================
   Hero Slideshow Resets (.topimage)
   ========================================== */
.topimage ul,
.topimage li {
  margin: 0;
  padding: 0;
  list-style: none;
  line-height: 1;
}

.topimage .splide__pagination {
  bottom: 12px;
  padding: 0;
  margin: 0;
}

.topimage .splide__pagination__page {
  background: #ffffff;
  opacity: 0.6;
}

.topimage .splide__pagination__page.is-active {
  background: #ffffff;
  opacity: 1;
}