/* CSS

1:  Core styles
2:  Typography
3:  Header and footer
3a: Horizontal Scroll Menu
3b: Large Screens
4:  Layout
5:  Forms + pagination
6:  Icons

Screen size break points: 
  Large Screens: min-width: 860px
  Tablet:        min-width: 760px
  hide-large - display on mobile device only
  hide-small - display on tablet and large screens only
*/

/**********************/
/* 1:   CORE STYLES   */
/**********************/
:root {
    --white: #ffffff;
    --page-color: #fafafa;
    --text: #212121;
    --container-color: #dee2e6;
    --primary: #02a8fc;
    --primary-very-light: #DEEEF7;
    --primary-light: #e9e8e6;
    --primary-dark: #295073;
    --primary-very-dark: #353d54;
    --danger: #a62d2d;
    --danger1: #822323;
    --danger-hover: #a62d2d;
    --delete: #FF4C4C;
    --delete-hover: #E63939;
    --edit: #FFA500;
    --edit-hover: #E69500;
    --save: #4CAF50;
    --save-hover: #3E8E41;
    --very-dark-contrast: #fff;
    --alt-light: #e9e8e6;
}
* {
  box-sizing: border-box;
}

body {
  margin: 0;
  color: var(--text);
  background-color: var(--page-color);
}

.hidden {
  display: none;
}

.center {
  text-align: center;
}

.right {
    float: right!important;
}

a {
  color: var(--primary-dark);
}

/**********************/
/* 2:   TYPOGRAPHY    */
/**********************/
body {
  font-family: Roboto,sans-serif;
  font-size: 100%; /* 16px */
  line-height: 1.8em;
}

a {
  text-decoration: none;
}

p {
  margin: 1em 0;
}

h1 {
  font-size: 1.8em;
  font-weight: 700;
  margin: 0 0 0.14em 0;
}

h2, h3 {
  font-size: 2rem;
  font-weight: bolder;
  margin: 0;
  padding: 1.5rem 0;
  text-wrap: balance;
  text-align: center;
}

h4 {
  font-size: 1.5rem;
  font-weight: normal;
  margin: 0;
}

nav li {
    font-weight: 500;
    line-height: 1.8em;
    font-size: 1.2rem;
}

.subtitle {
  font-weight: bold;
  text-wrap: balance;
  text-align: center;
}

/**********************/
/* 3: HEADER + FOOTER */
/**********************/

header {
  position: -webkit-fixed; 
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 100;
  background: var(--alt-light);
  box-shadow: 0 2px 5px 0 rgba(0,0,0,0.16), 0 2px 10px 0 rgba(0,0,0,0.12);
}

.flex-box {
  min-height: 47px;
  margin: 4px auto 3px auto; 
  width: 94%;
  display: -webkit-flex;
  display: flex;
  -webkit-align-items: center;
  align-items: center;
}
        
.flex-box img {
  vertical-align: middle;
}
        
.flex-box h1 {
  margin: 0 0.5em;
  font-weight: 500;
  font-size: 1.4em; 
  flex: 1;
}

.flex-box button {
  background-color: var(--primary-dark);
  color: var(--page-color);
  vertical-align: middle;
  border-radius: 5px;
  border-width: 0;
  height: 40px;
  margin: 0;
}

.flex-box button span {
  display: inline-block;
}

header nav ul {
  padding: .5rem 0 0.1rem 0;
  margin: 0;
  clear: left;
  list-style: none;
}

header nav li {
  list-style-type: none;
  display: inline-block;
  padding-right: .5em;
}

.js header nav ul {
  display: none;
}

.js header nav li {
  margin-bottom: 1em;
  display: block;
}

header nav ul.is-active {
  display: block;
}

nav .icon-search {
  display: none;
}

nav .search-text {
  display: inline-block;
  padding-bottom: 10px;
}

.spacer {
  margin: 0 auto 54px;
  border: 1px solid transparent;
}
.spacer-admin {
  padding-top: 1.6rem;
  margin: 0 auto;
  color: var(--page-color);
}
.footer-spacer {
  padding-block: 2rem;
  margin: 0 auto 0 auto;
  border: 1px solid transparent;
}

.member-menu {
  color: #999;
  padding: 0 .2rem;
  min-height: 1.6rem;
  line-height: 1rem;
  text-align: left;
  font-size: 0.9rem;
  border-bottom: 1px solid #999;
}

.member-menu a {
  color: #666;
  padding: .3rem 0;
  display: inline-block;
  font-weight: bold;
  font-size:  90%;
}

.member-menu a:hover {
  color:  #295073;
}
@media (min-width: 760px) {
  .member-menu {
    text-align: right;
  }
  .flex-box h1 {
    font-weight: bold;
    font-size: 1.6em; 
  }
}

/****************************/
/* Accessibility Skip links */
/* https://www.w3schools.com/accessibility/accessibility_skip_links.php */
/****************************/

.skip-link {
  position: fixed;
  top: -200px;
  left: 50%;
  border-bottom-left-radius: 5px;
  border-bottom-right-radius: 5px;
  background-color: #8b8885;
  color: #fff;
  padding: 5px;
  outline: none;
}

.skip-link:focus {
  top: 0;
}


.image {    
  margin: 0 auto 0 auto;
  max-width: 100vw;
}

.image img {
  max-width: 100%;
  height: auto;
  object-fit: scale-down;
}

hr.image {
  color: var(--page-color);
  background: var(--page-color);
  height: 1px;  
  margin: 0 0 1em;
  border-width:0;
}
@media (min-width: 760px) {
  .image {padding-inline: 14%;}
}

/**********************************/
/*   3a:  Horizontal Scroll Menu  */
/**********************************/

.scrollbtn:hover{
  color:#000!important;
  background-color:#e8f0fe!important;
}
.scrollbtn:focus{
  border:2px solid #1967d2;
}

.scrollinner{
  display:flex;flex-direction:row;
  font-size: 90%;
  padding:8px 3% 8px 3%;
  height:100%;
  align-items:center;
}

.scrollinner a {
  text-decoration: none;
  margin-right:8px;padding-inline: 12px;
  color:var(--primary-very-dark);
  background-color:var(--primary-very-light);
  vertical-align:middle;white-space:nowrap;
  border-radius:16px;border:0;
}

.mainbtn{
  color:var(--primary-dark)!important;
  border:1px solid var(--primary-very-dark)!important;
}

div.scrollmenu {
  background-color: inherit;
  overflow: auto;
  white-space: nowrap;
  -ms-overflow-style: none;  /* IE and Edge */
  scrollbar-width: none;  /* Firefox */
}
/* Hide scrollbar for Chrome, Safari and Opera */
.scrollmenu::-webkit-scrollbar {display: none;}

hr.scrollmenu {
  background-color: var(--alt-light);
  margin: 1em 5px 2em;
  height:1px;
  border-width:0;
}

.scroll-link {
  position: relative;
  z-index: 1; 
  color: var(--page-color);
  background: var(--page-color);
  height: 0px;  
  width: 1%;
  top: -4.5em;
  border-style: none;
  margin: 0 0;
}
.card > .scroll-link {
  top: -95px;
}

/*************************/
/*   3b:  Large Screens  */
/*************************/
@media (min-width: 860px) {
  .spacer {
    margin-bottom: 103px;
    padding: 1rem;
  }

  div.flex-box {
    display: flex;
  }
  .flex-box h1 {
    flex: 1;
  }

  .flex-box nav {
    flex: 2;
  }

  .flex-box nav button {
    display: none;
  }

  .flex-box img {
    width: 50px;
    height: 50px;
    margin: 1px;
    vertical-align: middle;
  }
    
  .flex-box h1 {
    margin: 0 0.5em;
    font-weight: 700;
    font-size: 1.8em; 
    flex: 1;
  }

  .flex-box button {
    display: none;
  }
    
  header nav ul {
    display: block;
    text-align: right;
  }

  nav li {
    font-weight: 700;
    line-height: 1.8em;
  } 

  .js header nav ul {
    display: block;
    text-align: right;
  }

  .js header nav li {
    display: inline-block;
    margin: 0;
  }

  .js header button {
    display: none;
  }

  header nav li::after {
    content: " / ";
    font-weight: normal;
    color: #a39f9c;
  }

  header nav li:last-child::after {
    content: "";
  }

  .member-menu {text-align: right;}

}

footer {
  clear: both;
  font-size: 0.8rem;
  text-align: center;
  color: var(--very-dark-contrast);
  padding: 1rem 0;
  margin-top: 3rem;
  background-image: linear-gradient(180deg, var(--primary-dark) 0,var(--primary-very-dark) 100%);
}
footer a, footer .copyright {
  color: var(--white)! important;
}
footer > .container {
  background-color: inherit;
}
footer > div > a > span {
  vertical-align: bottom!important;
}

/**********************/
/* 4:    LAYOUT       */
/**********************/

.container {
    margin: 0 auto 0 auto;
    max-width: 94%;
}

/* ** CARD ** */
.card {
  margin: 0 5px;
  padding: 1.5rem;
  border-radius: 8px;
  border: 1px solid #eee;
  box-shadow: 0px 5px 5px 0px rgba(0,0,0,0.3);
}
hr.card-hr {
  color: var(--alt-light);
  background: var(--alt-light);
  height: 1.5px;
  border-width: 0;
  margin: 1rem 0 1rem 0;
}
.card p, .card-content {
  display: block;
  margin: 1rem 0px;
}
.card-title {
  font-size: 1.5rem;
}
.card-link {
  border-top: 1px solid #dee2e6;
  padding: 1.5rem 0 1px;
  margin-top: 1.5rem;
  text-align: center;
}
.card-link-plain {
  margin: 1.5rem auto .5rem;
  text-align: center;
}
/* ** GRID ** */
.grid {
  display: grid;
  grid-gap: 1.5rem;
  margin: 1.5rem auto 3rem auto;
}

@media (min-width: 760px) {
  .grid {
    display: grid;
    grid-gap: 2rem;   
    grid-template-columns: 1fr 1fr;
    margin-bottom: 2rem;
  }
}
@media (min-width: 1240px) {
  .container {
  max-width: 1200px;
  }
  .grid {
    display: grid;
    grid-gap: 2rem;   
    grid-template-columns: 1fr 1fr 1fr;
    margin-bottom: 2rem;
  }
}

.text h1 {    
  margin-bottom: .5em;    
}

.text .content {
  margin: 1em;
  line-height: 1.6em;
}


/* ** Credit ** */

p.credit a:hover {
  color: var(--danger);
}

p.credit {
  font-size: 0.8rem;
  text-wrap: balance;
}

p.credit a {
  font-weight: bold;
  color: inherit;
  text-decoration: underline;
  text-transform: capitalize;
}

.tip {
  font-size: 0.7rem;
  margin: 0;
}

/*************************/
/* 5: FORMS & PAGINATION */
/*************************/
button, input, optgroup, select, textarea {
  margin: 0;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
  color: inherit;
}

.form-group {
  margin-bottom: 1rem;
}
.form-group > .btn-danger,
.form-group > .btn-primary {
  margin-bottom: 3rem;
}

.btn,
.btn-search {
  color: #fff;
  background: #295073;
  display: inline-block;
  width: min-content;
  min-width: 70px;
  text-align: center;
  white-space: nowrap;
  border: 1px solid transparent;
  border-radius: 5px;
  padding: .1rem .5rem;
  line-height: 1.5;
  vertical-align: middle;
  text-transform: uppercase;
  text-decoration: none;
}

.btn {
  font-size: 0.9rem;
}

.btn:hover {
  color: #fff;
  background: #666;
  cursor: pointer;
}

.btn-primary {    
  background-color: #295073;    
  border-color: #295073; 
}   
.btn-primary:hover {    
  background-color: #137ad7;    
  border-color: #137ad7;    
}

.btn-secondary {
  color: #333;
  background: #e1e0de;
}
.btn-secondary:hover {
  color: #fff;
  background: #717170;
}

.btn-danger {
  background-color: var(--danger);
  border-color: var(--page-color);
}
.btn-danger:hover {
  background: #666;
  border-color: var(--danger);
}

.btn-full-width {
  width: 100%;
  color: #fff;
  font-size: 1rem;
  font-weight: bold;
  line-height: 2.5;
  border-radius: 5px;
  margin-top: 1rem;
  float: none!important;
  text-align: center;
}



.link-primary {    
  color:var(--danger);
  text-decoration: none; 
  font-weight: bold;
}   
.link-primary:hover {    
  color:var(--primary-dark)!important;  
  cursor: pointer;
  text-decoration: underline;
}

.form-control {
  display: block;
  width: 100%;
  height: calc(2.25rem + 2px);
  padding: .375rem .75rem;
  font-size: 1rem;
  line-height: 1.5;
  background-clip: padding-box;
  border: 1px solid #ced4da;
  border-radius: .25rem;
}

label {
  display: inline-block;
}

textarea {
  min-height: 7rem;
}

input[type=checkbox], input[type=radio] {
  position: absolute;
  margin-top: .5rem;
  margin-left: -1.25rem;
  padding: 0;
}

.form-check {
  position: relative;
  display: block;
  padding-left: 1.25rem;
}

input[type=submit] {
  float: right;
  margin-bottom: 1rem;
}

input[type=submit]:hover {
  cursor: pointer;
}

textarea#summary {
  min-height: 4rem;
}
textarea#content {
  min-height: 12rem;
}

.required {
  color: var(--danger);
  font-weight: bold;
  font-size: 1.2rem;
}


/**********************/
/* 6: ICONS           */
/**********************/

