/*
 * All classes are prefixed with "tmt-".
 *
 * Trevor Fairbanks
 *
 * June 2021
 */


:root {
  box-sizing: border-box;
}

*,
::before,
::after {
  box-sizing: inherit;
}

body {
  background-color: #fff;
  display:none;
  font-family: Helvetica, Arial, sans-serif;
  background-color: Ivory;
}

header {
  grid-area: title;
}

main {
  grid-area: main;
}

page-selector {
  grid-area: pager;
  padding: 0 1em;
}

h1 {
  color: black;
  text-transform: capitalize;
  font-size: 3rem;
  margin-top: 0.25em;
  margin-bottom: 0.25em;
}

h2 {
  font-weight: bold;
  color: darkorange;
  text-transform: uppercase;
  font-size: 1.5rem;
  margin: 0 0 0.5em 0;
}

h3 {
  font-weight: normal;
  color: darkorange;
  font-size: 1.2rem;
  margin: 1em 0 0.3em 0;
  clear: left;
}

h4 {
  font-weight: normal;
  color: darkorange;
  font-size: 1.0rem;
  margin: 1em 0 0.3em 0;
  clear: left;
}

a {
	outline-style: none;
}

main p { 
	line-height: 150%;
	font-family: Verdana;
}

main ul {
	display: grid;
}

main li {
	line-height: 150%;
	font-family: Verdana;
}

iframe {
	border: none;
}

.tmt-container {
	display: grid;
	grid-template-columns: 1fr 38fr 1fr;
	grid-template-areas: 'left-margin title  right-margin'
						 'left-margin pager  right-margin'
						 'left-margin splash right-margin'
						 'left-margin main   right-margin';
	grid-template-rows: repeat(4, auto);
	grid-column-gap: 1.5em;
	grid-row-gap: 2em;
}

.tmt-story-container {
	display: grid;
	grid-template-columns: 1fr 38fr 1fr;
	grid-template-areas: 'left-margin title right-margin'
						 'left-margin pager right-margin'
						 'left-margin main  right-margin';
	grid-template-rows: repeat(3, auto);
	grid-column-gap: 1.5em;
	grid-row-gap: 2em;
}

/*
 * Splash
 */

.tmt-splash {
	grid-area: splash;
	padding: 0 1em;
}

.tmt-splash-item {
	position: relative;
}

.tmt-splash img {
  max-width: 100%;
  object-fit: contain;
  border-style: solid;
  border-width: 1px;
  border-color: black;

}

.tmt-splash-cap {
    display: inline-block;
    font-weight: bold;
	color: black;
	position: absolute;
	top: 0.5em;
	left: 0.5em;
	padding: 0.2em 0.2em;
	font-size: 4em;
	text-shadow: 2px 2px 2px white, 0 0 25px white;
 }

div.tmt-splash-cap a {
	text-decoration-line: none;
	color: black;
}

/*
 * Classes for rendering a list of blog entries
 */

.tmt-blog-item {
	position: relative;
}

.tmt-blog-cap {
    display: inline-block;
	position: absolute;
	top: 0.5em;
	left: 0.5em;
    font-weight: bold;
	text-shadow: 2px 2px 2px black, 0 0 15px black;
	color: white;
	padding: 0.2em;
	padding: 0.2em 0.5em;
	max-width: 300px;
	font-size: 1.2em;
}

.tmt-blog-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  grid-auto-rows: 1fr;
  grid-gap: 1em;
  padding: 0 1em;
}

.tmt-blog-list img {
  max-width: 100%;
  object-fit: contain;
  border-style: solid;
  border-width: 1px;
  border-color: black;
}


@media(hover: hover) and (pointer: fine) {
	.tmt-blog-item:focus, .tmt-blog-item:hover {
		filter: brightness(120%) saturate(120%);
	}
}

/* ---------------------------------------- */



/*
 * Classees for rendering the navigation list or menu
 */

.tmt-nav-list {
	display: flex;
	flex-direction: row;
}



@media(hover: hover) and (pointer: fine) {
	.tmt-nav-list a:hover {
		background-color: orange;
	}
}

.tmt-nav-link {
	display: block;
	padding: 0.5em 0.5em;
	color: black;
	background-color: darkorange;
	font-weight: bold;
	text-align: center;
	text-decoration: none;
	border-style: solid;
	border-width: 1px;
	border-color: black;
	white-space: nowrap;
	font-size: 1.5em;
}

/* ---------------------------------------- */



/*
 * Classes for rendering a dropdown menu (don't forget the accompanying javascript).
 */


/* The container <div> - needed to position the dropdown content */
.tmt-dropdown {
  position: relative;
}

/* Dropdown Content (Hidden by Default) */
.tmt-dropdown-content {
	display: none;
	position: absolute;
	min-width: 160px;
	box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
	z-index: 1;
	border-style: solid;
	border-width: 1px;
	border-color: black;
	background-color: darkorange;
}

/* Links inside the dropdown */
.tmt-dropdown-content a {
  color: black;
  font-weight: bold;
  padding: 0.5em;
  text-decoration: none;
  font-size: 1.5em;
  text-align: center;
}


@media(hover: hover) and (pointer: fine) {
	.tmt-dropdown-content a:hover {
		background-color: orange;
	}
}

.tmt-dropdown-show {
	display: grid;
	grid-template-columns: max-content max-content max-content max-content;
	grid-auto-rows: 1fr;
	grid-gap: 0.5em;
	top: 150%;
	left: 0%;
}

/* ---------------------------------------- */




/*
 * Classess for rendering photos and albums of photos.
 */

.tmt-go-right { float: right;   clear: right; margin: 1em 0em 1em 1em; }
.tmt-go-left  { float: left;    clear: left;  margin: 1em 1em 1em 0em; }

.tmt-photo-album {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 1em;
}

.tmt-photo {
	position: relative;
}

@media(hover: hover) and (pointer: fine) {
	.tmt-photo > a:hover {
		filter: brightness(120%) saturate(120%);
	}
}

img.tmt-small-landscape-photo
{
	max-width: 120px;
	height: 90px;
	padding: 0;
	border-style: solid;
	border-width: 1px;
	border-color: black;
}

.tmt-small-landscape-photo-cap {
	position: absolute;
    font-family: verdana;
	color: white;
	text-shadow: 2px 2px 2px black, 0 0 15px black;
	padding: 0em 0.2em;
	bottom: 0.5em;
	left: 0.2em;
	font-size: 0.8em;
	max-width: 120px;
}

img.tmt-standard-landscape-photo
{
	width: 200px;
	max-height: 150px;
	border-style: solid;
	border-width: 1px;
	border-color: black;
}

.tmt-standard-landscape-photo-cap {
    display: inline-block;
	position: absolute;
    font-family: verdana;
	color: white;
	text-shadow: 2px 2px 2px black, 0 0 15px black;
	padding: 0em 0.2em;
	bottom: 0.7em;
	left: 0.3em;
	font-size: 0.9em;
	max-width: 200px;
}

img.tmt-large-landscape-photo
{
	width: 300px;
	max-height: 225px;
	border-style: solid;
	border-width: 1px;
	border-color: black;
}

.tmt-large-landscape-photo-cap {
    display: inline-block;
	position: absolute;
    font-family: verdana;
	color: white;
	text-shadow: 2px 2px 2px black, 0 0 15px black;
	padding: 0em 0.2em;
	bottom: 0.7em;
	left: 0.3em;
	font-size: 1em;
	max-width: 300px;
}

img.tmt-small-portrait-photo
{
	width: 90px;
	max-height: 120px;
	padding: 0;
	border-style: solid;
	border-width: 1px;
	border-color: black;
}

.tmt-small-portrait-photo-margin {
		margin: 0 15px;
}

.tmt-small-portrait-photo-cap {
	position: absolute;
    font-family: verdana;
	color: white;
	text-shadow: 2px 2px 2px black, 0 0 15px black;
	padding: 0em 0.2em;
	bottom: 0.5em;
	left: 0.2em;
	font-size: 0.8em;
	max-width: 90px;
}

img.tmt-standard-portrait-photo
{
	max-width: 150x;
	height: 200px;
	padding: 0;
	border-style: solid;
	border-width: 1px;
	border-color: black;
}

.tmt-standard-portrait-photo-cap {
	position: absolute;
    font-family: verdana;
	color: white;
	text-shadow: 2px 2px 2px black, 0 0 15px black;
	padding: 0.2em;
	bottom: 0.5em;
	left: 0.2em;
	font-size: 0.9em;
}

.tmt-standard-portrait-photo-margin {
		margin: 0 25px;
}

img.tmt-large-portrait-photo
{
	max-width: 225px;
	height: 300px;
	border-style: solid;
	border-width: 1px;
	border-color: black;
}

.tmt-large-portrait-photo-cap {
    display: inline-block;
	position: absolute;
    font-family: verdana;
	color: white;
	text-shadow: 2px 2px 2px black, 0 0 15px black;
	padding: 0em 0.2em;
	bottom: 0.7em;
	left: 0.5em;
	font-size: 1em;
	max-width: 225px;
}

.tmt-large-portrait-photo-margin {
		margin: 0 38px 0 37px;
}

/* ---------------------------------------- */



/*
 * Classes for rendering a bike list.
 */

.tmt-bike-list {
	display: grid;
	grid-template-columns: 1.5fr 1fr 1fr 1fr 1fr 1fr 1fr;
	grid-template-rows: repeat(14, auto);
	grid-column-gap: 0.5em;
	grid-row-gap: 0.5em;
	align-items: center;
	margin: 1em;
}

.tmt-bike-id {
	overflow: hidden;
	color: darkblue;
	text-shadow: 1px 1px lightskyblue;
	font-size: 1em;
	text-decoration-line: none;
	font-weight: bold;
}

.tmt-bike-stat {
	overflow: hidden;
	font-size: 1em;
	font-weight: bold;
	font-family: 'Courier New';
}

.tmt-bike-list-header {
	font-weight: bold;
	text-transform: capitalize;
	overflow: hidden;
}

/* ---------------------------------------- */



/*
 * Classes for rendering a rally route.
 */

.tmt-control-list {
	display: grid;
	grid-template-columns: repeat(3, max-content);
	grid-template-rows: repeat(20, auto);
	grid-column-gap: 1em;
	grid-row-gap: 0.25em;
	padding: 1em;
	font-weight: bold;
	font-size: 1em;
}


.tmt-route-start {
	background-color: green;
	padding: 0.1em;
	border-style: solid;
	border-width: 1px;
	border-color: black;
	text-align: center;
}

.tmt-route-waypoint {
	background-color: yellow;
	padding: 0.1em;
	border-style: solid;
	border-width: 1px;
	border-color: black;
	text-align: center;
}

.tmt-route-manned {
	background-color: lightskyblue;
	padding: 0.1em;
	border-style: solid;
	border-width: 1px;
	border-color: black;
	text-align: center;
}

.tmt-route-dragon {
	background-color: pink;
	padding: 0.1em;
	border-style: solid;
	border-width: 1px;
	border-color: black;
	text-align: center;
}

.tmt-route-rbr {
	background-color: goldenrod;
	padding: 0.1em;
	border-style: solid;
	border-width: 1px;
	border-color: black;
	text-align: center;
}

.tmt-route-finish {
	background-color: red;
	padding: 0.1em;
	border-style: solid;
	border-width: 1px;
	border-color: black;
	text-align: center;
}

.tmt-route-flag {
  vertical-align: middle;
}

.tmt-route-description {
	align-self: center;
}

.tmt-route-description-lite {
	align-self: center;
	font-style: italic;
}

.tmt-route-heading {
	text-transform: capitalize;
	color: orange;
	font-style: italic;
}

/* ---------------------------------------- */




/*
 * Classes for rendering a route consisting of RBR controls as waypoints.
 */

.tmt-rbr-list {
	display: grid;
	grid-template-columns: max-content max-content max-content;
	grid-template-rows: repeat(3, auto);
	grid-column-gap: 2em;
	grid-row-gap: 0.5em;
	padding: 1em;
	font-size: 1em;
	clear: both;
}

.tmt-rbr-highlight {
	font-weight: bold;
}

.tmt-rbr-description {
}

.tmt-rbr-number {
	text-align: right;
	font-weight: bold;
}

.tmt-rbr-points {
	text-align: right;
}

.tmt-rbr-dnf {
	text-decoration: line-through;
	color: red;
}

/* ---------------------------------------- */

.tmt-route-log {
	display: grid;
	grid-template-columns: max-content max-content max-content max-content max-content max-content;
	grid-template-rows: repeat(3, auto);
	grid-column-gap: 2em;
	grid-row-gap: 0.5em;
	padding: 1em;
	font-size: 1em;
	clear: both;

}

.tmt-route-plan {
	display: grid;
	grid-template-columns: max-content max-content max-content max-content max-content max-content max-content;
	grid-template-rows: repeat(3, auto);
	grid-column-gap: 2em;
	grid-row-gap: 0.5em;
	padding: 1em;
	font-size: 1em;
	clear: both;
}

.tmt-route-national {
	display: grid;
	grid-template-columns: max-content max-content max-content max-content;
	grid-template-rows: repeat(3, auto);
	grid-column-gap: 2em;
	grid-row-gap: 0.5em;
	padding: 1em;
	font-size: 1em;
	clear: both;
}

.tmt-route-highlight {
	font-weight: bold;
}

.tmt-justify-number {
	text-align: right;
}



.tmt-items-list {
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-template-rows: repeat(1, auto);
	grid-column-gap: 2em;
	grid-row-gap: 0.5em;
	padding: 1em;
	clear: both;

}




