/*! HTML5 Boilerplate v5.3.0 | MIT License | https://html5boilerplate.com/ */

/*
 * What follows is the result of much research on cross-browser styling.
 * Credit left inline and big thanks to Nicolas Gallagher, Jonathan Neal,
 * Kroc Camen, and the H5BP dev community and team.
 */

/* ==========================================================================
   Base styles: opinionated defaults
   ========================================================================== */

html, body {
    width: 100%;
    height: 100%;
    margin: 0;
}

html {
    color: #323333;
    font-size: 16px;
    line-height: 1.4;
}

body {
    background: #FAFAF6;
    color: #323333;
    font-family: brandon-grotesque, sans-serif;
    font-weight: 400;
    font-style: normal;
}
/*
 * Remove text-shadow in selection highlight:
 * https://twitter.com/miketaylr/status/12228805301
 *
 * These selection rule sets have to be separate.
 * Customize the background color to match your design.
 */

::-moz-selection {
    background: #b3d4fc;
    text-shadow: none;
}

::selection {
    background: #b3d4fc;
    text-shadow: none;
}

/*
 * A better looking default horizontal rule
 */

hr {
    display: block;
    height: 1px;
    border: 0;
    border-top: 1px solid #ccc;
    margin: 1em 0;
    padding: 0;
}

/*
 * Remove the gap between audio, canvas, iframes,
 * images, videos and the bottom of their containers:
 * https://github.com/h5bp/html5-boilerplate/issues/440
 */

audio,
canvas,
iframe,
img,
svg,
video {
    vertical-align: middle;
}

/*
 * Remove default fieldset styles.
 */

fieldset {
    border: 0;
    margin: 0;
    padding: 0;
}

/*
 * Allow only vertical resizing of textareas.
 */

textarea {
    resize: vertical;
}

/* ==========================================================================
   Browser Upgrade Prompt
   ========================================================================== */

.browserupgrade {
    margin: 0.2em 0;
    background: #ccc;
    color: #000;
    padding: 0.2em 0;
}


/* ==========================================================================
   Grid System
   ========================================================================== */
.g, .g2, .g3, .g5, .g6, .g8 {
  zoom: 1;
}
.g:before, .g2:before, .g3:before, .g5:before, .g6:before, .g8:before, .g:after, .g2:after, .g3:after, .g5:after, .g6:after, .g8:after {
  content: "\0020";
  display: block;
  height: 0;
  overflow: hidden;
}
.g:after, .g2:after, .g3:after, .g5:after, .g6:after, .g8:after {
  clear: both;
}

.g, .g2, .g3, .g5, .g6, .g8 {
  position: relative;
  margin: 0 pem(-16);
}
.g.pad, .g2.pad, .g3.pad, .g5.pad, .g6.pad, .g8.pad {
  padding: 30px 0;
}
.g.center .u10, .g.center .u20, .g.center .u25, .g.center .u30, .g.center .u40, .g.center .u50, .g.center .u60, .g.center .u70, .g.center .u75, .g.center .u80, .g.center .u90, .g.center .u100, .g2.center .u10, .g2.center .u20, .g2.center .u25, .g2.center .u30, .g2.center .u40, .g2.center .u50, .g2.center .u60, .g2.center .u70, .g2.center .u75, .g2.center .u80, .g2.center .u90, .g2.center .u100, .g3.center .u10, .g3.center .u20, .g3.center .u25, .g3.center .u30, .g3.center .u40, .g3.center .u50, .g3.center .u60, .g3.center .u70, .g3.center .u75, .g3.center .u80, .g3.center .u90, .g3.center .u100, .g5.center .u10, .g5.center .u20, .g5.center .u25, .g5.center .u30, .g5.center .u40, .g5.center .u50, .g5.center .u60, .g5.center .u70, .g5.center .u75, .g5.center .u80, .g5.center .u90, .g5.center .u100, .g6.center .u10, .g6.center .u20, .g6.center .u25, .g6.center .u30, .g6.center .u40, .g6.center .u50, .g6.center .u60, .g6.center .u70, .g6.center .u75, .g6.center .u80, .g6.center .u90, .g6.center .u100, .g8.center .u10, .g8.center .u20, .g8.center .u25, .g8.center .u30, .g8.center .u40, .g8.center .u50, .g8.center .u60, .g8.center .u70, .g8.center .u75, .g8.center .u80, .g8.center .u90, .g8.center .u100 {
  text-align: left;
  display: inline-block;
  float: none;
  vertical-align: top;
}
.g.center .u img, .g2.center .u img, .g3.center .u img, .g5.center .u img, .g6.center .u img, .g8.center .u img {
  margin: 0 auto;
}
@media only screen and (max-width: 40em) {
  .g.hold-2col .u, .g2.hold-2col .u, .g3.hold-2col .u, .g5.hold-2col .u, .g6.hold-2col .u, .g8.hold-2col .u {
    width: 50%;
  }
}
@media only screen and (max-width: 40em) {
  .g.hold-3col .u, .g2.hold-3col .u, .g3.hold-3col .u, .g5.hold-3col .u, .g6.hold-3col .u, .g8.hold-3col .u {
    width: 33.33333%;
  }
}

.u, .u10, .u20, .u25, .u30, .u40, .u50, .u60, .u70, .u75, .u80, .u90, .u100 {
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  display: block;
  float: left;
  padding: 0 pem(16);
  width: 100%;
}

@media screen and (min-width: 40em) {
  .u {
    width: 50%;
  }

  .g5 .u, .u.legal {
    width: 50%;
  }

  .g6 .u, .g3 .u {
    width: 33%;
  }

  .g8 .u {
    width: 25%;
  }
}
@media screen and (min-width: 60em) {
  .u {
    width: 25%;
  }

  .g2 .u {
    width: 50%;
  }

  .g3 .u {
    width: 33.3333333333%;
  }

  .g5 .u {
    width: 20%;
  }

  .g6 .u {
    width: 16.66%;
  }

  .g8 .u {
    width: 12.5%;
  }

  .u10 {
    width: 10%;
  }

  .u20 {
    width: 20%;
  }

  .u25 {
    width: 25%;
  }

  .u30 {
    width: 30%;
  }

  .u40 {
    width: 40%;
  }

  .u50 {
    width: 50%;
  }

  .u60 {
    width: 60%;
  }

  .u70 {
    width: 70%;
  }

  .u75 {
    width: 75%;
  }

  .u80 {
    width: 80%;
  }

  .u90 {
    width: 80%;
  }
}


/* ==========================================================================
   Directory styles
   ========================================================================== */

.g.full-height, .g.full-height .u50.message-panel {
    height: 100%;
}

.message-panel {
    background: #4C4B49;
    width: 20%;
    color: #909294;
}

.map-panel {
    height: 100%;
    width: 80%;
    background: #191818;
    background: #222222;
    position: relative;
}

.message-panel .messages {
    padding: 10% 0;
}
.message-panel .messages .message h2 {
    color: #FFFFFF;
    font-weight: 400;
    margin: 50px 0 0;
}
.message-panel .messages .message p {
    margin: 0 !important;
}

h1 {
    font-family: brandon-grotesque, sans-serif;
    font-weight: 400;
    font-style: normal;
    text-transform: uppercase;
    text-align: left;
    letter-spacing: 0px;
    font-weight: 400;
    margin: 0;
    line-height: 1em;
    font-size: 64px;
}

.btn-fullscreen {
    background: none;
    border: none;
    position: absolute;
    top: 0;
    right: 0;
    font-size: 3em;
    color: rgba(89,68,21,0);
    transition: 500ms;
}
.btn-fullscreen:hover {
    color: rgba(89,68,21,.8);
}
.btn-fullscreen i {
  font-weight: 900;
}

.offices-columns {
    margin: 0 5.25% 0 8.5%;
    height: calc(100% - 22%);
}
.offices-columns .u50 {
    height: 100%;
}
ul.offices {
    font-size: 0.7em;
    margin: 0;
    padding: 0;
    height: 100%
}
ul.offices li {
    list-style: none;
    height: 4.5%;
}
ul.offices li .office-number {
    font-size: 2.2em;
    font-weight: 800;
    display: inline-block;
    line-height: 1em;
    padding: 0 0.5em 0 0;
    vertical-align: top;
    width: 1.4em;
    text-align: left;
    color: #B7A57B;
}
ul.offices li .office-name {
    display: inline-block;
    font-size: 2em;
    font-weight: 800;
    padding: 0 0 0 0.5em;
    max-width: calc(100% - 2.9em);
    line-height: 1.0em;
}

div.map {
    position: relative;
    width: calc(100% - 22%);
    margin: 0 auto;
}
div.map img.mapLayer {
    display: block;
    max-width: 100%;
    height: auto;
    position: absolute;
}
img.map {
  max-height: 75%;
  position: absolute;
  right: 4%;
  bottom: 4%;
}
img.directory {
  max-height: 90%;
  position: absolute;
  left: 4%;
  bottom: 4%;
}

.header {
    padding: 0px 8.5% 4%;
    height: 12%;
    display: flex;
    align-items: flex-end;
}
.map-panel .header {
    padding: 2% 4% 0%;
    text-align: right;
    justify-content: flex-end;
}
.help .logo {
    width: 150px;
    padding-bottom: 8%;
}
.help .logo img {
    display: block;
    max-width: 100%;
    height: auto;
}
.header #clock {
    font-family: brandon-grotesque, sans-serif;
    font-weight: 400;
    font-style: normal;
    color: #FFFFFF;
}
.header #clock .h-m {
    font-size: 4em;
    font-weight: 300;
    color: #FFFFFF;
}
.header #clock small {
    font-size: 2em;
}

.help {
  font-size: 24.75px;
  color: #909294;
  text-align: left;
  padding: 10px;
  position: absolute;
  bottom: 4%;
  width: 20%;
  left: 2%;
}
.help a {
  color: #909294;
  text-decoration: none;
}


/* ==========================================================================
   Helper classes
   ========================================================================== */

/*
 * Hide visually and from screen readers
 */

.hidden {
    display: none !important;
}

/*
 * Hide only visually, but have it available for screen readers:
 * http://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 */

.visuallyhidden {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
}

/*
 * Extends the .visuallyhidden class to allow the element
 * to be focusable when navigated to via the keyboard:
 * https://www.drupal.org/node/897638
 */

.visuallyhidden.focusable:active,
.visuallyhidden.focusable:focus {
    clip: auto;
    height: auto;
    margin: 0;
    overflow: visible;
    position: static;
    width: auto;
}

/*
 * Hide visually and from screen readers, but maintain layout
 */

.invisible {
    visibility: hidden;
}

/*
 * Clearfix: contain floats
 *
 * For modern browsers
 * 1. The space content is one way to avoid an Opera bug when the
 *    `contenteditable` attribute is included anywhere else in the document.
 *    Otherwise it causes space to appear at the top and bottom of elements
 *    that receive the `clearfix` class.
 * 2. The use of `table` rather than `block` is only necessary if using
 *    `:before` to contain the top-margins of child elements.
 */

.clearfix:before,
.clearfix:after {
    content: " "; /* 1 */
    display: table; /* 2 */
}

.clearfix:after {
    clear: both;
}


/* ==========================================================================
   Fullscreen styles
   ========================================================================== */

:-webkit-full-screen button.btn-fullscreen {
    display: none;
}

:-moz-full-screen button.btn-fullscreen {
    display: none;
}

:-ms-fullscreen button.btn-fullscreen {
    display: none;
}

:full-screen button.btn-fullscreen { /*pre-spec */
    display: none;
}

:fullscreen button.btn-fullscreen { /* spec */
    display: none;
}

/* styling the backdrop*/
::backdrop {
  /* properties */
}
::-ms-backdrop {
  /* properties */
}


/* ==========================================================================
   EXAMPLE Media Queries for Responsive Design.
   These examples override the primary ('mobile first') styles.
   Modify as content requires.
   ========================================================================== */

@media only screen and (min-width: 35em) {
    /* Style adjustments for viewports that meet the condition */
}

@media print,
       (-webkit-min-device-pixel-ratio: 1.25),
       (min-resolution: 1.25dppx),
       (min-resolution: 120dpi) {
    /* Style adjustments for high resolution devices */
}

/*
  FLUID FONT SIZE
  calc([min size] + ([max size] - [min size]) * ((100vw - [min viewport width]) / ([max viewport width] - [min viewport width])));
*/
@media screen and (min-width: 1280px) {
  .message-panel .messages .message h2 {
    font-size: calc(48px + 7 * ((100vw - 1280px) / 1280));
  }
  .message-panel .messages .message p {
    font-size: calc(32px + 6 * ((100vw - 1280px) / 1280));
  }
}
@media screen and (min-width: 2560px) {
  /* Increased font sizes by 33% for Chromebook */
  h1 {
    font-size: 171px;
  }
  ul.offices li .office-number {
    font-size: 47px;
  }
  ul.offices li .office-name {
    font-size: 44px;
  }
  .help {
    font-size: 34.75px;
  }
  .header #clock .h-m {
    font-size: 110px;
  }
  .header #clock small {
    font-size: 70px;
  }
}


