#substratesContainer {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
}

#stepOne, #stepTwo, #stepThree {

}

.instruction {
  font-size: 1.6em;
  margin: 16px 0px 20px 0px;
}

.numeral {
  color: black;
  background: white;
  display: inline-block;
  height: 29px;
  width: 29px;
  text-align: right;
  border-radius: 15px;
  line-height: 0.9em;
  font-size: 1.5em;
}

.substrate {
  text-align: center;
  font-size: 1em;
  cursor: pointer;
  padding: 35px 0px;
  background: transparent;
}

.substrateThumb {
    width:100%;
    background-position: center;
    background-size:contain;
    background-repeat: no-repeat;
    margin-bottom: 10px;
}

.substrateThumb:after {
  content: "";
  display: block;
  padding-bottom: 100%;
}

.substrate:hover, .substrate.selected {
  background:#d22e2e;
}

#substratesContainer {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr;
}

#dropZone {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  grid-template-rows: 30px 1.2fr 0.8fr;
}

#substrateColorsTitle, #designColorsTitle {
  text-align: left;
  font-size: 1.4em;
  margin-bottom: 5px;
}

#substrateColors, #designColors, #substrateColorsTitle {
  text-align: left;
  grid-column: 1 / 3;
}

#substrateColors {
  font-size:0em;
}

.substratecolor {
  display: inline-block;
  width: 46px;
  height: 46px;
  border-radius: 0;
  cursor: pointer;
}

.substratecolor:hover, .substratecolor.selected {
  border: solid 4px #d22e2e;
}

#shirtPreview {
  grid-column: 3 / 5;
  grid-row: 1 / 4;
}

#shirtPreview > div {
  cursor:pointer;
}

#substratePreview {
  width:100%;
}

#designPreview {
  position: absolute;
  transform: translateX(-50%);
  top:17%;
  left: 50%;
  max-width:47%;
}

#designPreview.anvil-980 {
  top:17%;
  left: 50%;
  max-width:47%;
}

#designPreview.bella-6004 {
  top: 15%;
  left: 47%;
  max-width:47%;
}

#designPreview.gildan-g185 {
  top: 22%;
  left: 49%;
  max-width:47%;
}

#designPreview.gildan-g186 {
  top: 27%;
  left: 53%;
  max-width:47%;
}

#designPreview.nextlevel-n1533 {
  top: 27%;
  left: 49%;
  max-width:40%;
}

#designPreview.nextlevel-3633 {
  top: 23%;
  left: 44%;
  max-width:40%;
}

#designColorsSlider {
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  height: 25px;
  background: #d3d3d3;
  outline: none;
  border-radius: 18px;
}

#designColorsText {
}

#designColorsDisclaimer{
  font-size:0.7em;
}

.designColor {
  display: inline-block;
  width: 46px;
  height: 46px;
  border-radius: 23px;
  margin: 3px;
  cursor: pointer;
  text-align: right;
  background: white;
  color: black;
  overflow: hidden;
  font-size: 3.2em;
  line-height: 1.0em;
}

.designColor:hover, .designColor.selected {
  background:#d22e2e;
}

#uploadOverlay {
  display: block;
  position: absolute;
  background: rgba(0,0,0,0.9);
  top: -10px;
  overflow: hidden;
  text-align: center;
  padding: 20%;
  color: white;
  left: -10px;
  right: -10px;
  bottom: -10px;
  cursor:pointer;
}

#uploadOverlay.fileon {
  background: rgba(58,160,58,0.9);
}

#uploadOverlay.filegood {
  display:none;
}

#uploadOverlay > .titletext {
  font-size:1.6em;
  display:block;
  cursor:pointer;
}

#uploadOverlay > .subtext {
  font-size: 0.8em;
  display:block;
  cursor:pointer;
}

#designError {

}

#stepThree {
  display: grid;
  grid-template-columns: 40% auto;
  grid-template-rows: auto auto;
}

#stepThree .instruction {
  grid-column: 1 / 3;
  grid-row: 1;
}

#substrateForm {
  grid-row: 2;
  grid-column: 1;
}
#substrateDeets {
  text-align: left;
  padding-left: 20px;
  grid-row: 2;
  grid-column: 2;
  display: grid;
  grid-template-rows: 32px 49px 22px 45px;
  grid-template-columns: auto 155px;
  padding-left:9%;
  padding-top:12px;
}

#substrateQuantityLabel {
  grid-column: 1;
  grid-row: 1;
  font-size: 1.4em;
}

#substratePriceLabel{
  grid-column: 2;
  grid-row: 1;
  font-size: 1.4em;
}

#substratePrice {
  display: inline-block;
  font-size: 2em;
  background: #d22e2e;
  text-align: center;
  line-height: 1.6em;
}

#substrateQuantity {
  background: transparent;
  color: #fff;
  font-size: 2em;
  border: 1px solid #d22e2e;
  padding: 0px 10px;
  width: 100px;
  border-bottom-width: 2px;
}

#requestSubmit {
  color: white;
  background: #d22e2e;
  font-size: 1.4em;
  grid-column: 2;
  grid-row: 4;
  text-align: center;
  line-height: 2em;
  cursor:pointer;
}

#requestName {
  width: 49%;
  border: 0px;
  padding: 4px;
}

#requestEmail {
  width: 49%;
  border: 0px;
  padding: 4px;
  float:right;
}

#requestMessage{
  width: 100%;
  margin-top: 10px;
  height: 150px;
  border: 0px;
  padding: 4px;
}

.otherFiles {
  display: inline-block;
  vertical-align: text-top;
  text-align: left;
  grid-column: 1;
  grid-row: 4;
}

.otherFilesLabel {
  font-size:1.4em;
}

#otherFiles {
  width: 100%;
}

#pricingCalculator {
  width: 100%;
}
