@charset "UTF-8";
/*!
Theme Name: chiltrix
Theme URI: http://underscores.me/
Author: Slab Studio
Author URI: http://slabstud.io
Description: A Slab Studio theme.
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: chiltrix
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

chiltrix is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Generic
	- Normalize
	- Box sizing
# Base
	- Typography
	- Elements
	- Links
	- Forms
## Layouts
# Components
	- Navigation
	- Posts and pages
	- Comments
	- Widgets
	- Media
	- Captions
	- Galleries
# plugins
	- Jetpack infinite scroll
# Utilities
	- Accessibility
	- Alignments

--------------------------------------------------------------*/
/*--------------------------------------------------------------
# Generic
--------------------------------------------------------------*/
/* Normalize
--------------------------------------------- */
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
/* Document
	 ========================================================================== */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
  line-height: 1.15;
  -webkit-text-size-adjust: 100%;
}
/* Sections
	 ========================================================================== */
/**
 * Remove the margin in all browsers.
 */
body {
  margin: 0;
}
/**
 * Render the `main` element consistently in IE.
 */
main {
  display: block;
}
/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}
/* Grouping content
	 ========================================================================== */
/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
  box-sizing: content-box;
  height: 0;
  overflow: visible;
}
/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
  font-family: monospace, monospace;
  font-size: 1em;
}
/* Text-level semantics
	 ========================================================================== */
/**
 * Remove the gray background on active links in IE 10.
 */
a {
  background-color: transparent;
}
/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  border-bottom: none;
  text-decoration: underline;
  text-decoration: underline dotted;
}
/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b, strong {
  font-weight: bolder;
}
/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code, kbd, samp {
  font-family: monospace, monospace;
  font-size: 1em;
}
/**
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%;
}
/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub, sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sub {
  bottom: -0.25em;
}
sup {
  top: -0.5em;
}
/* Embedded content
	 ========================================================================== */
/**
 * Remove the border on images inside links in IE 10.
 */
img {
  border-style: none;
}
/* Forms
	 ========================================================================== */
/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */
button, input, optgroup, select, textarea {
  font-family: inherit;
  font-size: 100%;
  line-height: 1.15;
  margin: 0;
}
/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button, input {
  overflow: visible;
}
/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button, select {
  text-transform: none;
}
/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
button, [type="button"], [type="reset"], [type="submit"] {
  -webkit-appearance: button;
}
/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}
/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring, [type="button"]:-moz-focusring, [type="reset"]:-moz-focusring, [type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText;
}
/**
 * Correct the padding in Firefox.
 */
fieldset {
  padding: 0.35em 0.75em 0.625em;
}
/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *		`fieldset` elements in all browsers.
 */
legend {
  box-sizing: border-box;
  color: inherit;
  display: table;
  max-width: 100%;
  padding: 0;
  white-space: normal;
}
/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  vertical-align: baseline;
}
/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
  overflow: auto;
}
/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */
[type="checkbox"], [type="radio"] {
  box-sizing: border-box;
  padding: 0;
}
/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button {
  height: auto;
}
/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type="search"] {
  -webkit-appearance: textfield;
  outline-offset: -2px;
}
/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}
/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit;
}
/* Interactive
	 ========================================================================== */
/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
  display: block;
}
/*
 * Add the correct display in all browsers.
 */
summary {
  display: list-item;
}
/* Misc
	 ========================================================================== */
/**
 * Add the correct display in IE 10+.
 */
template {
  display: none;
}
/**
 * Add the correct display in IE 10.
 */
[hidden] {
  display: none;
}
/* Box sizing
--------------------------------------------- */
/* Inherit box-sizing to more easily change it's value on a component level.
@link http://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */
*, *::before, *::after {
  box-sizing: inherit;
}
html {
  box-sizing: border-box;
}
/*--------------------------------------------------------------
# Base
--------------------------------------------------------------*/
/* Typography
--------------------------------------------- */
body, button, input, select, optgroup, textarea {
  color: #404040;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
  font-size: 1rem;
  line-height: 1.5;
}
h1, h2, h3, h4, h5, h6 {
  clear: both;
}
p {
  margin-bottom: 1.5em;
}
dfn, cite, em, i {
  font-style: italic;
}
blockquote {
  margin: 0 1.5em;
}
address {
  margin: 0 0 1.5em;
}
pre {
  background: #eee;
  font-family: "Courier 10 Pitch", courier, monospace;
  line-height: 1.6;
  margin-bottom: 1.6em;
  max-width: 100%;
  overflow: auto;
  padding: 1.6em;
}
code, kbd, tt, var {
  font-family: monaco, consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
}
abbr, acronym {
  border-bottom: 1px dotted #666;
  cursor: help;
}
mark, ins {
  background: #fff9c0;
  text-decoration: none;
}
big {
  font-size: 125%;
}
/* Elements
--------------------------------------------- */
body {
  background: #fff;
}
hr {
  background-color: #ccc;
  border: 0;
  height: 1px;
  margin-bottom: 1.5em;
}
ul, ol {
  margin: 0 0 1.5em 3em;
}
ul {
  list-style: disc;
}
ol {
  list-style: decimal;
}
li > ul, li > ol {
  margin-bottom: 0;
  margin-left: 1.5em;
}
dt {
  font-weight: 700;
}
dd {
  margin: 0 1.5em 1.5em;
}
/* Make sure embeds and iframes fit their containers. */
embed, iframe, object {
  max-width: 100%;
}
img {
  height: auto;
  max-width: 100%;
}
figure {
  margin: 1em 0;
}
table {
  margin: 0 0 1.5em;
  width: 100%;
}
/* Links
--------------------------------------------- */
a {
  color: #4169e1;
}
a:visited {
  color: #800080;
}
a:hover, a:focus, a:active {
  color: #191970;
}
a:focus {
  outline: thin dotted;
}
a:hover, a:active {
  outline: 0;
}
/* Forms
--------------------------------------------- */
button, input[type="button"], input[type="reset"], input[type="submit"] {
  border: 1px solid;
  border-color: #ccc #ccc #bbb;
  border-radius: 3px;
  background: #e6e6e6;
  color: rgba(0, 0, 0, 0.8);
  line-height: 1;
  padding: 0.6em 1em 0.4em;
}
button:hover, input[type="button"]:hover, input[type="reset"]:hover, input[type="submit"]:hover {
  border-color: #ccc #bbb #aaa;
}
button:active, button:focus, input[type="button"]:active, input[type="button"]:focus, input[type="reset"]:active, input[type="reset"]:focus, input[type="submit"]:active, input[type="submit"]:focus {
  border-color: #aaa #bbb #bbb;
}
input[type="text"], input[type="email"], input[type="url"], input[type="password"], input[type="search"], input[type="number"], input[type="tel"], input[type="range"], input[type="date"], input[type="month"], input[type="week"], input[type="time"], input[type="datetime"], input[type="datetime-local"], input[type="color"], textarea {
  color: #666;
  border: 1px solid #ccc;
  border-radius: 3px;
  padding: 3px;
}
input[type="text"]:focus, input[type="email"]:focus, input[type="url"]:focus, input[type="password"]:focus, input[type="search"]:focus, input[type="number"]:focus, input[type="tel"]:focus, input[type="range"]:focus, input[type="date"]:focus, input[type="month"]:focus, input[type="week"]:focus, input[type="time"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="color"]:focus, textarea:focus {
  color: #111;
}
select {
  border: 1px solid #ccc;
}
textarea {
  width: 100%;
}
/*--------------------------------------------------------------
# Layouts
--------------------------------------------------------------*/
/*--------------------------------------------------------------
# Components
--------------------------------------------------------------*/
/* Navigation
--------------------------------------------- */
.main-navigation {
  display: block;
  width: 100%;
}
.main-navigation ul {
  display: none;
  list-style: none;
  margin: 0;
  padding-left: 0;
}
.main-navigation ul ul {
  box-shadow: 0 3px 3px rgba(0, 0, 0, 0.2);
  float: left;
  position: absolute;
  top: 100%;
  left: -999em;
  z-index: 99999;
}
.main-navigation ul ul ul {
  left: -999em;
  top: 0;
}
.main-navigation ul ul li:hover > ul, .main-navigation ul ul li.focus > ul {
  display: block;
  left: auto;
}
.main-navigation ul ul a {
  width: 200px;
}
.main-navigation ul li:hover > ul, .main-navigation ul li.focus > ul {
  left: auto;
}
.main-navigation li {
  position: relative;
}
.main-navigation a {
  display: block;
  text-decoration: none;
}
/* Small menu. */
.menu-toggle, .main-navigation.toggled ul {
  display: block;
}
@media screen and (min-width: 37.5em) {
  .menu-toggle {
    display: none;
  }
  .main-navigation ul {
    display: flex;
  }
}
.site-main .comment-navigation, .site-main .posts-navigation, .site-main .post-navigation {
  margin: 0 0 1.5em;
}
.comment-navigation .nav-links, .posts-navigation .nav-links, .post-navigation .nav-links {
  display: flex;
}
.comment-navigation .nav-previous, .posts-navigation .nav-previous, .post-navigation .nav-previous {
  flex: 1 0 50%;
}
.comment-navigation .nav-next, .posts-navigation .nav-next, .post-navigation .nav-next {
  text-align: end;
  flex: 1 0 50%;
}
/* Posts and pages
--------------------------------------------- */
.sticky {
  display: block;
}
.post, .page {
  margin: 0 0 1.5em;
}
.updated:not(.published) {
  display: none;
}
.page-content, .entry-content, .entry-summary {
  margin: 1.5em 0 0;
}
.page-links {
  clear: both;
  margin: 0 0 1.5em;
}
/* Comments
--------------------------------------------- */
.comment-content a {
  word-wrap: break-word;
}
.bypostauthor {
  display: block;
}
/* Widgets
--------------------------------------------- */
.widget {
  margin: 0 0 1.5em;
}
.widget select {
  max-width: 100%;
}
/* Media
--------------------------------------------- */
.page-content .wp-smiley, .entry-content .wp-smiley, .comment-content .wp-smiley {
  border: none;
  margin-bottom: 0;
  margin-top: 0;
  padding: 0;
}
/* Make sure logo link wraps around logo image. */
.custom-logo-link {
  display: inline-block;
}
/* Captions
--------------------------------------------- */
.wp-caption {
  margin-bottom: 1.5em;
  max-width: 100%;
}
.wp-caption img[class*="wp-image-"] {
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.wp-caption .wp-caption-text {
  margin: 0.8075em 0;
}
/* Galleries
--------------------------------------------- */
.gallery {
  margin-bottom: 1.5em;
  display: grid;
  grid-gap: 1.5em;
}
.gallery-item {
  display: inline-block;
  text-align: center;
  width: 100%;
}
.gallery-columns-2 {
  grid-template-columns: repeat(2, 1fr);
}
.gallery-columns-3 {
  grid-template-columns: repeat(3, 1fr);
}
.gallery-columns-4 {
  grid-template-columns: repeat(4, 1fr);
}
.gallery-columns-5 {
  grid-template-columns: repeat(5, 1fr);
}
.gallery-columns-6 {
  grid-template-columns: repeat(6, 1fr);
}
.gallery-columns-7 {
  grid-template-columns: repeat(7, 1fr);
}
.gallery-columns-8 {
  grid-template-columns: repeat(8, 1fr);
}
.gallery-columns-9 {
  grid-template-columns: repeat(9, 1fr);
}
.gallery-caption {
  display: block;
}
/*--------------------------------------------------------------
# Plugins
--------------------------------------------------------------*/
/* Jetpack infinite scroll
--------------------------------------------- */
/* Hide the Posts Navigation and the Footer when Infinite Scroll is in use. */
.infinite-scroll .posts-navigation, .infinite-scroll.neverending .site-footer {
  display: none;
}
/* Re-display the Theme Footer when Infinite Scroll has reached its end. */
.infinity-end.neverending .site-footer {
  display: block;
}
/*--------------------------------------------------------------
# Utilities
--------------------------------------------------------------*/
/* Accessibility
--------------------------------------------- */
/* Text meant only for screen readers. */
.screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important;
}
.screen-reader-text:focus {
  background-color: #f1f1f1;
  border-radius: 3px;
  box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
  clip: auto !important;
  clip-path: none;
  color: #21759b;
  display: block;
  font-size: 0.875rem;
  font-weight: 700;
  height: auto;
  left: 5px;
  line-height: normal;
  padding: 15px 23px 14px;
  text-decoration: none;
  top: 5px;
  width: auto;
  z-index: 100000;
}
/* Do not show the outline on the skip link target. */
#primary[tabindex="-1"]:focus {
  outline: 0;
}
/* Alignments
--------------------------------------------- */
.alignleft {
  /*rtl:ignore*/
  float: left;
  /*rtl:ignore*/
  margin-right: 1.5em;
  margin-bottom: 1.5em;
}
.alignright {
  /*rtl:ignore*/
  float: right;
  /*rtl:ignore*/
  margin-left: 1.5em;
  margin-bottom: 1.5em;
}
.aligncenter {
  clear: both;
  display: block;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 1.5em;
}
/* Custom Styles
--------------------------------------------- */
/* 1. Use a more-intuitive box-sizing model */
*, *::before, *::after {
  box-sizing: border-box;
}
/* 2. Remove default margin */
* {
  margin: 0;
}
/* 3. Enable keyword animations */
@media (prefers-reduced-motion: no-preference) {
  html {
    interpolate-size: allow-keywords;
  }
}
body {
  /* 4. Add accessible line-height */
  line-height: 1.5;
  /* 5. Improve text rendering */
  -webkit-font-smoothing: antialiased;
}
/* 6. Improve media defaults */
img, picture, video, canvas, svg {
  display: block;
  max-width: 100%;
}
/* 7. Inherit fonts for form controls */
input, button, textarea, select {
  font: inherit;
}
/* 8. Avoid text overflows */
p, h1, h2, h3, h4, h5, h6 {
  overflow-wrap: break-word;
}
/* 9. Improve line wrapping */
p {
  text-wrap: pretty;
}
h1, h2, h3, h4, h5, h6 {
  text-wrap: balance;
}
/*
  10. Create a root stacking context
*/
#root, #__next {
  isolation: isolate;
}
/* Custom Styles
--------------------------------------------- */
.flex-content-section {
  display: flex;
  flex-direction: column;
  max-width: calc(900px + 2rem);
  width: 100%;
  margin: 1.5rem 0;
  padding: 0 1rem;
  margin-bottom: 2rem;
}
.flex-content-section img, .flex-content-section figure {
  margin: 0.5rem 0 1rem;
}
.flex-content-section h2 {
  margin-bottom: 1.25rem;
}
.flex-content-section h3, .flex-content-section h4 {
  margin-bottom: 1rem;
}
.dual-columns-columns-wrapper {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5vw;
}
@media (min-width: 1140px) {
  .dual-columns-columns-wrapper {
    grid-template-columns: repeat(2, 1fr);
  }
  .dual-columns-columns-wrapper figure {
    width: 100% !important;
  }
}
@media (min-width: 900px) {
  .dual-columns-spotlight {
    box-shadow: 0px 3px 10px rgba(0, 0, 0, 0.25);
    border-radius: 10px;
    padding: 1rem;
  }
}
/*-------------------------------------
Utility
-------------------------------------*/
.util-img-square {
  object-fit: cover;
  aspect-ratio: 1;
}
.util-border-radius {
  border-radius: 10px;
}
.table-wrapper {
  max-width: 100%;
  min-width: 0;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  /* smooth scrolling on iOS */
}
.table-wrapper table {
  border-collapse: collapse;
}
.leading-copy {
  margin-bottom: 6vh;
  max-width: 900px;
  width: 100%;
  text-align: center;
}
.leading-copy h3 {
  font-size: 2rem;
}
.table-wrap {
  max-width: 90vw;
  overflow-x: auto;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  /* feels nicer on mobile */
}
.table-wrap > table {
  min-width: 600px;
  /* or any width larger than the viewport */
  border-collapse: collapse;
}
.spec-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.95rem;
  line-height: 1.4;
}
.spec-table th, .spec-table td {
  padding: 0.75rem 0.9rem;
  border: 1px solid #ddd;
  vertical-align: top;
}
.spec-table thead th {
  background-color: #f5f5f5;
  font-weight: 600;
  text-align: left;
}
.spec-table tbody tr:nth-child(even) {
  background-color: #fafafa;
}
.spec-table td:nth-child(2), .spec-table td:nth-child(3) {
  white-space: nowrap;
  text-align: center;
}
.button-group {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: center;
}
/* Responsive: horizontal scroll on small screens */
@media (max-width: 768px) {
  .spec-table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}
.page-header-dark {
  display: flex;
  flex-direction: column;
  align-items: center;
  background-color: #5c84ad;
  background-size: 100%;
  background-position: center;
  background-repeat: no-repeat;
  border-radius: 0.5rem;
  color: #fff;
  margin-bottom: 1rem;
  padding: 0.5rem 4vw 2rem;
  position: relative;
  text-align: center;
  animation: bg-grow 1.2s ease-out forwards;
}
.page-header-dark .entry-title {
  font-size: 2.25rem;
  font-weight: 600;
  margin-bottom: 0.25em;
  line-height: 1.25;
}
.page-header-dark .header-badge {
  position: absolute;
  max-width: 160px;
  top: -30px;
  right: 10%;
}
@media (min-width: 1600px) {
  .page-header-dark .entry-header {
    font-size: 3rem;
  }
}
.page-header-light {
  display: flex;
  flex-direction: column;
  align-items: center;
  background-color: #b5c2d2;
  background-size: 110%;
  background-position: center;
  background-repeat: no-repeat;
  border-radius: 0.5rem;
  color: #003366;
  margin-bottom: 1rem;
  padding: 0.5rem 4vw 2rem;
  position: relative;
  text-align: center;
  animation: bg-shrink 1.2s ease-out forwards;
}
.page-header-light .header-badge {
  position: absolute;
  max-width: 160px;
  top: -30px;
  right: 10%;
}
.page-header-light h1 {
  font-size: 2.5rem;
  margin-bottom: 0.25em;
}
@keyframes bg-shrink {
  0% {
    background-size: 110%;
  }
  100% {
    background-size: 100%;
  }
}
@keyframes bg-grow {
  0% {
    background-size: 100%;
  }
  100% {
    background-size: 105%;
  }
}
.general-content-wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 5vh 5vw;
}
@media (min-width: 900px) {
  .general-content-wrapper {
    padding: 5vh 2rem;
  }
}
.util-content-center {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.two-column-support {
  display: flex;
  flex-direction: column;
  margin-top: 4rem;
}
.two-column-support .sky-scraper-column {
  width: 100%;
}
@media (min-width: 1140px) {
  .two-column-support {
    flex-direction: row;
    gap: 4vw;
  }
  .two-column-support .left-column {
    flex: 1;
  }
  .two-column-support .sky-scraper-column {
    width: 30%;
    font-size: 0.9rem;
  }
}
.margin-top-medium {
  margin-top: 8vh;
}
.text-left {
  text-align: left;
}
.text-center {
  text-align: center;
}
.text-right {
  text-align: right;
}
.h3-heading {
  margin-bottom: 1rem;
}
.h4-heading {
  margin-bottom: 1rem;
}
.accordion-group {
  color: #444;
}
button.accordion {
  border-radius: 0.5rem;
  font-size: 1.25rem;
  padding: 1.5rem;
}
.accordion {
  background-color: #f2f2f2;
  color: #3e8bc7;
  cursor: pointer;
  width: 100%;
  text-align: left;
  border: none;
  outline: none;
  transition: 0.4s;
}
.active, .accordion:hover {
  background-color: #7aa3cc;
  color: #fff;
}
.panel {
  line-height: 1.75;
  max-height: 0;
  margin-bottom: 1rem;
  overflow: hidden;
  transition: max-height 0.2s ease-out;
}
.panel-padding {
  padding: 1.5rem;
}
.fade-tile {
  -webkit-transform: translateY(50px);
  transform: translateY(50px);
  -webkit-transition-delay: 0.75s;
  -o-transition-delay: 0.75s;
  transition-delay: 0.75s;
  -webkit-transition: 0.75s;
  -o-transition: 0.75s;
  transition: 0.75s;
  opacity: 0;
}
.inView {
  opacity: 1;
  -webkit-transform: translateY(0px);
  transform: translateY(0px);
}
/*-------------------------------------
SITE
-------------------------------------*/
html {
  font-size: calc(8px + 8px);
  /* Forces Chrome to re-evaluate */
  font-size: 125%;
  scroll-behavior: smooth;
}
body {
  font-family: "neue-haas-grotesk-display", sans-serif;
  font-weight: 500;
  font-style: normal;
}
.site {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}
.site-main, .site-content {
  flex: 1;
}
.post, .page {
  margin: 0;
}
p#breadcrumbs {
  margin: 1rem 1rem 0;
}
#breadcrumbs a {
  color: #3e8bc7;
  text-decoration: none;
}
#breadcrumbs a:visited {
  color: #3e8bc7;
}
#breadcrumbs a:hover {
  color: #3e8bc7;
}
/*-- Links --*/
a {
  color: #5c84ad;
  transition: 0.5s;
}
a:visited {
  color: #5c84ad;
}
a:hover, a:focus, a:active {
  color: #7aa3cc;
}
a:focus {
  outline: 0;
}
a:hover, a:active {
  outline: 0;
}
.view-larger-link {
  display: block;
  margin: -0.5rem 0 1rem;
  font-size: 0.875rem;
  font-style: italic;
}
/*-- Utility --*/
.btn {
  align-self: center;
  background-color: #003366;
  border-radius: 4rem;
  border-bottom: 2px solid #7aa3cc;
  color: #fff;
  transition: 0.5s;
  padding: 1rem 2rem;
  text-align: center;
  text-decoration: none;
}
.btn:visited {
  color: #fff;
}
.btn:hover {
  background-color: #434891;
  color: #fff;
}
figcaption {
  color: #808080;
  font-size: 0.75rem;
}
/*-------------------------------------
HEADER
-------------------------------------*/
.site-header {
  display: flex;
  background-color: #d5e9f2;
  background-position: center;
  background-repeat: repeat-x;
  align-items: center;
  justify-content: space-between;
  height: 90px;
  padding: 0 4vw;
}
.main-navigation {
  display: flex;
  align-self: flex-end;
  flex-direction: column;
  font-size: 0.875rem;
  justify-content: flex-end;
  text-align: center;
  width: auto;
}
.main-navigation li {
  display: flex;
}
@media (min-width: 900px) {
  .main-navigation {
    font-size: 0.875rem;
  }
}
@media (min-width: 1140px) {
  .main-navigation {
    font-size: 0.9rem;
  }
}
@media (min-width: 1430px) {
  .main-navigation {
    font-size: 1rem;
  }
}
.main-navigation ul ul li:hover > ul, .main-navigation ul ul li.focus > ul {
  position: absolute;
  left: 100%;
}
.nav-menu > li {
  background-color: transparent;
}
.nav-menu > li:hover {
  background-color: #26284a;
}
.nav-menu li a {
  color: #003366;
  font-weight: 600;
  padding: 1rem;
  width: 100%;
  transition: 0.5s;
}
.nav-menu li a:visited {
  color: #003366;
}
.nav-menu li a:active, .nav-menu li a:focus-within {
  color: #fff;
}
.nav-menu > li:hover a {
  color: #fff;
}
.sub-menu {
  flex-direction: column;
  max-width: 90vw;
}
.sub-menu li {
  background-color: #26284a;
  transition: 0.5s;
}
.sub-menu li a, .sub-menu li a:visited, .sub-menu li a:hover {
  background-color: transparent;
  color: #fff;
  white-space: nowrap;
  width: fit-content !important;
}
.sub-menu li:hover {
  background-color: #434891;
}
.custom-logo-link img {
  width: 166px;
}
/* Sticky scroll header */
.site-header--sticky {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 9999;
  box-shadow: 0 5px 20px rgba(0, 0, 0, 0.25);
  /* Hidden by default — translate up out of view */
  transform: translateY(-110%);
  transition: transform 0.3s ease;
}
.site-header--sticky.is-visible {
  transform: translateY(0);
}
#site-navigation {
  display: none;
}
@media (min-width: 900px) {
  #site-navigation {
    display: block;
  }
}
.menu-menu-1-container {
  display: none;
}
@media (min-width: 900px) {
  .menu-menu-1-container {
    display: block;
  }
}
img.nav-toggle {
  cursor: pointer;
  display: block;
  width: 2.25rem;
  max-width: 3.125rem;
}
@media (min-width: 900px) {
  img.nav-toggle {
    display: none;
  }
}
.overlay-menu {
  display: none;
  align-items: center;
  background: #003366;
  flex-direction: column;
  height: 100vh;
  justify-content: space-evenly;
  left: 0;
  padding: 0 6vw;
  position: fixed;
  top: 0;
  width: 100vw;
  z-index: 20;
}
.overlay-menu a {
  color: #7aa3cc;
  transition: 0.5s;
  text-decoration: none;
}
.overlay-menu a:hover {
  color: #fff;
}
@media (orientation: landscape) {
  .overlay-menu {
    padding: 0 10vw;
  }
}
.overlay-menu-content {
  display: flex;
  align-items: center;
  flex-direction: column;
  color: #003366;
  font-size: 1.5rem;
  text-align: center;
}
.overlay-menu-content ul {
  display: flex;
  align-items: center;
  flex-direction: column;
  list-style: none;
  margin: 0;
  padding: 0;
}
.overlay-menu-content li {
  margin: 1vh 0;
}
.menuclosebtn {
  align-self: flex-end;
  height: 2rem;
  width: 2rem;
}
#overlay-logo {
  margin-bottom: 3rem;
  width: 12rem;
}
@media (orientation: landscape) {
  #overlay-logo {
    width: 14vw;
  }
}
/*-------------------------------------
FOOTER
-------------------------------------*/
.site-footer {
  background-color: #1a1a1a;
  color: #fff;
  font-size: 0.9rem;
  margin-top: 2rem;
  padding: 2rem 4vw 1rem;
}
.site-footer a {
  color: #7aa3cc;
  text-decoration: none;
  transition: 0.5s;
}
.site-footer a:visited {
  color: #7aa3cc;
}
.site-footer a:hover {
  color: cyan;
}
.site-footer-upper {
  display: flex;
  flex-direction: column-reverse;
  align-items: center;
  text-align: center;
}
@media (min-width: 900px) {
  .site-footer-upper {
    flex-direction: row;
    justify-content: space-between;
    align-items: unset;
    text-align: left;
  }
}
.site-footer-left {
  display: flex;
  flex-direction: column-reverse;
  align-items: center;
  gap: 1rem;
}
@media (min-width: 900px) {
  .site-footer-left {
    align-items: unset;
    flex-direction: row;
    gap: 3vw;
  }
}
.footer-address {
  display: flex;
  flex-direction: column;
  align-items: center;
}
@media (min-width: 900px) {
  .footer-address {
    align-items: unset;
  }
}
.footer-badge img {
  margin-bottom: 1rem;
}
.site-footer-right {
  display: flex;
  margin-bottom: 1.5rem;
}
.footer-nav-block {
  padding: 0 2rem;
}
.footer-nav-block .menu {
  margin: 0;
  padding: 0;
  list-style: none;
  max-width: 300px;
}
.footer-nav-block h3 {
  margin-bottom: 1rem;
}
.footer-nav-block li {
  line-height: 1.25;
  margin-bottom: 0.5rem;
}
.footer-nav-block-lists {
  display: flex;
  flex-direction: column;
}
@media (min-width: 1140px) {
  .footer-nav-block-lists {
    flex-direction: row;
    gap: 3vw;
  }
}
.footer-social-block {
  display: none;
  flex-direction: column;
  gap: 2rem;
  padding: 0 2rem;
}
.footer-social-block img {
  height: auto;
  width: 40px;
}
.site-info {
  text-align: center;
}
.footer-logo {
  max-width: 140px;
  width: 100%;
  margin-bottom: 1rem;
}
.promo-block {
  display: flex;
  justify-content: center;
  margin-top: 6vh;
  padding: 0;
}
.promo-block img {
  border-radius: 0.5rem;
  max-width: 100%;
}
@media (min-width: 1140px) {
  .promo-block {
    padding: 0 1rem;
  }
  .promo-block img {
    max-width: 1200px;
    width: 100%;
  }
}
#toTop {
  display: none;
  align-items: center;
  position: fixed;
  bottom: 2vh;
  flex-direction: column;
  font-size: 1rem;
  right: 2vw;
  z-index: 15;
  border: none;
  outline: none;
  background-color: #26284a;
  color: #fff;
  cursor: pointer;
  padding: 1rem;
  border-radius: 10px;
  transition: 0.3s;
}
#toTop:hover {
  background-color: #434891;
  bottom: 3vh;
}
.to-top-icon {
  margin-bottom: 0.5rem;
  width: 42px !important;
}
/*----------------------------------------------------------------------------------------------------------------------
Home Page Content
----------------------------------------------------------------------------------------------------------------------*/
/*-- Utility --*/
.util-body-width {
  max-width: 1540px;
  width: 100%;
}
/*-- Specific --*/
.page-template-home #content {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 3rem 1rem 0;
}
@media (min-width: 600px) {
  .page-template-home #content {
    padding: 3rem 2rem 0;
  }
}
.home-section-banner {
  background-color: #7aa3cc;
  background-position: center;
  background-size: cover;
  border-radius: 0.5rem;
  height: 29vh;
  margin-bottom: 6vh;
  min-height: 240px;
  max-height: 350px;
}
.home-section-featured-products {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 6rem;
}
.home-section-featured-products .home-section-featured-products-title {
  display: flex;
  align-items: center;
  justify-content: center;
  justify-self: center;
  width: 90%;
  margin-bottom: 3vh;
}
.home-section-featured-products .home-section-featured-products-title .title-bg-fill {
  width: 100% !important;
  height: 33px !important;
}
.home-section-featured-products .home-section-featured-products-title h3 {
  color: #5c84ad;
  font-weight: 500;
  margin: 0 2rem;
  text-align: center;
}
.home-section-featured-products .featured-products-group {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  margin-bottom: 1rem;
}
@media (min-width: 900px) {
  .home-section-featured-products .featured-products-group {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 1140px) {
  .home-section-featured-products .featured-products-group {
    grid-template-columns: repeat(3, 1fr);
  }
}
.home-section-featured-products .featured-product {
  border-radius: 5px;
  background-image: -webkit-linear-gradient(90deg, #99e2ff 0%, #3674b3 100%);
  background-repeat: no-repeat;
  color: #fff;
  text-decoration: none;
  padding: 2.5rem 1rem;
  width: 100%;
}
.home-section-featured-products .featured-product img {
  position: relative;
  bottom: 0;
  transition: 0.5s;
}
.home-section-featured-products .featured-product .featured-product-lower {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.home-section-featured-products .featured-product .product-title {
  font-weight: 500;
  font-size: 2.5rem;
  text-align: center;
}
.home-section-featured-products .featured-product .product-sub-title {
  font-weight: 500;
  font-size: 1.25rem;
  line-height: 1;
  text-align: center;
}
.home-section-featured-products .featured-product .product-metrics-group {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  color: #434891;
  line-height: 1;
}
.home-section-featured-products .featured-product .product-metric {
  padding: 0.5rem 1rem;
  text-align: center;
}
.home-section-featured-products .featured-product .product-metric-top {
  border-right: 1px solid #003366;
}
.home-section-featured-products .featured-product span {
  font-size: 1.5rem;
  font-weight: 600;
}
.home-section-featured-products .featured-product:hover img {
  bottom: 0.5rem;
}
.home-section-featured-products .featured-links-group {
  display: grid;
  font-weight: 600;
  grid-template-columns: 1fr;
  gap: 1rem;
  text-align: center;
  width: 100%;
}
.home-section-featured-products .featured-links-group a {
  color: #fff;
  font-size: 1.5rem;
  text-decoration: none;
}
@media (min-width: 1140px) {
  .home-section-featured-products .featured-links-group {
    grid-template-columns: repeat(2, 1fr);
  }
}
.home-section-featured-products .featured-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background-color: #7aa3cc;
  background-position: center;
  background-size: 100%;
  border-radius: 0.25rem;
  color: #fff;
  padding: 2.5rem 1.5rem;
  transition: 0.5s;
  height: 9rem;
}
.home-section-featured-products .featured-link h3 {
  font-weight: 600;
  line-height: 1.25;
}
.home-section-featured-products .featured-link p {
  font-weight: 500;
  font-size: 1rem;
  margin: 0;
}
.home-section-featured-products .featured-link:hover {
  background-size: 105%;
}
@media (min-width: 600px) {
  .home-section-featured-products .featured-links-group a {
    font-size: 1.9rem;
  }
}
.featured-products-image-block {
  position: relative;
}
.featured-products-image-block .upper-left-badge {
  position: absolute !important;
  max-width: 24vw;
  top: -1rem;
  left: 0;
  z-index: 2;
}
.featured-products-image-block .lower-right-badge {
  position: absolute !important;
  max-width: 120px;
  bottom: 0 !important;
  right: 0;
  z-index: 2;
}
@media (min-width: 600px) {
  .featured-products-image-block .upper-left-badge {
    max-width: 120px;
    top: 0;
  }
}
.marketing-tile-group {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  margin-bottom: 8vh;
  width: 100%;
}
@media (min-width: 1140px) {
  .marketing-tile-group {
    grid-template-columns: repeat(2, 1fr);
  }
}
.marketing-tile {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  align-items: center;
  color: #fff;
  background: linear-gradient(0deg, #99e2ff 0%, #7abfe7 86%);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  border-radius: 0.25rem;
  font-size: 0.9rem;
  padding: 2.5rem 2rem 2rem;
}
.marketing-tile h3 {
  color: #aee8ff;
  font-size: 1.75rem;
  font-weight: 600;
  margin-top: 1rem;
}
@media (min-width: 1140px) {
  .marketing-tile {
    padding: 2rem 4rem;
  }
}
a.marketing-tile {
  color: #fff;
  text-decoration: none;
}
.marketing-tile-image {
  max-height: 80px;
  border-radius: 0.125rem;
}
.home-section-mission {
  display: flex;
  flex-direction: column;
  align-items: center;
  color: #7aa3cc;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.4;
  max-width: 1400px;
  width: 100%;
  margin-bottom: 7vh;
}
.home-section-mission img {
  width: 227px;
  margin-bottom: 3rem;
}
@media (min-width: 600px) {
  .home-section-mission {
    font-size: 1.75rem;
  }
}
.mission-split {
  display: flex;
  align-items: center;
  flex-direction: column-reverse;
}
.mission-split img {
  align-self: center;
  max-width: 260px;
  width: unset;
}
@media (min-width: 1140px) {
  .mission-split {
    flex-direction: row;
    gap: 3rem;
  }
}
.home-section-message {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  margin-bottom: 6vh;
  width: 100%;
}
.home-section-message .home-section-message-image {
  display: none;
}
.home-section-message .home-section-message-overlay {
  padding: 2rem;
  background-color: rgba(0, 51, 102, 0.9);
  color: #fff;
}
.home-section-message .home-section-message-overlay h3 {
  font-size: 2rem;
  font-weight: 500;
  line-height: 1.25;
  margin-bottom: 1rem;
}
.home-section-message .home-section-message-overlay h4 {
  font-size: 1.4rem;
  margin-bottom: 2rem;
}
.home-section-message .home-section-message-overlay p {
  font-size: 0.95rem;
  line-height: 1.79;
}
@media (min-width: 600px) {
  .home-section-message .home-section-message-overlay h3 {
    font-size: 3rem;
  }
}
@media (min-width: 1430px) {
  .home-section-message {
    margin-top: 4rem;
    margin-bottom: 6vh;
    max-width: 1540px;
    position: relative;
  }
  .home-section-message .home-section-message-image {
    display: block;
    max-width: 1020px;
    width: 100%;
  }
  .home-section-message .home-section-message-overlay {
    padding: 3.5rem 4.5rem;
    position: absolute;
    max-width: 805px;
    right: 0;
    top: -4rem;
    width: 100%;
    z-index: 10;
  }
}
.home-section-logos {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6vh;
  justify-content: center;
  max-width: 1536px;
  width: 100%;
}
.home-section-logos img {
  flex-shrink: 0;
  max-height: 113px;
}
@media (min-width: 1430px) {
  .home-section-logos {
    gap: 2vw;
  }
}
/*----------------------------------------------------------------------------------------------------------------------
Default Template
----------------------------------------------------------------------------------------------------------------------*/
.page-template-default .entry-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  background-color: #5c84ad;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  color: #fff;
  padding: 5vh 2rem;
  text-align: center;
}
.page-template-default .entry-header h2 {
  max-width: 1260px;
}
.page-template-default .entry-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  color: #003366;
  font-size: 0.9rem;
  margin: 0;
  line-height: 1.66;
}
.page-template-default .entry-content h3 {
  line-height: 1.375;
  margin-bottom: 1.5rem;
}
.page-template-default .entry-content p {
  color: #333;
  margin-bottom: 1rem;
}
.page-template-default .entry-content ul {
  margin: 0;
  padding: 20px;
}
.page-template-default .entry-content ul span {
  font-weight: 700;
}
.page-template-default .entry-content li {
  margin-bottom: 1.5rem;
  padding-left: 2rem;
}
.page-template-default .entry-content .large-heading {
  font-size: 2.4rem;
  margin: 3rem 0 0.5rem;
  text-align: center;
}
.page-template-default .entry-content .wp-caption-text {
  font-size: 0.7rem;
}
.page-template-default .entry-content .no-caption {
  margin-bottom: 1.5rem;
}
.page-template-default .flex-content-section {
  display: flex;
  flex-direction: column;
  max-width: calc(900px + 2rem);
  width: 100%;
  margin: 1.5rem 0;
  padding: 0 1rem;
}
.page-template-product-category .entry-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  background-color: #7aa3cc;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  color: #fff;
  padding: 5vh 2rem;
  text-align: center;
  border-radius: 0.5rem;
  margin-bottom: 6vh;
}
.page-template-product-category .entry-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  color: #444;
  font-size: 0.9rem;
  margin: 0;
  line-height: 1.66;
}
.page-template-product-category .entry-content h3 {
  line-height: 1.375;
  margin-bottom: 1.5rem;
}
.page-template-product-category .entry-content p {
  margin-bottom: 1rem;
}
.page-template-product-category .entry-content ul {
  margin: 0;
  padding: 20px;
}
.page-template-product-category .entry-content ul span {
  font-weight: 700;
}
.page-template-product-category .entry-content li {
  margin-bottom: 1.5rem;
  padding-left: 2rem;
}
.page-template-product-category .entry-content .large-heading {
  font-size: 2.4rem;
  margin: 3rem 0 0.5rem;
  text-align: center;
}
.page-template-product-category .entry-content .wp-caption-text {
  font-size: 0.7rem;
}
.page-template-product-category .entry-content .no-caption {
  margin-bottom: 1.5rem;
}
.page-template-product-category .product-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: center;
  max-width: 1600px;
  width: 100%;
}
.page-template-product-category .product-grid a {
  color: #003366;
  text-decoration: none;
}
.page-template-product-category .product-wrapper {
  display: flex;
  max-width: 17.5rem;
  flex-direction: column;
  background-color: #f2f2f2;
  border-radius: 0.5rem;
  bottom: 0;
  text-align: center;
  overflow: hidden;
  position: relative;
  transition: 0.5s;
}
.page-template-product-category .product-wrapper h1, .page-template-product-category .product-wrapper h2, .page-template-product-category .product-wrapper h3, .page-template-product-category .product-wrapper h4, .page-template-product-category .product-wrapper h5 {
  color: #fff;
  font-weight: 400;
  margin: 0;
}
.page-template-product-category .product-wrapper img {
  aspect-ratio: 1;
  object-fit: cover;
}
.page-template-product-category .product-wrapper:not(.no-hover):hover {
  bottom: 10px;
}
.page-template-product-category .product-wrapper-lower {
  flex: 1;
  background-color: #444;
  padding: 1.875rem 1rem;
  color: #fff;
  font-size: 1rem;
}
.page-template-product-category .product-wrapper-lower a, .page-template-product-category .product-wrapper-lower a:visited, .page-template-product-category .product-wrapper-lower a:hover {
  color: #fff;
}
.page-template-product-category .product-wrapper-lower h3 {
  font-size: 1rem;
  font-weight: 500;
}
@media (min-width: 1600px) {
  .page-template-product-category .entry-header {
    padding: 5vh 2rem;
  }
}
.product-category-flex-container {
  max-width: 1200px;
  padding: 6vh;
}
/*----------------------------------------------------------------------------------------------------------------------
Products Top Level Template
----------------------------------------------------------------------------------------------------------------------*/
.products-top-repeater {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  max-width: 1200px;
  width: 100%;
}
.products-top-repeater .products-top-repeater-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  background-color: #f2f2f2;
  border-radius: 0.5rem;
  color: #444;
  font-size: 0.8rem;
  min-height: 32rem;
  width: 100%;
  padding: 2rem;
  text-align: left;
  text-decoration: none;
}
.products-top-repeater .products-top-repeater-item h3 {
  margin: 0.5rem 0;
}
.products-top-repeater .products-top-repeater-item img {
  aspect-ratio: 1;
  object-fit: contain;
  width: 100%;
}
.products-top-repeater .products-top-repeater-item .btn {
  justify-self: flex-end;
}
.products-top-repeater .product-group-description {
  flex: 1;
}
@media (min-width: 900px) {
  .products-top-repeater {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 1140px) {
  .products-top-repeater {
    grid-template-columns: repeat(3, 1fr);
  }
}
/*----------------------------------------------------------------------------------------------------------------------
Product Page Template
----------------------------------------------------------------------------------------------------------------------*/
.product-page-width {
  max-width: 1540px;
  width: 100%;
}
.page-template-product-layout {
  color: #444;
}
.page-template-product-layout .site-content {
  display: flex;
  flex-direction: column;
}
.page-template-product-layout .product-heading {
  margin-bottom: 1rem;
}
.page-template-product-layout table {
  border-collapse: collapse;
  font-family: sans-serif;
  font-size: 0.8rem;
  letter-spacing: 1px;
}
.page-template-product-layout caption {
  caption-side: bottom;
  padding: 10px;
  text-align: left;
}
.page-template-product-layout thead, .page-template-product-layout tfoot {
  background-color: #92def9;
}
.page-template-product-layout th, .page-template-product-layout td {
  border: 2px solid #fff;
  padding: 8px 10px;
  text-align: center;
}
.page-template-product-layout td:last-of-type {
  text-align: center;
}
.page-template-product-layout tbody > tr:nth-of-type(even) {
  background-color: #e9f2f5;
}
.page-template-product-layout .flex-content-section {
  margin-bottom: 2rem;
}
.page-template-product-layout .flex-content-section img, .page-template-product-layout .flex-content-section figure {
  margin: 0.5rem 0 1rem;
}
.page-template-product-layout .flex-content-section h2 {
  margin-bottom: 1.25rem;
}
.page-template-product-layout .flex-content-section h3, .page-template-product-layout .flex-content-section h4 {
  margin-bottom: 1rem;
}
@media (min-width: 1140px) {
  .page-template-product-layout .site-content {
    align-items: center;
  }
}
.product-page-section-quick-view {
  border-bottom: 0.2rem solid #d5e9f2;
  display: flex;
  flex-direction: column;
  gap: 4vw;
  padding-bottom: 3vw;
}
.product-page-section-quick-view h1 {
  font-size: 3.6rem;
  margin: 0;
}
.product-page-section-quick-view h2 {
  margin: 0;
}
@media (min-width: 1140px) {
  .product-page-section-quick-view {
    flex-direction: row;
  }
}
.quick-view-image {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
}
@media (min-width: 1140px) {
  .quick-view-image {
    align-items: flex-start;
  }
}
.quick-view-image img {
  border-radius: 1rem;
}
.quick-view-product-description {
  padding: 0 1rem;
}
@media (min-width: 1140px) {
  .quick-view-product-description {
    padding: unset;
  }
}
.quick-view-product-info {
  width: 100%;
}
@media (min-width: 1140px) {
  .quick-view-product-info {
    max-width: 760px;
  }
}
.quick-view-title {
  line-height: 1;
  margin-bottom: 2.5rem;
  text-align: center;
}
@media (min-width: 1140px) {
  .quick-view-title {
    text-align: unset;
  }
}
.certs-and-metrics {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.certs-and-metrics img {
  align-self: flex-start;
  margin-left: 2vw;
}
@media (min-width: 1140px) {
  .certs-and-metrics {
    padding: 0;
    flex-direction: row;
    align-items: unset;
  }
}
.metric-box-group {
  display: flex;
  flex-direction: column;
  margin-bottom: 1rem;
  text-align: left;
}
@media (min-width: 1140px) {
  .metric-box-group {
    text-align: unset;
  }
}
.metric-box {
  display: inline-block;
  line-height: 1;
  border-left: 0.4rem solid lightblue;
  padding-left: 1.5rem;
  margin-bottom: 1.5rem;
}
.metric-box span {
  font-size: 3rem;
}
.badges-group {
  display: flex;
  flex-direction: row;
  justify-content: center;
  gap: 1rem;
  margin-bottom: 1.5rem;
}
.badges-group img {
  max-width: 120px;
  align-self: center;
}
@media (min-width: 1140px) {
  .badges-group {
    flex-direction: column;
    align-items: unset;
  }
}
.product-page-section-body {
  display: flex;
  flex-direction: column;
}
.product-page-section-body .sky-scraper-column {
  width: 100%;
}
@media (min-width: 1140px) {
  .product-page-section-body {
    flex-direction: row;
    gap: 4vw;
  }
  .product-page-section-body .left-column {
    flex: 1;
  }
  .product-page-section-body .sky-scraper-column {
    width: 30%;
    font-size: 0.9rem;
  }
}
.performance-map {
  margin-bottom: 1rem;
}
.product-page-aside {
  display: flex;
  flex-direction: column;
}
/*----------------------------------------------------------------------------------------------------------------------
Documents Template
----------------------------------------------------------------------------------------------------------------------*/
#section-anchor-links {
  background-color: #f2f2f2;
  border-radius: 0.5rem;
  color: #003366;
  margin-bottom: 3vh;
  padding: 2vh 5vw;
  position: sticky;
  top: 8vh;
  z-index: 10;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0);
  transition: box-shadow 0.5s ease;
}
#section-anchor-links.is-stuck {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
}
.anchor-links-group {
  display: flex;
  font-size: 0.9rem;
  gap: 2vw;
  justify-content: center;
}
.anchor-links-group ul {
  margin: 0;
}
.anchor-links-dropdown {
  display: block;
  font-size: 0.875rem;
  width: 100%;
}
.anchor-links-dropdown select {
  width: 100%;
  padding: 0.6rem 0.75rem;
  font-size: 0.875rem;
  border: 1px solid #ccc;
  border-radius: 4px;
  background-color: #fff;
  cursor: pointer;
}
.section-documents-body h2 {
  color: #003366;
  margin-bottom: 1rem;
}
.section-documents-body h3 {
  color: #8f8f8f;
  margin-bottom: 1rem;
}
.section-documents-body .document-collection {
  border-left: 2px solid #92def9;
  margin-bottom: 1rem;
  padding-left: 2.5vw;
}
.section-documents-body .document-wrap {
  display: flex;
  gap: 0.75rem;
  margin-bottom: 1.5rem;
}
.section-documents-body .document {
  color: #3e8bc7;
  display: block;
}
.section-documents-body .document-type-icon {
  align-self: flex-start;
}
.section-documents-body .document-description {
  color: #999999;
  font-size: 0.9rem;
  margin: 0;
}
.section-documents-body .archived {
  filter: opacity(0.6);
  font-style: italic;
}
.section-documents-body .archived a {
  color: #777;
}
.documents-columns {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 3rem;
  /* adjust horizontal gap to taste */
  align-items: start;
  margin-top: 3vh;
}
.documents-col {
  min-width: 0;
  /* prevents grid blowout */
}
/* Stack to single column on mobile */
@media (max-width: 768px) {
  .documents-columns {
    grid-template-columns: 1fr;
  }
}
.anchor-target {
  scroll-margin-top: var(--header-height, 0px);
}
.group-inset {
  padding-left: 3vw;
  margin-bottom: 6vh;
}
/*----------------------------------------------------------------------------------------------------------------------
Contact Us Page Template
----------------------------------------------------------------------------------------------------------------------*/
.page-template-contact #content {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 3rem 2rem;
}
.contact-columns {
  display: grid;
  grid-template-columns: 1fr;
  max-width: 1460px;
  width: 100%;
}
.contact-columns .border-right {
  border-right: 2px solid #808080;
}
.contact-columns .border-bottom {
  border-bottom: 2px solid #808080;
}
.contact-columns .border-left {
  border-left: 2px solid #808080;
}
.contact-columns input[type="text"], .contact-columns input[type="email"], .contact-columns input[type="tel"], .contact-columns textarea {
  background-color: #f2f2f2;
  border: 0;
  border-radius: 0.25rem;
  padding: 1rem 1.5rem;
}
.contact-columns input[type="text"], .contact-columns input[type="email"], .contact-columns input[type="tel"], .contact-columns textarea, .contact-columns input[type="submit"] {
  width: 100%;
}
.contact-columns input[type="submit"] {
  align-self: center;
  background-color: #003366;
  border-radius: 0.25rem;
  border-bottom: 2px solid #7aa3cc;
  color: #fff;
  transition: 0.5s;
  padding: 1rem 3rem;
  text-align: center;
  text-decoration: none;
}
.contact-columns input[type="submit"]:visited {
  color: #fff;
}
.contact-columns input[type="submit"]:hover {
  background-color: #434891;
  color: #fff;
}
.contact-columns input[type="checkbox"] {
  margin-right: 0.5rem;
}
.contact-column-right {
  padding-left: 3vw;
}
.contact-address > p:last-child {
  margin-bottom: 0 !important;
}
.contact-business-card {
  margin-top: 1.5rem;
}
.contact-business-card img {
  width: 40vw;
}
.contact-column-right-top {
  display: grid;
  grid-template-columns: 1fr;
}
.contact-column-right-bottom {
  margin-top: 3rem;
}
@media (min-width: 900px) {
  .contact-columns {
    grid-template-columns: repeat(2, 1fr);
  }
  .contact-column-left {
    padding-right: 3vw;
    border-right: 2px solid #e5e5e5;
  }
  .contact-address {
    border-right: 2px solid #e5e5e5;
    padding-right: 1.5rem;
  }
  .contact-business-card {
    margin-top: unset;
    padding-left: 1.5rem;
  }
  .contact-business-card img {
    width: unset;
  }
  .contact-column-right-top {
    grid-template-columns: 2fr 1fr;
  }
}
/*-------------------------------------
Page Header - Narrow
-------------------------------------*/
.page-title-narrow {
  display: flex;
  flex-direction: column;
  background-color: #7aa3cc;
  background-size: 110%;
  background-position: center;
  background-repeat: no-repeat;
  border-radius: 0.5rem;
  color: #003366;
  margin-bottom: 3rem;
  text-align: center;
  padding: 2.5rem 4vw 4rem;
  animation: bg-shrink 1.2s ease-out forwards;
}
.page-title-narrow h1 {
  font-size: 3rem;
  margin-bottom: 0.25rem;
}
/*-------------------------------------
Flexible Content styling
-------------------------------------*/
.documents-repeater-group {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.documents-repeater-item {
  display: flex;
  align-items: center;
  background-color: #f2f2f2;
  border-radius: 0.5rem;
  color: #3e8bc7;
  font-size: 0.9rem;
  padding: 0.5rem 1rem;
  text-decoration: none;
  transition: 0.5s;
}
.documents-repeater-item:visited {
  color: #3e8bc7;
}
.documents-repeater-item:hover {
  background-color: #5c84ad;
  color: #fff;
}
img.document-type-icon {
  margin-right: 1rem !important;
}
.logos-repeater-group {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
  align-items: center;
}
.logos-repeater-item, .logos-repeater-item img {
  max-height: 3rem;
  width: auto;
  margin: 0;
}
.image-number {
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #003366;
  border-radius: 50%;
  color: #fff;
  text-align: center;
  aspect-ratio: 1;
  width: 35px;
}
.image-spacer {
  margin-bottom: 5rem;
}
img.full-with-image {
  width: 100%;
}
.price-table {
  border-collapse: collapse;
  font-size: 0.875rem;
}
.price-table th, .price-table td {
  border: 1px solid #26284a;
  padding: 4px 10px;
  text-align: left;
  white-space: nowrap;
}
.price-table th {
  background-color: #26284a;
  color: #fff;
  font-weight: bold;
  text-align: center;
}
.price-table td:nth-child(2), .price-table td:nth-child(4) {
  text-align: right;
}
.price-table .divider {
  border-left: 3px solid #26284a;
}
.price-table tr:nth-child(odd) td {
  background-color: #fff;
}
.price-table tr:nth-child(even) td {
  background-color: #f2f2f2;
}
/*----------------------------------------------------------------------------------------------------------------------
How It Works Template
----------------------------------------------------------------------------------------------------------------------*/
.page-template-how-it-works .entry-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  color: #444;
  font-size: 0.9rem;
  margin: 0;
  line-height: 1.66;
}
.page-template-how-it-works .entry-content h3 {
  line-height: 1.375;
  margin-bottom: 1.5rem;
}
.page-template-how-it-works .entry-content p {
  margin-bottom: 1rem;
}
.page-template-how-it-works .entry-content ul {
  margin: 0;
  padding: 20px;
}
.page-template-how-it-works .entry-content ul span {
  font-weight: 700;
}
.page-template-how-it-works .entry-content li {
  margin-bottom: 1.5rem;
  padding-left: 2rem;
}
.page-template-how-it-works .entry-content .large-heading {
  font-size: 2.4rem;
  margin: 3rem 0 0.5rem;
  text-align: center;
}
.page-template-how-it-works .entry-content .wp-caption-text {
  font-size: 0.7rem;
}
.page-template-how-it-works .entry-content .no-caption {
  margin-bottom: 1.5rem;
}
.infographic-instruction {
  color: #003366;
  font-style: italic;
  margin-top: 1.5rem;
}
.infographic-wrapper {
  border-radius: 0.5rem;
  position: relative;
  max-width: 1000px;
  margin: 0 auto 7vh;
  width: 100%;
  aspect-ratio: 1.25;
}
.infographic-wrapper img {
  display: block;
  width: 100%;
  height: auto;
}
/* Wrapper is the positioned anchor for dot + tooltip */
.hotspot-wrap {
  position: absolute;
  transform: translate(-50%, -50%);
  z-index: 1;
}
/* Your dot button (keep your pulse styles if you want) */
.hotspot {
  width: 1.2rem;
  height: 1.2rem;
  border: 0;
  border-radius: 50%;
  box-shadow: 0 0 0 0.5rem rgba(0, 51, 102, 0.5);
  background: cyan;
  cursor: pointer;
  padding: 0;
  touch-action: none;
  animation-name: markerPulse;
  animation-duration: 4s;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
  animation-fill-mode: forwards;
}
@keyframes markerPulse {
  0% {
    box-shadow: 0 0 0 0.5rem rgba(0, 51, 102, 0.5);
  }
  50% {
    box-shadow: 0 0 0 0.75rem rgba(0, 51, 102, 0.5);
  }
  100% {
    box-shadow: 0 0 0 0.5rem rgba(0, 51, 102, 0.5);
  }
}
/* Tooltip base */
.tooltip {
  position: absolute;
  left: 50%;
  top: calc(100% + 10px);
  transform: translateX(-50%) translateY(6px);
  width: max-content;
  max-width: 260px;
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.18);
  padding: 12px 14px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease, transform 0.2s ease;
  z-index: 10;
}
.tooltip h3 {
  margin: 0 0 0.4rem !important;
  font-size: 1rem;
}
.tooltip p {
  margin: 0;
  font-size: 0.8rem !important;
  line-height: 1.35;
}
/* DESKTOP / HOVER-CAPABLE: show tooltip on hover/focus */
@media (hover: hover) and (pointer: fine) {
  .hotspot-wrap:hover .tooltip, .hotspot:focus-visible + .tooltip {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
    pointer-events: auto;
  }
}
/* TOUCH: hide tooltip entirely (mobile uses modal) */
@media (hover: none) and (pointer: coarse) {
  .tooltip {
    display: none;
  }
  .tooltip.is-open {
    display: block;
    opacity: 1;
    pointer-events: auto;
  }
}
/* Locked state (desktop): tooltip stays open */
@media (hover: hover) and (pointer: fine) {
  .hotspot-wrap.is-locked .tooltip {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
    pointer-events: auto;
  }
}
/* When hovering a hotspot (desktop) OR when locked, bring it to front */
@media (hover: hover) and (pointer: fine) {
  .hotspot-wrap:hover, .hotspot-wrap.is-locked, .hotspot:focus-visible {
    z-index: 8888;
  }
}
/*----------------------------------------------------------------------------------------------------------------------
radiant-calculators
----------------------------------------------------------------------------------------------------------------------*/
.page-template-radiant-calculators .entry-content {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.page-template-radiant-calculators .intro-copy {
  font-size: 0.8rem;
  width: 100%;
  max-width: 900px;
}
.rcalc {
  border: 1px solid #7aa3cc;
  border-radius: 1rem;
  box-shadow: 0 10px 10px rgba(0, 51, 102, 0.25);
  margin-bottom: 3rem;
  padding: 1rem;
}
/*----------------------------------------------------------------------------------------------------------------------
Awards and Media Template
----------------------------------------------------------------------------------------------------------------------*/
.section-media-and-awards-wrapper {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
}
@media (min-width: 1140px) {
  .section-media-and-awards-wrapper {
    grid-template-columns: 2fr 1fr;
  }
}
.media-wrapper {
  padding: 2rem 0;
}
.media-wrapper h2, .media-wrapper h3, .media-wrapper h4, .media-wrapper h5, .media-wrapper h6 {
  color: #5c84ad;
}
@media (min-width: 1140px) {
  .media-wrapper {
    padding: 2rem 2rem 2rem 0;
  }
}
.media-wrapper:not(:last-child) {
  border-bottom: 1px solid #ddd;
}
@media (min-width: 1140px) {
  .media-wrapper:not(:last-child) {
    padding: 2rem 2rem 2rem 0;
  }
}
.media-wrapper-heading {
  font-size: 1.5rem;
  line-height: 1.25;
}
@media (min-width: 1140px) {
  .media-wrapper-heading {
    font-size: 2rem;
  }
}
@media (min-width: 1140px) {
  .media-column {
    border-right: 1px solid #ddd;
  }
}
.media-heading-block {
  margin-bottom: 1.5rem;
}
.media-heading-block h2.primary-media-heading {
  margin-bottom: 0;
}
.media-heading-block h3.optional-media-heading {
  font-weight: 400;
}
.video-embed-wrapper {
  position: relative;
  border-radius: 0.25rem;
  margin-bottom: 2rem;
  width: 100%;
  padding-top: 56.25%;
  /* 16:9 ratio */
  height: 0;
  overflow: hidden;
}
.video-embed-wrapper iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
.award-wrapper h3 {
  margin-bottom: 1rem;
}
.awards-documents-wrapper {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}
.awards-documents-wrapper img {
  border-radius: 0.25rem;
  max-width: 150px;
}
.awards-column {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
/*----------------------------------------------------------------------------------------------------------------------
Price List Template
----------------------------------------------------------------------------------------------------------------------*/
.page-template-price-list .util-body-width {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.price-top-wrapper, .price-bottom-wrapper {
  font-size: 0.875rem;
  text-align: center;
  background-color: #f2f2f2;
  border-radius: 1rem;
  padding: 1rem;
  margin-bottom: 1rem;
}
.price-top-wrapper ul {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  margin: 2rem 0 1rem;
  padding: 0;
  justify-content: center;
  list-style: none;
}
.price-top-wrapper ul a {
  display: inline-block;
  background-color: #fff;
  color: #666;
  text-decoration: none;
  padding: 0.5rem 1rem;
  border-radius: 0.75rem;
}
.price-top-wrapper ul a:hover {
  background-color: #3e8bc7;
  color: #fff;
}
@media (orientation: portrait) {
  .price-top-wrapper ul {
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: flex-start;
  }
}
.price-list-group {
  display: flex;
  flex-direction: column;
  border: 1px solid #3e8bc7;
  border-radius: 1rem;
  margin-bottom: 2rem;
  padding: 1rem;
}
.price-list-group .group-heading {
  color: #003366;
}
.price-list-group .group-supplement {
  color: #666;
  font-size: 0.875rem;
}
.price-list-item-wrapper {
  display: flex;
  justify-content: space-between;
  border-bottom: 1px solid #d6d6d6;
  margin-bottom: 1rem;
}
.price-list-item-wrapper a.item-name-link {
  text-decoration: none;
}
.price-list-item-wrapper a.item-name-link h4 {
  font-weight: 600;
}
.price-list-item-left {
  padding: 1rem;
  width: 65%;
}
@media (min-width: 900px) {
  .price-list-item-left {
    width: 85%;
  }
}
.price-list-item-right {
  border-left: 1px solid #d6d6d6;
  padding: 1rem;
  width: 35%;
}
@media (min-width: 900px) {
  .price-list-item-right {
    width: 15%;
  }
}
/*----------------------------------------------------------------------------------------------------------------------
Sitemap Styling
----------------------------------------------------------------------------------------------------------------------*/
.html-sitemap__list {
  margin-left: 1.25rem;
}
.html-sitemap__list li {
  margin: 0.25rem 0;
}
.html-sitemap__list--pages ul {
  margin-left: 1.25rem;
}
.html-sitemap__count {
  opacity: 0.7;
  font-size: 0.9em;
}
/*----------------------------------------------------------------------------------------------------------------------
404
----------------------------------------------------------------------------------------------------------------------*/
.error404 .page-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-top: 4rem;
  text-align: center;
}
.error404 .page-header h1 {
  color: #5c84ad;
  font-size: 5rem;
  margin-bottom: 0;
  margin-top: 1rem;
}
.error404 .page-header img {
  border: 5px solid #5c84ad;
  border-radius: 50%;
}
.error404 .error-404 {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding-left: 2rem;
  padding-right: 2rem;
}
.error404 .page-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding-bottom: 3rem;
}
