/* HTML 5 */
article, aside, dialog, figure, footer, header, hgroup, nav, section { 
	display: block;
}

body {
  margin: 0;
  padding: 3.6em 0;
  font-size: 62.5%;
  font-family: Times, serif;
  background-color: #e5e5ff;
}


/*** Links ***/


a {
  font-family: Helvetica, sans-serif;
  text-decoration: none;
}

#content a {
  padding: 0.2em;
  margin: -0.2em;
  color: #900;
  font-weight: bold;
}

#content a:hover {
  color: #036;
  background-color: #cce1e8;
  text-decoration: none;
}

#content p a,
#content li a {
  /* 12/18 */
  font-size: 0.923em;
  line-height: 1.5em;
}

a:hover,
a:focus,
a:active {
  text-decoration: underline;
}


/*** Common elements and classes ***/


p, li {
  /* 13/18 */
  font-size: 1.3em;
  line-height: 1.385em;
}

p {
  margin-bottom: 1.385em;
}

h1,
h2,
p,
li {
  color: #036;
}

p.emphatic {
  /* 30/36 */
  font-size: 3em;
  line-height: 1.2em;
  margin: 0;
  text-align: center;
}

p.see-more {
  text-align: right;
}

p.see-more a:after {
  content: " \00bb";
}

hr {
  margin-top: 1.8em;
  margin-bottom: 1.8em;
  background-color: #99b6cc;
}

blockquote.pullquote {
  float: left;
  width: 189px;
  margin: 0 15px 0 0;
  padding: 10px 25px;
  background-color: #cce1e8;
}

blockquote.pullquote p {
  /* 18/36 */
  font-size: 2.4em;
  line-height: 1.5em;
  margin-bottom: 0;
  text-align: center;
}

.screenreader {
  position: absolute;
  top: -9999em;
}

.replaced {
  position: relative;
  text-indent: -1000em;
}

.replaced span {
  position: absolute;
  display: block;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-position: top left;
  background-repeat: no-repeat;
}


/*** Site structure ***/


.shadow {
  margin: 0 auto;
  width: 971px;
}

#top-shadow-container {
  padding-top: 20px;  /* shadow image */
  background: url(/images/shadow-top.png) left top no-repeat #fff;
}

#middle-shadow-container {
  background: url(/images/shadow-sides.png) left top repeat-y;
}

#bottom-shadow-container {
  padding-bottom: 34px;   /* shadow image + 1/4 the footer height */
  background: url(/images/shadow-bottom.png) left bottom no-repeat;
}

#branding {
  position: relative;
}

#branding .container {
  position: absolute;
  left: 25px;
  top: -32px;
  background: url(/images/fade-nav.png) left top repeat-x;
}

#logo {
  position: absolute;
  left: 65px;
  top: 15px;
  margin: 0;
}

#logo span {
  width: 172px;
  height: 92px;
  background-image: url(/images/logo.png);
}

nav.site {
  float: right;
  margin-right: 15px;
}

nav.site ul {
  list-style-type: none;
  margin: 0;
}

nav.site ul li {
  float: left;
  padding: 0 0.75em;
}

nav.site ul li a {
  /* 14/19 */
  display: block;
  font-size: 1.077em;
  line-height: 1.071em;
  padding: 1.071em 0.5em;
  color: #99b6cc;
}

nav.site ul li a:hover,
nav.site ul li a:focus,
nav.site ul li a:active {
  color: #fff;
}

body.audio-and-video nav.site li.audio-and-video,
body.automation-and-security nav.site li.automation-and-security,
body.other-services nav.site li.other-services,
body.gallery nav.site li.gallery,
body.about nav.site li.about,
body.contact nav.site li.contact {
  background: url(/images/arrow-nav.png) center bottom no-repeat;
}

body.audio-and-video nav.site li.audio-and-video a,
body.automation-and-security nav.site li.automation-and-security a,
body.other-services nav.site li.other-services a,
body.gallery nav.site li.gallery a,
body.about nav.site li.about a,
body.contact nav.site li.contact a {
  color: #fff;
}

footer.site {
  position: relative;
  font-family: Helvetica, sans-serif;
}

footer.site .container {
  position: absolute;
  left: 25px;
  top: 0;
  background: url(/images/fade-footer.png) left top repeat-x;
}

footer.site a {
  color: #99b6cc;
}

footer.site a:hover,
footer.site a:focus,
footer.site a:active {
  color: #fff;
}

footer.site address,
footer.site #plug {
  /* 11/18 */
  font-size: 1.1em;
  line-height: 1.686em;
  margin: 1.2645em 0;
  color: #fff;
}

footer.site address {
  float: left;
  margin-left: 15px;
  font-style: normal;
}

footer.site address .spacer {
  padding: 0 0.25em;
}

footer.site #plug {
  float: right;
  margin-right: 15px;
}


/*** Other shared classes ***/


#content {
  padding: 5.4em 0 3.6em;
}

#content .container.full-width {
  padding-left: 15px;
  padding-right: 15px;
  margin-left: -15px;
}

.float-left {
  float: left;
  margin-right: 15px;
}

/* Angie hates grids */
.under-logo {
  width: 240px;
  padding: 5.4em 29px 0 28px;
  margin-right: 0;
}

.brands h1 {
  /* 12/18 */
  font-size: 1.2em;
  line-height: 1.5em;
  margin-bottom: 1.5em;
  font-family: Helvetica, sans-serif;
  font-weight: bold;
  text-align: center;
  color: #99b6cc;
}

.brands ul {
  list-style-type: none;
  margin: 0;
}

.brands ul li {
  margin-bottom: 1.5em;
  text-align: center;
}

.brands ul li a:hover {
  background-color: transparent !important;
}

.primary ul li {
  list-style-position: inside;
  font-weight: bold;
}

.quicklinks {
  padding-top: 15px;
  padding-bottom: 15px;
  background: url(/images/fade-quicklinks.png) left top repeat-x #7eb3cb;
}

/* we're off the grid here */
.quicklinks section {
  padding: 0 24px;
  margin: 0;
}

.quicklinks section.second,
.quicklinks section.third {
  background: url(/images/rule.png) left top repeat-y;
}

.quicklinks section.last {
  margin-right: 0;
}

.quicklinks section h1 {
  /* 24/27 */
  font-size: 2.4em;
  line-height: 1.125em;
  margin: 0.25em 0;
  color: #99b6cc;
}

.quicklinks section p,
.quicklinks section li {
  color: #fff;
}

.triangle {
  background: url(/images/arrow-lg.png) 60px bottom no-repeat;
}

.primary h1 {
  margin-bottom: 0;
}

.primary img {
  margin-top: 9px;
  margin-bottom: 9px;
}

.secondary h1,
.tertiary h1 {
  /* 24/36 */
  font-size: 2.4em;
  line-height: 1.5em;
  margin-bottom: 0;
}

.secondary img {
  margin: 9px 0;
}

.tertiary {
  padding: 0 10px 10px;   /* doesn't need top padding because of the heading */
  background-color: #cce1e8;
}

.tertiary h1 {
  margin-top: 0;
  font-style: italic;
}

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


/*** Home ***/


body.home blockquote.testimonial {
  position: relative;
  z-index: 100;
  margin: -20px 0 0;  /* tighten up to the image shadow */
  padding-top: 1.8em;
  background: url(/images/quotes.png) left top no-repeat;
}

body.home blockquote.testimonial p {
  /* 18/36 */
  font-size: 1.8em;
  line-height: 2em;
  font-style: normal;
  text-align: center;
}

body.home blockquote.testimonial p cite {
  display: block;
}

body.home #carousel.no-js {
  list-style-type: none;
}

body.home #carousel.no-js li {
  display: none;
  width: 570px;   /* what jCarousel calculates */
}

body.home #carousel.no-js li:first-child {
  display: list-item;
}

body.home .jcarousel-container .controls {
  position: absolute;
  left: 10px;
  top: 10px;
  z-index: 500;
  cursor: pointer;
}

body.home #carousel .jcarousel-item {
  height: auto;
}

body.home #carousel .image-shadow-container {
  margin: 0;
  width: 560px;
  height: 440px;
  text-align: center;
  background: url(/images/slide-shadow.png) left bottom no-repeat;
}

body.home #carousel .image-shadow-container a {
  display: block;
}

body.home #carousel .image-shadow-container img {
  display: block;
  width: 560px;
}

body.home .quicklinks section img {
  width: 258px;
  height: 36px;
}

body.home .quicklinks section p.see-more {
  margin-bottom: 0;
}

body.home #prez {
  margin-top: 3.6em;
}

body.home #prez h1 {
  /* 24/36 */
  font-size: 2.4em;
  line-height: 1.5em;
  margin: 0;
}

body.home #prez .message p {
  /* 18/27 */
  font-size: 1.8em;
  line-height: 1.5em;
  margin-bottom: 1em;
}


/*** About ***/


body.about .triangle {
  padding-bottom: 1.8em;
}

body.about .quicklinks ul {
  margin-bottom: 0;
}

body.about .primary img {
  float: left;
  margin-right: 15px;
}

body.about .primary img + p {
  margin-top: 9px;
}

body.about figure {
  margin-top: 3.6em;
}

body.about figure p {
  margin: 0;
  font-size: 2.4em;
  line-height: 1.5em;
  font-style: italic;
  text-align: center;
}


/*** Gallery ***/


body.gallery ul#galleries {
  list-style-type: none;
  margin: 0;
}

body.gallery ul#galleries li {
  text-align: center;
  margin-bottom: 1.125em;
}

body.gallery ul#galleries li.current a {
  background-color: #cce1e8;
  color: #036;
}

body.gallery ul#gallery {
  list-style-type: none;
  margin: 0;
}

body.gallery .jcarousel-container {
  position: relative;
}

body.gallery .jcarousel-container .jcarousel-prev,
body.gallery .jcarousel-container .jcarousel-next {
  position: absolute;
  top: 65px;
  cursor: pointer;
}

body.gallery .jcarousel-container .jcarousel-prev img,
body.gallery .jcarousel-container .jcarousel-next img {
  display: block;
}

body.gallery .jcarousel-container .jcarousel-prev-disabled,
body.gallery .jcarousel-container .jcarousel-next-disabled {
  visibility: hidden;
}

body.gallery .jcarousel-container .jcarousel-prev {
  left: 0;
}

body.gallery .jcarousel-container .jcarousel-next {
  right: 49px;
}

body.gallery .jcarousel-container .jcarousel-item {
  position: relative;
  height: auto;
}

body.gallery .jcarousel-container .jcarousel-item img {
  display: block;
}

body.gallery .jcarousel-container .jcarousel-item p {
  position: absolute;
  bottom: 0;
  width: 530px;
  margin: 0;
  padding: 5px 15px;
  
  /* 16/18 */
  font-size: 1em;
  color: #fff;
  background: url(/images/gallery-description-bg.png) left top repeat;
  text-align: center;
}

body.gallery .jcarousel-container .jcarousel-pager-container {
  margin-top: 1.8em;
}

body.gallery .jcarousel-container .jcarousel-pager-container ul {
  list-style-type: none;
  margin: 0;
}

body.gallery .jcarousel-container .jcarousel-pager-container ul li {
  float: left;
  margin: 0 6px 0 0;
  height: 56px;
}

body.gallery .jcarousel-container .jcarousel-pager-container ul li img {
  display: block;
  width: 75px;
  height: 50px;
}

body.gallery .jcarousel-container .jcarousel-pager-container ul li a {
  display: block;
  margin: 0 !important;
  padding: 0 !important;
}

body.gallery .jcarousel-container .jcarousel-pager-container ul li a:hover {
  background-color: transparent !important;
}

body.gallery .jcarousel-container .jcarousel-pager-container ul li .overlay-container {
  position: relative;
}

body.gallery .jcarousel-container .jcarousel-pager-container ul li .overlay {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: url(/images/thumb-overlay-blue.png) left top repeat;
}

body.gallery .jcarousel-container .jcarousel-pager-container ul a.selected .overlay,
body.gallery .jcarousel-container .jcarousel-pager-container ul a:hover .overlay {
  display: none;
}


/*** Contact ***/


body.contact #content {
  padding-top: 10.8em;
}

body.contact #map {
  height: 260px;
  margin-bottom: 0.9em;
  background: #99b6cc;
}

body.contact #info {
  /* 12/18 */
  font-family: Helvetica, sans-serif;
  font-size: 1.2em;
  line-height: 1.5em;
}

body.contact #info:first-line {
  font-weight: bold;
}

body.contact .flash {
  margin-bottom: 1.8em;
  padding: 0.9em 15px;
  background-color: #cce1e8;
}

body.contact .flash p {
  margin-bottom: 0;
  text-align: center;
  font-style: italic;
  
}

body.contact form label {
  display: block;
  float: left;
  width: 85px;
  margin-top: 3px;  /* vertical alignment */
  
  /* 12/18 */
  font-family: Helvetica, sans-serif;
  font-size: 0.923em;
  line-height: 1.5em;
}

body.contact input[type=text],
body.contact input[type=email],
body.contact textarea {
  border: 1px #99b6cc solid;
  margin: 0;
  padding: 0.25em;
}

body.contact form textarea {
  width: 250px;
  height: auto;
}

body.contact form p.submit {
  margin-left: 85px;
}

body.contact .phone-numbers h2,
body.contact .phone-numbers p {
  display: inline;
  font-size: 1.6em;
  line-height: 1.125em;
}

body.contact .phone-numbers .main {
  margin-right: 50px;
}



















