@import './base/reset';
@import './base/variables';
@import './base/colors';
@import './base/grid-flex';
@import './base/transitions';
@import './base/layout';
@import './base/fonts';

/* The emerging W3C standard
that is currently Firefox-only */
* {
  scrollbar-width: thin;
  scrollbar-color: $grisclair rgba(255,255,255,0);
}

/* Works on Chrome/Edge/Safari */
*::-webkit-scrollbar {
  width: 12px;
}
*::-webkit-scrollbar-track {
  background: rgba(255,255,255,0);
}
*::-webkit-scrollbar-thumb {
  background-color: $grisclair;
  border-radius: 20px;
  border: none;
}

body{
  color: #1a1a1a;
  background-image: url('/static/img/grille-ligne-de-base.png');
  background-repeat: repeat;
}

#root{
}

.red{
  background-color: red;
  color:white;

}

header[role="banner"]{
  div.wrapper{
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
  h1.site-title{
    grid-column: 1;
    margin:0;
    font-size: 1em;
  }
  nav#header-menu{
    grid-column: 2;
    text-align: right;
    >ul>li{
      display: inline-block;
      margin-right: 1em;
      position: relative;
      >ul{
        position: absolute;
        top:1em; right:-1em;
        overflow: hidden;
        padding-bottom: 0.5em;
        background-color: white;
        >li{
          padding:0 1em;
          // margin-right: -1em;
          transition: height 0.3s ease-in-out;
          height:0;
          overflow: hidden;
        }
      }
      //
      // &:focus-within
      // &:hover,
      &.opened{
        >ul>li{
          height:1em;
        }
      }
      &.has-submenu{
        cursor: pointer;
      }
    }
    li>span,li>a{
      font-size: 0.9em;
      color: $bleuroi;
      text-transform: uppercase;

    }
  }
}
section[role="main-content"]{
  #home{
    header{
      text-align: center;
      h1{
        color: $bleuroi;
        font-size: 8em;
        font-weight: 300;
        margin:15vh 0 0;
      }
      h2{
        color: $or;
        font-size: 2em;
        font-weight: 300;
        margin:1em 0 0;
        text-transform: uppercase;
        letter-spacing: 0.2em;
        sup{
          // line-height: 5em;
          vertical-align:text-top;
          font-size: 0.7em
        }
      }
    }
    // $filet_space:8em;
    // $decallage: 0.5em;
    section{
      padding-top: 8em;
    }
    @mixin teasersfilet($filet_space, $decallage){
      &:before, &:after{
        z-index: 0;
        content: "";
        position: absolute;
        opacity: 0.4;
      }
      &:before{
        border:1px solid $or;
        width:calc(100% + #{$filet_space*2 + $decallage*2});
        left:- $filet_space - $default_gap/2 -$decallage;
        height:calc(100% + #{$filet_space});
        top:- $filet_space / 2;
      }
      &:after{
        border:1px solid $rouge;
        width:calc(100% + #{$filet_space*2});
        left:- $filet_space - $default_gap/2;
        height:calc(100% + #{$filet_space + $decallage*2});
        top:- $filet_space / 2 - $decallage;
      }

    }
    div.teasers{
      display: flex;
      flex-direction: row;
      flex-wrap: nowrap;
      position: relative;
      padding-right: 0;
      article{
        box-sizing: border-box;
        flex-basis: percentage(2 / ( $default_sum - 6) );
        padding-right: $default_gap;
        @include fontsans;

        h1{
          color: $bleuroi;
        }
        p{
          font-size: 0.882em;
          line-height: 1.2;
        }
        span{
          color:$rouge;
          font-size:0.693em;
        }
      }
      // filets decoratif
      @include teasersfilet(8em, 0.5em);
      }
    // responsive
    @media only screen and (max-width: $small-bp) {
      header{
        h1{
          font-size: 5em;
          margin:7vh 0 0;
        }
        h2{
          font-size: 1em;
        }
      }
      section{
        padding-top: 4em;
      }
      div.teasers{
        flex-direction: column;
        // filets decoratif
        @include teasersfilet(4em, 0.5em);
      }
    }
  }

  #list-corpus, .index{
    >header>h1{
      font-family: "noto_sans";
      color: $rouge;
      font-weight: 400;
    }

    article.item{
      margin: 2em 0 0;
      header h1{
        font-size: 1.512em;
        color: $bleuroi;
        font-weight: 400;
        margin:0;
      }
    }
    ul.item-list{
      li{
        margin: 0 0 2em 0;
        header{
          h2{
            @include title1blue;
            margin:0.4em 0 0.2em;
          }
          h3{
            margin:0.2em 0;
            @include fontsans;
            font-size: 0.756em;
            font-weight: 500;
          }
          margin-bottom: 0.3em;
        }

        h4{
          margin:0.1em 0;
          font-weight: 300;
          @include fontsans;
          font-size: 0.756em;
          &.texts-quantity{
            color: $rouge;
            margin: 0.3em 0 0;
          }
        }
        section.editions{
          div.editions{
            ol{
              padding:0;
              li{
                margin:0.7em 1em;
              }
            }
          }
        }

        section.texts{

          
          ul.texts-list{
            padding: 0 0 0 1em;
            li{
              margin: 0;
            }
            h3{
              @include title2black;
              margin: 0.7em 0 0.3em;
            }
            p{
              font-weight: 300;
              @include fontsans;
              font-size: 0.756em;
              margin: 0;
            }
          }
        }

        ul {
          li{
            margin:0 0 0 1em;
            h3{
              margin: 0.5em 0;
              font-weight: 400;
              font-size: 1em;
            }
          }
        }
      }
    }
  }

  #corpus{
  }

  .index{
  }

  .index-item{
    header{
      h1{
        @include title1black;
        margin:0 0 0.3em;
      }
      p{
        margin: 0 0 0.5em 0;
      }
      h3{
        @include title2black
        margin:0;
      }
      .authors{
        a{
          @include title2black;
          color: $bleuroi;
        }
        margin:0 0 0.3em;
      }
      .mdi{
        color: $bleuroilight;
        font-size: 0.7em;
      }
    }
    .occurences{
      >ul{
        >li{
          padding:0 0 2em 0;
          h3{
            @include title2black;
            padding:0 0 0.5em 0;
            color: $bleuroi;
          }
          >ul{
            >li{
              padding:0 0 0.5em 0;
              section{
                h4{
                  @include title3black;
                  display: inline-block;
                }
                span.open-close{
                  cursor: pointer;
                  display: inline-block;
                  svg{
                    transform: rotate(-90deg) scale(0.8);
                    transition: transform 0.3s ease-in-out;
                    path{
                      fill:$bleuroi;
                    }
                  }
                }
                div.text{
                  max-height: 0;
                  transition: max-height 0.3s ease-in-out;
                  overflow: hidden;
                  box-sizing: content-box;
                  p, h1, h2, h3, h4, h5, h6{
                    margin: 0.5em 0 0 0;
                  }
                }
                a.lire-plus{
                  color: $bleuroi;
                  opacity: 0;
                  display: inline-block;
                  height: 0;
                  overflow: hidden;
                  transition: height, opacity 0.3s ease-in-out;
                }
                &.opened{
                  span.open-close{
                    cursor: pointer;
                    display: inline-block;
                    svg{
                      transform: scale(0.8) rotate(0);
                    }
                  }
                  div.text{
                    max-height:100px;
                  }
                  a.lire-plus{
                    opacity: 1;
                    height:1em;
                  }
                }
              }
            }
          }
        }
      }
    }
    nav{
      h3{
        @include title2black;
        margin:0 0 0.5em;
      }
      h4{
        @include title3black;
        margin:0 0 0.5em;
        color: $bleuroi;
      }
      .attested-forms{
        ul{
          >li{
            margin: 0 0 1em 0;
            li{
              margin: 0 0 0.5em 0;
            }
          }
        }
        a{
          @include title4grey;
          color: $grisfonce;
          font-weight: 400;
        }
      }
    }
  }

  #edition{
    >header{
      position: relative;
      h1{
        @include title1black;
      }
      aside.index-tooltip{
        z-index:10;
        margin-top: -1.75em;
        position:absolute;
        text-align: right;
        right: 2em;
        h1 {
          @include title2black;
          margin:0 0 0.5em 0;
        }
        p{
          margin:0 0 0.5em 0;
        }
        time{
          font-weight: 600;
        }
        @media only screen and (max-width: $small-bp) {
          background-color: #fff;
          padding: 1em;
          box-shadow: 0 0 10px $gris;
          *{
            pointer-events: none;
          }
        }
      }
    }

    $pagenum_w:1em;
    >section{
      padding-right: 0;
      >.wrapper{
        padding-right: $pagenum_w*2;
      }
      div#text{
        // .infinite-loading-container{
        //   height:0;
        //   overflow: hidden;
        // }
        div.tei{
          position: relative;
          width: calc(100% - #{$pagenum_w});

          // DEBUG
          color:chartreuse;
          &>*{ color: #1A1A1A;}

          // @media only screen and (min-width: $small-bp + 1) {
          padding-right: $pagenum_w;
          border-left: 1px dotted $grisclair;
          padding-left: 1em;
          &.active{
            border-left: 1px dotted $bleuroi;
          }
          // }
          >h1{
            @include teititle1blue;
          }
          span.placeName,
          span.objectName,
          span.persName{
            font-weight: 600;
          }

          h1{ font-size: 1.512em; 
            line-height: $base-line; }
          p{
            margin-top: 0;
            font-size: 1.134em;
            line-height: $base-line;
            margin-bottom: $base-line / 2;
            span.persName,
            span.placeName,
            span.objectName{
              font-weight: 600;
            }
            a{
              font-weight: 600;
              &.active-link{
                color: $rouge;
                // text-decoration: underline;
                line-height: $base-line/2;
              }
              sup.mdi{
                font-size: 0.630em;
                vertical-align: super;
                // line-height: 0.1;
                padding: 0 0.2em;
              }
            }
          }

          span[role="pageNum"]{
            font-size: 16px;
            position: relative;
            float:right;
            width: $pagenum_w; height:0;
            // margin-left:calc(100% - #{$pagenum_w * 2});
            // margin-left: 100%;
            margin-right: - $pagenum_w;
            &:after{
              content:attr(data-num);
              border-top: 1px solid $bleuroilight;
              position: absolute;
              right:0;
              font-size: 0.630em;
              width: $pagenum_w*2; height: $pagenum_w;
              line-height: $pagenum_w;
              border-right: 1px solid $bleuroilight;
              color: $bleuroi;
              text-indent: $pagenum_w * 2.5;
            }
          }

          a.text-item-link{
            // float: left;
            position: absolute;
            top:0; left:0;
            // display: block;
            // width:1em; height:1em;
            font-size: 0.630em;
            .mdi{
              color: $bleuroi;
              pointer-events: none;
            }
          }
          // front page
          header{
            padding-top: $base-line;
            h1{
              @include teititlefrontblue;
              .initial{
                display: inline-block;
                text-transform: uppercase;
                font-size: 1.3em;
                line-height: $base-line*2;
                margin: $base-line/2 0;
              }
            }
          }
          .byline{
            text-align: center;
            font-style: italic;
            padding-bottom: 1em;
          }
          .docImprint{
            text-align: center;
            // padding-bottom: 1em;
          }
          .imprimatur{
            text-align: center;
            font-style: italic;
            padding-bottom: 1em;

          }

          figure{
            // outline: 1px solid red;
            background-color: $grisclair;
            margin:1em 0;
            img{
              width: 100%;
            }
            figcaption{
              @include fontcaption
              padding: 0.5em;
            }
          }

          ul{
            line-height: $base-line;
            margin-bottom: $base-line/2;
          }
          blockquote{
            margin: $base-line/2 1em;
            line-height: $base-line;
            p{
              margin: 0;
            }
          }
        }
      }
    }

    >nav{
      $pager_h:2em;
      display: flex;
      flex-direction: column;
      span.nav-title{ display:none; }

      section#toc{
        box-sizing: content-box;
        padding:0 0 1em 1.5em;
        height:calc(100% - #{$pager_h});
        overflow-x: hidden;
        overflow-y: auto;
        line-height: $base-line / 2;
        >ul{
          ul{
            li{
              ul{
                overflow: hidden;
                max-height: 1000px;
                transition: max-height 0.5s ease-in-out;
                // transform: scaleY(1);
                // transform-origin: top;
                // transition: transform 0.3s ease-in-out;
                &:not(.opened){
                  // height:0;
                  max-height:0;
                  transition: max-height 0.5s cubic-bezier(0, 1.05, 0, 1);
                  // transform: scaleY(0);
                }
                // &.opened{
                //   border: 1px solid red;
                // }
                // padding-left: 1em;
                border-left: 0.5px solid $grisclair;
                // min-height: 1em;
                margin-bottom: 0em;
                li{
                  // min-height: 1em;
                  // border-left: 1px solid red;
                  padding:0 0 0 1em;
                }
              }
            }
          }
          .toc-title{
            @include title4grey;
            &.active,
            &:hover{
              color:$grisfonce;
              font-weight: 600;
            }
            &.loaded{
              color:$grisfonce;
            }
          }
          // h2.toc-title{font-size: 0.882em;}
          // h3.toc-title{font-size: 0.882em;}
          // h4.toc-title{font-size: 0.882em;}
          // h5.toc-title{font-size: 0.882em;}
          // h6.toc-title{font-size: 0.882em;}
          // span.toc-title{font-size: 0.882em;}
        }
      }

      div#page-nav{
        height:$pager_h;
        overflow: hidden;
        box-sizing: content-box;
        padding:1em 0 0 1.5em;
        select{
          option{
            padding:0;
          }
        }
      }
    }
    // responsive
    @media only screen and (max-width: $small-bp) {
      position: relative;
      >nav{
        $top: 45px;
        z-index: 2;
        position: absolute;
        top:$top;
        right:0;
        background-color: #fff;
        width:percentage(10/$default_sum);
        box-sizing: border-box;
        padding-top: 1em;
        padding-bottom: 1em;
        height:calc(100% - #{$top});

        transform: translateX(100%);
        transition: transform 0.3s ease-in-out;

        span.nav-title{
          display: block;
          position: absolute;
          top:4.5em; left:-1.8em;
          transform: rotateZ(-90deg);
          transform-origin: center;
          @include fontsans;
          font-size: 0.600em;
          cursor: pointer;
          color: $bleuroi;
          svg{
            vertical-align: bottom;
            transform-origin: center;
            transform: scale(0.8) rotate(180deg);
            transition: transform 0.3s ease-in-out;
            path{
              fill: $bleuroi;
            }
          }
        }

        &.opened{
          box-shadow: -3px -3px 5px $grisclair;
          transform: translateX(0);
          span.nav-title{
            svg{
              transform: scale(0.7) rotate(0);
            }
          }
        }

      }
    }
  }

  #text{
    .tei{}}

  #biblio{
    .router-link-active{
      font-weight: 600;
    }
    ul.item-list{
      margin:0;
      padding:0;
      li{
        padding:0;
        margin:0 0 1.5em 0;
        h2{
          margin:0;
          @include title2black;
        }
        p{
          margin:0;
        }
      }
    }
  }
}

footer[role="tools"]{
  $list-item-h: 7em;

  @mixin resultItem{
    box-sizing: border-box;
    // we are only on 10 colls as 2 are occupied by sides
    flex-basis: percentage(2/($default_sum - 2));
    max-height: $list-item-h;
    overflow: hidden;
    padding-bottom: 1em;
    padding-right: $default_gap;
    article{
      max-height: 100%;
      overflow: hidden;
    }
    article.item{
        h1{
          @include title3black;
          font-weight: 600;
          max-width: 95%;
        }
        h2{
          @include title3black;
          text-transform: none;
        }
        span{
          font-size: 0.882em;
        }
      // .preview{
      //   font-size: 0.882em;
      //   margin:0;
      //   code{
      //     @include fontserif;
      //     background-color: lighten(desaturate($rouge,20%), 20%);
      //     padding:0 0.2em;
      //   }
      // }
    }

  }

  #history{
    z-index: 8;
    background-color: $or;
    padding:1.2em $side-padding;
    max-height: $list-item-h;
    @include accordeon-transition($list-item-h);
    >header{

    }
    .history-list{
      overflow-x: hidden;
      .wrapper{
        height:100%;
        // hidding the scrollbar
        overflow-y: auto;
        // width:calc(100% + 1em);
        padding-right: 1em;
        >ul{
          padding:0;
          display: flex;
          flex-direction: row;
          flex-wrap: wrap;
        }
      }
      li.item{
        @include resultItem;
      }
    }
  }
  #results{
    z-index: 9;
    background-color: $gris;
    padding:1.2em $side-padding;
    @media only screen and (max-width: $small-bp) {
      padding:1.2em $side-padding/2;
    }
    max-height: $list-item-h * 3;
    @include accordeon-transition($list-item-h * 3);
    >header{
      .search-keys{
        font-size: 0.756em;
        font-weight: 500;
      }
      .results-count{
        font-size: 0.756em;
      }
    }
    .results-list{
      overflow-x: hidden;
      .wrapper{
        position:relative;
        height:100%;
        // hidding the scrollbar
        overflow-y: auto;
        // width:calc(100% + 1em);
        padding-right: 1em;
        >ul{
          padding:0;
          display: flex;
          flex-direction: row;
          flex-wrap: wrap;
        }
      }
      li.result{
        @include resultItem;
      }
      .infinite-loading-container{
        // TODO: how to center the loading
      }
    }

    >header, section.results-list{
      transition: opacity 0.2s ease-in-out;
    }
    &.loading {
      >header, section.results-list{
        transition: opacity 0.5s ease-in-out;
        opacity:0.5;
        pointer-events: none;
      }
    }

    // responsive
    @media only screen and (max-width: $small-bp) {
      position: relative;
      >header{
        padding:0 0 1em 0;
        >*{
          display: inline-block;
          margin-right: 1em;
        }
        #sorting{
          width:10em;
        }
      }
      >section.results-list{
        max-height: 15em;
        li.result{
          flex-basis: 33%;
        }
      }
      >nav{
        position: absolute;
        top:1.2em; right:1.2em;
      }
    }
  }
  #footer-bottom{
    z-index: 10;
    padding:0 $side-padding;
    @media only screen and (max-width: $small-bp) {
      padding:0 $side-padding/2;
    }
    background-color: $bleuroi;
    &>*{
      // disable grid gap
      padding-right: 0;
    }
    #footer-tabs{
      ul{
        padding:0; margin:0;
        display: flex;
        flex-direction: column;
        li{
          flex: 1 1 auto;
          .wrapper{
            box-sizing: border-box;
            line-height: 0.6em;
            height:2em;
            width: calc(100% + $side-padding);
            margin-left:-$side-padding;
            padding:0.3em 0.5em 0.3em $side-padding;
          }
          &.history .wrapper{
            background-color: $or;
          }
          &.results .wrapper{
            background-color: $gris;
          }
          span{
            font-size: 0.693em;
            font-weight: 400;
            text-transform: uppercase;
            cursor: pointer;
            @include fade-transition;
          }
        }
      }
    }
    #search{
      color: #fff;
      background-color: $bleuroi;
      form{
        padding: 0;
        // display: flex;
        // flex-direction: row;
        // flex-wrap: wrap;
        fieldset{
          padding:0.7em 1em;
          border: none;
          box-sizing:border-box;
          // width correction as row is not the same width as others in the page
          // flex-basis: percentage(2/($default_sum - 1));
          // flex-basis: 17.667%;
          // flex-basis: percentage(2 / 11);
          &:not(:first-of-type){
            border-left: 1px solid $grisclair;
          }
        }
        fieldset.search{
          display: inline-flex;
          >div{
            width:80%;
            vertical-align: middle;
          }
          label[for="keys"]{
            display: none;
          }
          input[type="text"]{
            padding:0em 0.3em;
            margin:0 0 0.3em 0;
            box-sizing: border-box;
            font-size: 0.756em;
            line-height: 1;
            width:100%;
            height:1.4em;
            border:none;
            border-radius: 2px;
          }
          span.mdi{
            display: inline-block;
            margin:0 0 0 0.5em;
            font-size: 1.2em;
            line-height:1.1;
            vertical-align:middle;
            width:1.2em; height:1.2em;
            border-radius: 0.6em;
            background-color: #fff;
            color: $bleuroi;
            text-align: center;
            font-weight: 700;
            cursor: pointer;
          }
        }
      }

      fieldset.filters{
        .vs__actions{
          // background-color: $grisclair;
          align-items:baseline;
          padding-top:0.2em;
        }
      }
      form{
        transition: opacity 0.2s ease-in-out;
      }
      &.loading{
        form{
          opacity:0.5;
          transition: opacity 0.5s ease-in-out;
          pointer-events: none;
        }
      }

      // responsive
      @media only screen and (max-width: $small-bp) {
        form{
          fieldset{
            &.search{
              >div{
                display: inline-flex;
                flex-wrap: nowrap;
                width:84%;
                >*{
                  flex-basis: 45%;
                  margin: 0 0.5em 0 0;
                  // box-sizing: content-box;
                  // width:auto!important;
                  &#keys[type="text"]{
                    margin-right:1.5em;
                  }
                }
              }
              span.mdi{
                width:1em; height:1em;
                margin-top: -0.1em;
                margin-left: 0;
              }
            }
            &.filters{
              border-left: none;
              flex-basis: 32%;
              padding: 0.2em 0 1em 1em;
            }
          }
        }
      }
    }
  }
  h2{
    margin:0;
    font-size: 0.756em;
    font-weight: 400;
    text-transform: uppercase;
    padding:0;
  }
}

// vue-select
.v-select{
  padding:0;
  div[role="combobox"]{
    background-color: #fff;
    padding:0;
    border-radius: 2px;
    border: none;
  }
  input[type="search"]{
    margin:0;
    padding:0;
    -webkit-appearance:textfield;
    -webkit-box-sizing:content-box;
  }
  input::-webkit-search-decoration,
  input::-webkit-search-cancel-button {
      display: none;
  }
  .vs__search{
    &, &:focus{
      font-size: 0.756em;
      line-height: 1;
      height:1.2em;
      border:none;
      box-sizing: border-box;
    }
  }
  .vs__dropdown-toggle{
    input::placeholder{background-color: #fff;}
  }
  .vs__selected-options{
    background-color: #fff;
  }
  .vs__actions{
    padding:1px 3px;
    button.vs__clear{
      line-height: 0.5;
      // height:0;
    }
    svg[role="presentation"]{
      transform: scale(0.8);
      path{
        fill: $bleuroi;
      }
    }
  }
  .vs__selected{
    margin:0;
    padding:0.2em 0;
    line-height:1;
    font-size: 0.756em;
    background-color: #fff;
    border:none;
    align-items: middle;
    box-sizing: content-box;
    display: inline-block;
    width: calc(100% - 12px);
    // &>*:not(button){
    //   display: inline-block;
    //   width:70%;
    // }
    button{
      svg{
        transform: scale(0.8);
        path{
          fill: $bleuroi;
        }
      }
      &.vs__deselect{
        line-height: 0;
      }
    }

  }

  // border-radius: 2px;
  // border: none;
}

ul[role="listbox"]{
  @include fontsans;
  padding:0;
  margin:0;
  border:none;
  position: relative;
  li{
    box-sizing: content-box;
    padding:0.3em;
    margin:0;
    font-size: 0.756em;
    line-height: 1;
    white-space: normal;
    position: relative;
    *{
      max-width: 100%;
    }
  }
}

//  ___
// |_ _|__ ___ _ _  ___
//  | |/ _/ _ \ ' \(_-<
// |___\__\___/_||_/__/

span.mdi-close{
  cursor: pointer;
}

@keyframes spin {
    from {
        transform:rotate(0deg);
    }
    to {
        transform:rotate(360deg);
    }
}

span.mdi-loading{
  animation-name: spin;
  animation-duration: 2000ms;
  animation-iteration-count: infinite;
  animation-timing-function: linear;
}


 //  _                 _ _
 // | |   ___  __ _ __| (_)_ _  __ _
 // | |__/ _ \/ _` / _` | | ' \/ _` |
 // |____\___/\__,_\__,_|_|_||_\__, |
 //                            |___/

span.loading{
  @include fontsans;
  font-size: 0.756em;
  color: $grisfonce;
  animation: pulseloading 4s infinite;
}

@keyframes pulseloading{
  0% {
    opacity: 1;
  }
  50%{
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}