section#productgrid {
  display: contents;
} 

div.productgrid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  grid-column-gap: 20px;
  grid-row-gap: 20px;
}


div.productgrid div.hm-tile {
  position: relative;
  border-radius: 8px;
  background-size: 110% !important;
  transition: all 0.2s;
  box-shadow: 0px 0px 16px 1px #4442;

}


div.shopprogress {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  grid-column-gap: 20px;
  grid-row-gap: 20px;
  margin-top: 20px;

}

div.shopprogress .tile a:not(.button) {
   color: #005995;
   text-decoration: underline;
}

div.shopprogress .tile a:not(.button):hover {
    background-color: lightblue;
}

div.tile.cart {
  margin-top: 30px;
}


div.shopprogress .tile {
   position: relative;
}

div.shopprogress div.tile h3 {
   font-size: 1.2em;
   text-align: center;
   background: url(/localmedia/img/strich-schwarz-kurz.png) bottom center no-repeat;
   background-size: 6em;
   padding-bottom: 1rem;
   width: 100%;
}

div.shopprogress div.tile div.indicator {
   background-color: lightgray;
   width: 36px;
   height: 36px; 
   border-radius: 18px;
   text-align: center;
   line-height: 33px;
   position: absolute;
   top: -18px;
   color: white;
   font-family: ott_title !important;
}

div.shopprogress div.tile div.indicator.complete {
   background-color: lightgreen;
}


div.shopprogress div.instructions {
   margin-bottom: 0.5em;
}

div.shopprogress div.instructions:after {
    content: ": ";
}


div.shopprogress div.tile div.buttonholder {
   position: absolute;
   bottom: 1em;
   width: 100%;
   left: 0;
}

div.shopprogress div.tile div.buttonspacer {
   display: block;
   height: 3.5em;
}

div.hm-tile {
   min-height: 150px;
   border: 1px solid #ccc;
   padding: 16px;
   position: relative;
   margin-top: 90px;
   padding-top: 30px;
}

div.hm-tile:before {
  content: "";
  display: block;
  position: absolute;
  margin-top: -30px;
  margin-left: -16px;
  background-size: contain;
  width:  45px;
  height: 45px;
  background-position: top left;
  background-repeat: no-repeat;
}

div.hm-tile.konfitueren:before, div.hm-tile.lieblingskonfi:before {
  background-image: url(/files/layout/tile-corner-blue.png);
}

div.hm-tile.gelees:before {
  background-image: url(/files/layout/tile-corner-red.png);
}

div.hm-tile.light:before {
  background-image: url(/files/layout/tile-corner-grey.png);
}

div.hm-tile.saucen:before {
  background-image: url(/files/layout/tile-corner-green.png);
}




div.headerimage img {
  margin: auto 0;
  height: 120px;
  width: 120px;
  position: absolute;
  top: -90px;
  left: calc(50% - 60px);
}


div.headerimage.search img {
   top: -60px; 
}


div.hm-tile.search div.title {
  height: 3.5rem;
}


div.hm-tile.search div.title h3.underline {
  margin-bottom: 0;
}

div.hm-tile div.title {
   height: 5.5rem;
   position: relative;
}


div.hm-tile h3.underline {
   font-size: 1.2em;
   text-align: center;
   background: url(/localmedia/img/strich-schwarz-kurz.png) bottom center no-repeat;
   background-size: 6em;
   padding-bottom: 1rem;
   position: absolute;
   bottom: 0px;
   width: 100%;
}

div.children {
  top: 140px;
  width: 100%;
  min-height: 130px;
}

div.child {
  display: grid;
  grid-template-columns: 60px 1fr 42px 42px;
  grid-column-gap: 5px;
  grid-row-gap: 10px;
  border-top: 1px solid #aaa;
  line-height: 2em;
}

div.child:last-child {
  border-bottom: 1px solid #aaa;
}

div.child span {
}

div.child span.price {
  text-align: right;
  padding-right: 7px;
}

div.buttonholder, div.buttonbar {
   height: 2em;
   bottom: 0.2em;
   text-align: center;
   margin-top: 1.5em;
}

input.amountfield {
  border: 0;
  width: 35px;
  background-color: #DDD;
  text-align: center;
  height: 1.8em;
  position: relative;
  margin: 0;
}


a.addtocart {
   background: url(/localmedia/sketch/basket.png) top left no-repeat;
   background: url(/files/layout/korb.png) left center no-repeat;
   background-size: contain;
   height: 1.9em;
   width: 1.5em;
   display: inline-block;
   margin-bottom: -0.3em;
}

a.addtocart:not(.disabled):hover {
  position:relative;
  top: 1px;
  left: 1px;
}

a.addtocart.disabled {
   opacity: 0.3;
   cursor: not-allowed;
}

















/* Filter box */


div.filteritem {

}

div.filtercheckbox, div.colorchooser div.color {
   display: inline-block;
   margin-right: 0.5em;
   width: 1em;
   height: 1em;
   border: 1px solid black;
}

div.filteritem.active div.filtercheckbox {
  background-color: black;
}

div.filteritem div.filtercheckbox:after {
  content: "";
  display: none;
  border: 2px solid white;
  width: 100%;
  height: 100%;
}

div.filteritem.active div.filtercheckbox:after {
  display: block;
}


div.filteritem:not(.active):hover div.filtercheckbox:after {
  display: block;
  border: 1px solid black;
}

div.filteritem.active:hover div.filtercheckbox {
    border: 1px solid #777;
}

/* Color Range search */

input#shopfilter {
  width: 100%;
  margin-top: 0.5em;
  text-align: center;
}


div.colorchooser {
  white-space: nowrap;
  text-align: center;
  margin-top: 0.5em;
  padding-top: 0.5em;
  padding-bottom: 0.5em;
  border-top: 1px solid #CCC;
  border-bottom: 1px solid #CCC;
}



div.colorchooser div.color {
   margin-right: 0px;
   border: 1px solid #444;
}

div.colorchooser div.color:after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
}

div.colorchooser div.color:hover, div.colorchooser div.color.active {
  border: 1px dashed black;
}

div.colorchooser div.color:hover:after, div.colorchooser div.color.active:after {
  border: 1px solid white;
}

div.color[data-color="0"]:after { background: #DDD url(/files/layout/checkboxstriker.png) center center ; }
div.color[data-color="1"]:after { background-color: red; }
div.color[data-color="2"]:after { background-color: orange; }
div.color[data-color="3"]:after { background-color: yellow; }
div.color[data-color="4"]:after { background-color: lightgreen; }
div.color[data-color="5"]:after { background-color: green; }
div.color[data-color="6"]:after { background-color: #469; }
div.color[data-color="7"]:after { background-color: #a48; } /* #937; } */
div.color[data-color="8"]:after { background-color: purple; }
div.color[data-color="9"]:after { background-color: #202; }





/*  Product details in modal dialog */

#modal, div.shopmodal {
 position: Fixed;
 top: 0;
 right: 0;
 bottom: 0;
 left: 0;
 background-color: rgba(210, 210, 210, 0.7);
 z-index: 99;
 backdrop-filter: blur(4px);
}

div.productdetails {
  max-width: 700px;
  min-height: 400px;
  position: relative;
  margin: 5em Auto;
  padding: 5px 20px 13px 20px;
  border-radius: 10px;
  background-color: white;
  box-shadow: 0px 0px 16px 1px #4446;
  padding-bottom: 1em;
}

div.productdetails div.largeimage {
  float: right;
} 

div.productdetails div.largeimage img {
  width: 300px;
}

div.productdetails div.children {
  width: 320px;
}

div.productdetails div.child img {
   width: 100px;
}

div.productdetails div.child {
   line-height: 100px;
}


div.productdetails div.description {
  margin-top: 1em;
}

div.productdetails  h2{
   text-align: center;
   background: url(/localmedia/img/strich-schwarz-kurz.png) bottom center no-repeat;
   background-size: 9em;
   width: 100%;
}

div.productdetails div.buttonholder {
   margin-top: 2em;
   width: 100%;
}

div.productdetails div.child {
  grid-template-columns: 100px 50px 1fr 42px 42px;
}

@media (max-width: 700px) {
  div.productdetails {
     margin: 0 0;
     position: absolute;
     padding-top: 80px;
     top: 0px;
     right: 0;
     bottom: 0;
     left: 0;
     overflow-y: scroll;
  }
  div.productdetails div.largeimage img {
      width: 200px;
  }
  div.productdetails div.largeimage {
     float: none;
     text-align: center;
  } 
  div.productdetails div.children {
     width: 100%;
  }
}




div.stock {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 8px;
  margin-left: 4px;
  margin-bottom: 0.3em;
}

table.cart div.stock {
  margin-bottom: 0;
} 

div.in.stock {
   background-color: green;
} 

div.low.stock {
   background-color: yellow;
}

div.verylow.stock {
   background-color: orange;
}

div.out.stock {
   background-color: red;
}


