/* -----------------------------------------------------------------------
   Terra Firma Design & Consulting

   * Copyright (c) 2008 Terra Firma Design & Consulting, LLC
   * URL: http://terra-firma-design.com
   * Author: Brian Getting
	 * Thanks to the Blueprint CSS Framework 0.7.1
		 http://blueprintcss.googlecode.com
----------------------------------------------------------------------- */

/* Browser Reset */

html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, code, del, dfn, em, img, q, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td { margin:0;padding:0;border:0;font-weight:inherit;font-style:inherit;font-size:100%;font-family:inherit;vertical-align: baseline; }
table { border-collapse:separate;border-spacing:0; }
caption, th, td { text-align:left;font-weight:normal; }
table, td, th { vertical-align:middle; }
blockquote:before, blockquote:after, q:before, q:after { content:""; }
blockquote, q { quotes:"" ""; }
a img { border:none; }

/* Document Body */

body {
	font-family:Helvetica, Arial, sans-serif;
	font-size:12px;
	line-height:1.5em;
	color:#111;
	background:#bbbdbf url('/images/layout/bg.jpg') no-repeat top center;
	margin:0;
	padding:0;
	text-align:center;
}

a:focus, a:hover	{ color:#111; text-decoration:underline; }
a									{ color:#cb5620; text-decoration:none; }

/* Typography */
em    { font-style:italic; }
p			{ margin:0 0 1.5em; }

/* Lists */
li ul, li ol	  { margin:0 1.5em; }
ul, ol				  { margin:0 1.5em 1.5em 1.5em; padding:0 1.5em; }
ul						  { list-style-type:disc; }
ol						  { list-style-type:decimal; }

/* Tables */
table       { margin-bottom:1.4em; width:100%; }
th          { font-weight:bold; }
th,td       { padding:0; }
.even,
tr.even td  { background:#fdfdfd !important; }
tfoot       { font-style:italic; }
caption     { background:#eee; }

/* Forms */
input.text,
textarea.text { font:14px Helvetica, Arial, sans-serif;padding:5px;border:1px solid #c1c1c1;color:#111; }
input.sm      { width:100px; }
input.med     { width:225px; }
input.full    { width:585px; }
textarea.full { width:585px; }

/* Layout Styles */

#appointment        { margin:1em 0 1.5em; }
#appointment label  { display:block;font-size:11px;font-weight:bold;color:#4c4c4c; }
#appointment p      { margin:0 0 0.5em; }
#appointment_feedback { color:#8ec743;font-weight:bold; }
#cart_list      { margin:0;border:none; }
#cart_list td,
#cart_list th   { border-bottom:1px solid #fafafa;padding:2px 0; }
#cart_list th   { font-size:10px; }
#contact        { margin:0 0 3em; }
#contact label  { display:block;font-size:11px;font-weight:bold;color:#4c4c4c; }
#contact p      { margin:0 0 0.5em; }
#etiquette      { display:block;margin:0 0 1.5em;width:257px;height:53px;background:transparent url('/images/layout/etiquette.gif') no-repeat;text-indent:-2000em; }
#footer     { color:#4c4c4c;font-size:11px;margin:1.5em 10px;line-height:1.5em; }
#footer a   { color:#111;text-decoration:none; }
#footer a:hover { background:#4c4c4c;color:#fff; }
#homepage   { background:url('/images/layout/frame_tall.png') no-repeat;height:432px;margin:0 0 10px;padding:10px 10px 12px 11px; }
#homepage h1  { text-indent:-2000em;height:430px; }
#homepage h2  { display:none; }
#map          { border:1px solid #c1c1c1;margin:0 0 1.5em;padding:5px; }
#map #canvas  { height:250px;width:100%; }
#menu         { margin:0 0 3em;list-style:none;padding:0; }
#menu li      { padding-left:14px;background:url('/images/layout/list_arrow.gif') no-repeat 0 6px; }
#nav                { background:url('/images/layout/frame_short.png') no-repeat;height:32px;padding:10px 10px 12px 11px;margin:10px 0;list-style:none; }
#nav li             { margin:0;padding:0;display:inline; }
#nav li a           { display:block;float:left;height:32px;text-indent:-2000em;background-position:0 0; }
#nav li a.home      { background:url('/images/layout/nav_home.gif') no-repeat;width:72px; }
#nav li a.about     { background:url('/images/layout/nav_about.gif') no-repeat;width:71px; }
#nav li a.services  { background:url('/images/layout/nav_services.gif') no-repeat;width:91px; }
#nav li a.packages  { background:url('/images/layout/nav_packages.gif') no-repeat;width:121px; }
#nav li a.events    { background:url('/images/layout/nav_events.gif') no-repeat;width:78px; }
#nav li a.menu      { background:url('/images/layout/nav_menu.gif') no-repeat;width:111px; }
#nav li a.gifts     { background:url('/images/layout/nav_gifts.gif') no-repeat;width:146px; }
#nav li a.store     { background:url('/images/layout/nav_store.gif') no-repeat;width:71px; }
#nav li a.contact   { background:url('/images/layout/nav_contact.gif') no-repeat;width:87px; }
#nav li a.cart      { background:url('/images/layout/nav_cart.gif') no-repeat;width:87px; }
#nav li a:hover     { background-position:0 -32px; }
#page           { background:url('/images/layout/page_bg.png') repeat-y;padding:8px 10px 2px 11px; }
#page .title    { width:935px;height:112px;margin:0 0 30px;text-indent:-2000em; }
#page #main     { float:left;width:596px;padding:0 20px; }
#page #main h1  { color:#13b2e8;font-size:24px;font-weight:normal;margin-bottom:0.75em; }
#page #main h2  { color:#a1a1a1;font-size:14px;font-weight:normal;margin-bottom:1.3em; }
#page #main h2  a { color:#8ec743; }
#page #main h3  { color:#8ec743;font-size:18px;font-weight:normal;margin-bottom:0.7em; }
#page #main h3 a { color:#8ec743; }
#page #main h3 a:hover { color:#111; }
#page #side     { float:right;width:258px;padding:0 20px;border-left:1px solid #fafafa; }
#page #side h3  { color:#4c4c4c;font-size:12px;font-weight:bold;margin-bottom:0.5em; }
#page #side h3 a { color:#4c4c4c;}
#page #side h3 a:hover { color:#cb5620; }
#page_bottom    { background:url('/images/layout/page_bottom.png') no-repeat bottom left;margin:0 0 10px;padding-bottom:10px; }
#page_top       { background:url('/images/layout/page_top.png') no-repeat;padding-top:2px; }
#parameters     { display:block;margin:0 0 3em;width:257px;height:53px;background:transparent url('/images/layout/parameters.gif') no-repeat;text-indent:-2000em; }
#promo_sash			{ position:absolute;top:0;right:0;z-index:10; }
#promos               { margin:0 0 10px;padding:0; }
#promos h3            { text-indent:-2000em;background:url('/images/layout/frame_promo.png') no-repeat;padding:10px 10px 12px;float:left; }
#promos h3.mid        { background:url('/images/layout/frame_promo_mid.png') no-repeat;margin:0 10px; }
#promos h3 a          { height:139px;display:block; }
#promos h3 a.gifts    { background:url('/images/layout/promo_gifts.gif') no-repeat;width:287px; }
#promos h3 a.services { background:url('/images/layout/promo_services.gif') no-repeat;width:295px; }
#promos h3 a.store    { background:url('/images/layout/promo_store.gif') no-repeat;width:295px; }
#signup               { margin:0 0 10px;padding:10px 10px 12px;height:32px;background:url('/images/layout/frame_short.png') no-repeat;position:relative; }
#signup table         { background:url('/images/layout/newsletter_bg.gif') repeat-x;height:32px; }
#signup label         { text-indent:-2000em;display:block;background:url('/images/layout/newsletter_label.gif') no-repeat;width:565px;height:16px;margin:2px 0 0 20px; }
#signup button        { background:url('/images/layout/newsletter_button.gif') no-repeat 0 0;height:19px;width:69px;margin:0 20px 0 7px;padding:0;text-indent:-2000em;border:none; }
#signup button:hover  { cursor:pointer;background-position:0 -19px; }
#signup button:active { background-position:0 -38px; }
#signup_email     { font:12px Helvetica, Arial, sans-serif;padding:2px 20px 2px 2px;border:1px solid #cb5620;width:226px;color:#4c4c4c; }
#signup_loader    { position:absolute;right:5px;top:4px; }
#signup #feedback { position:absolute;background:url('/images/lightwindow/black-70.png') repeat 0 0 transparent;top:10px;left:10px;width:937px;height:32px;line-height:32px;text-align:center;color:#fff;font-size:14px; }
#testimonial		{ margin:0 0 1.5em; }
#testimonial blockquote { border:1px solid #c1c1c1;background:#fafafa;padding:1em;font-style:italic;color:#000; }
#testimonial blockquote p { margin:0 0 1em; }
#testimonial blockquote .cite	{ text-align:right;margin:0!important; }
#testimonial blockquote cite	{ font-weight:bold;color:#4c4c4c;font-style:normal; }
#twitter        { display:block;margin:0 0 1.5em;width:257px;height:94px;background:transparent url('/images/layout/twitter.png') no-repeat;text-indent:-2000em; }
#videos     { margin:0 0 3em; }
#wrap       { width:957px;margin:10px auto;padding:0;text-align:left; }

.black      { color:#111; }
.clear      { clear:both;height:0;font-size:0;line-height:0;overflow:hidden; }
.emphasis		{ font-size:1.3em!important; }
.frame      { margin:0 0 10px;padding:10px;background:url('/images/layout/frame_side.png') no-repeat;width:237px;border-top:1px solid #fafafa; }
.gray       { color:#c1c1c1; }
.hidden     { display:none; }
.item_list    { margin:0 0 1.5em;list-style:none;padding:0; }
.item_list li { padding:5px 10px 5px 14px;background:url('/images/layout/list_arrow.gif') no-repeat 0 11px;vertical-align:top;border-bottom:1px solid #fafafa; }
.left       { float:left; }
.loadicon   { margin:0 0.5em -4px 0; }
.map-info   { font-size:11px;line-height:1.3em;margin:0 0 1em; }
.nomargin   { margin:0!important; }
.orange     { color:#cb5620; }
.pinup      { float:left;margin:0 1em 0.25em 0;border:1px solid #fafafa;padding:5px;background:#fff; }
.pinup .pinup_frame { background:url('/images/layout/gradient.gif') repeat-x bottom left; }
.pinup .pinup_month { font:bold 9px/12px Trebuchet, sans-serif;text-transform:uppercase;display:block;color:#fafaff;background:#13b2e8;text-align:center;padding:1px 10px 0; }
.pinup .pinup_day   { display:block;font:21px/1em Trebuchet, sans-serif;text-align:center;padding:2px 10px 3px; }
.price      { padding-bottom:1.5em;border-bottom:1px solid #fafafa;color:#c1c1c1; }
.price strong { color:#111; }
.relative   { position:relative; }
.right      { float:right; }
.rule       { margin:1.5em 0;height:0;border-bottom:1px solid #fafafa; }
.submit     { margin:1em 0 1.5em!important; }
.textright  { text-align:right; }
.thumbnail  { margin:0 1em 0.25em 0;padding:5px;border:1px solid #fafafa; }
.total      { border-bottom:1px solid #fafafa;padding:1em 0;text-align:right;font:18px 'Cambria', Georgia, Times, serif; }

/* Feedback Elements */
.alert,
.error,
.errorExplanation,
.success                { margin:0 0 1.5em;padding:0.5em 1em; }
.alert p,
.error p,
.success p              { line-height:1.4em;margin:0!important; }
.alert .loadicon,
.error .loadicon,
.errorExplanation .loadicon,
.success .loadicon      { position:absolute;margin:1px 0 0 3px!important; }
.alert                  { border:1px solid #fc0;background:#ffb;color:#930; }
.alert a                { color:#930; }
.error,
.errorExplanation       { border:1px solid #88201b;background:#fffbfb;color:#88201b; }
.error a,
.errorExplanation a     { color:#88201b; }
.success                { border:1px solid #739b44;background:#fbfffb;color:#739b44 }
.success a              { color:#739b44; }
.errorExplanation h2    { margin:0 0 0.5em;color:#88201b;font-size:14px;line-height:18px;font-weight:bold; }
.errorExplanation ul    { color:#88201b;margin:0;line-height:1.4em }
.errorExplanation p     { display:none; }
.fieldError             { background:#fffbfb; }
.fieldWithErrors        { margin:0;padding:0;background:#88201b;display:inline-block; }
.fieldWithErrors input  { margin:1px!important; }

/* Calendar Popup (JavaScript) Styles */
div.calendar{font-size:12px;color:#111;}
div.calendar.popup{margin-left:20px;margin-top:-75px;}
div.calendar table{background-color:#fafafa;border-top:1px solid #ccc;border-left:1px solid #ccc;border-right:1px solid #eee;border-bottom:1px solid #eee;border-collapse:collapse;}
div.calendar thead{background-color:white;border-bottom:1px solid #eee;}
div.calendar td,div.calendar th{padding:3px;text-align:center;font-size:11px;}
div.calendar td.title{font-weight:bold;color:#13b2e8!important;font-size:13px;}
div.calendar th{background:#f0f0f0!important;border-bottom:1px solid #eee;border-top:1px solid #eee;font-weight:bold;color:#333;}
div.calendar tr.days td {width: 2em;color:#333;text-align:center;cursor:pointer;}
div.calendar tr.days td:hover,div.calendar td.button:hover{background-color:#999;cursor:pointer;color:#fff!important;}
div.calendar thead td.button:hover{text-decoration:underline;cursor:pointer;background:none!important;color:#8ec743!important;}
div.calendar tr.days td:active,div.calendar td.button:active{background-color:#111;color:#fff;}
div.calendar td.selected{font-weight: bold;background-color:#13b2e8;color:#fff!important;}
div.calendar td.today{font-weight: bold;color:#fff!important;}
div.calendar td.otherDay{color:#999 !important;}

/* Rails Calendar Styles */
#public_cal             { margin:0 0 1.5em; }
table.calendar          { margin:auto; }
table.calendar th       { text-align:center;font-weight:bold;padding:0.5em 0; }
table.calendar tbody    { background:#fff; }
table.calendar tbody tr td:first-child   { border-left:1px solid #c1c1c1!important; }
table.calendar tbody tr td  { font-size:9px;text-align:left!important;vertical-align:top;padding:2px 0 0 4px;width:10%;height:60px;background:url('/images/layout/gradient.gif') repeat-x bottom left; }
#page #side table.calendar tbody tr td { height:30px!important; }
.monthName              { font-size:18px;padding-bottom:0.5em;padding-top:0.5em;font-weight:normal!important;color:#111; }
.dayName th             { font-size:11px;border-top:1px solid #c1c1c1;border-bottom:1px solid #c1c1c1;border-right:1px solid #c1c1c1;padding:0.5em!important;background:#8ec743;color:#fff; }
#page #side .dayName th { padding:0.25em!important; }
.dayName th:first-child  { border-left:1px solid #c1c1c1; }
.otherMonth,
.day                    { border-right:1px solid #c1c1c1;color:#111;position:relative!important;vertical-align:top;line-height:13px; }
.otherMonth             { color:#bbb;border-bottom:1px solid #c1c1c1; }
.weekendDay             { background-color:#fafafa; }
.day,
.specialDay             { border-bottom:1px solid #c1c1c1;border-right:1px solid #c1c1c1; }
.specialDay             { background:#fffafa!important;color:#222;padding:0!important; }
.specialDay a,
.specialDay a:visited   { color:#cb5620;text-decoration:none;display:block;font-weight:bold!important;line-height:1.4em;display:block;height:100%;padding:2px 0 0 4px; }
.specialDay a:hover     { color:#fff;text-decoration:none;background:#13b2e8; }
.today                  { background:#fafaff!important;color:#222;font-weight:bold; }