/*! HTML5 Boilerplate v8.0.0 | MIT License | https://html5boilerplate.com/ */

/* main.css 2.1.0 | MIT License | https://github.com/h5bp/main.css#readme */
/*
 * 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 {
  color: #222;
  font-size: 1em;
  line-height: 1.4;
}

* {
  box-sizing: border-box;
}


/*
 * Remove text-shadow in selection highlight:
 * https://twitter.com/miketaylr/status/12228805301
 *
 * Vendor-prefixed and regular ::selection selectors cannot be combined:
 * https://stackoverflow.com/a/16982510/7133471
 *
 * 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;
}

/* ==========================================================================
   Author's custom styles
   ========================================================================== */

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

/*
 * Hide visually and from screen readers
 */

.hidden,
[hidden] {
  display: none !important;
}

/*
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 */

.sr-only {
  border: 0;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  white-space: nowrap;
  width: 1px;
  /* 1 */
}

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

.sr-only.focusable:active,
.sr-only.focusable:focus {
  clip: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  position: static;
  white-space: inherit;
  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: " ";
  display: table;
}

.clearfix::after {
  clear: both;
}

body {
  background: rgb(255,255,255);
  background: linear-gradient(163deg, rgba(255,255,255,1) 0%, rgba(204,204,204,1) 100%);
  background-repeat: no-repeat;
  color: #222;
  height:100vh;
  font-family: 'Nanum Gothic', sans-serif;
}

  body.home {
    background:url("../img/mobile-bg.jpg") no-repeat center center;
    background-size: cover;
  }

/* video */

.home #myVideo {
  display: none;
  position: fixed;
  right: 0;
  bottom: 0;
  min-width: 100%; 
  min-height: 100%;
}

.home .content {
  position: fixed;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
  color: #f1f1f1;
  width: 100%;
  padding: 0px;
  z-index:99;
}

.home #header {

}

  .home .events {
    display:block;
    height:30px;
    top:50px;
    position: absolute;
    width:100%;
  }

    .home .events a {
      background-color: teal;
      color:white;
      display: block;
      padding:.5em;
      text-align: center;
      width:100%;
    }


  .home #header hgroup {
    position: absolute;
    transform: translate(-50%,-50%);
    left:50%;
    top:50%;
    width:90%;
  }

  .home #header hgroup h1 {
    background: url("../img/om-logo.png") no-repeat center center;
    background-size:200px 122px;
    height:122px;
    margin:0;
    padding:0;
    width:100%;
    text-indent: -9999px;
  }
    .home #header h2 { 
      font-weight:700; 
      font-size:.85em;
      margin-top:2em;
      text-align: center; 
    }

      .home #header .btn {
        font-size:.95em;
        margin:2em auto 0 auto;
        max-width:60%;
        padding:1em;
      }

    .btn {
      background: rgba(0,0,0,1);
      border-radius: .25em;
      color:#fff;
      display: block;
      font-size:.95em;
      padding:.5em 1em;
      text-decoration: none;
      transition: background .2s ease;
      text-align: center;
    }

    #footer {
      bottom:0;
      padding:1em;
      position: fixed;
      left:0;
      right:0;
      z-index:99;
    }
    #footer small {
      color:#666;
      display: block;
      font-size:.75em;
      text-align: center;
    }

    #footer .btn,
    #footer ul {
      display:none;
    }

    .social {
      height:36px;
      display: block;
      text-indent: -9999px;
      width:36px;
    }

    .nav {
      background:rgba(255,255,255,.5);
      height:50px;
      left:0;
      position: absolute;
      top:0;
      width:100%;
    }

      .nav .nav-contain {
        display:none;
      }

      .nav .nav-contain.on {
        background:#111;
        bottom:0;
        display: block;
        left:0;
        position: fixed;
        right:0;
        top:0;
        z-index:103;
      }
        .nav .nav-contain.on strong {
          background: url("../img/om-logo-white.png") no-repeat center center;
          background-size:200px 122px;
          display: block;
          height:122px;
          margin:6em 0 0 0;
          padding:0;
          width:100%;
          text-indent: -9999px;
        }
          .nav .nav-contain.on ol {
            list-style: none;
            margin:3em auto 0em auto;
            padding:0;
            width:80%;
          }
            .nav .nav-contain.on ol li a {
              background:black;
              border:1px solid #444;
              border-radius: .25em;
              color:#fff;
              display: block;
              margin:1em auto;
              padding:1em;
              text-align:center;
              text-decoration: none;
              width:100%;
            }

        .nav .nav-contain.on .social-contain {
          bottom:2em;
          left:50%;
          position: absolute;
          transform: translateX(-50%);
          width:122px;
        }
        .nav .nav-contain.on .social {
          display: block;
          float:left;
          margin:0em 1em;
          height:28px;
          width:28px;
        }

          .social.instagram {
            background: url("../img/icon-ig.svg") no-repeat center center;
            background-size:28px 28px;
          }
          .social.facebook {
            background: url("../img/icon-fb.png") no-repeat center center;
            background-size:contain;
          }

    #close {
      background:url("../img/close.svg") no-repeat center center;
      background-size: 30px 30px;
      display: block;
      height:24px;
      position: absolute;
      right:1em;
      top:1em;
      text-indent: -9999px;
      width:24px;
    }

    #nav-toggle {
      background:url("../img/menu-dark.svg") no-repeat center center;
      background-size: 30px 12px;
      display: block;
      height:24px;
      position: absolute;
      right:1em;
      top:1em;
      text-indent: -9999px;
      width:30px;
    }

    .nav h1 {
      background:url("../img/jqy-black.svg") no-repeat center left;
      background-size: contain;
      height:24px;
      left:.5em;
      margin:0;
      padding:0;
      position: absolute;
      text-indent: -9999px;
      top:.5em;
      width:80%;
    }

/* pages */

.page { background:white; }
.page .nav { background:rgba(255,255,255,.9); position:fixed; z-index:100; }
.page .content .header {
    background:url("../img/about-hero.jpg") no-repeat center center;
    background-size: cover;
    height:400px;
    margin-top:0;
    position: relative;
}

  .page.book .content .header {
      background: url(../img/book-hero.jpg) no-repeat center center;
      background-size: cover;
      height:400px;
  }

  .page.sound .content .header {
      background: url(../img/sound-hero.jpg) no-repeat center center;
      background-size: cover;
      height:400px;
  }
  .page.sound .content .info .col p {
    font-size:15px;
    margin-bottom:.25em;
  }
    .page.sound .content .info .col p.last {
      font-size:14px;
     margin-bottom:1.5em; 
    }

    .page.book .book-info { margin:auto auto 5em auto; width:80%; }
    .page.book .book-info h1 {
      font-size:.85em;
      margin:3em auto;
      width:100%;
    }
      .page.book .book-info h1 a {
        background:rgba(0,0,0,1);
        border:1px solid #444;
        border-radius: .25em;
        color:#fff;
        display: block;
        margin:1em auto;
        padding:1em;
        text-align:center;
        text-decoration: none;
        width:100%;
      }
      .page.book .book-info h2 {
        border-bottom:1px solid #ccc;
        font-size:1em;
        margin:auto;
        padding-bottom:.5em;
        text-align: center;
        text-transform: uppercase;
      }
        .page.book .book-info p {
          font-size:.85em;
          text-align: center;
        }

  .page .content .header h1 { 
    bottom:.5em;
    color:white;
    left:1em;
    margin:0; 
    position: absolute;
    padding:0; 
  }

    .page.sound .content .header h1 { background:rgba(0,0,0,.7); padding:.25em; }

  .page .info {
    margin:auto;
    width:86%;
  }
    .page .info h2 em {

      display: block;
      font-size:.65em;
      font-weight: 400;
    }
    .page .info ul {
      list-style: none;
      margin:2em auto;
      padding:0;
    }
    .page .info ul li {
      font-size:.75em;
      margin-left:15px;
    }
      .page .info ul li + li {
        margin-top:1em;
      }
      .page .info ul li:before {
        content:"•";
        color:orange;
        margin-left:-15px;
      }

      .page .info ul li em { font-style:normal; font-weight:700; }

  .page video {
    display: block;
    margin:2em auto;
  }
  .page.sound iframe {
    width:100%;
  }

  .page #footer {
    position: relative;
  }

.page.event { background:#f5f5f5;}

.event .content { padding-top:7em; }

.event .content .header { 
  background: transparent; 
  height:auto;
  margin:auto;
  width:90%;
}
.event .content .header h1 { 
  bottom:auto;
  color:black; 
  font-size:21px;
  left:auto; 
  margin:auto;
  position: relative; 
  text-align: center;
}
  .event .content .header h2 {
    font-size:12px;
    font-weight:400;
    font-style: italic;
    margin-top:.25em;
    text-align: center;
  }
  .event .content .grid { margin-bottom:4em; }
  .event .content .grid .row {
    clear:both;
  }
  .event .content .grid .col1,
  .event .content .grid .col {
    padding-top:2em; 
    padding-bottom:2em;
    margin:auto;
    width:90%;
  }
    .event .content .grid .col1 { margin-bottom:2em; }
    .event .content .grid .col:nth-child(even) { background:#f5f5f5; }
    .event .content .grid .col:nth-child(even) strong { padding-left:1em; }

  .event .content .grid .col1 iframe,
  .event .content .grid .col iframe,
  .event .content .grid .col1 video,
  .event .content .grid .col video {
    margin:auto;
    width:100%;
  }
  .event .content .grid strong {
    display: block;
    font-size:18px;
    font-weight: bold;
    margin-bottom:1em;
  }
  .event .content .grid hr { margin-bottom:0; }
  .event .content .grid strong i {
    border-radius: 100px;
    background:teal;
    height:30px;
    color:white;
    font-style:normal;
    line-height: 1.75em;
    display: inline-block;
    text-align: center;
    margin-right:12px;
    width:30px;
  }
  .row.challenges { background:#ccc; padding-top:2em; }
  .event .content small { color:#666; display:block; margin:auto; margin-bottom:2em; width:80%; }

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

@media only screen and (min-width: 30em) {
  /* Style adjustments for viewports that meet the condition */
  body { height:auto; }
  .home #myVideo { display: block; }

  .home #header hgroup { width:100%; z-index:100; }

  .home #header hgroup h1 {
    background: url("../img/om-logo.png") no-repeat center center;
    background-size:300px 183px;
    height:183px;
  }
    .home #header hgroup .btn { display: none; }
    .home #header hgroup h2 { font-size:.95em; font-weight:400; text-transform: none; }
    .home #header hgroup h2 span { display: block; }

  .home .events {
    display: block;
    height:30px;
    top:25px;
    left:50%;
    position: absolute;
    width:30%;
    transform: translateX(-50%);
    z-index:102;
  }

    .home .events a {
      background-color: teal;
      border:1px solid teal;
      border-radius: .5em;
      color:white;
      display: block;
      padding:.5em;
      text-align: center;
      text-decoration: none;
      width:100%;
      transition: all .2s linear;
    }
      .home .events a:hover {
        background:rgba(255,255,255,.5);
        color:teal;
        transition: all .2s linear;
      }

  #footer small { 
    bottom:2em;
    color:#666;
    display: block;
    left:2em;
    position: absolute; 
  }

    #footer ul {
      box-sizing: border-box;
      bottom:.5em;
      list-style: none;
      padding:0;
      position: absolute;
      right:13em;
      width:85px;
    }

    #footer .btn {
      background: rgba(0,0,0,.6);
      bottom:2em;
      display: block;
      font-size:.85em;
      position: absolute;
      right:2em;
    }
      .home #footer .btn:hover {
        background: rgba(0,0,0,1);
        transition: background .2s ease;
      }

      #footer ul { padding-bottom:.5em; display: block; }
      #footer ul li {
        float:left;
        margin-left:1.5em;
      }
        #footer ul li:first-child {
          margin-left:0em;
        }

  #header ul { margin:2em auto; width:400px; }
  #header ul li { display: inline-block; }
  #header ul li a { font-size:.85em; text-align: right; transition: all .2s ease; }
   #header ul li a:hover { color:teal; transition: all .2s ease; }

  .nav {
    background:transparent;
    z-index:101;
  }
    .nav h1 { cursor:pointer; left:1em; opacity:1;top:1em; transition: opacity .2s linear; }
      .nav h1:hover { opacity:.5; transition: opacity .2s linear;  }
    .nav h1 a { display: block; }

    .nav .nav-contain {
      background:transparent;
      display: block;
      position: absolute;
      right:2em;
      top:1em;
      width:323px;
    }
      .nav .nav-contain strong { display: none; }

      .nav .nav-contain ol {
        list-style: none;
        padding:0;
      }
        .nav .nav-contain ol li {
          display: inline-block;
          margin-left:1em;
        }
          .nav .nav-contain ol li a {
            border-bottom:2px solid rgba(255,255,255,.1);
            color:black;
            font-weight:700;
            font-size:.85em;
            text-decoration: none;
            transition: border-bottom, color .2s linear;
          }
            .nav .nav-contain ol li a:hover {
              border-bottom:2px solid rgba(255,255,255,1);
              color:#333;
              transition: border-bottom, color .2s linear;
            }
          

  .nav #nav-toggle,
  .nav #close,
  .nav .social {
  display: none;
  }

    .social {
      height:24px;
      width:24px;
    }
          .social.instagram {
            background: url("../img/icon-ig.svg") no-repeat center center;
            background-size:24px 24px;
          }
          .social.facebook {
            background: url("../img/icon-fb.png") no-repeat center center;
            background-size:contain;
          }

/* page */

  .page .nav {
    height:70px;
    position: relative;
  }
    .page .nav h1 { top:.75em; width:30%; }

  .page .content .header {
    background: url(../img/about-hero.jpg) no-repeat center calc(0% - 100px);
    background-size: cover;
    margin:auto;
    height:550px;
    width:93%;
  }
  .page .content .header h1 {
    background:rgba(0,0,0,.6);
    bottom:0;
    left:0;
    padding:.5em;
    width:100%;
  }
  .page .nav .nav-contain { right:2.5em; top:.5em; }
  .page .nav .nav-contain ol li a:hover {
    border-bottom: 2px solid rgba(255,255,255,1);
    color: #333;
    transition: border-bottom, color .2s linear;
  }

  .page .info {margin:2em auto; }

  .page .col h2 { font-size:2.25em; }

  .page .info { width:93%; }

  .page .info ul li { font-size:.95em; }

  .page .info .col {
    float:left;
    margin-right:2%;
    width:48%;
  }
    .page .info .col video {
      width:100%;
    }

  .page #footer {
    background:black; 
    min-height: 80px;
  }
    .page #footer small {
      bottom:auto;
      top:2em;
    }
    .page #footer .btn {
      border:1px solid #fff;
    }
      .page #footer .btn:hover {
        background:white;
        color:#000;
      }

/* sound page */
.page.sound .content .header {
  background: url(../img/sound-hero.jpg) no-repeat calc(100% - 0px) calc(50% + 50px);
  background-size: cover;
  height:550px;
}
.page.sound .content .info {
  margin:5em auto;
}
.page.sound .content .info .col h2 {
  margin-top:0;
}
.page.sound .content .header h1 {
  padding:.5em;
}

  .page.sound .content .info .col p {
    font-size:14px;
    margin-bottom:.25em;
  }
    .page.sound .content .info .col p.last {
      font-size:13px;
      margin-top:2.5em;
      margin-bottom:1.5em; 
    }

/* book page */
.page.book .content .header {
  background: url(../img/book-hero.jpg) no-repeat center center;
  background-size: cover;
  height:500px;
}

.page.book .book-info { width:50%; }
  .page.book .book-info h1 { font-size:1em; width:50%; } 
  .page.book .book-info h1 a { transition:all .2s linear; }
    .page.book .book-info h1 a:hover {
      background:white;
      border:1px solid black;
      color:black;
      transition:all .2s linear;
    }

.event { background:#f5f5f5; }
.event .content { padding-top:3em; }

.event .content .header { 
  background: transparent; 
  height:auto;
  margin:auto;
  width:90%;
}
.event .content .header h1 { 
  background: transparent;
  bottom:auto;
  color:black; 
  font-size:36px;
  left:auto; 
  margin:auto;
  padding:0;
  position: relative; 
  text-align: center;
}
  .event .content .header h2 {
    font-size:16px;
  }
  .event .content .grid {
    margin:auto;
    width:100%;
    margin-bottom:4em; 
  }
  .event .content .grid .row {
    clear:both;
  }
  .event .content .grid .col1,
  .event .content .grid .col {
    padding-bottom:2em;
    margin:auto;
    text-align: center;
    width:100%;
  }
    .event .content .grid .col1 { margin-bottom:2em; }
    .event .content .grid .col:nth-child(even) strong { padding-left:0em; }

  .event .content .grid .col1 iframe,
  .event .content .grid .col iframe,
  .event .content .grid .col1 video,
  .event .content .grid .col video {
    margin:auto;
    width:40%;
  }
  .event .content .grid .col1 iframe,
  .event .content .grid .col iframe { max-width:1080px; max-height:608px; min-width:1080px; min-height:608px; width:100%; }
  .event .content .grid strong {
    display: block;
    font-size:30px;
    font-weight: bold;
    margin-bottom:1em;
  }
  .event .content .grid hr { margin-bottom:0; }
  .event .content .grid strong i {
    border-radius: 100px;
    background:teal;
    height:54px;
    color:white;
    font-style:normal;
    line-height: 1.75em;
    display: inline-block;
    text-align: center;
    margin-right:12px;
    width:54px;
  }
  .row.challenges { background:#e8e8e8; padding-top:2em; }
  .event .content small { color:#666; display:block; margin:auto; margin-bottom:4em; width:80%; }

}

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

/* ==========================================================================
   Print styles.
   Inlined to avoid the additional HTTP request:
   https://www.phpied.com/delay-loading-your-print-css/
   ========================================================================== */

@media print {
  *,
  *::before,
  *::after {
    background: #fff !important;
    color: #000 !important;
    /* Black prints faster */
    box-shadow: none !important;
    text-shadow: none !important;
  }

  a,
  a:visited {
    text-decoration: underline;
  }

  a[href]::after {
    content: " (" attr(href) ")";
  }

  abbr[title]::after {
    content: " (" attr(title) ")";
  }

  /*
   * Don't show links that are fragment identifiers,
   * or use the `javascript:` pseudo protocol
   */
  a[href^="#"]::after,
  a[href^="javascript:"]::after {
    content: "";
  }

  pre {
    white-space: pre-wrap !important;
  }

  pre,
  blockquote {
    border: 1px solid #999;
    page-break-inside: avoid;
  }

  /*
   * Printing Tables:
   * https://web.archive.org/web/20180815150934/http://css-discuss.incutio.com/wiki/Printing_Tables
   */
  thead {
    display: table-header-group;
  }

  tr,
  img {
    page-break-inside: avoid;
  }

  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3;
  }

  h2,
  h3 {
    page-break-after: avoid;
  }
}

