/* import google fonts */
@import url("https://fonts.googleapis.com/css2?family=Julius+Sans+One&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Archivo+Narrow&display=swap");

/* global variables */
:root {
  --pri-font: "Julius Sans One", sans-serif;
  --sec-font: "Archivo Narrow", sans-serif;

  --clr-dark-900: #000;
  --clr-light-400: #fff;
  --pri-bg-color: hsl(225, 8%, 90%);
  --sec-bg-color: hsl(0, 0%, 100%);
  --clr-accent-1: rgba(0, 56, 101, 1);
  --clr-accent-2: rgba(0, 119, 200, 1);

  --pri-bg-grad: linear-gradient(45deg, var(--clr-accent-2) 33%, var(--clr-accent-1) 90%);
  --pri-transition: 250ms;
  --size-fluid-1: clamp(1rem, 4vw, 1.1rem);
}

/* box sizing rules */
* {
  box-sizing: border-box;
  scroll-behavior: smooth;
}

/* set core body defaults */
body {
  margin: 0;
  min-height: 100vh;
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: 1fr;
  justify-items: center;
  font-family: var(--pri-font);
  color: var(--clr-light-400);
  font-size: var(--size-fluid-1);
}

.wrapper {
  width: 100%;
  background-color: var(--clr-light-400);
  display: grid;
  grid-template-columns: repeat(2, [column] 1fr);
  grid-template-rows: auto auto 1fr auto;
  gap: 1em;
  overflow: hidden;
  margin-top: 90px;
}

.main-doc h2,
.main-doc h1 {
  font-family: var(--pri-font);
  text-align: center;
}

.main-doc {
  background-color: var(--clr-accent-1);
  background-image: var(--pri-bg-grad);
  font-family: var(--sec-font);
  padding: 2em;
}

/* mobile navigation */
.header-main {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  z-index: 100;
  background: var(--clr-light-400);
  padding: 0.5em;
}

.nwtc-logo {
  max-width: 220px;
  max-height: 60px;
  display: block;
}

.nav-main {
  position: relative;
}

.nav-main-menu-toggle {
  display: none;
}

.nav-main-menu-toggle-icon {
  --icon-size: 64px;

  border-radius: 50%;
  cursor: pointer;
  right: 0;
  position: fixed;
  top: 0;
  width: var(--icon-size);
  height: var(--icon-size);
  z-index: 200;
}

.nav-main-menu-toggle-icon span {
  width: 60%;
  top: 60%;
  right: 20%;
}

.nav-main-menu-toggle-icon span::before,
.nav-main-menu-toggle-icon span,
.nav-main-menu-toggle-icon span::after {
  background-color: var(--clr-accent-1);
  border-radius: 3px;
  content: "";
  height: 6px;
  position: absolute;
  transition: all 250ms ease-in;
}

.nav-main-menu-toggle-icon span::before {
  width: 100%;
  top: -10px;
}

.nav-main-menu-toggle-icon span::after {
  width: 100%;
  top: 10px;
}

.nav-main-menu-toggle:checked ~ .nav-main-menu-toggle-icon span {
  background: transparent;
}

.nav-main-menu-toggle:checked ~ .nav-main-menu-toggle-icon span::before,
.nav-main-menu-toggle:checked ~ .nav-main-menu-toggle-icon span::after {
  top: 0;
}

.nav-main-menu-toggle:checked ~ .nav-main-menu-toggle-icon span::before {
  transform: rotateZ(45deg);
}

.nav-main-menu-toggle:checked ~ .nav-main-menu-toggle-icon span::after {
  transform: rotateZ(-45deg);
}

.nav-main-menu {
  background: var(--clr-accent-2);
  background: var(--pri-bg-grad);
  height: 100vh;
  left: 0;
  overflow-y: auto;
  position: fixed;
  top: 60px;
  transition: width var(--pri-transition) ease-in;
  width: 0;
  z-index: 50;
  box-shadow: 0px 10px 15px 0px var(--clr-dark-900) inset;
  padding-top: 1em;
}

.nav-main-menu-toggle:checked ~ .nav-main-menu {
  width: 100vw;
}

.nav-main-menu a {
  color: var(--clr-light-400);
  display: block;
  font-size: 1.5em;
  line-height: 2;
  margin: 4px 0;
  position: relative;
  text-decoration: none;
  text-indent: 1.25rem;
  transition: all var(--pri-transition) ease-in;
}

.nav-main-menu a:hover {
  box-shadow: inset 0px -1px 0px 0px var(--clr-light-400);
}

/* grid layout */
.main-hero {
  padding: 1em;
}

.nav-main ul,
.footer-main ul {
  list-style: none;
  padding-left: 0px;
}

.card a,
footer a,
.main-hero :first-child {
  background-color: var(--clr-light-400);
  color: var(--clr-accent-1);
  width: max-content;
  display: block;
  text-decoration: none;
  text-transform: uppercase;
  width: max-content;
  line-height: 2;
  padding: 0 10px;
}

.main-hero p {
  font-family: var(--sec-font);
}

.main-main,
.main-doc,
.aside-main,
.footer-main,
.main-hero {
  grid-column: span 2;
}

.main-main,
.aside-main,
.footer-main {
  background: var(--pri-bg-grad);
}

.grid-12,
.grid-8 {
  display: grid;
  gap: 1em;
}

/* style Cards */
.card {
  background-color: var(--clr-accent-1);
  padding: 1em;
}

.card-header {
  padding-inline: 0.5em;
}

.card-description {
  font-family: var(--sec-font);
  line-height: 1.5;
  padding: 0 1em;
}

.aside-main {
  padding: 1em;
}

/* style footer */
.footer-main {
  padding: 0 1em 0 1em;
}

.footer-main ul {
  list-style: none;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5em;
}

/* contact page */
form ol {
  list-style: none;
  padding-left: 0;
}

form ol li {
  transition: all 0.2s ease-in;
  position: relative;
}

form label {
  display: block;
  line-height: 1.5;
}

form textarea,
form input:not([type="checkbox"]):not([type="radio"]) {
  display: block;
  width: 100%;
  line-height: 2;
  font-family: inherit;
  font-size: 0.875em;
  padding: 0 0.5em;
  border: 1px solid gray;
  position: relative;
  z-index: 2;
  transition: all 0.2s ease-in;
}

form textarea:focus,
form input:not([type="checkbox"]):not([type="radio"]):focus {
  outline: none;
  border-color: blue;
}

form textarea {
  min-height: 180px;
}

form input + label,
form textarea + label {
  transform: translateY(-100%);
  transition: all 0.2s ease-in;
  z-index: 1;
  position: relative;
}

form input:valid + label,
form textarea:valid + label {
  transform: translateY(0);
  background: lightgreen;
}

form:valid input[type="submit"] {
  border: 2px solid lightgreen;
}

form li:last-child::before {
  content: "✅";
  position: absolute;
  left: 40px;
  line-height: 2;
}

form li:last-child::after {
  content: "⛔";
  position: absolute;
  top: 0;
  right: 40px;
  line-height: 2;
}

form:invalid li:last-child {
  background: lightcoral;
  padding: 0 100px 0px 00px;
}

form:valid li:last-child {
  background: lightgreen;
  padding: 0 0px 0px 100px;
}

#gmap {
  margin: 20px 0;
  height: 500px;
  overflow: hidden;
  background: url(../images/gmap.jpg) no-repeat center / cover;
}

/* 
Css disabled since we are not showing the text box on the map
#gmap h4 {
  font-size: 1.4em;
  margin: 0;
}

#gmap span {
  display: block;
  font-size: 0.8;
}

#gmap ul {
  list-style: disc;
  padding: 5px 20px;
  font-size: 1.2em;
} */

/* archive page */
.hidden {
  display: none;
}

.gallery-hidden a,
.gallery a {
  width: 100%;
  background-color: var(--clr-accent-1);
}

.gallery-hidden img,
.gallery img {
  max-width: 480px;
  max-height: 360px;
  margin: 1em auto;
  border: 5px solid var(--clr-accent-2);
  border-radius: 10px;
}

/* large screens */
@media screen and (min-width: 768px) {
  .wrapper {
    width: 90%;
    grid-template-columns: repeat(12, [column] 1fr);
  }

  .footer-main > ul > li:first-child {
    margin: 0 auto 0 0;
  }

  .footer-main ul {
    flex-direction: row;
  }

  .header-main,
  .nav-main,
  .footer-main {
    grid-column: column / span 12;
  }

  .main-main {
    grid-column: column / span 12;
  }

  .main-main-span-12 {
    grid-column: column / span 12;
  }

  .aside-main {
    grid-column: column / span 12;
  }

  .grid-12 {
    grid-template-columns: repeat(12, [column] 1fr);
  }

  .grid-12-span-12 {
    grid-column: span 12;
  }

  .grid-12-span-6 {
    grid-column: span 6;
  }

  .grid-12-span-2-6 {
    grid-column: column 2 / 6;
  }

  .grid-12-span-7-12 {
    grid-column: column 7 / 12;
  }

  .grid-12-span-1-9 {
    grid-column: column 1 / 9;
  }

  .grid-12-span-9-13 {
    grid-column: column 9 / 13;
  }

  .grid-8 {
    grid-template-columns: repeat(8, [column] 1fr);
    padding: 1em;
  }

  .grid-8-span-1-8 {
    grid-column: 1 / 9;
  }

  .grid-8-span-1-4 {
    grid-column: 1 / 5;
  }

  .grid-8-span-1-6 {
    grid-column: 1 / 7;
  }

  .grid-8-span-4-8 {
    grid-column: 5 / 9;
  }

  .grid-8-span-6-8 {
    grid-column: 7 / 9;
  }

  .grid-8-span-8 {
    grid-column: span 8;
  }
}

@media screen and (min-width: 1025px) {
  .wrapper {
    margin-top: 100px;
    max-width: 1020px;
  }

  .header-main {
    position: absolute;
    display: flex;
    justify-content: space-between;
    padding-inline: 2em;
  }

  .nav-main-menu-toggle,
  .nav-main-menu-toggle-icon {
    display: none;
  }

  .nav-main-menu {
    background: transparent;
    box-shadow: none;
    display: flex;
    height: max-content;
    margin: auto;
    overflow: hidden;
    position: static;
    transition: none;
    width: auto;
    z-index: 0;
    gap: 2em;
  }

  .nav-main-menu a {
    color: var(--clr-dark-900);
    text-indent: 0;
  }

  .nav-main-menu a:hover {
    box-shadow: inset 0px -1px 0px 0px var(--clr-accent-1);
  }

  .nav-main-menu-toggle:checked ~ .nav-main-menu {
    width: auto;
    box-shadow: none;
  }

  .main-main {
    grid-column: column / span 8;
  }

  .aside-main {
    grid-column: column 9 / span 4;
  }
}
