:root {
   --trim-color: #A86115;
}

html, p, dt, dd, li, label, blockquote, a, footer, input, select, textarea, button {
	font-family: helvetica, verdana, arial, sans-serif;
	font-size: 1rem;
	line-height: 1.2em;
}

html {
   scroll-behavior: smooth;
   position: relative;
}

body {
   background-color: #fcfcfc;
}

main * {
   max-width: 100%;
   box-sizing: border-box;
   hyphens: manual;
}

h1, h2, h3, h4, h5, h6 {
   color: #5d3400;
	font: 2.5rem/1.2 "Tempus Sans ITC", "Sylfaen", "Bradley Hand ITC", "Times New Roman", serif;
	margin: 1em 0 0.25em;
   text-wrap: balance;
	font-weight: bold;
}

h1:first-child, h2:first-child, h3:first-child, h4:first-child, h5:first-child, h6:first-child {
   margin-top: 0;
}

h2 {
   font-size: 1.75rem;
}

h3 {
	font-size: 1.3rem;
}

p, form {
   margin: 0 0 1em;
   padding: 0;
}

img {
   max-width: 100%;
}

a:link, a:visited {
	color: #222;
}

.archived a:link, .archived a:visited  {
	color: #777;
	text-decoration: underline #888;
}

a:hover, a:active, a:focus {
	color: #000;
	background-color: rgb(255, 255, 200);
   text-decoration: underline orangered;
}

a img {
   border: 1px dotted transparent;
}
  
a:focus:not(.buttonLink) img, a:active:not(.buttonLink) img, a:hover:not(.buttonLink) img {
   background-color: rgba(255,255,0, 0.1);
   border-color: orangered;
}

span.amp {
 /* pretty ampersand for headings */
	font-family: Baskerville, "Goudy Old Style", "Palatino", "Book Antiqua", Georgia, serif;
	font-style: italic;
}

#content {
	padding: 0 0.5em;
}

@media all and (min-width:35em) {
   #content {
      padding: 0 1em;
   }
}

#content h1 { 
	margin: 0.5em 0 0.2em;
}

#content h1 span.boxID {
	color: #397593;
	font-size: 14px;
}

#content img.left {
	margin: 10px 15px;
	float: left;
}

#content img.right {
	margin: 10px 15px;
	float: right;
}

#content table {
	margin: 0 0 1em;
}

#content table th {
	font-weight: bold;
	text-align: left;
}

#content form th {
	font-weight: bold;
	text-align: right;
	padding-right: 10px;	
}

#content ol li {
	list-style-type: decimal;
	line-height: 1.5em;
}

#content ul li {
	list-style-type: disc;
	line-height: 1.5em;
}

/* ~~ forms processing error message formatting ~~ */
#content p.error {
	color: red;
	font-size: 1.5em;
	font-weight: bold;
	margin: 15px 10px;
}

.redBold {
   color: red;
   font-weight: bold;
}

.pages {
   display: block;
   margin: 1em 0;
}

.pages a {
   display: inline-block;
   padding: 0.5em 1em;
   text-decoration: none;
   font-size: 1.1rem;
   background: rgba(0,0,0, 0.1) none;
   transition: background-color 0.2s;
   border: 1px solid rgba(0,0,0, 0.3);
   border-radius: 0;
}

.pages a:first-child {
   border-radius: 0.2em 0 0 0.2em;
}

.pages a:last-child {
   border-radius: 0 0.2em 0.2em 0;
}

.pages a.active {
   background-color: #4caf50;
   color: white;
}

.pages a:hover:not(.active),
.pages a:focus:not(.active) {
   background-color: rgba(0,0,0, 0.2);
}

header {
	padding: 0.5em 0.2em 0;
}

/* .tableContainer is deprecated */
.tableWrapper, .tableContainer {
   max-width: 100%;
   overflow: auto;
}

.widgetWrapper {
	column-width: 20em;
	padding: 0 0 1em;
	gap: 1em;
}

.widget {
	background-color: #ffc;
	margin-bottom: 1em;
	break-inside: avoid;
   border: 1px solid rgba(0,0,0, 0.5);
}

.widget > * {
	margin: 0;
	padding: 0.3em 0.5em 0.35em;
}

.widget header {
	background: var(--trim-color) none;
}

.widget header h2 {
	color: #fff;
	font-size: 1.1rem;
	font-weight: normal;
	text-shadow: 1px 1px 1px rgba(0,0,0,0.5);
   margin: 0;
   padding: 0;
}

/* ~~ The footer ~~ */
.group:after { /* .group to clear float containers */
	content: ".";
	display: block;
	height: 0;
	clear: both;
	visibility: hidden;
}

@media print {
   #buttonBox {
   	display: none;
   }
   #BannerBox {
      display: none;
   }
}


#buttonBox .button img {
   margin: 0 12px -6px 0 !important;
}

.button {
	display: block;
	border: 2px solid black;
	background: #fff;
	border-radius: 8px;
   box-shadow: rgba(0,0,0,1) 0 1px 0;
	padding: 8px 15px;
   font-size: 14px;
}

.button:link, .button:visited, .button:hover, .button:active {	
   text-decoration: none;
   color: #4E5869;
}

.button:hover, .button:active {
   border: 2px solid #631;
   border-top-color: #b0651a;
   background: #FCF2D2;
   color: #000;
}
 
.columns tr {
	height: 18px;
}

.columns tr td, .columns tr th {
	vertical-align: bottom;
}

#content .clues {
	padding: 0 15px 15px 8px;
}

div#BannerBox {
	border-radius: 1em 4em 1em 4em;
	background: #FFAA22;
	box-shadow: #B3B3B3 2px 2px 2px;
	padding: 20px; 
	width: 95%;
	height: 90px;
	margin: 10px auto;
}

/* Ryan's imports from Atlas Quest */
.copyright {
	text-align: center;
	font-size: 80%;
	color: #333;
   padding: 1em 0;
}

label:not(.checkbox) {
   display: inline-block;
   color: #fff;
	background: var(--trim-color) none;
	text-shadow: 1px 1px 1px rgba(0,0,0,0.5);
   font-size: 1.05rem;
   margin: 0;
   padding: 0.2em 0.2em 0.25em;
   border-radius: 0.25em 0.5em 0 0;
   border: 1px solid rgba(0,0,0, 0.5);
   border-width: 1px 1px 0;
}

legend {
   border: 1px solid #aaa;
   background: white;
   font-variant: small-caps;
   padding: 0.3em 0.5em;
}

label ~ div, label ~ span {
   color: #444;
   font-style: italic;
   font-size: 0.9rem;
   max-width: 50em;
}

label:not(.checkbox)+input, label:not(.checkbox)+select, label:not(.checkbox)+textarea, label:not(.checkbox)+div, label:not(.checkbox)+iframe,
label:not(.checkbox)+span+input, label:not(.checkbox)+span+select, label:not(.checkbox)+span+textarea, label:not(.checkbox)+span+div {
   display: block;
   margin: 0 0 0.2em;
   font-size: 1.1rem;
}

label:not(.checkbox)+div, label:not(.checkbox)+span+div {
   background: rgba(0,0,0, 0.1) none;
   border: 1px solid gray;
   padding: 0.2em;
   margin-bottom: 0.2em;
   border-radius: 0 0.1em 0.1em 0.1em;
}

.checkbox {
   background: transparent none;
   padding: 0.2em 0;
   display: block;
   cursor: pointer;

   border: 1px solid transparent;
   border-radius: 0.2em;
}

.checkbox:hover,
.checkbox:focus {
   background: rgba(255,255,128, 0.4) none !important;
   border: 1px solid gray;
}

.checkbox input {
   margin: 0.5em;
}

.checkbox > * {
   display: table-cell;
   vertical-align: middle;
   padding: 0.15em;
}

.error {
   background: #fdd none;
   box-shadow: inset 0 0 0.1em 0.1em red;
   overflow: auto;
}

.error+input, .error+textarea, .error+select, .error+div, .error+span+input, .error>legend {
   background: #fee none;
   box-shadow: 0 0 0.1em 0.1em #f99;
}

select {
   display: inline-block;
   font-size: 1.1rem;
}

input[type="text"], input[type="email"], input[type="url"], input[type="file"], input[type="search"], input[type="password"], textarea, 
input[type="date"], input[type="time"], input[type="datetime"], input[type="number"], select {
   background-color: #e0e0e0;
   border: 1px solid  #888;
   border-radius: 0 0.2em 0.2em 0.2em;
   margin: 0;
   padding: 0.2em 0.3em 0.3em;
}

input[type="text"], input[type="email"], input[type="url"], input[type="file"], input[type="search"], input[type="password"] {
   width: 100%;
   max-width: 35em;
}

textarea {
   width: 40em;
   max-width: 100%;
   height: 8em;
   max-height: 40vh;
}

@media all and (min-width: 40em) {
   textarea {
      height: 12em;
   }
}

input[type="color"] {
   width: 8em;
   height: 2em;
}

.inline {
   display: inline-block;
   vertical-align: middle;
   margin: 1em 1em 1em 0;
   max-width: 100%;
}

.inline.top {
   vertical-align: top;
}

.inline.bottom {
   vertical-align: bottom;
}

.block {
   display: block;
   margin: 1em 0;
}

.table {
   display: table;
   margin: 0 0 1em;
}

.table > div {
   display: table-row;
}

.table > div > * {
   display: table-cell;
   padding: 0.4em 0;
   border-bottom: var(--table-border-style);
}

.table > div > .label,
.table > div > *:first-child {
   vertical-align: top;
   padding-top: 0.5em;
}

.table > div > * + * {
   padding-left: 1em;
}

.label {
   font-size: 0.9em;
   font-variant: small-caps;
}

fieldset {
	border: 1px solid #888;
   max-width: 98%;
   padding: 0.25em 1em;
}

.icon, .buttonLink img { /* Chrome seems to shrink icons in a table if the table isn't wide enough--even when we explicitly set the width and height of the image. So we force the images wider here. */
   max-width: initial;
}

#errorList {
   position: relative;
   margin: 1em 0;
   background: rgba(255,0,0, 0.1);
   border-radius: 0.1em;
   padding: 0.25em 0 0.5em 0.5em;
   max-width: 60em;
}

#errorList > div {
   display: table-cell;
   vertical-align: middle;
   padding-right: 0.5em;
}

#errorList .hide {
   list-style: none;
   margin: 0;
   padding: 0;
}

#errorList * {
   color: #333;
   background: transparent none;
   font-weight: normal;
   text-decoration: none;
   margin: 0.3em 0;
   border: none;
}

#errorList h2 {
   padding: 0;
}

#errorList a:hover, #errorList a:focus {
   text-decoration: underline;
}

button, a.buttonLink, input[type="submit"] {
   display: inline-block;
   color: black;
   background: #eee linear-gradient(#ccc, #eee, #ccc);

   text-decoration: none;
   text-align: center;
   justify-items: center;
   font-size: 1.2rem;
   line-height: 1.3;
   font-weight: normal;
   font-family: verdana, arial, helvetica, sans-serif;

   margin: 0.1em;
   padding: 0.3em;
   min-width: 48px;
   cursor: pointer;

   border: 1px solid gray;
   border-radius: 0.2em;

   position: relative;
   overflow: hidden;
   overflow-wrap: normal;
}

button::after, .buttonLink::after, input[type="submit"]::after {
   content: '';
   position: absolute;
   top: 0;
   bottom: 0;
   left: -50%;
   right: -50%;
   background: transparent linear-gradient(to bottom, rgba(128,128,128,0), rgba(255,255,255, 0.5), rgba(128,128,128,0));
   transform: translateX(-100%) rotateZ(-60deg);
}

button:hover::after, a.buttonLink:hover::after, input[type="submit"]:hover::after,
button:focus::after, a.buttonLink:focus::after, input[type="submit"]:focus::after {
   animation: sheen 0.5s forwards linear;
}

@supports (display: inline-grid) {
   button, a.buttonLink, input[type="submit"] {
      display: inline-grid;
   }
}

a.buttonLink:visited, a.buttonLink:hover, a.buttonLink:focus {
   color: black;
}

button > span, a.buttonLink > span, input[type="submit"] > span {
   font-size: 1rem;
}

button > *, a.buttonLink > *, input[type="submit"] > * {
   display: block;
   margin: 0 auto;
   overflow-wrap: normal;
}

button img, a.buttonLink img {
   margin: 0 auto;
}

button.selected, a.buttonLink.selected, input[type="submit"].selected, a.selected:link {
   color: #333;
   font-weight: bold;
   border-color: #666 !important;
   background: #ccf linear-gradient(#bbe, #e0e0ff, #bbe);
}

button:hover, a.buttonLink:hover, input[type="submit"]:hover, a.selected:hover,
button:focus, a.buttonLink:focus, input[type="submit"]:focus, a.selected:focus {
   border-color: black !important;
   background: #ff8 linear-gradient(#dd8, #ffc, #dd8);
   text-decoration: underline;
   box-shadow: 0 0 0.2em black;
}

.buttonPanel {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   margin: 1em 0;
}

.buttonPanel button, .buttonPanel a.buttonLink {
   margin: 0;
   padding: 0.2em;
   border-radius: 0;
   text-align: center;
}

@media all and (min-width: 30em) {
   button, a.buttonLink, input[type="submit"], .buttonPanel button, .buttonPanel a.buttonLink {
      grid-template-areas: ". .";
      justify-items: start;
      align-items: center;
      margin: 0.1em;
      border-radius: 0.2em;
      font-size: 1.2rem;
   }
}

a[target="_blank"]::after {
   content: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAQElEQVR42qXKwQkAIAxDUUdxtO6/RBQkQZvSi8I/pL4BoGw/XPkh4XigPmsUgh0626AjRsgxHTkUThsG2T/sIlzdTsp52kSS1wAAAABJRU5ErkJggg==);
   margin: 0 3px 0 5px;
}
 
.go, .cancel, .preview, .edit, .save {
   display: inline-block !important;
   vertical-align: middle !important;
   font-size: 1.3rem !important;
   font-weight: normal !important;
   padding: 0.5em 0.5em 0.5em 2.25em !important;

   background-position: 0.3em 50% !important;
   background-repeat: no-repeat !important;
   background-size: 1.5em, 100% !important;
   border: 1px outset gray !important;
}

.go:hover, .cancel:hover, .preview:hover, .edit:hover, .save:hover,
.go:focus, .cancel:focus, .preview:focus, .edit:focus, .save:focus {
   background-position: 0.2em 50% !important;
   background-repeat: no-repeat !important;
   background-size: 2em, 100% !important;
}

.go {
   color: #3B7100 !important;
   background-image: url(/css/images/ok-icon.png) !important;
}

.go:hover, .go:focus {
   border-color: green !important;
}

.cancel {
   color: #B3310F !important;
   background-image: url(/css/images/cancel-icon.png) !important;
}

.cancel:hover, .cancel:focus {
   border-color: red !important;
}

.preview {
   color: #0F31B3 !important;
   background-image: url(/css/images/preview-icon.png) !important;
}

.preview:hover {
   border-color: blue !important;
}

.edit {
   color: #808000 !important;
   background-image: url(/css/images/edit-icon.png) !important;
}

.edit:hover, .edit:focus {
   border-color: #585600 !important;
}

.save {
   color: #6B6B00 !important;
   background-image: url(/css/images/save-icon.png) !important;
}

.save:hover, .save:focus {
   border-color: #885600 !important;
}

.debit {
   color: green;
}

.credit {
   color: red;
}

#pageStats { /* For webmasters only--you don't need this. ;o) */
   color: black;
   background: #fed none;
   border: 2px red solid;
   margin: 1em;
   padding: 1em;
   text-shadow: none;
   text-align: left;
}
