@charset "utf-8";

body {
   font-family: "Comic Sans MS", "Comic Sans", "Chalkboard SE", "Comic Neue", cursive;
   color: rgb(40, 40, 60);
   background-color: white;
   width: 90%;
   max-width: 1100px;
   margin: 0 auto;
}

header {
   text-align: center;
   padding: 10px 0;
   background-color: white;
}

header h1 {
   margin: 0;
}

header img {
   display: block;
   width: 100%;
   max-width: 1000px;
   margin: 0 auto;
}

nav ul {
   list-style: none;
   margin: 0;
   padding: 0;
}

nav li {
   float: left;
   width: 33.33%;
}

nav a {
   display: block;
   background-color: rgb(63, 72, 204);
   color: white;
   line-height: 2.8em;
   text-align: center;
   text-decoration: none;
}

nav a:hover {
   background-color: rgb(32, 38, 120);
   color: white;
   transition: background-color 0.5s ease-in, color 0.5s ease-in;
}

main {
   clear: both;
   padding: 20px;
}

h2 {
   color: rgb(32, 38, 120);
   border-bottom: 2px solid rgb(63, 72, 204);
}

ul, ol {
   line-height: 1.6;
}

ul {
   list-style-type: square;
}

ul li::marker, ol li::marker {
   color: rgb(63, 72, 204);
}

/* Gallery (flexbox) */
.gallery {
   display: flex;
   flex-flow: row wrap;
}

.galleryItem {
   flex: 0 0 25%;
   padding: 4px;
   box-sizing: border-box;
}

.galleryItem img {
   width: 100%;
   display: block;
   border-radius: 6px;
   border: 2px solid rgb(63, 72, 204);
   box-sizing: border-box;
}

/* Product columns */
.productColumns {
   column-count: 4;
   column-gap: 20px;
   column-rule: 2px solid rgb(63, 72, 204);
}

.productColumns figure {
   margin: 0 0 20px 0;
   break-inside: avoid;
   text-align: center;
}

.productColumns img {
   width: 100%;
   display: block;
   border-radius: 6px;
   border: 2px solid rgb(63, 72, 204);
   box-sizing: border-box;
}

.productColumns figcaption {
   margin-top: 0;
   margin-bottom: 6px;
   font-weight: bold;
   color: rgb(32, 38, 120);
}

.productColumns .credit {
   display: block;
   margin-top: 4px;
   font-size: 0.65em;
   line-height: 1.3;
   color: rgb(90, 90, 110);
}

.productColumns .credit a {
   color: rgb(63, 72, 204);
}

/* Table */
.tableWrap {
   overflow-x: auto;
}

table {
   width: 100%;
   border-collapse: collapse;
   background-color: white;
}

th, td {
   border: 1px solid rgb(63, 72, 204);
   padding: 10px;
   text-align: left;
}

thead {
   background-color: rgb(63, 72, 204);
   color: white;
}

tfoot {
   background-color: rgb(225, 228, 250);
   font-style: italic;
}

tbody tr:nth-child(even) {
   background-color: rgb(240, 241, 252);
}

/* Form */
fieldset {
   border: 2px solid rgb(63, 72, 204);
   padding: 15px;
}

legend {
   color: rgb(32, 38, 120);
   font-weight: bold;
}

label {
   display: block;
   margin-top: 12px;
   font-weight: bold;
}

label.inline {
   display: inline;
   font-weight: normal;
}

input[type="text"], input[type="email"], input[type="tel"], select, textarea {
   display: block;
   width: 100%;
   box-sizing: border-box;
   padding: 8px;
   margin-top: 4px;
}

input:focus, select:focus, textarea:focus {
   background-color: rgb(235, 237, 252);
   outline: 2px solid rgb(63, 72, 204);
}

input[type="text"]:valid, input[type="email"]:valid {
   border: 2px solid rgb(63, 72, 204);
}

input[type="text"]:invalid, input[type="email"]:invalid {
   border: 2px solid red;
}

input[type="submit"], input[type="reset"] {
   margin-top: 15px;
   padding: 10px 25px;
   font-size: 1em;
   cursor: pointer;
   background-color: rgb(63, 72, 204);
   color: white;
   border: none;
   border-radius: 4px;
}

input[type="submit"]:hover, input[type="reset"]:hover {
   background-color: rgb(32, 38, 120);
}

footer {
   clear: both;
   margin-top: 20px;
   padding: 10px;
   background-color: rgb(63, 72, 204);
   color: white;
   text-align: center;
}

iframe {
   border: none;
   max-width: 100%;
}

/* Tablet */
@media only screen and (max-width: 1000px) {
   .galleryItem {
      flex: 0 0 50%;
   }

   .productColumns {
      column-count: 2;
   }

}

/* Mobile */
@media only screen and (max-width: 600px) {
   body {
      width: 100%;
   }

   nav li {
      float: none;
      width: 100%;
   }

   nav a {
      border-bottom: 1px solid white;
   }

   .galleryItem {
      flex: 0 0 100%;
   }

   .productColumns {
   column-count: 1;
   }
}