/* ==========================================================================
   Helper Classes & Styles
   ========================================================================== */

img,
object {
  max-width: 100%;
}

.loaded {
  animation: fadein .5s;
}

.loading {
  /* IE 8 */
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";
  /* IE 7 */
  filter: alpha(opacity=30);
  opacity: .3;
}

.clear {
  /* IE 8 */
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
  /* IE 7 */
  filter: alpha(opacity=0);
  opacity: 0;
}

/* lead paragrapgs are typically the first paragraph in a content area */
.lead {
  .webfont-regular();
  font-size: 1.125em;
  margin-bottom: 30px;
}

/* mid-leads use a medium font weight over size */
.mid-lead {
  .webfont-medium();
}

.up-lead {
  .webfont-regular();
  text-transform: uppercase;
  color: @dark-gray;
  font-size: 0.875em;
}

/* decrease the font size for sub text */
.sub {
    font-size: 0.875em;
}

.light {
  color: @gray-60;

    h4,
    h5,
    h6 {
        margin-bottom: .5em;
        font-size: 1em;
        .webfont-regular();
    }

    ul {
      margin: 0;
      padding: 0;
    }

    li {
      list-style: none;
    }
}

.sub-light {
    .webfont-regular();
    color: @gray-60;

    strong {
        .webfont-demi();
        color: @gray-80;
    }

    p {
        font-size: 0.75em;
    }

    h5,
    h6 {
        margin-bottom: 0;
        .webfont-regular();
    }
}

.sub-demi {
  font-size: 0.875em;
  .webfont-demi();
  text-transform: uppercase;
  letter-spacing: 1px;
}

/* notes are subtle call out boxes with top and bottom borders */
.note {
  .webfont-regular();
  color: @black;
  padding: 20px 10px;
  margin: 1em 0;
  border-top: 1px solid @gray-10;
  border-bottom: 1px solid @gray-10;

  p:last-child {
    .reset;
  }

  h4:first-child,
  h5:first-child {
    margin-top: 0;
  }
}

@media (min-width: 620px) {
  .note {
    padding: 20px 12%;
  }
}


/* highlight the text */
.highlight {
  background-color: @green-20;
}

.highlight-container {
  background-color: @gold-20;
  padding: 10px;
}

/* use sans-serif typeface */
.sans {
  .webfont-regular();

  strong {
    .webfont-demi();
  }
}

/* helper class for demi bold version of web font */
.demi {
  .webfont-demi();
}

.serif {
  font-family: Georgia, "Times New Roman", serif;
}

/* capitalize text */
.caps {
  text-transform: uppercase;
}

/* minimal bottom margin */
.tight {
  margin-bottom: 12px;
}

/* add a margin above an element */
.bump {
  margin-top: 1em;
}

.l-bump {
  margin-top: 2em;
}

.list-heading {
  margin-bottom: 10px;
}

@media (max-width: 800px) {
  .mobi-no {
    display: none;
  }
}

@media (min-width: 800px) {
  .mobi-yes {
    display: none;
  }
}

/* style alert (!) symbols */
.alert-positive {
  color: @green;
}

.alert-warning{
  color: @red;
}

.alert-neutral {
  color:  @gray-40;
}

// tag styles
.tags {
  .reset
}

.tag {
  display: inline-block;
  margin: 0 1em 1em 0;
  list-style: none;
}

.tag-link:link,
.tag-link:visited {
  display: block;
  background: @gray-10;
  color: @black;
  border-bottom: none;
  padding: 6px 10px;
  .webfont-demi();
}

.tag-link:hover,
.tag-link:active,
.tag-link:focus {
  background: @pacific-20;
}

// callout container
.callout,
.mega-callout {
  .webfont-regular();
  border-top: 1px solid @gray-10;
  border-bottom: 1px solid @gray-10;
  background-color: @gray-5;
  padding: 20px;

  p {
    font-size: 0.875em;
  }
}

// pad mega-callouts on large screens
@media (min-width: 720px) {
  .mega-callout {
    padding: 20px 80px;
  }
}

.icon-outdent {
  margin-left: -1.2em;
}

.checked {
  position: relative;

  &:before,
  li&:before {
    .cf-icon();
    content: "\e100";
    font-size: 17px;
    color: @green;
    left: -21px;
  }
  li&.list_item__spaced:before {
    top: 3px;
  }
  p&:before {
    text-indent: -1.4em;
  }
  li& {
    list-style: none;
  }
}

.alert {
  &:before,
  li&:before {
    .cf-icon;
    content: "\e103";
    color:  @red;
    font-size: 17px;
    left: -21px;
  }
  li&.list_item__spaced:before {
    top: 3px;
  }
  p&:before {
    text-indent: -1.4em;
  }
  li& {
    position: relative;
    list-style: none;
  }
}

.alert-alt:before {
  .cf-icon;
  content: "\e103";
  color:  @gold;
  text-indent: -1.4em;
}

.point-right:after {
  .cf-icon;
  content: "\e011";
  margin-left: 10px;
}

// info containers have a thin border around them
.info-container {
    border: 1px solid @gray-10;
    padding: 10px;
}

// alert containers have a background color but no border
.alert-container {
  background: @gray-5;
  padding: 20px;
  .webfont-regular();

  p:last-child {
    margin-bottom: 0;
  }
}

.placeholder {
    background: @gray-10;
    min-height: 200px;
    line-height: 200px;
    text-align: center;
}

.highlight-dropdown {
  border-color: @gold;
  border-width: 2px;
}

/* use group to contain floats */
.group:before,
.group:after {
    content: " "; /* 1 */
    display: table; /* 2 */
}

.cf:after {
    clear: both;
}

/**
 * For IE 6/7 only
 * Include this rule to trigger hasLayout and contain floats.
 */
.group {
    *zoom: 1;
}

.u-pb0 {
  padding-bottom: 0 !important;
}

.block__bg {
    background-color: @block__bg;
}

.u-no-bg {
   background-color: transparent;
}

.content-l_col {
    .respond-to-min(@tablet-min, {
        &.content-l_col-1-3 + &.content-l_col-2-3,
        &.content-l_col-2-3 + &.content-l_col-1-3,
        &.content-l_col-3-4 + &.content-l_col-1-4,
        &.content-l_col-1-4 + &.content-l_col-3-4 {
            margin-top: 0;
        }
    });
}

.content-l_col-1-4  {
  .respond-to-min(@tablet-min, {
    .grid_column(1, 4);
  });
}

.content-l_col-3-4  {
  .respond-to-min(@tablet-min, {
    .grid_column(3, 4);
  });
}

.u-right-on-desktop {
  .respond-to-min( 801px, {
    text-align: right;
  });
}

a[href$='.PDF']:after,
a[href$='.pdf']:after,
a[href$='.doc']:after,
a[href$='.docx']:after,
a[href$='.xls']:after,
a[href$='.xlsx']:after,
a[href$='.csv']:after,
a[href$='.zip']:after {
    .cf-icon();
    display: inline-block;
    content: @cf-icon-download;
    width: 1em;
    text-align: right;
}
