@import url(https://fonts.googleapis.com/css?family=Open+Sans);

/* TODO: make text overflow on radio buttons intent inline with the rest of the answer (ex. "(Questioning)" answers on small screens)
TODO: line up "other" answer with answers (see LCI-252)
TODO: add pagination on survey */
* { 
  -webkit-tap-highlight-color: transparent; 
}
a, article, div, h1, h2, h3, h4, h5, h6, img, section, span {
  -moz-user-select: none; 
  -webkit-user-select: none; 
}
input, select, textarea {
  -webkit-appearance: none;
  -webkit-border-radius:0;
  border-radius: 0;
}
/* css */
body{
  background-color: #FCFCFC;
  font-family: 'Open Sans', sans-serif;
  color: #33414F;
}
input, label, ul, textarea{
  -webkit-box-flex: 1;
      -ms-flex: 1 1 0px;
          flex: 1 1 0;
}
label{
  margin-bottom: 0;
}
ul{
  list-style: none;
}
.list-group>li{
    cursor: pointer;
}
h2{
    font-weight: 600;
    font-size: 1rem;
}
h2 img{
    height: 4.5rem;
    width: 4rem;
}
*:focus {
  outline: none;
}
.left-border{
    border-left: 3px solid #3660E3;
    padding: 5px 8px;
}
.red{
    color: #bb1e2e;
}

/* bootstrap edits */
.container{
    margin-top: 15vh;
    border-radius: 8px;
    box-sizing: border-box;
} 
textarea.form-control{
    width: 95vw;
    margin: 0 auto;
}
.list-group {
    border-radius: 0 !important;
}
.list-group-item{
    padding: 0;
}
.list-group-horizontal{ /* makes form strech to it's whole container */
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}
.list-group-horizontal .list-group-item{ /* keeps items relatively same size */
    -webkit-box-flex: 1;
        -ms-flex: 1 1 0px;
            flex: 1 1 0;
}
.active{
    background-color: #54C467 !important;
    border-color: #54C467 !important;	
    text-shadow: 1px 3px 3px rgba(0,0,0,0.3);
}
.alert{
    border-radius: 0;
    margin-top: 1.0rem;
    margin-bottom: 0;
}
.alert p{
    margin-top: initial;
    margin-bottom: initial;
}
.errorlist{
    margin-bottom: 0;
    padding: 0;
}
.form-control{
    margin-top: 0.5rem;
    font-size: 14px;
}
.col-10{
    padding-left: 0;
    padding-right: 0;
}

/* radio button animation */
.radio{
  cursor: pointer;
  line-height: 20px;
  margin: 15px
}
.radio .label{
    position: relative;
    display: block;
    float: left;
    margin-right: 10px;
    width: 20px;
    height: 20px;
    border: 2px solid #C8CCD4;
    border-radius: 100%;
}
.radio .label::after{
    /* the circle in the button... same circle as hover text-input too */
    content: '';
    position: absolute;
    top: 3px;
    left: 3px;
    width: 10px;
    height: 10px;
    border-radius: 100%;
    background: #54C467;
    -webkit-transform: scale(0);
        -ms-transform: scale(0);
            transform: scale(0);
    -webkit-transition: all .4s ease;
    -o-transition: all .4s ease;
    transition: all .4s ease;
    opacity: .08;
    pointer-events: none;
}
li:hover .radio .label::after{ 
    -webkit-transform: scale(3.6); 
        -ms-transform: scale(3.6); 
            transform: scale(3.6);
}
input[type="radio"]:checked + div .label,
input[type="radio"]:checked + .label{
    border-color: #ffffff;
}
input[type="radio"]:checked + div .label::after,
input[type="radio"]:checked + .label::after{
    background-color: #ffffff;
    -webkit-transform: scale(1);
        -ms-transform: scale(1);
            transform: scale(1);
    -webkit-transition: all .5s cubic-bezier(.35,.9,.4,.9);
    -o-transition: all .5s cubic-bezier(.35,.9,.4,.9);
    transition: all .5s cubic-bezier(.35,.9,.4,.9);
    opacity: 1;
}
.list-group-horizontal .list-group-item .radio{
    /* horizontal list-group button */
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    text-align: center;
}
.list-group-horizontal .list-group-item .radio .label{
    margin: 0 auto 10px auto;
}
.hidden{
  display: none;
}

/* checkbox button animation */
.checkbox{
    cursor: pointer;
    line-height: 20px;
    margin: 15px
  }
.checkbox .label{
    position: relative;
    display: block;
    float: left;
    margin-right: 10px;
    width: 20px;
    height: 20px;
    border: 2px solid #C8CCD4;
}
svg {
    fill: none;
    -webkit-transition: all .4s ease;
    -o-transition: all .4s ease;
    transition: all .4s ease;
    opacity: 0;
    margin-bottom: 5px;
}
path{
    stroke: #C8CCD4;
    stroke-width: 2.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}
li:hover svg{
    opacity: 0.8;
}
input[type="checkbox"]:checked + .label svg{
    opacity: 1;
}
input[type="checkbox"]:checked + .label path{
    stroke: #ffffff;
}
input[type="checkbox"]:checked + .label{
    border-color: #ffffff;
}
input[type="checkbox"]#tos:checked + .label path{
  stroke: #54C467;
}
input[type="checkbox"]#tos:checked + .label{
  border-color: rgb(164, 164, 165);
}
input[type="checkbox"]#is_trevor:checked + .label path{
  stroke: #54C467;
}
input[type="checkbox"]#is_trevor:checked + .label{
  border-color: rgb(164, 164, 165);
}
/* text & number input animation */
.text-input{
    width: 92vw;
    margin: 0 auto;
    position: relative;
}
.text-input input[type="text"], .text-input input[type="number"]{
    font: 15px/24px; 
    color: #333; 
    -webkit-box-sizing: border-box; 
            box-sizing: border-box; 
    letter-spacing: 1px;
    border: 0; 
    padding: 4px 0; 
    width: 100%;
    border-bottom: 1px solid #33414F; 
    background-color: transparent;
    margin: 0;
}
.text-input input[type="text"].valid,
.text-input input[type="text"]:focus,
.text-input input[type="number"].valid,
.text-input input[type="number"]:focus{
    outline: none;
}
.text-input .focus-border {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 2px;
    background-color: #3660E3;
    -webkit-transition: 0.4s;
    -o-transition: 0.4s;
    transition: 0.4s;
}
.text-input input[type="text"].valid ~ .focus-border,
.text-input input[type="text"]:focus ~ .focus-border,
.text-input input[type="number"].valid ~ .focus-border,
.text-input input[type="number"]:focus ~ .focus-border{
    width: 100%;
    -webkit-transition: 0.4s;
    -o-transition: 0.4s;
    transition: 0.4s;
}
.text-input input[type="text"] ~ label,
.text-input input[type="number"] ~ label {
    position: absolute;
    left: 1px;
    width: 100%;
    top: 7px;
    color: #33414F;
    -webkit-transition: 0.3s;
    -o-transition: 0.3s;
    transition: 0.3s;
    z-index: -1;
    letter-spacing: 0.5px;
}
.text-input input[type="text"].valid ~ label, 
.text-input input[type="text"]:focus ~ label,
.text-input input[type="number"].valid ~ label, 
.text-input input[type="number"]:focus ~ label{
    top: -16px;
    left: 0;
    font-size: 12px;
    color: #000000;
    -webkit-transition: 0.3s;
    -o-transition: 0.3s;
    transition: 0.3s;
}
/* submit button & recaptcha*/
.bottom-row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin: 1.5rem;
}
.bottom-row #recaptcha {
  margin: 0 0 1rem;
}
.bottom-row input[type=submit] {
  width: 90vw;
}
#iphone-warning {
  font-size: 0.8rem;
}

/* make horizontal list groups vertical on smaller screens */
/* TODO fix this to be mobile first */
@media only screen 
and (max-width: 768px) {
    h2 {
        font-size: 1.5rem;
      }
    .list-group-horizontal{
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
            -ms-flex-direction: column;
                flex-direction: column;
    }
    .list-group .list-group-item:first-child{
        border-radius: .25rem .25rem 0 0;
    }
    .list-group .list-group-item:last-child{
        border-radius: 0 0 .25rem .25rem;
    }
    .list-group-horizontal .list-group-item .radio{
        /* horizontal list-group button */
        display: inline-block;
        text-align: left;
    }
    .list-group-horizontal .list-group-item .radio .label{
        margin: 0 10px 0 0;
    }
    .container{
        max-width: 90%;
    }  
 }

 /* make text-inputs wider on bigger screens */
 @media only screen 
 and (min-width: 769px){
    h2 {
      font-size: 1.5rem;
    }
    .text-input{
      width: 96vw;
    }
    .bottom-row {
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
          -ms-flex-direction: row;
              flex-direction: row;
    }
    .bottom-row input[type=submit] {
      width: 100px;
    }
    .bottom-row #recaptcha {
      width: 304px;
      margin: 0;
    }
    #iphone-warning {
      display: none;
    }
 }