/*
Theme Name: 43d records
Theme URI: https://records.43d.jp/wp-theme/
Author: Motohiro Sunouchi (43d)
Author URI: http://about.me/snotch
Description: 43d records is a WordPress theme for publishing sounds and photographs for field recordings.
Version: 0.9.2
License: MIT License
License URI: https://opensource.org/licenses/MIT
Text Domain: 43d-records
Tags: full-width-template
*/

@charset "UTF-8";
@import "./css/elements.less";
@import url(//fonts.googleapis.com/css?family=Open+Sans:700,300,400);
@import url(//fonts.googleapis.com/css?family=Lora:400,700,400italic,700italic);

@serif-font: Lora, "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho Pro", "HG明朝E", serif;
@sans-serif-font: 'Open Sans', Helvetica, Arial, "游ゴシック", "YuGothic", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;

@z-index_bg: 5;
@z-index_menu: 100;
@z-index_logo: 100;
@z-index_flcontent: 500;
@z-index_social: 600;
@z-index_flcontent_btn: 610;
@z-index_playbtn: 600;

html {
  font-size: 3rem;
}

body {
  font-family: @sans-serif-font;
  word-wrap: break-word;
  &.error404 {
    padding: 4rem;
  }
}

p {
  line-height: 1.2rem;
  text-align: justify;
  text-justify: inter-ideograph;
}

.p43d_records_show {
  background-size: cover;

  #main_menu {
    position: fixed;
    z-index: @z-index_menu;
    list-style: none;
    margin: 0;
    padding: 0;
    left: 0;
    top: 3rem;

    li {
      width: 3rem;
      height: 3rem;
      margin: 0 0 1px 0;
      position: relative;
      cursor: pointer;

      img {
        width: 100%;
        height: 100%;
        position: absolute;
        .opacity(0.5);
        .transition-duration(0.2s);
      }
      &:hover img, &.active img {
        .opacity(1);
      }
      &::before {
        content: "";
        margin: 0;
        width: 100%;
        height: 100%;
        position: absolute;
        background-color: #fff;
        .opacity(0.5);
        .transition-duration(0.2s);
      }
      &:hover::before, &.active::before {
        .opacity(0.9);
      }
    }
  }

  #social {
    position: fixed;
    top: 0.4rem;
    right: 2rem;
    z-index: @z-index_social;
    list-style: none;
    margin: 0;
    padding: 0;

    li {
      width: 1.2rem;
      height: 1.2rem;
      cursor: pointer;
      display: inline-block;
      margin-left: 0.4rem;
      position: relative;

      a {
        .opacity(0.6);
        .transition-duration(0.2s);
        img {
          width: 100%;
          height: 100%;
          position: absolute;
        }

        &:hover {
          .opacity(1);
        }
      }
    }
  }

  #ctrl_btns {
    position: fixed;
    top: 2.4rem;
    right: 2rem;
    z-index: @z-index_playbtn;
    list-style: none;
    margin: 0;
    padding: 0;
    li {
      width: 3rem;
      height: 3rem;
      cursor: pointer;
      .transition-duration(0);

      img {
        width: 100%;
        height: 100%;
        position: absolute;
      }

      img.default {
        display: block;
      }
      img.over {
        display: none;
      }

      &:hover {
        img.default {
          display: none;
        }
        img.over {
          display: block;
        }
      }
    }
  }

  #bg {
    margin: 0;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    z-index: @z-index_bg;
  }

  p#logo_43d {
    position: fixed;
    right: 2rem;
    bottom: 1rem;
    margin: 0;
    z-index: @z-index_logo;
    a {
      .opacity(0.6);
      .transition-duration(0.2s);
      img {
        width: 2rem;
        height: auto;
      }
    }
    a:hover {
      .opacity(1);
    }
  }

  #info_content {
    z-index: @z-index_flcontent;
    position: fixed;
    top: 3rem;
    bottom: 1.5rem;
    left: 3rem;
    width: 40%;
    min-width: 360px;
    overflow: auto;
    display: block;
    .opacity(0);

    .close_btn {
      position: absolute;
      margin: 0;
      width: 1rem;
      height: 1rem;
      top: 1rem;
      right: 2rem;
      cursor: pointer;
      z-index: @z-index_flcontent_btn;
      .opacity(0);
      img {
        width: 100%;
        height: 100%;
      }
      &:hover img {
        .opacity(0.6);
      }
    }

    .outer_container {
      position: relative;
    }

    .bg {
      position: absolute;
      top: 0;
      left: 0;
      bottom: 0;
      right: 0;
      background-color: #fff;
      .opacity(0.8);
      z-index: -1;
    }

    .inner_container {
      padding: 1rem 2rem 2rem;
      .opacity(0);
    }

    h1 {
      font-weight: normal;
      font-size: 0.6rem;
      margin: 0.2rem 1rem 0.1rem 0;
      line-height: 1.2;
      a {
        text-decoration: none;
        color: #000;
        &:hover {
          background-color: #AAA;
        }
      }
    }
    h2 {
      margin: 0 0 1.8rem;
      padding-right: 2rem;
      font-size: 1rem;
      line-height: 1.2;
    }
    h3, h4 {
      margin: 0 0 1.4rem;
      font-size: 0.85rem;
      line-height: 1.2;
    }
    h5, h6 {
      margin: 0 0 1.2rem;
      font-size: 0.7rem;
      line-height: 1.2;
    }

    p.info span.label {
      position: absolute;
      left: 0;
      padding: 0.1rem 0.5rem 0 0;
      font-size: 0.4rem;
      font-weight: bold;
      text-transform: uppercase;
    }
    p.info {
      position: relative;
      margin: 0.5rem 0 0;
      padding: 0 0 0.3rem 3.8rem;
      border-bottom: 1px solid #999;
      font-family: @sans-serif-font;
      font-size: 0.5rem;
      line-height: 1.1;
      vertical-align: top;

      a.icon_link {
        display: inline-block;
        line-height: 0;
        padding: 0 0 0 0.2rem;
        &:hover {
          background-color: transparent;
        }
      }
      a {
        color: #000;
        text-decoration: none;
        &:visited {
          color: #666;
        }
        &:hover {
          color: #000;
          background-color: #AAA;
        }
      }
      img.geo_icon {
        width: 0.5rem;
        height: 0.5rem;
        margin: 0;
        padding: 0;
      }
    }

    dl.specs {
      margin: 0.2rem 0 0;
      padding: 0 0 0.3rem;
      line-height: 1;
      border-bottom: 1px solid #999;

      dt {
        padding-top: 0.45rem;
        font-size: 0.4rem;
        font-weight: bold;
        float: left;
      }
      dd {
        margin-left: 3.8rem;
        ul {
          list-style: none;
          margin: 0;
          padding: 0;

          li {
            display: inline-block;
            margin: 0 0.2rem 0 0;
            font-size: 0.5rem;
          }
        }
      }
    }

    div.content {
      margin: 1.6rem 0;
      p, dt, dd, li {
        font-size: 0.6rem;
        font-family: @serif-font;
      }
      p {
        margin: 1.2rem 0;
      }
      .wp-caption p {
        margin: 0.2rem 0 0;
      }
      li {
        margin: 0.3rem 0;
      }
      table, td, th {
        border: 1px solid #d1d1d1;
      }
      table {
        margin: 1.4rem 0;
        border-width: 1px 0 0 1px;
        border-collapse: separate;
      }
      th {
        padding: 0.2rem 0.4rem;
        font-size: 0.6rem;
        font-weight: bold;
        font-family: @sans-serif-font;
        border-width: 0 1px 1px 0;
      }
      td {
        padding: 0.2rem 0.4rem;
        font-size: 0.6rem;
        font-family: @serif-font;
        border-width: 0 1px 1px 0;
      }
      pre {
        font-size: 0.6rem;
        font-family: @sans-serif-font;
      }
      address {
        font-size: 0.6rem;
        font-style: italic;
        font-family: @sans-serif-font;
      }
      img, video, iframe {
        max-width: 100%;
      }
      img {
        height: auto;
      }

      div.post_link_container {
        margin-top: 1rem;
        border-top: 0.3rem solid #AAA;

        p.post_link {
          margin: 0.6rem 0;
          line-height: 1.2;
          padding: 0.7rem 0 0 0.5rem;
          position: relative;
          span {
            display: block;
            position: absolute;
            top: 0;
            left: 0;
            font-family: @sans-serif-font;
            font-size: 0.5rem;
            font-weight: bold;
          }
          a {
            color: #000;
            text-decoration: none;
            &:visited {
              color: #666;
            }
            &:hover {
              color: #000;
              background-color: #AAA;
            }
          }
        }
      }

      h3#comments {
        font-size: 0.8rem;
        line-height: 1.2;
        padding-top: 0.4rem;
        border-top: 0.3rem solid #AAA;
      }

      ol.commentlist {
        margin: 0;
        font-size: 0.7rem;
        div.comment-author, div.comment-meta, div.reply {
          font-size: 0.6rem;
          margin: 0.1rem 0;
          line-height: 1;
        }

        li {
          p {
            margin: 0.4rem 0;
          }
          margin-bottom: 1rem;
          padding-bottom: 1rem;
          border-bottom: 1px solid #666;
        }

        li.bypostauthor {
          display: list-item;
        }
      }

      div#respond {
        margin-top: 2rem;
        border-top: 0.3rem solid #AAA;
        h3 {
          font-size: 0.7rem;
          line-height: 1.2;
          margin: 0.6rem 0;
        }
        p {
          font-size: 0.6rem;
          margin: 0.4rem 0;
        }

        #commentform {
          label {
            display: block;
          }
          textarea {
            max-width: 100%;
            width: 100%;
            height: 5rem;
          }
          p input {
            font-size: 0.6rem;
            font-weight: normal;
            font-family: @sans-serif-font;
          }
        }
      }
    }
  }

  #menulist {
    z-index: @z-index_flcontent;
    position: fixed;
    top: 3rem;
    bottom: 1.5rem;
    left: 3rem;
    width: 40%;
    min-width: 360px;
    overflow: auto;
    display: none;

    .close_btn {
      position: absolute;
      margin: 0;
      width: 1rem;
      height: 1rem;
      top: 1rem;
      right: 2rem;
      cursor: pointer;
      z-index: @z-index_flcontent_btn;
      .opacity(0);
      img {
        width: 100%;
        height: 100%;
      }
      &:hover img {
        .opacity(0.6);
      }
    }

    .outer_container {
      position: relative;
    }

    .bg {
      position: absolute;
      top: 0;
      left: 0;
      bottom: 0;
      right: 0;
      width: 100%;
      height: 100%;
      background-color: #fff;
      .opacity(0.8);
      z-index: -1;
    }

    .inner_container {
      padding: 1rem 2rem 2rem;
      min-height: 8rem;
      .opacity(0);
    }

    h1 {
      font-size: 1rem;
      margin: 0.2rem 1rem 0.1rem 0;
      line-height: 1.2;
      a {
        text-decoration: none;
        color: #000;
        &:hover {
          background-color: #AAA;
        }
      }
    }

    h3 {
      margin: 1.6rem 0 0.4rem;
      font-size: 0.8rem;
      color: #777;
    }

    p.description {
      font-size: 0.6rem;
      line-height: 1.4;
      color: #555;
      margin: 0.2rem 0 1rem;
    }

    ul#posts_list {
      list-style: none;
      margin: 0;
      padding: 0;
      li {
        font-size: 0.6rem;
        margin-bottom: 0.4rem;

        span {
          display: inline-block;
        }
        span.title {
          display: block;
          font-family: @serif-font;
          font-size: 0.7rem;
          a {
            color: #000;
            text-decoration: none;
            &:visited {
              color: #666;
            }
            &:hover {
              color: #000;
              background-color: #AAA;
            }
          }
        }
        span.label {
          font-weight: bold;
          font-size: 0.4rem;
          padding: 0 0.2rem 0 0;
          color: #555;
        }
        span.subinfo {
          font-size: 0.5rem;
          color: #555;
        }
      }
    }

    p#posts_list_navi {
      border-top: 0.3rem solid #AAA;

      a {
        display: block;
        text-decoration: none;
        font-family: @sans-serif-font;
        font-size: 0.5rem;
        font-weight: bold;
        &:hover {
          text-decoration: underline;
        }

        &.recent {
          float: left;
        }
        &.past {
          float: right;
        }
        &.hidden {
          display: none;
        }
      }
    }

    ul#static_pages {
      padding: 0.5rem 0;
      border-top: 0.3rem solid #AAA;
      list-style: none;
      margin: 1.4rem 0 0;
      h3 {
        margin: 0.2rem 0 0.8rem;
      }
      ul {
        padding: 0 0 0 1rem;
        li {
          font-size: 0.65rem;
          a {
            color: #000;
            text-decoration: none !important;
            &:visited {
              color: #666;
            }
            &:hover {
              color: #000;
              background-color: #AAA;
            }
          }
        }
      }
    }

    h3.post_categories, h3.post_tags {
      padding-top: 0.5rem;
      border-top: 0.3rem solid #AAA;
    }

    p.post_categories, p.post_tags {
      margin: 0.4rem 0;
      font-size: 0.65rem;

      a {
        color: #000;
        text-decoration: none !important;
        &:visited {
          color: #666;
        }
        &:hover {
          color: #000;
          background-color: #AAA;
        }
      }
    }
  }

  #timeline {
    z-index: @z-index_flcontent;
    position: fixed;
    bottom: 3rem;
    left: 2rem;
    right: 2rem;
    height: 3.4rem;
    overflow: auto;
    display: none;

    .bg {
      position: absolute;
      top: 0;
      left: 0;
      bottom: 0;
      right: 0;
      width: 100%;
      height: 100%;
      background-color: #fff;
      .opacity(0.6);
      z-index: -1;
    }

    .buttons {
      position: absolute;
      top: 0.3rem;
      right: 0.3rem;
      list-style: none;
      margin: 0;
      padding: 0;

      li {
        width: 1.4rem;
        height: 1.4rem;
        cursor: pointer;
        margin: 0;
        padding: 0;
        img {
          width: 100%;
          height: 100%;
        }
        &:hover img {
          .opacity(0.6);
        }
      }
    }

    .if {
      position: absolute;
      top: 0.6rem;
      right: 2.3rem;
      left: 0.6rem;

      .cursor {
        width: 1rem;
        height: 1rem;
        cursor: pointer;
        margin: 0;
        position: absolute;
        background-image: url('./img/icon_tl_cursor.svg');
        background-repeat: no-repeat;
        background-size: contain;

        &:hover {
          .opacity(0.6);
        }
      }

      .horizontal_bar {
        height: 2px;
        background-color: #333;
        margin: 1rem 0.5rem 0;
      }

      .current_time, .total_time {
        margin: 0;
        font-size: 0.6rem;
        position: absolute;
        top: 1.3rem;
      }
      .total_time {
        right: 0;
      }
    }
  }
}

@media (max-width: 2880px) {
  html {
    font-size: 2.8rem;
  }
}

@media (max-width: 1920px) {
  html {
    font-size: 2rem;
  }
}

@media (max-width: 1600px) {
  html {
    font-size: 1.6rem;
  }
}

@media (max-width: 1440px) {
  html {
    font-size: 1.4rem;
  }
}

@media (max-width: 1024px) {
  html {
    font-size: 1.25rem;
  }
}

@media (max-width: 768px) {
  .p43d_records_show {
    #ctrl_btns {
      li:hover {
        img.default {
          display: block;
        }
        img.over {
          display: none;
        }
      }
    }

    #info_content, #menulist {
      width: 100%;
      bottom: 0;
    }
  }
}

////

.hidden {
  display: none;
}

.alignleft {
  display: inline;
  float: left;
  margin-right: 1.2rem;
}

.alignright {
  display: inline;
  float: right;
  margin-left: 1.2rem;
}

.aligncenter {
  clear: both;
  display: block;
  margin: 0 auto;
}

////

.wp-caption {
  margin-bottom: 1rem;
  max-width: 100%;
}

.wp-caption-text {
  text-align: center;
}

.page-links {
  clear: both;
  font-family: @sans-serif-font;
  margin: 0 0 1.75rem;
}

.page-links a,
.page-links > span {
  border: 1px solid #d1d1d1;
  display: inline-block;
  font-size: 0.7rem;
  height: 1.85rem;
  line-height: 1.69rem;
  margin-right: 0.31rem;
  text-align: center;
  padding: 0 0.5rem;
}

.page-links a {
  background-color: #666;
  border-color: #666;
  color: #fff;
  text-decoration: none;
}

.page-links a:hover,
.page-links a:focus {
  background-color: #222;
  color: #fff;
}

.page-links > .page-links-title {
  border: 0;
  color: #1a1a1a;
  height: auto;
  margin: 0;
  padding-right: 0.62rem;
  width: auto;
}

////
.gallery-caption {
  display: block;
}

.sticky {
  display: block;
}

.bypostauthor {
  display: block;
}

////

.screen-reader-text {
  clip: rect(1px, 1px, 1px, 1px);
  width: 1px;
  height: 1px;
  overflow: hidden;
  position: absolute !important;
}

////

.size-auto,
.size-full,
.size-large,
.size-medium,
.size-thumbnail {
  max-width: 100%;
  height: auto;
}
