<div class="passengers">
  <h1>Select number of passengers</h1>
  <div class="passenger">
    <p class="passenger__label">Adult <span>(age 12 & up)</span></p>
    <div class="passenger__stepper">
      <button type="button" class="stepper stepper__less">-</button>
      <p class="stepper__display">1</p>
      <button type="button" class="stepper stepper__more">+</button>
    </div>
  </div>
  <div class="passenger">
    <p class="passenger__label">Children <span>(age 2-11yrs)</span></p>
    <div class="passenger__stepper">
      <button type="button" class="stepper stepper__less">-</button>
      <p class="stepper__display">1</p>
      <button type="button" class="stepper stepper__more">+</button>
    </div>
  </div>
  <div class="passenger">
    <p class="passenger__label">Infant <span>(age 1-23mths)</span></p>
    <div class="passenger__stepper">
      <button type="button" class="stepper stepper__less">-</button>
      <p class="stepper__display">1</p>
      <button type="button" class="stepper stepper__more">+</button>
    </div>
  </div>
</div>
@import "susy";
@import url(https://fonts.googleapis.com/css?family=Happy+Monkey|Lemon);
html {
  box-sizing: border-box;
}

*,
*:before,
*:after {
  box-sizing: inherit;
}

body {
  font-family: "Happy Monkey";
  line-height: 1.5;
  min-width: 21.25em;
}

.passengers {
  padding: 1em;
  margin-left: auto;
  margin-right: auto;
  max-width: 60em;
}

h1 {
  font-family: 'Lemon';
  font-size: 1.5em;
  text-align: center;
  margin-bottom: 1em;
}

.passenger {
  margin-bottom: 1em;
  padding-right: 1.69492%;
}

@media screen and (min-width: 31em) {
  .passenger {
    @include span(4 of 12);
    border-right: 1px solid black;
    &:nth-child(3n) {
      @include last;
      border-right: 0;
    }
  }
}

@media screen and (min-width: 31em) {
  .passenger__label {
    text-align: center;
    margin-bottom: 1em;
  }
}
    
@media screen and (max-width: 30.99em) {
  .passenger__label {
    display: inline-block;
    vertical-align: middle;
    width: calc(100% - 10.25em);
  }
}

@media screen and (max-width: 24.5em) {
  .passenger__label span {
    display: block;
  }
}

@media screen and (min-width: 31em) and (max-width: 39.99em) {
  .passenger__label span {
    display: block;
  }
}

.passenger__stepper {
  position: relative;
  display: inline-block;
  width: 100%;
  > * {
    display: inline-block;
    vertical-align: middle;
  }
}

@media screen and (max-width: 30.99em) {
  .passenger__stepper {
    width: 10em;
  }
}

@media screen and (min-width: 31em) {
  .passenger__stepper {
    display: block;
    max-width: 14em;
    margin: 0 auto;
    
    &::after {
      content: '';
      display: block;
      clear: both;
    }
  }
}

.stepper {
  border: 0;
  outline: 0;
  cursor: pointer;
  font-size: 1.25em;
  background: black;
  color: white;
  width: 2em;
  height: 2em;
  border-radius: 50%;
  box-shadow: 0.125em 0.125em 0 0 white, 0.125em 0.125em 0 1px black;
  &:active {
    box-shadow: 0 0 0 1px white, 0 0 0 1px black;
    transform: translate(0.125rem, 0.125rem);
  }
}

.stepper__display {
  font-size: 2em;
  margin: 0 0.5em;
}

@media screen and (min-width: 31em) {
  .stepper__display {
    font-size: 5em;
    float: left;
    line-height: 1.2;
    margin: 0;
    padding-left: 1rem;
  }
  .stepper {
    position: absolute;
    right: 1rem;
  }
  .stepper__more {
    top: 0;
  }
  .stepper__less {
    bottom: 0;
  }
}
View Compiled

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

  1. https://code.jquery.com/jquery-2.2.4.min.js