/*  Trophywifeimprov.com Style Sheet  */
/*  cast.css  */
/*  v02  */
/*  defines cast section styles  */

/* START CAST WIDGET STYLES */

#widget-cast .widget-header {
  background-image: url('/images/451.jpg');
  height: 78px;
}

#widget-cast-list {
  text-align: left;
  margin-left: 3em;
}

/* END CAST WIDGET STYLES */

/* START CAST BLOG STYLES */

.cast-blog {
  margin-bottom: 1em;
  border-bottom: 1px dotted #CDCDCD;
}

.cast-blog-title {
  font-size: 93%;
  text-transform: uppercase;
  margin-bottom: 0;
}

.cast-blog-posted {
  font-size: 85%;
  color: #656565;
  margin-bottom: 1em;
  font-weight: normal;
}

.profile-blog .more {
  text-align: right;
  font-size: 77%;
  font-weight: normal;
}


/* START CAST LIST STYLES */

#cast-photo {
  border: 1px solid #000000;
}

#cast-members {
  margin: 0;
}

#cast-members li {
  display: inline;
  float: left;
  margin: 0 1em 1em 0;
  font-size: 85%;
  text-align: center;
}

#cast-members li img {
  border: 1px solid #000000;
}

#cast-members li img:hover {
  border: 1px solid #B00600;
}

/* END CAST LIST STYLES */

/* START PROFILE STYLES */

#sub-cast-title {
  margin: 0;
  height: 39px;
  background: transparent url('/images/393.gif') top left no-repeat;
}

#sub-alumni-title {
  margin: 0;
  height: 39px;
  background: transparent url('/images/490.gif') top left no-repeat;
}

#profile {
  padding: 0 1em;
}

.profile-past {
  margin-bottom: 2em;
}

#profile-box {
  width: 242px;
}

#profile-image {
  border: 1px solid #656565;
}

#profile-body {
  width: 500px;
  margin-bottom: 1em;
}

#profile-otherinfo {
  margin: 1em 0;
  text-align: center;
  background-color: #F9F9F9;
  border: 1px solid #C5C5C5;
  padding: .5em 1em .5em 1em;
}

.profile-otherinfo-title {
  text-transform: uppercase;
  margin-bottom: .3em;
}

#profile-otherinfo p {
  font-size: 85%;
  margin-bottom: 1em;
}

#profile-otherinfo .info-title {
  font-weight: bold;
}

#profile-title {
  text-transform: uppercase;
  font-size: 250%;
  margin: 0;
  color: #B00600;
}

#profile-subhead, #profile #twitter_div {
  margin: 0 0 1em 0;
  font-weight: normal;
  color: #959595;
}

#profile-subhead {
  line-height: 85%;
}

#profile #twitter_div {
  font-size: 85%;
}


#profile #twitter_div {
  background: transparent url('/images/452.png') top left no-repeat;
}

#profile #twitter_update_list {
  margin: 0 0 1em 1em;
  padding-left: .7em;
  display: inline;
}

#profile #twitter_update_list li {
  display: inline;
}

#twitter-link {
  font-size: 93%;
  color: #00bff3;
}

#profile-tabs .yui-content {
  background: transparent !important;
  border: 0 !important;
  padding: 1em .5em !important;
}

#profile-tabs .yui-nav {
  border-color: #B00600 !important;
}

#profile-tabs .yui-nav a,
#profile-tabs .yui-nav a:hover {
  background-color: #b00600;
  background-image: url('/images/344.png');
}

.profile-contact .zemContactForm,
.profile-contact .zemContactForm fieldset {
  padding: 1em;
}

.profile-contact .zemContactForm legend {
  padding: .5em;
  font-weight: bold;
}

.profile-contact .zemContactForm fieldset,
.profile-contact .zemContactForm legend {
  border: 1px solid #CDCDCD;
}

.profile-contact .zemContactForm label {
  display: block;
  margin-top: .77em;
}

.profile-contact input.zemText, 
.profile-contact textarea.zemTextarea {
  width: 85%;
  margin-bottom: 1em;
}

.profile-contact #contact_buttons {
  margin-top: .77em;
}

/* END PROFILE STYLES */

/*  end cast.css */