/** 
 *------------------------------------------------------------------------------
 * @package       T3 Framework for Joomla!
 *------------------------------------------------------------------------------
 * @copyright     Copyright (C) 2004-2013 JoomlArt.com. All Rights Reserved.
 * @license       GNU General Public License version 2 or later; see LICENSE.txt
 * @authors       JoomlArt, JoomlaBamboo, (contribute to this project at github 
 *                & Google group to become co-author)
 * @Google group: https://groups.google.com/forum/#!forum/t3fw
 * @Link:         http://t3-framework.org 
 *------------------------------------------------------------------------------
 */
 

// --------------------------------------------------
// CORE TYPOGRAPHY (type.less)
// Headings
// --------------------------------------------------

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: @headings-font-family;
  font-weight: @headings-font-weight;
  line-height: @headings-line-height;
  color: @headings-color;

  small,
  .small {
    font-weight: @font-weight-normal;
    line-height: 1;
    color: @headings-small-color;
  }
}

h1, .h1,
h2, .h2,
h3, .h3 {
  margin-top: @line-height-computed;
  margin-bottom: (@line-height-computed / 2);

  small,
  .small {
    font-size: 65%;
  }
}

h4, .h4,
h5, .h5,
h6, .h6 {
  margin-top: (@line-height-computed / 2);
  margin-bottom: (@line-height-computed / 2);

  small,
  .small {
    font-size: 75%;
  }
}

h1, .h1 { font-size: @font-size-h1; }
h2, .h2 { font-size: @font-size-h2; }
h3, .h3 { font-size: @font-size-h3; }
h4, .h4 { font-size: @font-size-h4; }
h5, .h5 { font-size: @font-size-h5; }
h6, .h6 { font-size: @font-size-h6; }


// Body text
// -------------------------

// Paragraphs
// ----------
p {
  margin: 0 0 (@line-height-computed / 2);
}

.lead {
  margin-bottom: @line-height-computed;
  font-size: @font-size-large;
  font-weight: @font-weight-light;

  @media (min-width: @screen-sm-min) {
    font-size: @font-size-large;
  }
}


// Emphasis & misc
// ---------------

// Ex: 14px base font * 85% = about 12px
small, .small   { font-size: 85%; }

// Undo browser default styling
cite    { font-style: normal; }

// Alignment
.text-left           { text-align: left; }
.text-right          { text-align: right; }
.text-center         { text-align: center; }
.text-justify        { text-align: justify; }

// Contextual colors
.text-muted {
  color: @text-muted;
}
.text-primary {
  .text-emphasis-variant(@brand-primary);
}
.text-success {
  .text-emphasis-variant(@state-success-text);
}
.text-info {
  .text-emphasis-variant(@state-info-text);
}
.text-warning {
  .text-emphasis-variant(@state-warning-text);
}
.text-danger {
  .text-emphasis-variant(@state-danger-text);
}

// Contextual backgrounds
// For now we'll leave these alongside the text classes until v4 when we can
// safely shift things around (per SemVer rules).
.bg-primary {
  // Given the contrast here, this is the only class to have its color inverted
  // automatically.
  color: #fff;
  .bg-variant(@brand-primary);
}
.bg-success {
  .bg-variant(@state-success-bg);
}
.bg-info {
  .bg-variant(@state-info-bg);
}
.bg-warning {
  .bg-variant(@state-warning-bg);
}
.bg-danger {
  .bg-variant(@state-danger-bg);
}

// Highlight
.highlight {
  background-color: #FFC;
  font-weight: bold;
  padding: 1px 4px;
}

// Page header
// -------------------------

.page-header {
  padding-bottom: ((@line-height-computed / 2) - 1);
  margin: (@line-height-computed * 2) 0 @line-height-computed;
  border-bottom: 1px solid @page-header-border-color;
}


// Lists
// --------------------------------------------------

// Unordered and Ordered lists
// ----------------------------
ul,
ol {
  margin-top: 0;
  margin-bottom: (@line-height-computed / 2);
  ul,
  ol{
    margin-bottom: 0;
  }
}

// List options
// Unstyled keeps list items block level, just removes default browser padding and list-style
.list-unstyled {
  padding-left: 0;
  list-style: none;
}

// Inline turns list items into inline-block
.list-inline {
  .list-unstyled();
  margin-left: -5px;

  > li {
    display: inline-block;
    padding-left: 5px;
    padding-right: 5px;
  }
}

// Description Lists
dl {
  margin-top: 0; // Remove browser default
  margin-bottom: @line-height-computed;
}

dt,
dd {
  line-height: @line-height-base;
}

dt {
  font-weight: bold;
}

dd {
  margin-left: 0; // Undo browser default
}

// Horizontal description lists
//
// Defaults to being stacked without any of the below styles applied, until the
// grid breakpoint is reached (default of ~768px).

@media (min-width: @grid-float-breakpoint) {
  .dl-horizontal {
    dt {
      float: left;
      width: (@component-offset-horizontal - 20);
      clear: left;
      text-align: right;
      .text-overflow();
    }
    dd {
      margin-left: @component-offset-horizontal;
      &:extend(.clearfix all); // Clear the floated `dt` if an empty `dd` is present
    }
  }
}



//
// MISC
// --------------------------------------------------

// Post sticky
// -----------
.post-sticky {
  background: @brand-primary;
  color: @white;

  &.pull-right {
    margin-left: @t3-global-margin;
  }

  &.pull-left {
   margin-right: @t3-global-margin; 
  }

  .info {
    border-bottom: 1px solid lighten(@brand-primary, 10%);

    h3 {
      font-size: @font-size-large;

      i {
        margin-right: (@t3-global-margin / 2);
      }
    }
  }
}


// Abbreviations and acronyms
// --------------------------
abbr[title],
// Added data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257
abbr[data-original-title] {
  cursor: help;
  border-bottom: 1px dotted @abbr-border-color;
}
.initialism {
  font-size: 90%;
  text-transform: uppercase;
}

// About block
// -----------
.about-block {
  background: @gray-lightest;
  padding: @t3-global-padding;

  &.right {
    float: right;
    margin: 0 0 @t3-global-margin @t3-global-margin;
    width: 300px;
  }

  img {
    margin: 10px @t3-global-margin (@t3-global-margin / 2) 0 !important;
  }

  blockquote {
    border: 0;
    margin-top: @t3-global-margin;
    margin-bottom: 0;
    padding: 0;
    font-style: italic;

    i {
      color: @gray-light;
      margin-right: (@t3-global-margin / 4);
    }
  }
}


// Blockquotes
// -----------
blockquote {
  padding: (@line-height-computed / 2) @line-height-computed;
  margin: 0 0 @line-height-computed;
  font-size: @blockquote-font-size;
  border-left: 5px solid @blockquote-border-color;

  p,
  ul,
  ol {
    &:last-child {
      margin-bottom: 0;
    }
  }

  // Note: Deprecated small and .small as of v3.1.0
  // Context: https://github.com/twbs/bootstrap/issues/11660
  footer,
  small,
  .small {
    display: block;
    font-size: 80%; // back to default font-size
    line-height: @line-height-base;
    color: @blockquote-small-color;

    &:before {
      content: '\2014 \00A0'; // em dash, nbsp
    }
  }
}

.quote-inline {
  float: left;
  margin: 10px @t3-global-margin @t3-global-margin -@t3-global-margin;
  width: 350px;

  blockquote {
    background: lighten(@gray-lighter, 7%);
    border: 0;
    margin-bottom: 0;
    padding: @t3-global-padding;

    i {
      color: @gray-light;
      margin-right: 10px;
    }
  }
}

// Opposite alignment of blockquote
//
// Heads up: `blockquote.pull-right` has been deprecated as of v3.1.0.
.blockquote-reverse,
blockquote.pull-right {
  padding-right: 15px;
  padding-left: 0;
  border-right: 5px solid @blockquote-border-color;
  border-left: 0;
  text-align: right;

  // Account for citation
  footer,
  small,
  .small {
    &:before { content: ''; }
    &:after {
      content: '\00A0 \2014'; // nbsp, em dash
    }
  }
}

// Quotes
blockquote:before,
blockquote:after {
  content: "";
}

// Addresses
// ---------
address {
  margin-bottom: @line-height-computed;
  font-style: normal;
  line-height: @line-height-base;
}

// Blockline 
.blockline {
  display: inline-block;
  position: relative;

  &:after, &:before {
    background: @gray-light;
    content: "";
    height: 1px;
    position: absolute;
    top: 40%;
    width: 60px;

    @media screen and (max-width: @screen-xs-max) {
      display: none;
    }
  }

  &:after {
    margin-left: 25px;
    left: 100%;
  }

  &:before {
    margin-right: 25px;
    right: 100%;
  }
}

// Small Head
// ----------
.small-head {
  text-transform: uppercase;
  font-weight: @font-weight-light;
  font-size: @font-size-base;
  letter-spacing: 2px;
  color: @gray-light;
  margin: 0 0 @t3-global-margin/2;

  a {
    color: @gray-light;
  }
}


// Image block wrap
// ----------------
.img-wrap {
  float: left;
  margin: 0 @t3-global-margin @t3-global-margin 0;

  &.rounded {
    border-radius: 50%;
    border: 1px solid @gray-lighter;
    position: relative;
    overflow: hidden;

    &:before {
      border-radius: 50%;
      border: 15px solid rgba(255,255,255,0.3);
      content: "";
      height: 100%;
      left: 0;
      position: absolute;
      top: 0;
      width: 100%;
    }

    img {
      border-radius: 50%;
    }
  }



  &.right {
    float: right;
    margin: 0 0 @t3-global-margin @t3-global-margin;
  }
}

//
// CODE (inline and block) (code.less)
// -----------------------------------
// Inline and block code styles
code,
kbd,
pre,
samp {
  font-family: @font-family-monospace;
}

// Inline code
code {
}

// Blocks of code
pre {
}




// --------------------------------------------------
// ANIMATION
// --------------------------------------------------

// Keyframes
// -------------

// Fade

@-webkit-keyframes fade {
  from { 
    .opacity(0); 
  }

  to { 
    .opacity(1);
  }
}

@keyframes fade {
  from { 
    .opacity(0); 
  }

  to { 
    .opacity(1);
  }
} 

@-webkit-keyframes moveFromBottom {
  from { 
    -webkit-transform: translateY(120px);
    transform: translateY(120px);
  }

  to { 
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
}

@keyframes moveFromBottom {
  from { 
    -webkit-transform: translateY(120px);
    transform: translateY(120px);
  }

  to { 
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
}

@-webkit-keyframes moveFromLeft {
  from { 
    left: -120px;
  }

  to { 
    left: 0;
  }
}

@keyframes moveFromLeft {
  from { 
    left: -120px;
  }

  to { 
    left: 0;
  }
}

@-webkit-keyframes moveFromRight {
  from { 
    right: -120px;
  }

  to { 
    right: 0;
  }
}

@keyframes moveFromRight {
  from { 
    right: -120px;
  }

  to { 
    right: 0;
  }
}

@media(min-width: @screen-md-min) {
  .animate {
    position: relative;
    .perspective(600px);
    .opacity(0);
  }

  *[data-animation='moveFromBottom'] {
    -webkit-transform: translateY(120px);
            transform: translateY(120px);
  }

  *[data-animation='fade'] {
    .opacity(0);
  }

  .feature-animate {
    overflow: hidden;

    > .img,
    > .content.pull-right {
      right: -120px;
      left: auto;
    }

    > .content,
    > .pull-right + .img {
      left: -120px;
      right: auto;
    }
  }

  .inview {
    *[data-animation='fade'] {
      -webkit-animation: fade 300ms ease-in-out forwards;
         -moz-animation: fade 300ms ease-in-out forwards;
              animation: fade 300ms ease-in-out forwards;
    }

    *[data-animation='moveFromBottom'] {
      -webkit-animation: moveFromBottom 300ms ease 0.15s forwards;
         -moz-animation: moveFromBottom 300ms ease 0.15s forwards;
              animation: moveFromBottom 300ms ease 0.15s forwards;
    }

    &.feature-animate {
      > .img,
      > .content.pull-right {
        -webkit-animation: moveFromRight 1s ease 0.15s forwards;
           -moz-animation: moveFromRight 1s ease 0.15s forwards;
                animation: moveFromRight 1s ease 0.15s forwards;
      }

      > .content,
      > .pull-right + .img {
        -webkit-animation: moveFromLeft 1s ease 0.15s forwards;
           -moz-animation: moveFromLeft 1s ease 0.15s forwards;
                animation: moveFromLeft 1s ease 0.15s forwards;
      }
    }

    // animation delay
    *[data-delay='200'] {
      .animation-delay(200ms);
    }

    *[data-delay='300'] {
      .animation-delay(300ms);
    }

    *[data-delay='400'] {
      .animation-delay(400ms);
    }

    *[data-delay='500'] {
      .animation-delay(500ms);
    }

    *[data-delay='600'] {
      .animation-delay(600ms);
    }

    *[data-delay='1000'] {
      .animation-delay(1000ms);
    }
  }
}