
// =============================================================================
// Normalize form styles with normalize.css
// =============================================================================

/**
 * Define consistent border, margin, and padding.
 */
fieldset {
	padding: 0.35em 0.625em 0.75em;
	border: 1px solid #c0c0c0;
	margin: 0 2px;
}

/**
 * 1. Corrects color not being inherited in IE 8/9.
 * 2. Remove padding so people aren't caught out if they zero out fieldsets.
 */
legend {
	border: 0; /* 1 */
	padding: 0; /* 2 */
}

/**
 * 1. Corrects font family not being inherited in all browsers.
 * 2. Corrects font size not being inherited in all browsers.
 * 3. Addresses margins set differently in Firefox 4+, Safari 5, and Chrome
 */
button,
input,
select,
textarea {
	font-family: inherit; /* 1 */
	font-size: 100%; /* 2 */
	margin: 0; /* 3 */
}

/**
 * Addresses Firefox 4+ setting `line-height` on `input` using `!important` in
 * the UA stylesheet.
 */
button,
input {
	line-height: normal;
}

/**
 * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
 *    and `video` controls.
 * 2. Corrects inability to style clickable `input` types in iOS.
 * 3. Improves usability and consistency of cursor style between image-type
 *    `input` and others.
 */
button,
html [type="button"], /* 1 */
input[type="reset"],
input[type="submit"] {
	-webkit-appearance: button; /* 2 */
	cursor: pointer; /* 3 */
}

/**
 * Re-set default cursor for disabled elements.
 */
button[disabled],
input[disabled] {
	cursor: default;
}

/**
 * 1. Addresses box sizing set to `content-box` in IE 8/9.
 * 2. Removes excess padding in IE 8/9.
 */
input[type="checkbox"],
input[type="radio"] {
	.box-sizing(border-box); /* 1 */
	padding: 0; /* 2 */
}

/**
 * 1. Addresses `appearance` set to `searchfield` in Safari 5 and Chrome.
 */
input[type="search"] {
	-webkit-appearance: textfield; /* 1 */
}

input[type="search"],
input[type="color"] {
	.box-sizing(content-box);
}

/**
 * Removes inner padding and search cancel button in Safari 5 and Chrome
 * on OS X.
 */
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
	-webkit-appearance: none;
}

/**
 * Removes inner padding and border in Firefox 4+.
 */
button::-moz-focus-inner,
input::-moz-focus-inner {
	border: 0;
	padding: 0;
}

/**
 * 1. Removes default vertical scrollbar in IE 8/9.
 * 2. Improves readability and alignment in all browsers.
 */
textarea {
	overflow: auto; /* 1 */
	vertical-align: top; /* 2 */
}

// =============================================================================
// Cakifo form styles
// =============================================================================

/**
 * Set the font for the form fields
 */
label,
input,
button,
select,
textarea {
	#font > .shorthand(@baseFontSize - 1, normal, normal); // Set size, weight, line-height here
}

input,
button,
select,
textarea {
	font-family: @sansFontFamily; // And only set font-family here for those that need it (note the missing label element)
}

/**
 * Inputs
 */
input,
select,
textarea {
	display: inline-block;
	padding: 8px 6px;
	margin-bottom: 10px;
	border: 1px solid #ccc;
	border-radius: 3px;
	box-shadow: inset 0 1px 1px fade(@black, 7.5%);
	color: @gray;
	.transition(all 150ms ease);

	&:hover {
		border-color: @grayLight;
	}

	&:focus {
		box-shadow: inset 0 1px 1px fade(@black, 7.5%), 0 0 6px fade(rgb(82, 168, 236), 50%);
		border-color: rgba(82,168,236, .8);
		outline: 0;
		outline: thin dotted \9; // IE6-9
	}
}

// Focus for select, file, radio, and checkbox
select:focus,
input[type="file"]:focus,
input[type="radio"]:focus,
input[type="checkbox"]:focus {
	.tab-focus();
}

// Input sizes
.input-mini       { width: 60px;  }
.input-small      { width: 90px;  }
.input-medium     { width: 150px; }
.input-large      { width: 210px; }
.input-xlarge     { width: 270px; }
.input-xxlarge    { width: 100%;  }

/**
 * Disabled and read-only inputs
 */
input[disabled],
button[disabled],
select[disabled],
textarea[disabled],
input[readonly],
button[readonly],
select[readonly],
textarea[readonly] {
	background: @grayLighter !important;
	cursor: not-allowed;

	&:active {
		box-shadow: none;
	}
}

// Explicitly reset the colors here
input[type="radio"][disabled],
input[type="checkbox"][disabled],
input[type="radio"][readonly],
input[type="checkbox"][readonly] {
	background-color: transparent;
}

/**
 * Select fields
 */
select {
	min-width: 180px;
}

/**
 * Labels
 */
label {
	display: block;
	margin-bottom: 5px;
	#font > .alternative(16);
	cursor: pointer;
}

/**
 * Buttons
 */
.btn,
button,
input[type="submit"],
input[type="reset"],
input[type="button"] {
	.button(#fefefe, #f4f4f4);
}

// Large button
.btn-large {
	padding: 9px 16px;
	.font-size(@baseFontSize + 2);
	line-height: normal;
	border-radius: 5px;
}

// Small button
.btn-small {
	padding: 4px 9px;
	.font-size(@baseFontSize - 2);
}

// Mini button
.btn-mini {
	padding: 3px 7px;
	.font-size(@baseFontSize - 3);
	font-weight: normal;
}

/* Button colours */
html {
	// Primary button
	.btn-primary {
		.buttonBackground(#08c, spin(#08c, 20%), @white, fade(@black, 40%));
	}

	// Warning appears are orange
	.btn-warning {
		.buttonBackground(#faa51a, #f47a20, @white, fade(@black, 40%));
	}

	// Danger and error appear as red
	.btn-danger {
		.buttonBackground(#ee5f5b, #bd362f, @white, fade(@black, 40%));
	}

	// Success appears as green
	.btn-success {
		.buttonBackground(#62c462, #51a351, @white, fade(@black, 40%));
	}

	// Info appears as a neutral blue
	.btn-info {
		.buttonBackground(#5bc0de, #2f96b4, @white, fade(@black, 40%));
	}

	// Inverse appears as dark gray
	.btn-inverse {
		.buttonBackground(#444, @grayDarker, @white, fade(@black, 40%));

		&:hover {
			background: @orangeDark;
			border-color: darken(@orangeDark, 10%);
		}
	}
}

/* =============================================================================
   Layout:  Comment form
   ========================================================================== */

#respond {
	padding: @smallGutterWidth;
	margin: (@gutterWidth + 20px) 0 0;
	background: @highlightBlue ~"url(images/content-orange-line.png)" repeat-x;
	color: @gray;

	// Logged-in text
	.log-in-out {
		.font-size(18);
		text-align: center;
	}
}

#reply-title {
	.highlight-box;
	margin: -(@gutterWidth) 0 @smallGutterWidth;
	.font-size(26);
	letter-spacing: -1px;
	text-align: center;
}

#cancel-comment-reply-link {
	padding-left: 10px;
	.font-size(18);
	font-style: italic;
	font-weight: normal;
}

/* Comment form fields */
#commentform {
	.form-author {
		float: left;
		width: 48%;
	}

	.form-email {
		float: right;
		width: 48%;
	}

	.form-url {
		clear: both;
	}

	input[type="text"],
	input[type="email"],
	input[type="url"],
	textarea {
		display: block;
		width: 100%;
	}
}

#submit {
	.buttonBackground(#08c, spin(#08c, 20%), @white, fade(@black, 40%));
}

/* =============================================================================
   Layout:  Search form
   ========================================================================== */

.search-form {
	label {
		display: inline-block;
		margin-right: 5px;
	}

	.search-text {
		padding-left: 27px;
		background: @white ~"url(images/search.png)" no-repeat 5px center;

		&[results] {
			padding-left: 6px;
			background-image: none;
		}
	}
}

/* Search form in the topbar */
.main-navigation .search-form {
	padding: 0;

	label {
		margin-right: 0;
	}

	.search-text {
		background-color: @gray;
		background-color: fade(@white, 30%);
		box-shadow: inset 0 1px 2px fade(@black, 10%), 0 1px 0px fade(@white, 30%);
		border: 1px solid @black;
		color: @white;
		color: fade(@white, 80%);

		// Give the input placeholder a lighter colour
		.placeholder( lighten(@grayLight, 10%), -1px -1px 0 fade(@black, 30%) );
	}

	.search-submit {
		padding: 3px 14px;
		margin-left: 5px;
	}
}

@media screen and (max-width: 979px) {
	.main-navigation .search-form {
		float: none;
		padding: 20px;
		border: 1px solid @grayDarker;
		border-width: 1px 0;
		box-shadow: inset 0 1px 0 fade(@white, 10%), 0 1px 0 fade(@white, 10%);
	}
}

@media screen and (min-width: 980px) {
	.main-navigation .search-form {
		position: absolute;
		top: 13px;
		right: @gutterWidth;

		.search-submit {
			display: none;
		}
	}
}
