/*** variables used throughout the page ***/
:root {
  --animationDuration: 0.3s;
  --error-red: #950000;
}

/*** css3 animations used within the page (css3 utilizes GPU is used vs CPU, so, smoother, faster, etc.) ***/
/* fade in css3 animation  */
@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

.formButton {
  width: 8em;
  margin-right: 2em;
}

form li img {
  cursor: pointer;
}

/* Custom code for demo */
html,
button,
input,
select,
textarea {
  font-family: "Segoe UI", Frutiger, "Frutiger Linotype", "Dejavu Sans",
    "Helvetica Neue", Arial, sans-serif;
}

body {
  margin: 0;
}

a {
  color: #087a96;
}

h2,
h4 {
  margin-top: 0;
}

.form {
  background: #ffffff;
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.4);
  margin: 20px auto;
  padding: 1em;
  max-width: 80%;
}

/*** STAGES (i.e., encircled numbers) ***/
.stages {
  font-size: 0;
  text-align: justify;
}

.stages:after {
  content: "";
  display: inline-block;
  font-size: 0;
  text-align: justify;
  width: 100%;
}

.long-description {
  font-size: 0.8rem;
  margin: 0.5rem 0;
  color: #000;
}

/*** DO NOT display the actual radio buttons ***/
input[type="radio"] {
  display: none;
}

.panels div {
  display: none;
}

/*** initial state of panels ***/
#one:checked ~ .stages label:after,
#two:checked ~ .stages label[for="one"] ~ label:after,
#three:checked ~ .stages label[for="two"] ~ label:after,
#four:checked ~ .stages label[for="three"] ~ label:after {
  display: none;
}

/*** as radio buttons pertained to panels are selected, fade them in ***/
#one:checked ~ .panels [data-panel="one"],
#two:checked ~ .panels [data-panel="two"],
#three:checked ~ .panels [data-panel="three"] {
  display: block;
  animation-timing-function: ease-in-out;
  transform-origin: bottom center;
  animation-name: fadeIn;
  animation-duration: var(--animationDuration);
}

/*** STAGES ***/
.stages label {
  background: #ffffff;
  border: solid 5px #c0c0c0;
  border-radius: 50%;
  display: inline-block;
  font-size: 0;
  font-weight: 700;
  height: 50px;
  line-height: 50px;
  position: relative;
  text-align: center;
  vertical-align: top;
  width: 50px;
  z-index: 1;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

.stages label:after {
  content: "\2713";
  color: #087a96;
  display: inline-block;
  font-size: 16px;
}

.stages label.active {
  border-color: purple !important;
}

#one:checked ~ .stages label[for="one"],
#two:checked ~ .stages label[for="two"],
#three:checked ~ .stages label[for="three"] {
  border-color: #087a96;
}

#one:checked ~ .stages label,
#two:checked ~ .stages label[for="one"] ~ label,
#three:checked ~ .stages label[for="two"] ~ label,
#four:checked ~ .stages label[for="three"] ~ label {
  font-size: 1rem;
}

/*** PROGRESS ***/
.progress > span {
  background: #c0c0c0;
  display: inline-block;
  height: 5px;
  transform: translateY(-2.75em);
  transition: var(--animationDuration);
  width: 0;
}

#two:checked ~ .progress span {
  width: calc(98% / 2 * 1);
  margin: 1% 0 0 1%;
}

#three:checked ~ .progress span {
  width: calc(98% / 2 * 2);
  margin: 1% 0 0 1%;
}

/* hot tub section */
.data-panel > ul > li > input[type="radio"] {
  display: block;
  height: 20px;
  width: 20px;
}

.data-panel > ul > li {
  list-style: none;
}

.selected {
  border: solid 1px #950000;
  animation-timing-function: ease-in-out;
  transform-origin: bottom center;
  animation-name: fadeIn;
  animation-duration: var(--animationDuration);
}

.data-panel-li {
  margin-top: 10px;
}

.data-panel-li img {
  cursor: pointer;
}

.data-panel-li > label {
  /*margin-left: 5px;*/
}

/* product section */
#product {
  background: #ffffff;
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.4);
  margin: 20px auto;
  padding: 1em;
  max-width: 80%;
  display: none;
}

#product .product-block-container {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: flex-start;
}

#product .product-block {
  width: calc(33% - 60px);
  border: 1px solid #eee;
  margin: 10px;
  padding: 20px;

  display: none;
  opacity: 0;
}

#product .product-block .product-image {
  text-align: center;
  margin: 0 0 15px 0;
}

#product .product-block .product-image img {
  max-height: 250px;
  width: auto;
  max-width: 100%;
}

#product .product-block .product-title a {
  color: #666;
}

#product .product-block .product-paragraph {
  color: #666;
}

input[name="primary_use"],
input[name="number_of_people"],
input[name="factor"] {
  float: left;
}

/*** PANELS ***/
.panels div {
  border-top: solid 1px #c0c0c0;
  margin: 1em 0 0;
  padding: 1em 0 0;
}

input {
  box-sizing: border-box;
  display: block;
  padding: 0.4em;
  width: 100%;
}

button {
  background-color: #087a96;
  border: 0;
  color: white;
  cursor: pointer;
  font-weight: 700;
  margin: 1em 0 0 0;
  padding: 1em;
}

button:hover {
  opacity: 0.8;
}

.banner-image img {
  display: block;
  width: 100%;
  height: 500px;
  margin-bottom: 15px;
  object-fit: cover;
}

.banner-text {
  width: 80%;
  margin-left: 10%;
}

.panels input[type="radio"] {
  display: none !important;
}

.panels .flex-box {
  display: flex;
  flex-wrap: wrap;
}

.panels .flex-box > li {
  margin: 10px;
  font-size: 12px;
  text-align: center;
}

.panels .flex-box label {
  width: 200px;
  display: block;
}
.panels .flex-box img {
  max-width: 100%;
  height: 200px;
}

.panels .flex-box label {
  padding: 2px;
  height: auto;
  border: 2px solid;
  border-color: transparent;
  width: 200px;
}

.panels .flex-box label.selected-label {
  border: 2px solid #000;
}

.product-block a sup {
  display: inline-block;
  text-decoration: none;
}

.error-container {
  border: solid 1px var(--error-red);
  font-style: italic;
  color: var(--error-red);
  padding: 10px;
  text-align: center;
  display: none;
}

.form-container {
  padding-bottom: 10%;
}

.responsive {
  width: 30%;
  height: auto;
}

/*** RESPONSIVE STYLES ***/
@media screen and (max-width: 768px) {
  .banner-image img {
    height: 100%;
  }
}

@media screen and (max-width: 768px) {
  /*.form, #product {
          max-width: 100%;
          min-width: auto;
      }*/

  .panels .flex-box label {
    width: 160px;
  }

  .panels .flex-box label img {
    width: 160px;
    height: 160px;
  }

  #product .product-block {
    width: calc(100% - 40px);
  }
}

@media screen and (max-width: 667px) {
  .panels .flex-box label {
    width: 200px;
  }
  .panels .flex-box label img {
    width: 200px;
    height: 200px;
  }
}

@media screen and (max-width: 412px) {
  .panels .flex-box {
    flex-direction: column;
    justify-content: center;
  }
  .panels .flex-box > li {
    margin: 10px 10px 10px 0;
  }

  .panels .flex-box li {
    width: 50%;
  }
}

.results {
  max-width: 81%;
  margin: 0 auto;
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}

.results-column {
  background-color: #eeeeee;
  border: outset 2px;
  color: #087a96;
  padding: 1rem;
  height: 30rem;
  display: flex;
  flex-flow: column nowrap;
  text-align: center;
}

.result-image {
  width: 100%;
  height: auto;
  margin-bottom: 1rem;
}

/* Screen larger than 600px? 2 column */
@media (min-width: 600px) {
  .results {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* Screen larger than 900px? 3 columns */
@media (min-width: 900px) {
  .results {
    grid-template-columns: repeat(4, 1fr);
  }
}
