/* latin - caveat */
@font-face {
  font-family: 'Caveat';
  font-style: normal;
  font-weight: 400;
  src: url(caveat.woff2) format('woff2');
}

:root
{
  --handwritten: Caveat, Verdana;
  /*--handwritten: 'Segoe Print', 'Bradley Hand', Chilanka, TSCu_Comic, casual, cursive, Verdana;*/
}

html
{
  height: 100%;
  font-family: Verdana;
  color: #444;
}

body
{
  height: 100%;
  margin: 0px;
  background-color: #FEFEFE;
}

body::before
{
  content: "";
  display: block;
  background: url(../Images/mdcloud.svg) center/contain no-repeat fixed;
  position:fixed;
  inset:0;
  opacity: 0.05;
  filter:blur(min(2vw,2vh));
  z-index:-1;
  transform: rotate(-10deg);
}

*
{
  box-sizing: border-box;
}

h1
{
  font-size:xx-large;
  font-family:var(--handwritten);
  color: #ac0000;
  padding:0px;
  margin:0px;
  text-align: center;
}

div.pageItemHolderAlternate *
{
  color: #eee;
}

h2
{
  font-size:x-large;
  color: #ac0000;
  background-color: #DDD;
  padding: 5px;
  margin-top: 40px;
}

li
{
  margin: 20px 0px;
}

li::marker
{
  padding-right: 20px;
}

div.page
{
  height: 100%;
  display: flex;
  flex-direction: column;
}

div.headerPlaceholder,
div.header
{
  display:flex;
  padding: 20px;
  justify-content: space-between;
  background-color: #EEE;
  font-size:35pt;
  color: #ac0000;
  font-family:var(--handwritten);
  align-items: center;
  position: fixed;
  width: 100%;
  top: 0px;
  z-index:11;
  gap: 10px;
}

div.headerPlaceholder
{
  position: static;
}

div.headerPlaceholder > *
{
  opacity: 0;
}

div.headerPlaceholder img,
div.header img
{
  max-width: 100%;
  height: auto;
  display: block;
}

div.body
{
  flex-grow: 1;
}

div.pageKeywordsHolder,
div.pageItemHolder
{
  background-color: #EEE;
  margin-top: -1px; /* fix rounding errors*/
  padding: 5px 0px;
}

div.pageItemHolder > *:not(.pageItem),
div.pageItem > div.error,
div.pageItem > div.success,
div.pageItem > *
{
  padding-left: max(5px, calc((100% - 1000px)/2));
  padding-right: max(5px, calc((100% - 1000px)/2));
}

div.pageItemWithImage
{
  padding: 5px;
  display: flex;
  max-width:1000px;
  margin: 0px auto;
  align-items: center;
}

div.pageItemWithImage > img
{
  box-shadow: 1px 1px 5px -1px #ac0000FF;
  z-index: 1;
  width: 50%;
  flex-shrink: 0;
  border-radius: 0px 15px 225px 15px/0px 225px 15px 255px;
  transition: transform 1s, z-index 0s ease 0.5s;
  transform-origin: left center;
}

@keyframes fadeInUp {
  from {transform: translate(0,80px);}
  to {transform: translate(0,0); opacity: 1;}
}

div.pageItemWithImage > img:hover
{
  transform: scale(2);
  z-index: 20;
  transition: transform 1s, z-index 0s;
}

div.pageItemHolder:hover div.pageItemWithImage > img
{
  animation: boxShadowActive 10s linear 0s infinite normal, boxRadiusActive 30s linear 0s infinite normal;
}

@keyframes boxShadowActive {
  0%, 30%, 100% {box-shadow: 1px 1px 5px -1px #ac0000FF;}
  10% {box-shadow: 1px 1px 8px -1px #ac0000FF;}
  20% {box-shadow: 1px 1px 5px -1px #ac000066;}
}

@keyframes boxRadiusActive {
  0%, 100% {border-radius: 0px 15px 225px 15px/0px 225px 15px 255px;}
  25% {border-radius: 15px 0px 15px 225px/255px 0px 225px 15px;}
  50% {border-radius: 225px 15px 0px 15px/15px 255px 0px 225px;}
  75% {border-radius: 15px 225px 15px 0px/225px 15px 255px 0px;}
}

div.pageItemImage
{
  width: 50%;
  flex-shrink: 0;
  text-align: center;
}

div.pageItemImage img,
div.pageItemImage svg
{
  filter: drop-shadow( 5px 5px 2px rgba(0, 0, 0, .2));
  max-width: 100%;
}

div.pageItemHolder:hover div.pageItemImage svg,
div.pageItemHolder:hover div.pageItemImage img
{
  animation: dropShadowActive 10s linear 0s infinite normal;
}

@keyframes dropShadowActive {
  0%, 30%, 100% {filter: drop-shadow( 5px 5px 2px rgba(0, 0, 0, .2));}
  10% {filter: drop-shadow( 5px 5px 2px rgba(0, 0, 0, .3));}
  20% {filter: drop-shadow( 5px 5px 2px rgba(0, 0, 0, .1));}
}

div.pageItemWithImage > ul
{
  list-style-type: none;
  margin: 0px;
  padding: 25px;
  user-select: none;
}

div.pageItemWithImage > ul > li
{
  padding: 5px;
  color: #666;
}

div.pageItemWithImage > ul > li:hover
{
  color: inherit;
}

div.pageItemFrame > :first-child,
div.pageItemFrame > :last-child
{
  position: relative;
  z-index:1;
}

a.pageSeparatorImage
{
  display: block;
  height: 30vh;
  height: min(40vh, 30vw);
  /*background-position: 0px 120px;
  background-attachment: fixed;*/
  background-size: 100%;
  margin-top: -25px;
  margin-top: max(-2vw, -25px);
  margin-bottom: max(-2vw, -25px);
  opacity: 0.2;
  position: relative;
}

@media only screen and (max-width: 768px) {
  /* For mobile phones: */
  div.pageItemImage,
  div.pageItemWithImage > img
  {
    width: 100%;
  }

  div.pageItemWithImage
  {
    align-items: stretch;
    flex-direction: column;
  }

  div.pageItemWithImage > img:hover
  {
    transform: none;
    z-index: 0;
  }
}

div.pageKeywordsHolder
{
  background-color: #ac0000;
}

div.pageKeywords
{
  display: flex;
  justify-content: space-evenly;
  font-family:var(--handwritten);
  color: #eee;
  font-size: xx-large;
  font-weight: bold;
  flex-wrap: wrap;
}

div.pageKeywords > span
{
  padding: 5px;
}

div.footer
{
  background-color: #EEE;
  padding: 5px;
  margin-top:-1px;
}

div.paymentMethods
{
  padding: 20px;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 20px;
}

div.centerOnPage > *
{
  max-width: 100%;
}

em
{
  font-family:var(--handwritten);
  font-size: larger;
  font-style: normal;
  color: #ac0000;
  font-weight: bold;
}

svg.break
{
  height:2vw;
  height:min(2vw, 25px);
  display:block;
  width:100%;
}

input:not([type=number]):not([type=range])
{
  border: 0px;
  border-bottom: 1px solid #DDD;
  outline:none;
  font-family: Arial;
  color: #444;
  background-color: #EEE;
  padding-bottom:1px;
}
input:hover:not([type=number]):not([type=range])
{
  border: 0px;
  border-bottom: 1px solid #CCC;
}
input:active:not([type=number]):not([type=range]),
input:focus:not([type=number]):not([type=range])
{
  border: 0px;
  padding-bottom:0px;
  border-bottom: 2px solid #ac0000;
}

input[type=range]
{
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  height: 15px;
  border-radius: 5px;
  background: #f9f9f9;
  outline: none;
  transition: background .2s;
}

input[type=range]:hover
{
  background: #FEFEFE;
}

input[type=range]::-webkit-slider-thumb
{
  -webkit-appearance: none;
  appearance: none;
  width: 25px;
  height: 25px;
  border-radius: 50%;
  background: #ac0000;
  cursor: pointer;
  border: 0px;
}

input[type=range]::-moz-range-progress
{
  background: #ac0000;
  height: 15px;
  border-radius: 5px;
}

input[type=range]::-moz-range-thumb
{
  appearance: none;
  width: 25px;
  height: 25px;
  border-radius: 50%;
  background: #ac0000;
  cursor: pointer;
  border: 0px;
}

a:not(.plain):not(.button):not(.help)
{
  color: #ac0000;
  text-decoration: none;
  background-image: linear-gradient(to right, transparent 30%, #ac0000 30%, #ac0000 70%, transparent 70%);
  background-position: bottom;
  background-size: 10px 1px;
  background-repeat: repeat-x;
  transition: text-shadow 0.25s;
}

a:not(.plain):not(.button):not(.help):focus-visible,
a:not(.plain):not(.button):not(.help):hover
{
  background-image: linear-gradient(to right, #ac0000 0%, #ac0000 100%);
  outline:none;
  text-shadow: 1px 1px 2px #BBB;
}

a.help
{
  display: block;
  position: fixed;
  background-color: #ac0000;
  font-family:var(--handwritten);
  color: #eee;
  font-size: 30px;
  font-weight: bold;
  right:0px;
  bottom: 5%;
  width:50px;
  height:50px;
  z-index: 10;
  transition: all 1s cubic-bezier(0, 0, 0, 1);
  white-space: nowrap;
  box-shadow: 1px 1px 5px -1px #ac000000;
  cursor: pointer;
  text-decoration: none;
}

span.helpIcon
{
  width: 50px;
  padding:7px 0px 0px 13px;
  display: inline-block;
}

a.help:hover
{
  width: 150px;
  box-shadow: 1px 1px 5px -1px #ac0000FF;
}

/* form */
div.form
{
  display: flex;
  flex-direction: column;
}

div.form > div:nth-child(1)
{
  display: grid;
  grid-template-columns: 0fr 1fr;
  grid-gap: 10px 5px;
  align-items: baseline;
}

div.form > div:nth-child(2)
{
  margin-top: 20px;
}

div.form-fullField
{
  grid-column-start: span 2;
}

@media only screen and (max-width: 480px) {
  div.form > div:nth-child(1)
  {
    grid-template-columns: 1fr;
  }

  div.form-fullField
  {
    grid-column-start: span 1;
  }

  div.form label
  {
    padding-top: 10px;
    display: block;
  }
}

/* button */
a.button,
button
{
  border: 1px solid #ac0000;
  padding: 5px;
  background-color: white;
  font-family: Arial;
  cursor: pointer;
  color: #ac0000;
  outline: none;
  white-space: nowrap;
  text-decoration: none;
  transition: background-color 1s, color 1s, box-shadow 0.25s;
}
a.button:first-of-type,
button:first-of-type
{
  border-top-left-radius: 3px;
  border-bottom-left-radius: 3px;
}
a.button:last-of-type,
button:last-of-type
{
  border-top-right-radius: 3px;
  border-bottom-right-radius: 3px;
}
a.button:nth-of-type(n+2),
button:nth-of-type(n+2)
{
  margin-left:-1px;
}
a.button:focus-visible,
a.button:hover,
button:focus-visible,
button:hover
{
  background-color: #ac0000;
  color: white;
  box-shadow: 2px 2px 10px #DDD;
}
a.button:active,
button:active
{
  background: linear-gradient(10deg, #cc0000 0%, #ac0000 100%);
  color: white;
  box-shadow: 2px 2px 10px #AAA;
}
a.button.highlight,
button.highlight
{
  background-color: #ac0000;
  color: white;
}
a.button.highlight:focus-visible,
a.button.highlight:hover,
button.highlight:focus-visible,
button.highlight:hover
{
  box-shadow: 2px 2px 10px #ac0000;
}

/* message */
div.success
{
  background-color: #1e8e1e;
  color: #FEFEFE;
  padding: 5px;
  margin-top:5px;
  margin-bottom:5px;
}

div.error
{
  background-color: #ac0000;
  color: #FEFEFE;
  padding: 5px;
  margin-top:5px;
  margin-bottom:5px;
}
