h1, h2, h3 {
  scroll-margin-top: 7rem;
}

table {
  width: unset;
}

/* Blue Light scheme (Default) */
/* Can be forced with data-theme="light" */
[data-theme="light"],
:root:not([data-theme="dark"]) {
  --primary: #1e88e5;
  --primary-hover: #1976d2;
  --primary-focus: rgba(30, 136, 229, 0.125);
  --primary-inverse: #FFF;
  --image-filter: none;
}

/* Blue Dark scheme (Auto) */
/* Automatically enabled if user has Dark mode enabled */
@media only screen and (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --primary: #1e88e5;
    --primary-hover: #2196f3;
    --primary-focus: rgba(30, 136, 229, 0.25);
    --primary-inverse: #FFF;
    --image-filter: brightness(0.8);
  }
}

.slides img {
  filter: var(--image-filter);
}

/* Blue Dark scheme (Forced) */
/* Enabled if forced with data-theme="dark" */
[data-theme="dark"] {
  --primary: #1e88e5;
  --primary-hover: #2196f3;
  --primary-focus: rgba(30, 136, 229, 0.25);
  --primary-inverse: #FFF;
  --image-filter: brightness(0.75) saturate(0.75);
}


/* Blue (Common styles) */
:root {
  --form-element-active-border-color: var(--primary);
  --form-element-focus-color: var(--primary-focus);
  --switch-color: var(--primary-inverse);
  --switch-checked-background-color: var(--primary);
}

.hero {
  height: calc(100vh - 5em);
  background: linear-gradient(rgba(0,0,0,0.5), rgba(0,0,0,0.9));
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  position: relative;
}

.hero::before {
  content: " ";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: var(--image);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  filter: var(--image-filter);
}

.hero > * {
  display: block;
  padding: var(--block-spacing-vertical) 0;
  width: 100%;
  margin: 0;
  position: absolute;
  left: 0;
  bottom: 0;
  background: rgba(0, 0, 0, .5);
  backdrop-filter: blur(5px) brightness(50%);
  -webkit-backdrop-filter: blur(5px) brightness(50%);
}


.hero .grid {
  grid-template-columns: repeat(auto-fit, minmax(15em, 1fr));
}

.hero .grid > * *:last-child {
  margin-bottom: 0;
}

.hero h1, .hero h2, .hero button, .hero a[role="button"] {
  margin: 0;
}

nav, #toc {
  user-select: none;
}

body>nav {
  position: sticky;
  top: 0;
  width: 100%;
  z-index: 5;
  background: rgba(5, 5, 5, .7);
  backdrop-filter: brightness(75%) blur(15px);
  -webkit-backdrop-filter: brightness(75%) blur(15px);
  box-shadow: 0 0 3px 3px rgba(0, 0, 0, .4);
  border-bottom: 1px solid rgba(80, 80, 80, .4);
}

nav li > b {
  letter-spacing: .1rem;
  font-weight: 200;
  color: var(--contrast);
  text-transform: uppercase;
}

nav a[role="button"] {
  padding: .25em 1em;
}


nav svg {
  display: block;
  color: var(--primary);
}

nav svg:hover {
  color: var(--primary-hover);
}

h1, h2, h3 {
  font-family: 
    "Roboto Condensed", "AvenirNextCondensed-Bold", "Futura-CondensedExtraBold", HelveticaNeue-CondensedBold, "Ubuntu Condensed", "Liberation Sans Narrow", "Franklin Gothic Demi Cond", "Arial Narrow", sans-serif-condensed, Arial, "Trebuchet MS", "Lucida Grande", Tahoma, Verdana,
    sans-serif;
    line-height: 1;
}

h2 {
  font-weight: 700;
}

h1 {
  text-transform: uppercase;
  /* font-size: 3rem; */
  /*letter-spacing: -0.05rem;*/
  /* margin-left: -1rem; */
}

nav {
  padding-left: var(--block-spacing-horizontal);
  padding-right: var(--block-spacing-horizontal);
}

article:first-of-type {
  margin-top: 0;
}

.container-hybrid {
  padding-left: var(--block-spacing-horizontal);
  padding-right: var(--block-spacing-horizontal);
  width: 100%;
  margin-left: 0;
  margin-right: 0;
}

.container-fluid {
  padding-left: 0;
  padding-right: 0;
}

main.container-fluid,
main.container-hybrid {
  padding-top: 1.5rem;
}


.hero {
  margin: 0;
}

.carousel {
	scroll-snap-type: x mandatory;	
	display: flex;
	-webkit-overflow-scrolling: touch;
	overflow-x: scroll;
}

.carousel>* {
	scroll-snap-align: start;
}

.carousel .hero {
 	min-width: 100vw;
}

nav a:hover {
  text-decoration: underline;
}

.hero button, .hero a[role="button"] {
  max-width: 10em;
  padding-left: 2em;
  padding-right: 2em;
  max-height: 3em;
  margin: auto 0 auto auto;
}

nav h1 {
  font-size: 2em;
  margin: 0;
}

.announce {
  background-color: var(--background-secondary);
  padding: 1em;
  text-align: center;
  font-weight: 700;
}

.announce a {
  text-decoration: underline;
}

.cards,
.locations {
  padding: 0;
  background: var(--background);
}

.cards .grid,
.locations .grid {
  grid-auto-flow: row;
  grid-gap: 1rem;
}

.cards img {
  min-height: 100%;
  border-radius: 5.15% / 3.68%;
  box-shadow: 0 0 10px 4px rgba(31, 136, 229, .4)
}

.locations img {
  border-radius: 3.68% / 5.15%;
  box-shadow: 0 0 10px 4px rgba(31, 136, 229, .4)
}

.cards.grid img,
.locations.grid img {
  box-shadow: 0 0 4px 2px rgba(22, 95, 158, 0.4);
  transition: box-shadow .2s;
}


/*
.cards.grid img,
.locations.grid img {
  box-shadow: 0 0 5px 2px rgba(31, 136, 229, 0.4);
  transition: box-shadow .2s;
}
*/

.cards.grid img:hover,
.locations.grid img:hover {
  box-shadow: 0 0 8px 4px rgba(31, 136, 229, 0.6);
  transition: box-shadow .2s;
}

.cards img:hover,
.locations img:hover {
    box-shadow: 0 0 15px 8px rgba(31, 136, 229, 0.8);
    transition: box-shadow .2s;
}

.modal {
  position: fixed;
  z-index: 99;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  background: rgba(0, 0, 0, .5);
  backdrop-filter: blur(5px) brightness(50%);
  -webkit-backdrop-filter: blur(5px) brightness(50%);
}

.modal > * {
  margin: 0;
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  contain: content;
  width: 100%;
  box-shadow: none;
}

.modal .cards,
.modal .locations {
  padding: 1rem;
}

.modal .cards img {
  max-height: 80vh;
  margin: 0 auto;
  display: block;
  cursor: zoom-out;
}

.modal .locations img {
  max-height: 60vh;
  margin: 0 auto;
  display: block;
  cursor: zoom-out;
}

icon {
  display: inline-block;
  height: 2em;
  width: 2em;
  background-position: center;
  background-size: 24px 24px;
  background-repeat: no-repeat;
  color: var(--contrast);
  stroke: var(--contrast);
  background-color: #666;
}


main li {
  padding-left: .25rem;
}

main li::marker {
  color: var(--muted-color);
  font-size: .75rem;
}

main ol, main ul {
/*  font-weight: 700; */
}


main ul li {
  list-style: disc;
}

main ul ul li,
main ol ul li {
  font-weight: 400;
  /*list-style: circle;*/
}

main ol ol li,
main ul ul li,
main ul ol li,
main ol ul li {
  font-weight: 400;
}

main ul > li > *,
main ol > li > * {
  margin-top: 1rem;
}

.grid {
  grid-auto-flow: row;
  align-items: center;
}

small {
  display: block;
  font-size: 0.8rem;
  text-transform: uppercase;
  color: var(--secondary);
}

blockquote footer small {
  text-align: right;
}

hgroup>:last-child {
  --color: var(--muted-color);
  --font-weight: unset;
  font-family: unset;
  margin-top: 0.5rem;
  line-height: 1;
}

hgroup>*:first-child {
  margin-bottom: 0;
}

.blendcardinfo {
  box-shadow: 0 0 10px 5px rgba(20, 20, 20, 1);
}

main {
  margin-bottom: 0;
}

body>footer {
  background: var(--background-secondary)
}

footer.container-hybrid {
  padding-top: 2rem;
  padding-bottom: 1rem;
}

body>footer ul {
  padding: 0;
  list-style: none;
  column-count: 2;
}

body>footer li {
  display: block;
  margin-bottom: 0;
}

.logo {
  max-height: 3rem;
  display: block;
  /*margin: var(--spacing) 0;*/
  cursor: pointer;
}

footer .logo {
  max-height: 2rem;
}

.slides {
  margin-bottom: var(--spacing);
}

.slides > img {
  width: 30em;
  margin: 0 10px 0 0;
	scroll-snap-align: center;
}

.slides > img:last-of-type {
  margin-right: 0;
}

.center {
  align-items: center;
}

.toggle {
  position: relative;
  height: 1rem;
  width: 1rem;
  cursor: pointer;
}

.toggle > * {
  transition: opacity 1s;
  position: absolute;
  width: 100%;
  height: 100%;
}

dd {
  margin: 0 0 var(--spacing) 0;
}

dt {
  color: var(--h2-color);
  font-weight: 700;
}

article.container-hybrid {
  border-radius: 0;
}

blockquote {
  font-style: italic;
  font-family: 'Literata', serif;
  border-left: 3px solid var(--primary);
  border-right: 3px solid var(--primary);
  box-sizing: border-box;
  position: relative;
/*  border-radius: .5em; */
  line-height: 1.25;
/*  max-width: 30em; */
  font-weight: 200;
  margin-left: auto;
  margin-right: auto;
  padding: 0 1rem;
  margin: 2rem 0;
}

blockquote footer {
  display: block;
  font-size: 0.8rem;
  margin-bottom: 2rem;
  margin-top: 1rem;
  font-style: italic;
  color: var(--muted-color);
}

blockquote>*:last-child {
/*  margin-bottom: 0; */
}

blockquote:first-child {
  margin-top: 0;
}

blockquote.story {
  padding: 0;
  border: none;
  font-style: italic;
}

blockquote p {
  font-style: italic;
  margin-bottom: 1rem;
}

blockquote, p, dt, h1, h2, h3, li {
  hanging-punctuation: first;
}

blockquote p:last-child {
  margin-bottom: 0;
}

.line-block {
  /* border-left: .5em double var(--secondary); */
  padding: 1em;
  border: none;
  line-height: 1.25;
  border-radius: 5px;
  box-sizing: content-box;
  position: relative;
  font-weight: 300;
  color: var(--muted-color);
  display: inline-block;
  background: var(--muted-border-color);
}

.printonly {
  display: none;
}

@media only print {
  footer, nav, #toc {
    display: none;
  }

  .wow, .animate__ {
    visibility: visible;
  }

  img {
    visibility: visible;
    opacity: 1;
    max-height: 30em;
  }

  .slides {
    display: block;
  }

  .slides > * {
    margin-bottom: 2rem;
  }

  .printonly {
    display: block;
  }
}

.selected {
  /*color: var(--primary);
  text-decoration: underline;*/
  /*background: var(--background-secondary);*/
  color: var(--mark-color);
  background: var(--mark-background-color);
}

#toc ol {
  list-style: none;
}

#toc > ol li {
  line-height: 1;
  /*font-size: 80%;*/
  padding: 0;
}

/*
#toc > ol ol li {
  font-size: 75%;
}
*/

#toc li:hover {
  color: var(--primary);
  cursor: pointer;
}

main.toc {
	display: grid;
	grid-template-columns: 1fr 12em;
  padding-top: 1.5rem;
}

.toc #content {
  margin-right: 2em;
}

#toc {
  display: block;
  position: sticky;
  top: calc(var(--spacing) * 7);
  padding: 0;
  align-self: start;
  max-height: 66vh;
}

#toc > h3 {
  font-weight: 700;
  padding: 0 var(--spacing);
  margin: 0 0 var(--spacing) 0;
}

#toc svg {
  display: none;
}

#toc > ol {
  max-height: calc(66vh - 1rem);
  overflow-y: auto;
}

#toc li {
  padding-left: 0;
}

#toc > ol::-webkit-scrollbar-track
{
  border-radius: .5em;
  border: 1px solid var(--muted-color);
}

#toc > ol::-webkit-scrollbar
{
  width: .5rem;
}

#toc > ol::-webkit-scrollbar-thumb
{
  border-radius: .5em;
	background-color: var(--muted-color);
}


@media (max-width: 576px) {
  /*#toc {
    display: none;
  }
  main.toc {
    display: block;
  }
  #content {
    margin-right: 0;
  }*/
}


nav a.disabled {
  color: var(--contrast);
  text-decoration: none;
}

p svg, a svg, li svg {
  vertical-align: text-bottom;
}

mark,[data-tooltip]:not(a):not(button):not(input) {
  padding: 0;
  background: none;
  color: inherit;
  vertical-align: inherit;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-decoration-style: dotted;
  text-underline-offset: 2px;
  cursor: help;
  border-bottom: none;
}

mark:hover {
  color: var(--contrast);
}

@media (max-width: 767px) {
  body {
    overflow-x: hidden;
  }

  footer.container-hybrid {
    padding-bottom: 4rem;
  }

  footer.container-hybrid li {
    padding: 0.25rem;
  }

  footer.container-hybrid li > a {
    display: block;
    line-height: 2rem;
  }

  main.toc {
    display: block;
    overflow-x: hidden;
  }

  .container-hybrid {
    padding-left: 1rem;
    padding-right: 1rem;
    /*width: 100%;*/
  }

  .container-hybrid .container-hybrid {
    padding-left: 0;
    padding-right: 0;
  }

  .toc #content {
    margin-right: 0;
  }
  
  #toc {
    box-shadow: 0 0 3px 3px rgba(0, 0, 0, .4);
    position: fixed;
    bottom: 0;
    top: unset;
    left: 0;
    right: 0;
    transition: transform 0.3s ease-in-out;
    transform-origin: top left;
    transform: translateY(calc(100% - 4rem));
    background: var(--background-color);
    padding: 0;
    height: 47vh;
    overflow-y: unset;
  }

  #toc > ol {
    margin: 0;
    padding: 1rem;
    max-height: calc(100% - 4rem);
    overflow-y: auto;
  }

  #toc li {
    padding: 0;
  }

  #toc > h3 {
    display: block;
    line-height: 4rem;
    padding: 0;
    text-transform: uppercase;
    font-weight: 700;
    letter-spacing: .1rem;
    margin: 0;
    text-align: center;
    background: var(--color);
    color: var(--background-color);
    margin: 0;
    cursor: pointer;
    position: relative;
  }

  #toc > svg {
    display: block;
    height: 1.5em;
    width: 1.5em;
    position: absolute;
    top: 1.25rem;
    right: 2rem;
    transition: opacity .4s ease-in-out;
    color: var(--background-color);
    pointer-events: none;
    /*stroke: var(--background-color);*/
  }

  #toc > svg:first-of-type {
    opacity: 1;
  }
  #toc > svg:last-of-type {
    opacity: 0;
  }

  #toc ol > li {
    margin: 0;
    padding: .5em 0;
  }

  #toc > ol::-webkit-scrollbar-track
  {
    border-radius: none;
    border: 1px solid var(--muted-color);
  }
  
  #toc > ol::-webkit-scrollbar
  {
    width: .5rem;
  }
  
  #toc > ol::-webkit-scrollbar-thumb
  {
    border-radius: none;
    background-color: var(--muted-color);
  }
  
  #toc.open {
    transform: translateY(0);
  }
  #toc.open svg:first-of-type {
    opacity: 0;
  }
  #toc.open svg:last-of-type {
    opacity: 1;
  }

  #content {
    margin-right: 0;
  }
}

.doc img, .doc svg {
  max-height: 25vh;
  margin-right: var(--spacing);
}

.doc img:last-of-type {
  margin-right: 0;
}

#content .cards img,
#content .locations img {
  cursor: zoom-in;
}

.doc {
  margin-bottom: 2rem;
}

#content h1, #content h2, #content h3, #content dt {
  width: fit-content;
}

#content h1, #content h2 {
  line-height: .85;
}

#content h1.title {
/*  text-align: center; */
  width: 100%;
  font-weight: 900;
  font-size: 3rem;
  color: var(--secondary);
  text-transform: uppercase;
  font-family: unset;
  margin-top: .5rem;
  margin-bottom: 2rem;
  /*margin: 0;*/
  /*padding: 0;*/
  line-height: 2.5rem;
  background: rgb(168,20,214);
  background: linear-gradient(0deg, rgba(168,20,214,1) 0%, rgba(80,78,226,1) 44%, rgba(37,192,235,1) 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

#content .grid.cards {
  grid-template-columns: repeat(auto-fit, minmax(1.55in, 0.5fr));
  margin-bottom: calc(var(--spacing) * 2);
}

#content .grid.locations {
  grid-template-columns: repeat(auto-fit, minmax(2in, 1fr));
  margin-bottom: calc(var(--spacing) * 2);
}

h1, h2, h3, dt {
  scroll-margin-top: 7rem;
}

.toc h1:not(.title) {
  margin-top: 2rem;
  margin-bottom: 2rem;
}

.toc h2 {
  margin-top: 2rem;
  margin-bottom: 2rem;
}

.toc hgroup>*:last-child {
  --color: var(--muted-color);
  --font-weight: unset;
  font-family: unset;
  margin-top: .5rem;
  margin-bottom: 2rem;
  line-height: 1;
}

.toc hgroup>*:first-child {
  margin-bottom: 0;
}

.cards > span,
.locations > span {
  position: relative;
}

.cards > span > div,
.locations > span > div {
  box-sizing: content-box;
  font-size: .75rem;
  position: absolute;
  line-height: 1.25rem;
  min-width: 1.75rem;
  border-radius: 5px;
  border: 1px solid var(--color);
  background: var(--background-color);
  color: var(--color);
  font-weight: bold;
  text-align: center;
  bottom: 0;
  left: 50%;
  transform: translate(-0.825rem, 0.5rem);
}

.cards > span > span,
.locations > span > span {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  color: rgba(0, 0, 0, 0);
  font-size: 1rem;
  text-transform: uppercase;
  pointer-events: none;
}

.buttons {
  margin-top: 2rem;
  margin-bottom: 2.5rem;
  text-align: center;
  clear: both;
}

.buttons a {
  margin-right: 1em;
}

.buttons a:last-child {
  margin-right: 0;
}

img.bign {
  border-radius: 5px;
  margin-bottom: 2rem;
}

b, strong {
  font-weight: 800;
}

div.line-block + p {
  margin-top: 2rem;
}

p:last-of-type {
  margin-bottom: var(--spacing);
}

section>*:last-child {
  margin-bottom: 0;
}

section:last-of-type {
  margin-bottom: 0;
}

img.illustration {
  max-width: 50%;
  float: right;
  margin: 0 0 2rem 2rem;
  border-radius: 5px;
}

@media (max-width: 640px) {
  #content h1.title {
    line-height: 2.5rem;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
  }
  img.illustration {
    max-width: 100%;
    margin: 0 0 2rem 0;
  }
}

/* later

.toc h1:not(.title),
h1:not(.title) {
  margin-bottom: 0;
}

h1+p {
  margin-top: 2rem;
}

h1+p:has(>em) {
  margin-top: 0;
}

h1+p>em {
  font-style: normal;


*/

nav ol:last-of-type,
nav ul:last-of-type {
  margin-right: 0;
}

a[role=button] {
  border-width: 2px;
  border-radius: 5px;
  padding-left: calc(var(--spacing) * 1.5);
  padding-right: calc(var(--spacing) * 1.5);
}

a[role=button].secondary {
  border-color: var(--primary);
  color: var(--primary);
  background: transparent;
}

main.container-fluid,
main.container-hybrid {
  padding-bottom: 2rem;
}

.grid {
  grid-column-gap: 1rem;
  grid-row-gap: 1rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  margin: 0;
}

ul, ol {
  margin-bottom: 2rem;
}

li p {
  margin-top: 0;
  margin-bottom: 0;
}

ul > li, ol > li {
  margin-top: 0;
  margin-bottom: 1rem;
}

nav ul > li,
nav ol > li {
  margin-bottom: 0;
}

td, th {
  padding: 1rem;
}

thead > tr > th,
thead > tr > td {
  padding-top: 0;
}

tbody > tr:last-child > th,
tbody > tr:last-child > td {
  padding-bottom: 0;
  border: none;
}

td:first-child,
th:first-child {
  padding-left: 0;
}

td:last-child,
th:last-child {
  padding-right: 0;
}

@media (max-width: 576px) {
  .container-hybrid {
    /*max-width: 510px;*/
    padding-right: var(--block-spacing-horizontal);
    padding-left: var(--block-spacing-horizontal);
  }
  #content .grid.locations {
    grid-template-columns: 1fr 1fr !important;
  }

  a[role=button] {
    padding-left: calc(var(--spacing) * 1.0);
    padding-right: calc(var(--spacing) * 1.0);
    margin-bottom: 1em;
    display: block;
  } 

  .buttons a {
    margin-right: 0;
  }

  nav a[role=button] {
    display: inline;
  }

  body>footer li {
    display: block;
    padding: 0.5rem 0;
  }
  
  .grid {
    grid-column-gap: 1rem;
    grid-row-gap: 1rem;
    display: grid;
    grid-template-columns: 1fr;
    margin: 0;
  }
  
}

@media (min-width: 768px) {
  .container-hybrid {
    padding-right: calc(50% - 350px);
    padding-left: calc(50% - 350px);
    /*max-width: 700px;*/
  }
}

@media (min-width: 992px) {
  .container-hybrid {
    padding-right: calc(50% - 460px);
    padding-left: calc(50% - 460px);
    /*max-width: 920px;*/
  }
}

@media (min-width: 1200px) {
  .container-hybrid {
    padding-left: calc(50% - 565px);
    padding-right: calc(50% - 565px);
    /*max-width: 1130px;*/
  }
  #content .grid.locations {
    grid-template-columns: repeat(auto-fit, minmax(2.5in, 1fr)) !important;
  }
}

th {
  font-weight: 700;
}

h1 > * {
  margin-top: 0;
}

hr {
  border-top: 1rem solid var(--muted-border-color);
  margin: 0;
}

p {
  margin-bottom: 2rem;
}

ol > li > p:last-of-type,
ul > li > p:last-of-type {
  margin: 0;
}

hgroup {
  margin-bottom: 2rem;
}

