/* jqModal alert CSS  */
div.jqmAlert { /* contains + positions the alert window */
  display: none;

  position: fixed;
  top: 17%;
  width: 100%;
}

/* Fixed posistioning emulation for IE6
     Star selector used to hide definition from browsers other than IE6
     For valid CSS, use a conditional include instead */
* html div.jqmAlert {
     position: absolute;
     top: expression((document.documentElement.scrollTop || document.body.scrollTop) + Math.round(17 * (document.documentElement.offsetHeight || document.body.clientHeight) / 100) + 'px');
}

div.jqmAlertWindow {
  height:auto;
  width: auto;
  margin: auto;

  max-width:400px;
  padding: 0 10px 10px;

  background:#111;
  border:3px solid #FFF;
  opacity:.90;
  filter: alpha(opacity=90);
  -moz-opacity: 0.9;
}

.jqmAlertTitle{
  margin:5px 2px;
  height:20px;
  color:#FFF;
  background:#000;
}
.jqmAlertTitle h1{
  margin:5px 2px;
  padding-left:5px;
  padding:0;
  font-size:14px;
  text-transform:capitalize;
  letter-spacing:-1px;
  font-weight:bold;
  color:#FFF;

  float:left;
  height:20px;
}

div.jqmAlert .jqmClose em{display:none;}
div.jqmAlert .jqmClose {
  width:20px;
  height:20px;
  display:block;
  float:right;
  clear:right;
  background:transparent url(close_icon_double.png) 0 0 no-repeat;
}

div.jqmAlert a.jqmClose:hover,div.jqmAlert a.jqmCloseHover{ background-position: 0 -20px; }

div.jqmAlertContent{
  border-top:0px;
  color:#FFF;
  font:11px/14pt arial;
  padding:5px 20px 5px;
  margin:5px;
  border:1px dotted #111;
  letter-spacing:0px;
  background:#111 url(alert/darkgrid.png);
}

.clearfix:after {
    content: ".";
    display: block;
    height: 0;
    clear: both;
    visibility: hidden;
}

.clearfix {display: inline-block;}

/* Hides from IE-mac \*/
* html .clearfix {height: 1%;}
.clearfix {display: block;}
