/* TrophyWifeImprov.com stylesheet */
/* common.css */
/* v02 */
/* defines common, site-wide styles */

/* START COMMON BASE STYLES */

body { margin: 0; }

a {
  color: #B00600;
  text-decoration: none;
}

a:visited { color: #B00600; }

a:hover {
  color: #CC6666;
  text-decoration: underline;
}

a:active { color: #000000; }

.clearboth { clear: both; }

.clearfix:after {
  content: " ";
  display: block;
  height: 0;
  clear: both;
  visibility: hidden;
  font-size: 0%;
}

.clearfix {display: inline-block;}  /* for IE/Mac */

.left { float: left; }

img.left { margin: 0 1em 1em 0; }

.img_float_left, .photo_caption_left {
  float: left;
  margin: 0 1em 1em 0;
}

.right { float: right; }

img.right { margin: 0 0 1em 1em; }

.img_float_right, .photo_caption_right {
  float: right;
  margin: 0 0 1em 1em;
}

.align-left { text-align: left; }

.align-center { text-align: center; }

.align-right { text-align: right; }

blockquote {
  clear: both;
  padding: .5em;
  background-color: #F9F9F9;
  border: 1px solid #C5C5C5;
  margin: 1em;
}

.img-replace {
  display: block;
  text-indent: -5000em;
  overflow: hidden;
}

.hide { display: none; }

.zemError {
  text-align: left;
  color: #B00600;
  margin: .5em;
  border: 1px solid #B00600;
  padding: .5em;
}

.zemError li { margin-left: 2em; }

.photo-credit {
  display: block;
  text-align: right;
  font-size: 77%;
}

.bigger { font-size: 125%; }

/* END COMMON BASE STYLES */

/* START MAINNAV HILIGHT STYLES */

#about #mainnav-about a,
#blog #mainnav-blog a,
#news #mainnav-news a,
#cast #mainnav-cast a,
#video #mainnav-video a,
#podcast #mainnav-video a,
#photos #mainnav-photos a,
#press #mainnav-press a,
#merch #mainnav-merch a,
#getwifed #mainnav-getwifed a,
#contact #mainnav-contact a { color: #f7c21d !important; }

#about #mainnav-about li a,
#blog #mainnav-blog li a,
#news #mainnav-news li a,
#cast #mainnav-cast li a,
#video #mainnav-video li a,
#podcast #mainnav-video li a,
#photos #mainnav-photos li a,
#press #mainnav-press li a,
#merch #mainnav-merch li a,
#getwifed #mainnav-getwifed li a,
#contact #mainnav-contact li a { color: #b00600 !important; }

/* END MAINNAV HILIGHT STYLES */

/* START MAIN BLOG STYLES */

#main-blog-header {
  width: 100%;
  margin: 0 0 1em 0;
  padding-bottom: 15px;
  background: transparent url('/images/341.jpg') bottom left no-repeat;
}

#main-blog-title {
  float: left;
  display: inline;
  margin: 0;
  width: 403px;
  height: 39px;
  background: transparent url('/images/348.gif') top left no-repeat;
}

#main-blog-subscribe {
  float: right;
  display: inline;
  margin: 0 1em;
  background: transparent url('/images/340.jpg') top left no-repeat;
}

#main-blog-subscribe a {
  width: 46px;
  height: 47px;
}

#main-blog-bestof {
  float: right;
  display: inline;
  margin: 0;
  background: transparent url('/images/339.jpg') top left no-repeat;
}

#main-blog-bestof a {
  width: 42px;
  height: 47px;
}

/* END MAIN BLOG STYLES */

/* START COMMON ARTICLE STYLES */

.article {
  padding: 0 .5em;
  margin-bottom: 1em;
}

.article-header { width: 100%; }

.article-header-img {
  width: 50px;
  float: left;
  display: inline;
}

.article-header-info {
  width: auto;
  position: static;
  margin-left: 4.5em;
}

.article-title {
  margin: 0;
  text-transform: uppercase;
  font-size: 200%;
  line-height: 100%;
}

.article-title a:hover {
  text-decoration: none;
}

.article-author-info {
  font-size: 93%;
  font-weight: normal;
}

.article-categories {
  font-weight: normal;
  font-size: 85%;
  margin-bottom: 1em;
}

.article-header-img img {
  margin: 0 1em 1em 0;
  border: 1px solid #B00600;
}

.article-header-img img:hover {
  border: 1px solid #CC6666;
}

.article-footer {
  clear: both;
  width: 100%;
  padding: .5em 0 1em 0;
  border-top: 1px solid #CDCDCD;
  margin: 1em 0 0 0;
}

.article-footer td {
  vertical-align: middle;
  padding: .25em .5em;
  font-size: 85%;
  border: 0;
  border-left: 1px solid #B00600;
}

.article-footer .shareicon {
  margin-bottom: -.25em;
}

.article-footer td.first {
  border-left: none;
  padding-left: 0;
}

/* END COMMON ARTICLE STYLES */

/* START PAGENAV STYLES */

.pagenav {
  width: 100%;
  font-size: 85%;
  margin-bottom: 1em;
  color: #ABABAB;
}

.pagenav td {
  border: 0;
}

/* END PAGENAV STYLES */

/* BEGIN ARTICLE COMMENT STYLES */

.article-comments {
  padding: 1em;
  width: 95%;
}

#no-comments {
  font-size: 85%;
  margin: 1em 1em 2em 1em;
  padding: 1em;
  border-bottom: 1px dotted #CDCDCD;
}

#txpCommentInputForm { width: 85%; }

#txpCommentInputForm input { margin-bottom: .5em; }

#txpCommentInputForm #name,
#txpCommentInputForm #email,
#txpCommentInputForm #web,
#txpCommentInputForm #message { width: 100%; }

#cpreview {
  width: 85%;
  background-color: #FFFBCC;
  padding: 0 1em;
  font-size: 85%;
}

#cpreview h5 {
  margin-top: 1em;
  font-weight: bold;
  text-transform: uppercase;
}

#cpreview p { margin: 1em 0; }

#cpreview p.small {
  font-size: 93%;
  text-align: right;
}

.comments_error {
  color: #ED1C24;
  font-size: 85%;
  border: 1px solid #ED1C24;
}

.comments_error ul {
  margin: 1em;
  padding: .5em;
}

.comments_error li {
  margin: .5em .5em .5em 2em;
}

.article-comments h4 {
  text-transform: uppercase;
  font-size: 125%;
  color: #B00600;
  margin-bottom: 1em;
}

.article-comments .comments li {
  margin-bottom: 1em;
  padding-bottom: .5em;
  font-size: 85%;
  border-bottom: 1px dotted #CDCDCD;
}

.article-comments .comments p.small {
  text-align: right;
  font-size: 93%;
}

/* END ARTICLE COMMENT STYLES */


/* START WIDGET COMMON STYLES */

.widget {
  width: 180px;
  margin-bottom: .5em;
  text-align: center;
  background: transparent url('/images/362.gif') top left repeat-y;
}

.widget-header {
  margin: 0 0 .5em 0;
  background: white;
}

.widget-body {
  padding-bottom: 2em;
  background: transparent url('/images/363.gif') bottom left no-repeat;
}

.widget-body h5 {
  margin-bottom: 1em;
}

.widget .widget-subhead {
  display: none;
}

/* END WIDGET COMMON STYLES */


/* START PODCAST WIDGET STYLES */

#widget-podcast {
  background-image: url('/images/371.gif');
  font-size: 85%;
  margin-top: .5em;
}

#widget-podcast .widget-header {
  background: transparent url('/images/373.gif') top left no-repeat;
}

#widget-podcast .widget-header a {
  height: 97px;
}

#widget-podcast .widget-body {
  background-image: url('/images/372.jpg');
}

#widget-podcast .widget-body h5 {
  text-transform: uppercase;
  text-size: 125%;
  margin-bottom: .5em;
}

#widget-podcast #show-title {
  font-weight: bold;
  text-transform: uppercase;
  font-size: 115%;
}

#widget-podcast #subscribe-itunes {
  width: 168px;
  height: 37px;
  margin: 0 .5em;
  background: transparent url('/images/374.gif') top left no-repeat;
}

#widget-podcast #subscribe-other {
  width: 165px;
  height: 37px;
  margin: 0 .7em;
  background: transparent url('/images/375.gif') top left no-repeat;
}

#widget-podcast .more {
  text-align: right;
  font-size: 93%;
  margin: .5em 1em 0 0;
}

/* END PODCAST WIDGET STYLES */


/* START SHIRT WIDGET STYLES */

#widget-shirts a {
  height: 357px;
  background: transparent url('/images/376.jpg') top left no-repeat;
}

/* END SHIRT WIDGET STYLES */


/* START OTHERSHOWS WIDGET STYLES */

#widget-othershows .widget-header {
  background: transparent url('/images/370.gif') top left no-repeat;
  height: 96px;
}

#widget-othershows .widget-body {
  font-size: 85%;
  padding-left: 1em;
  padding-right: 1em;
}

#widget-othershows .widget-body img {
  border: 1px solid #b00600;
  margin: 0 .5em;
}

#widget-othershows .widget-body img:hover { border: 1px solid #000000; }

/* END OTHERSHOWS WIDGET STYLES */


/* START LIVE WIDGET STYLES */

#widget-live {
  margin-top: 1em;
}

#widget-live .widget-header {
  background: transparent url('/images/366.gif') top left no-repeat;
  height: 89px;
}

#widget-live .widget-body {
 padding: 0 .5em 2em .5em;
 font-size: 85%;
}

#widget-live #buy-button {
  background: transparent url('/images/365.gif') top left no-repeat;
  width: 130px;
  height: 26px;
  margin: 0 auto;
}

/* END LIVE WIDGET STYLES */


/* START CALENDAR WIDGET STYLES */

#widget-calendar a {
  height: 312px;
  background: transparent url('/images/361.jpg') top left no-repeat;
}

/* END CALENDAR WIDGET STYLES */


/* START MAILING LIST WIDGET STYLES */

#widget-mailinglist .widget-header {
  background: transparent url('/images/369.gif') top left no-repeat;
  height: 103px;
}

#widget-mailinglist .widget-body {
  font-size: 85%;
}

#widget-mailinglist .zemContactForm legend {
  display: none;
}

#widget-mailinglist .zemContactForm .zemText {
  margin-bottom: .5em;
  width: 75%;
}

#widget-mailinglist .zemContactForm .zemSubmit {
  margin-top: 1em;
}

/* END MAILING LIST WIDGET STYLES */


/* START FOOTER STYLES */

#ft {
  background: #F5F5F5 url('/images/343.jpg') top center no-repeat;
  border-top: 1px solid #D7D7D7;
  font-size: 77%;
  text-align: center;
  padding: 1em 0 3em 0;
}

/* END FOOTER STYLES */


/* START YUI MENU STYLES */

.yuimenubar {
  visibility: visible;
  position: static;
}

.yuimenubar .yuimenu {
  visibility: hidden;
  position: absolute;
  top: -10000px;
  left: -10000px;
  background-color: #FFFFFF;
  border-top: 1px solid #000000;
  border-bottom: 1px solid #004A80;
  border-left: 1px solid #000000;
  border-right: 1px solid #000000;
}

.yuimenubaritemlabel, .yuimenuitemlabel {
  text-align: left;
  white-space: nowrap;
}

.yuimenuitem a {
  display: block;
  background-color: #FFFFFF;
  padding: .5em .77em;
  font-weight: normal;
  text-decoration: none;
  text-transform: none;
  border-bottom: 1px solid #C2C2C2;
}

.yuimenuitem a:hover {
  color: #FFFFFF;
  background-color: #999999;
  text-decoration: none;
}

.yuimenubar ul { *zoom: 1; }
.yuimenubar .yuimenu ul { *zoom: normal; }

.yuimenubar>.bd>ul:after {
  content: ".";
  display: block;
  clear: both;
  visibility: hidden;
  height: 0;
  line-height: 0;
}

.yuimenubaritem { float: left; }
.yuimenubaritemlabel,.yuimenuitemlabel { display: block; }

.yuimenuitem .more {
  background-image: url('/images/345.gif');
  background-position: top right;
  background-repeat: no-repeat;
}

.yuimenuitemlabel .helptext {
  font-style: normal;
  display: block;
  margin: -1em 0 0 10em;
}

.yui-menu-shadow {
  position: absolute;
  visibility: hidden;
  z-index: -1;
}

.yui-menu-shadow-visible {
  top: 0;
  right: 0;
  left: -4px;
  bottom: -4px;
  visibility: visible;
  background-color: #000000;
  opacity: .2;
}

/* END YUI MENU STYLES */

/* START DONATION WIDGET STYLES */

#donate-form {
  padding: .7em;
  border: 1px solid #b00600;
  margin: 1em 0;
}

#donate-left {
  width: 80px;
  float: left;
  display: inline;
}

#donate-right {
  position: static;
  width: auto;
  margin-left: 90px;
}

#donate-right h4 {
  margin: 0;
  font-size: 150%;
  text-transform: uppercase;
  color: #b00600;
}

/* END DONATION WIDGET STYLES */

/* START AD STYLES */

.ad-skyscraper {
  width: 120px;
  margin: 0 auto;
}

/* END AD STYLES */

/* end common.css */