/* ================================================================================================================== */
/* */
/* ================================================================================================================== */

* { box-sizing: border-box; font-size: 0; }

/* ================================================================================================================== */
/* fontes */
/* ================================================================================================================== */

h1, h2, h3, h4, h5, h6, p, div.text, a, input, label, textarea, span, select, table, tr, th, td, ::placeholder { font-family: 'Open Sans', sans-serif; font-size: 14px; color: #231f20; padding: 0; margin: 0; font-weight: 400; line-height: 24px; }

.font-title { font-size: 30px; line-height: 45px; }
.font-title { font-size: 30px; line-height: 45px; }
.font-title.banner { font-size: 40px; line-height: 50px; }
.font-title.light { font-weight: 300; }

.light { font-weight: 300; }
.regular { font-weight: 400; }
.bold { font-weight: 700; }

@media all and (max-width: 1199px) {
	h1, h2, h3, h4, h5, h6, p, div.text, a, input, label, textarea, span, select, table, tr, th, td, ::placeholder { font-size: 12px; }

	.font-title { font-size: 18px; line-height: 25px; }
}

/* ================================================================================================================== */
/* principal e animacoes de defeito */
/* ================================================================================================================== */

html, body	{ position: relative; margin: 0; padding: 0; width: 100%; height: 100%; font-size: 0; }
*		{ transition-property: all; -webkit-transition-property: all; -moz-transition-property: all; transition-duration: 400ms; -webkit-transition-duration: 400ms; -moz-transition-duration: 400ms; }
.animation-long { transition-property: all; -webkit-transition-property: all; -moz-transition-property: all; transition-duration: 800ms; -webkit-transition-duration: 800ms; -moz-transition-duration: 800ms; }
.animation-none,
.animation-none	* { transition-property: none; -webkit-transition-property: none; -moz-transition-property: none; transition-duration: 0ms; -webkit-transition-duration: 0ms; -moz-transition-duration: 0ms; }

/* ================================================================================================================== */
/* limpador e truque para inline-block alinhamento */
/* ================================================================================================================== */

div.clear { clear: both; }
.trick_align_middle { display: inline-block; position: relative; width: 0; height: 100%; vertical-align: middle; background-color: transparent; }
.trick_align_top { display: inline-block; position: relative; width: 0; height: 100%; vertical-align: top; background-color: transparent; }
.trick_align_bottom { display: inline-block; position: relative; width: 0; height: 100%; vertical-align: bottom; background-color: transparent; }

/* ================================================================================================================== */
/* cabecalho */
/* ================================================================================================================== */

div#header { display: block; position: fixed; top: 0; left: 0; width: 100%; height: 100px; z-index: 100; margin: 0; padding: 0; background-color: #ffffff; }
div#header[data-status="normal"] {  }
div#header[data-status="small"] {  }
	div#header div.responsive { display: none; }
	div#header div.header_responsive { display: block; position: relative; width: 1200px; height: 100%; margin: 0 auto; font-size: 0; }
	div#header[data-status="normal"] div.header_responsive { box-shadow: none; }
		div#header div.header_responsive span.responsive { display: none; }

		div#header div.header_responsive span.responsive_icon { display: none; }
		div#header div.header_responsive a.logo { display: inline-block; position: relative; width: 235px; height: 80px; margin: 0; background: transparent url(../images/logo.png) no-repeat left center; background-size: contain; vertical-align: middle; }
		div#header div.header_responsive div.block { display: inline-block; position: relative; width: 950px; height: auto; margin: 0 0 0 15px; vertical-align: middle; text-align: right; }
			div#header div.header_responsive div.block div.line { display: inline-block; position: relative; width: 100%; height: auto; vertical-align: middle; margin: 5px 0; }

				div#header div.header_responsive div.block .menu { display: inline-block; position: relative; width: auto; margin: 0 0 0 30px; height: auto; vertical-align: top; font-size: 15px; line-height: 25px; text-decoration: none; cursor: pointer; padding: 0; }
				div#header div.header_responsive div.block .menu.selected,
				div#header div.header_responsive div.block .menu:hover { color: #b40e3c; }
				div#header div.header_responsive div.block .menu[data-status="open"] { color: #b40e3c; }
					div#header div.header_responsive div.block .menu span { display: block; position: absolute; left: 50%; bottom: -22px; margin: 0; width: 0; height: 4px; background-color: #b40e3c; }
					div#header div.header_responsive div.block .menu.selected span,
					div#header div.header_responsive div.block .menu:hover span { width: 80%; margin: 0 0 0 -40%; }
					div#header div.header_responsive div.block .menu[data-status="open"] span { width: 80%; margin: 0 0 0 -40%; }

			div#header div.header_responsive div.block a.social_networks { display: inline-block; position: relative; width: 14px; height: 14px; background: transparent url(../images/social_networks.png) no-repeat; background-size: 100% auto; vertical-align: middle; }
			div#header div.header_responsive div.block a.social_networks:hover { background-position-y: -14px; }
			div#header div.header_responsive div.block a.social_networks.facebook { background-position-x: 0; }

			div#header div.header_responsive div.block div.languages { display: inline-block; position: relative; width: auto; margin: 0 0 0 20px; vertical-align: middle; }
				div#header div.header_responsive div.block div.languages a,
				div#header div.header_responsive div.block div.languages a:after { display: inline-block; position: relative; width: auto; line-height: 20px; font-size: 14px; text-decoration: none; vertical-align: top; }
				div#header div.header_responsive div.block div.languages a:after { content: "|"; margin: 0 3px; color: #231f20; }
				div#header div.header_responsive div.block div.languages a:last-child:after { display: none; }
				div#header div.header_responsive div.block div.languages a:hover { color: #b40e3c; }
				div#header div.header_responsive div.block div.languages a.selected { color: #b40e3c; }

div#header_categories { display: none; position: fixed; top: 100px; left: 0; width: 100%; height: auto; z-index: 100; margin: 0; padding: 5px 0; background-color: #b40e3c; }
div#header_categories[data-status="open"] { display: block; }
div#header_categories[data-status="closed"] { display: none; }
div#header_categories.selected { display: block; }
	div#header_categories div.container { display: block; position: relative; width: 1200px; margin: 0 auto; text-align: center; }
		div#header_categories div.container a { display: inline-block; position: relative; line-height: 20px; margin: 5px 15px; color: #ffffff; text-decoration: none; }
		div#header_categories div.container a:hover { text-decoration: underline; }

@media all and (max-width: 1199px) {
	div#header { display: block; position: relative; width: auto; min-height: 50px; height: auto; background-color: #ffffff; }
		div#header div.header_responsive { width: 100%; }
		div#header div.header_responsive span.responsive_icon { display: block; position: absolute; top: 18px; right: 10px; width: 25px; height: 19px; background: transparent url(../images/responsive_header_icon.png) no-repeat; cursor: pointer; z-index: 2; }
		div#header[data-responsive="closed"] div.header_responsive span.responsive_icon { background-position: 0 0; }
		div#header[data-responsive="opened"] div.header_responsive span.responsive_icon { background-position: 0 -19px; }
		div#header div.header_responsive a.logo { width: 100px; height: 40px; margin: 5px 0 5px 10px; }

		div#header div.header_responsive div.block { display: block; width: auto; height: auto; margin: 0; text-align: center; }
		div#header[data-responsive="closed"] div.header_responsive div.block { height: 0; overflow: hidden; }
		div#header[data-responsive="opened"] div.header_responsive div.block { height: auto; }

			div#header div.header_responsive div.block div.languages { text-align: center; }

			div#header div.header_responsive div.block a.menu { display: block; text-align: center; margin: 3px 0; }
			div#header div.header_responsive div.block a.menu[data-products] { display: none; }
				div#header div.header_responsive div.block .menu span { display: none; }

	div#header_categories { display: none; position: relative; top: auto; left: auto; }
	div#header_categories[data-status="open"] { display: none; }
	div#header_categories[data-status="closed"] { display: none; }
	div#header_categories[data-responsive="opened"] { display: block; }
	div#header_categories[data-responsive="closed"] { display: none; }
		div#header_categories div.container { width: auto; }
			div#header_categories div.container a { display: block; }
}

/* ================================================================================================================== */
/* estrutura principal */
/* ================================================================================================================== */

div#principal_container { display: table; position: relative; width: 100%; min-height: 100%; margin: 0 auto; overflow: hidden; }
	div#principal_container div#principal_header { display: table-row; position: relative; width: 100%; height: 100px; }
	div#principal_container div#principal_body { display: table-row; position: relative; width: 100%; height: 100%; z-index: 10; }
	div#principal_container div#principal_footer { display: table-row; position: relative; width: 100%; }

@media all and (max-width: 1199px)
{
	div#principal_container { display: block; min-height: auto; }
		div#principal_container div#principal_header { display: block; height: auto; }
		div#principal_container div#principal_body { display: block; }
		div#principal_container div#principal_footer { display: block; }
}

/* ================================================================================================================== */
/* ficheiros */
/* ================================================================================================================== */

div.attachments { display: block; position: relative; width: auto; text-align: left; }
	div.attachments a { display: inline-block; position: relative; width: auto; height: 23px; line-height: 23px; background: transparent url(../images/attachment_icon.png) no-repeat; overflow: hidden; padding: 0 0 0 35px; text-decoration: none; color: #37b34a; margin: 5px 0 0 0; }
	div.attachments a:first-child { margin: 0; }
	div.attachments a:hover { background-position-y: -23px; color: #404041; }

/* ================================================================================================================== */
/* corpo */
/* ================================================================================================================== */

div#body { display: block; position: relative; width: 100%; height: auto; padding: 0; }

@media all and (max-width: 1199px) {
	div#body { padding: 0; }
}

/* ================================================================================================================== */
/* rodape */
/* ================================================================================================================== */

div#footer { display: block; position: relative; width: 100%; height: auto; text-align: center; background-color: #ffffff; padding: 50px 0 0 0; }
	div#footer div.container { display: block; position: relative; width: 1200px; margin: 0 auto; }
		div#footer div.container div.col { display: inline-block; position: relative; width: auto; margin: 0 25px; vertical-align: top; text-align: left; }
			div#footer div.container div.col h1 { font-size: 12px; line-height: 20px; margin: 0 0 5px 0; }
			div#footer div.container div.col p { font-size: 12px; line-height: 18px; }
			div#footer div.container div.col a.logo { display: block; position: relative; width: 170px; height: 85px; background: transparent url(./../images/logo_footer.png) no-repeat center center; background-size: contain; }
			div#footer div.container div.col a.social_networks { display: inline-block; position: relative; width: 20px; height: 20px; background: transparent url(./../images/social_networks.png) no-repeat; }
			div#footer div.container div.col a.social_networks:hover { background-position-y: -20px; }
			div#footer div.container div.col a.social_networks.facebook { background-position-x: 0; }
	div#footer p.copyright { display: block; position: relative; margin: 50px 0 10px 0; text-decoration: none; font-size: 12px; line-height: 15px; color: #babcbe; text-align: center; }
	div#footer p.copyright a { display: inline-block; color: #babcbe; text-decoration: none; font-size: 12px; line-height: 15px; }
	div#footer p.copyright a:hover { color: #b40e3c; }

@media all and (max-width: 1199px)
{
	div#footer { padding: 25px 0; }
		div#footer div.container { width: auto; }
			div#footer div.container div.col { margin: 10px; min-width: 250px; text-align: center; }
				div#footer div.container div.col a.logo { display: none; }

		div#footer p.copyright { margin: 25px 0 10px 0; font-size: 10px; }
			div#footer p.copyright a { font-size: 10px; }
}

/* ================================================================================================================== */
/* popup */
/* ================================================================================================================== */

div#popup { display: block; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: transparent url(../images/popup_bg.png) repeat; z-index: 1000; text-align: center; overflow: auto; }
	div#popup div.container { display: inline-block; position: relative; max-width: 90%; max-height: 90%; vertical-align: middle; background-color: #b40e3c; box-sizing: border-box; padding: 20px 35px; text-align: center; }
		div#popup div.container span.close  { display: inline-block; position: relative; width: auto; margin: 30px 0 0 0; height: auto; vertical-align: middle; font-size: 14px; line-height: 30px; text-decoration: none; color: #b40e3c; cursor: pointer; padding: 0 30px; border: none; background-color: #ffffff; }
		div#popup div.container span.close:hover { color: #ffffff; background-color: #a5a7aa; }
		div#popup div.container p { margin: 5px 0; color: #ffffff; }