/*! main.scss for RangeMe - last updated 2015.08.26 */
/**
 * 1. All units are in rems as this unit of measurement is supported in all
 *    required browsers. Media queries however use em units as rem units can
 *    be buggy in some browsers. 
 * 2. Parts of the code contained within may change before concluding 
 *    frontend development.
 *
 * ========================================================================== 
 *
 * Dependent on normalize.css - see git.io/normalize
 *
 */
#wpadminbar,
#ajax-links,
#body-classes {
  display: none !important; }

/* Webfonts */
/* ========================================================================== */
/* Functions */
/* ========================================================================== */
/* strip units from calculations */
/* Site Variables */
/* ========================================================================== */
/* Define Animation Lengths - please note this will NOT affect Javascript Animations */
/* Page Margins */
/* Break Points */
/* Mixins */
/* ========================================================================== */
/* media queries */
/* CSS box-sizing */
/* border-radius */
/* text overflow */
/* transition */
/* transform */
/* background-size */
/* no select */
/* fill-parent */
.arrow {
  width: 0.875rem;
  height: 0.625rem;
  display: inline-block;
  position: relative;
  margin-left: 0.25rem;
  -webkit-transform: translateX(0);
  -ms-transform: translateX(0);
  transform: translateX(0);
  -webkit-transform-origin: 50% 50%;
  -ms-transform-origin: 50% 50%;
  transform-origin: 50% 50%;
  -webkit-transition: transform 0.4s;
  -moz-transition: transform 0.4s;
  -ms-transition: transform 0.4s;
  transition: transform 0.4s;
  /* resolves blurry elements on webkit */ }
  .arrow svg {
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    position: absolute; }
  .arrow * {
    fill: #000; }
  .arrow.reverse * {
    fill: #fff; }

a:not(.no-arrow-effect):hover .arrow {
  -webkit-transform: translateX(0.75rem);
  -ms-transform: translateX(0.75rem);
  transform: translateX(0.75rem);
  -webkit-transform-origin: 50% 50%;
  -ms-transform-origin: 50% 50%;
  transform-origin: 50% 50%; }

/* horizontal-center */
/* Additional Resets */
/* ========================================================================== */
#js,
html,
body {
  margin: 0 !important;
  padding: 0 !important; }

body {
  background-color: white; }

article,
div,
fieldset,
figure,
form,
footer,
header,
nav,
section {
  display: block;
  position: relative;
  padding: 0;
  margin: 0;
  border: none;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box; }

a {
  outline: none !important;
  text-decoration: none;
  color: inherit; }

h1,
h2,
h3,
h4,
h5,
h6,
li,
p,
ol,
ul,
blockquote {
  margin: 0;
  padding: 0;
  font-weight: normal;
  font-style: normal; }

figure {
  line-height: 0;
  background-color: white; }

.transparent figure {
  background-color: transparent; }

img,
video,
iframe {
  max-width: 100%;
  max-height: none;
  height: auto;
  width: auto; }

mark {
  background-color: transparent; }

* {
  -webkit-tap-highlight-color: transparent;
  background-position: center;
  background-repeat: no-repeat;
  -ms-transform-origin: center;
  -webkit-transform-origin: center;
  transform-origin: center;
  outline: none !important; }

ul,
li {
  list-style: none; }

.clear {
  height: 1px !important;
  width: 100% !important;
  margin-bottom: -1px !important;
  position: relative;
  display: block !important;
  clear: both !important; }

html,
body {
  width: 100%; }

input,
button,
textarea {
  outline: none !important;
  border-radius: 0 !important; }

.media-wrapper img {
  transition: opacity 1000ms !important;
  opacity: 0 !important; }

.media-loaded img {
  opacity: 1 !important; }

.media-wrapper.remove-spinner,
.media-wrapper.remove-spinner * {
  background-image: none !important; }

svg {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  position: absolute; }

/* Indicators - used by JS to determine media queries and screen size */
/* ========================================================================== */
#screen-size,
#cover {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%; }

#cover {
  background-color: white;
  z-index: 10000; }

#desktop-indicator {
  height: 1px;
  width: 1px;
  position: absolute;
  top: 0;
  left: 0;
  display: none; }
  @media screen and (min-width: 47.5em) {
    #desktop-indicator {
      display: block; } }

/* Site Wrappers Wrappers */
/* ========================================================================== */
html,
body {
  height: 100%; }

body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

#site-cover {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  position: absolute;
  position: fixed;
  background-color: #f0512C;
  -webkit-transition: height 800ms;
  -moz-transition: height 800ms;
  -ms-transition: height 800ms;
  transition: height 800ms;
  /* resolves blurry elements on webkit */
  z-index: 9998; }

#site-cover.loaded {
  height: 0; }

#site-wrapper,
#site-inner-wrapper,
#content-wrapper {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  position: absolute; }

#page-loader {
  z-index: 10010;
  background-color: #fff;
  width: 0;
  position: fixed;
  top: 0;
  left: 0;
  height: 0.125rem;
  display: none; }

/* Standard Wrappers */
/* ========================================================================== */
.image-wrapper figure {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  position: absolute;
  overflow: hidden; }
  .image-wrapper figure:last-child {
    margin-bottom: 0; }
  .image-wrapper figure img {
    max-width: 9999px;
    max-height: 9999px;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    position: absolute; }

.media-wrapper.image-top-left {
  top: 0 !important;
  left: 0 !important; }

.media-wrapper.image-top {
  top: 0 !important; }

.media-wrapper.image-top-right {
  top: 0 !important;
  left: auto !important;
  right: 0 !important; }

.media-wrapper.image-left {
  left: 0 !important; }

.media-wrapper.image-right {
  left: auto !important;
  right: 0 !important; }

.media-wrapper.image-bottom-left {
  top: auto !important;
  left: 0 !important;
  bottom: 0 !important; }

.media-wrapper.image-bottom {
  top: auto !important;
  bottom: 0 !important; }

.media-wrapper.image-bottom-right {
  top: auto !important;
  left: auto !important;
  right: 0 !important;
  bottom: 0 !important; }

/* Basic Typography */
/* ========================================================================== */
body,
p,
ul,
ol,
blockquote,
h1,
h2,
h3,
h4,
h5,
h6,
input {
  -webkit-font-smoothing: antialiased;
  font-smoothing: antialiased;
  color: white;
  text-align: left;
  font-size: 0.875rem;
  line-height: 1.25em;
  font-family: 'UniversNextW01-Regular', sans-serif;
  font-weight: normal;
  margin: 0;
  padding: 0; }
  @media screen and (min-width: 47.5em) {
    body,
    p,
    ul,
    ol,
    blockquote,
    h1,
    h2,
    h3,
    h4,
    h5,
    h6,
    input {
      font-size: 0.9375rem; } }
  @media screen and (min-width: 64.5rem) {
    body,
    p,
    ul,
    ol,
    blockquote,
    h1,
    h2,
    h3,
    h4,
    h5,
    h6,
    input {
      font-size: 1rem; } }

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: 1.3125rem;
  line-height: 1.25em; }
  @media screen and (min-width: 47.5em) {
    h1,
    h2,
    h3,
    h4,
    h5,
    h6 {
      font-size: 2.125rem; } }
  @media screen and (min-width: 64.5rem) {
    h1,
    h2,
    h3,
    h4,
    h5,
    h6 {
      font-size: 3rem; } }

header {
  position: absolute;
  width: 50%;
  height: 1.625rem;
  top: 1.25rem;
  left: 1.25rem;
  z-index: 9999; }
  @media screen and (min-width: 47.5em) {
    header {
      height: 2rem;
      top: 2.375rem;
      left: 2.375rem; } }
  @media screen and (min-width: 64.5rem) {
    header {
      height: 2.375rem;
      top: 3.5rem;
      left: 3.5rem; } }
  @media screen and (min-width: 75rem) {
    header {
      top: 4.5rem;
      left: 4.5rem; } }
  header h1,
  header a {
    text-indent: -9999px;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    position: absolute;
    background-image: url("../svg/logotype.svg");
    background-repeat: no-repeat;
    background-position: left;
    background-size: contain; }

h3 {
  position: absolute;
  width: calc(100% - 2.5rem);
  top: 50%;
  left: 1.25rem;
  margin-top: -1.25em;
  z-index: 9999; }
  @media screen and (min-width: 47.5em) {
    h3 {
      width: calc(100% - 4.75rem);
      left: 2.375rem;
      line-height: 1.125em;
      margin-top: -1.125em; } }
  @media screen and (min-width: 64.5rem) {
    h3 {
      width: calc(100% - 7rem);
      left: 3.5rem;
      line-height: 1em;
      margin-top: -1em; } }
  @media screen and (min-width: 75rem) {
    h3 {
      width: calc(100% - 9rem);
      left: 4.5rem; } }

a.brandmark {
  position: absolute;
  width: 1.625rem;
  height: 1.625rem;
  top: 1.25rem;
  right: 1.25rem;
  z-index: 9999;
  background-image: url("../svg/brandmark.svg");
  background-repeat: no-repeat;
  background-position: right;
  background-size: contain; }
  @media screen and (min-width: 47.5em) {
    a.brandmark {
      height: 2rem;
      width: 2rem;
      top: 2.375rem;
      right: 2.375rem; } }
  @media screen and (min-width: 64.5rem) {
    a.brandmark {
      height: 2.375rem;
      width: 2.375rem;
      top: 3.5rem;
      right: 3.5rem; } }
  @media screen and (min-width: 75rem) {
    a.brandmark {
      top: 4.5rem;
      right: 4.5rem; } }

.contact {
  position: absolute;
  width: calc(100% - 2.5rem);
  bottom: 1.25rem;
  left: 1.25rem;
  z-index: 9999; }
  @media screen and (min-width: 47.5em) {
    .contact {
      width: calc(100% - 4.75rem);
      left: 2.375rem;
      bottom: 2.375rem; } }
  @media screen and (min-width: 64.5rem) {
    .contact {
      width: calc(100% - 7rem);
      left: 3.5rem;
      bottom: 3.5rem; } }
  @media screen and (min-width: 75rem) {
    .contact {
      width: calc(100% - 9rem);
      left: 4.5rem;
      bottom: 4.5rem; } }

/* Carousel */
/* ========================================================================== */
.carousel-outer-wrapper {
  margin-left: auto;
  margin-right: auto;
  overflow: visible; }
  @media screen and (min-width: 47.5em) {
    .carousel-outer-wrapper {
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      position: absolute;
      padding-top: 0; } }
  .carousel-outer-wrapper .carousel-wrapper {
    padding: 0 2.5rem; }
    @media screen and (min-width: 47.5em) {
      .carousel-outer-wrapper .carousel-wrapper {
        padding: 0;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        position: absolute; } }
    .carousel-outer-wrapper .carousel-wrapper .prev-overlay,
    .carousel-outer-wrapper .carousel-wrapper .next-overlay {
      display: none; }
      @media screen and (min-width: 47.5em) {
        .carousel-outer-wrapper .carousel-wrapper .prev-overlay,
        .carousel-outer-wrapper .carousel-wrapper .next-overlay {
          display: block;
          height: 100%;
          width: 50%;
          position: absolute;
          left: 0;
          top: 0;
          cursor: w-resize;
          z-index: 1000; }
          .carousel-outer-wrapper .carousel-wrapper .prev-overlay.inactive,
          .carousel-outer-wrapper .carousel-wrapper .next-overlay.inactive {
            display: none; }
          .carousel-outer-wrapper .carousel-wrapper .prev-overlay.wide,
          .carousel-outer-wrapper .carousel-wrapper .next-overlay.wide {
            width: 100%; } }
    .carousel-outer-wrapper .carousel-wrapper .next-overlay {
      left: auto;
      right: 0;
      cursor: e-resize; }
    .carousel-outer-wrapper .carousel-wrapper .slick-list {
      overflow: hidden; }
      .carousel-outer-wrapper .carousel-wrapper .slick-list figure {
        background-color: white; }
        @media screen and (min-width: 47.5em) {
          .carousel-outer-wrapper .carousel-wrapper .slick-list figure {
            background-color: #fff; } }
      @media screen and (max-width: 47.5em) {
        .carousel-outer-wrapper .carousel-wrapper .slick-list .slick-track {
          width: 100% !important;
          opacity: 1 !important; } }
    .carousel-outer-wrapper .carousel-wrapper .slider,
    .carousel-outer-wrapper .carousel-wrapper .fader {
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      position: absolute; }
      .carousel-outer-wrapper .carousel-wrapper .slider .slick-track,
      .carousel-outer-wrapper .carousel-wrapper .slider .slick-list,
      .carousel-outer-wrapper .carousel-wrapper .slider .inner-slide,
      .carousel-outer-wrapper .carousel-wrapper .fader .slick-track,
      .carousel-outer-wrapper .carousel-wrapper .fader .slick-list,
      .carousel-outer-wrapper .carousel-wrapper .fader .inner-slide {
        height: 100%; }
      .carousel-outer-wrapper .carousel-wrapper .slider .inner-slide,
      .carousel-outer-wrapper .carousel-wrapper .fader .inner-slide {
        -webkit-box-sizing: content-box;
        -moz-box-sizing: content-box;
        box-sizing: content-box; }
      .carousel-outer-wrapper .carousel-wrapper .slider .inner-slide-image-wrapper,
      .carousel-outer-wrapper .carousel-wrapper .fader .inner-slide-image-wrapper {
        position: relative; }
        @media screen and (min-width: 47.5em) {
          .carousel-outer-wrapper .carousel-wrapper .slider .inner-slide-image-wrapper,
          .carousel-outer-wrapper .carousel-wrapper .fader .inner-slide-image-wrapper {
            padding-top: 0 !important;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            position: absolute; } }
      .carousel-outer-wrapper .carousel-wrapper .slider figure,
      .carousel-outer-wrapper .carousel-wrapper .fader figure {
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        position: absolute; }
        .carousel-outer-wrapper .carousel-wrapper .slider figure .media-wrapper,
        .carousel-outer-wrapper .carousel-wrapper .fader figure .media-wrapper {
          top: 0;
          left: 0;
          width: 100%;
          height: 100%;
          position: absolute; }
        .carousel-outer-wrapper .carousel-wrapper .slider figure img,
        .carousel-outer-wrapper .carousel-wrapper .fader figure img {
          max-width: 9999px;
          max-height: 9999px;
          top: 0;
          left: 0;
          width: 100%;
          height: 100%;
          position: absolute; }
      .carousel-outer-wrapper .carousel-wrapper .slider .slick-track,
      .carousel-outer-wrapper .carousel-wrapper .fader .slick-track {
        -webkit-transition: transform 0.125s;
        -moz-transition: transform 0.125s;
        -ms-transition: transform 0.125s;
        transition: transform 0.125s;
        /* resolves blurry elements on webkit */
        transform: translateX(0rem); }
      .carousel-outer-wrapper .carousel-wrapper .slider .slick-slide,
      .carousel-outer-wrapper .carousel-wrapper .fader .slick-slide {
        position: absolute !important;
        top: 0 !important;
        left: 0 !important; }
    .carousel-outer-wrapper .carousel-wrapper.fade-true .slick-slide {
      opacity: 0 !important;
      z-index: 1 !important;
      display: block !important;
      -webkit-transition: transform 0.8s;
      -moz-transition: transform 0.8s;
      -ms-transition: transform 0.8s;
      transition: transform 0.8s;
      /* resolves blurry elements on webkit */ }
      .carousel-outer-wrapper .carousel-wrapper.fade-true .slick-slide.slick-active {
        opacity: 1 !important;
        z-index: 10 !important; }

#media-carousel {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  position: absolute; }
  #media-carousel video {
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    position: absolute; }

* {
  overflow: hidden; }

#landing-page {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  position: absolute; }
  #landing-page .carousel-outer-wrapper {
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    position: absolute; }
    #landing-page .carousel-outer-wrapper .carousel-wrapper {
      padding: 0;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      position: absolute; }
      #landing-page .carousel-outer-wrapper .carousel-wrapper .has-portrait-image figure:last-child {
        display: none; }
      @media screen and (orientation: portrait) {
        #landing-page .carousel-outer-wrapper .carousel-wrapper .has-portrait-image figure:first-child {
          display: none; }
        #landing-page .carousel-outer-wrapper .carousel-wrapper .has-portrait-image figure:last-child {
          display: block; } }
