fieldset {
    padding: 0;
    margin: 0;
    border: none;
    overflow: hidden;
}

    /* fix per iCosi */
input:not([type="radio"]):not([type="checkbox"])
,textarea
,button 
{
    -webkit-appearance: none;
       -moz-appearance: none;
    border-radius: 0;
    outline: none;
}


.form_base { position: relative; background: #FFFFFF; }

    .form_base fieldset{ margin-bottom: 24px; width: 104%;}

	
    .form_base fieldset legend {
    	padding: 10px 0;
		display: block;
		position: static;
	    font-size: 18px;
		color: #002f60;
	}

.form_base .form_title {
	line-height: 32px;
	margin: 0;
	font-size: 35px;
	font-weight: normal;
}

.form_base .form_text {
	line-height: 22px;
	margin: .5em 0 0 0;
	font-size: 16px;
	color: #666666;
}

    .form_base .field
	{
        width: 47%;
		margin: 0 3% 20px 0;
		display: block;
		position: relative;
		float: left;
		min-height: 35px;
		line-height: 1.4;
		padding: 0;
        box-sizing: border-box; 
		font-size: 11px;
		color: #828282;
	}
		
        .form_base .field.w100 { width: 97%;} 
        .form_base .field.w33 { width: 30.3334%;} 
        .form_base .field.w66 { width: 63.6667%;} 
        .form_base .field.w25 { width: 22%;}

	
        .form_base label {
            width: 47%; 
            box-sizing: border-box;
            margin: 0 0 20px 0;
			float: left;
			display: block;
			position: relative; 
            margin-right: 3%;
            text-align: left;
		}
			.form_base label:hover { z-index: 30; }

			/*.form_base label.near { margin-left: 20px; } */
		/*	.form_base label.w100 { width: 100%; float: none; clear: both; }*/
            
            .form_base label.w100 { width: 97%;} 
            .form_base label.w33 { width: 30.3334%;} 
            .form_base label.w66 { width: 63.6667%;} 
            .form_base label.w25 { width: 22%;}

			.form_base label.clear_left { clear: left; } 

			.form_base label .placeholder { 
				line-height: 35px;
				display: block;
				position: absolute;
				left: 11px;
				top: 1px;
				z-index: 20;
				font-family: 'Montserrat', 'Arial', 'Helvetica', sans-serif;
				font-size: 11px;
				text-transform: uppercase; 
				white-space: nowrap;
				color: #828282;
			}
				.form_base label .placeholder.tooltip {
					line-height: 1.2;
					padding: 5px 11px;
					margin-bottom: 6px;
					display: none;
					left: 0;
					top: auto;
					bottom: 100%;
					color: #FFF;
					background: #AFA376;
				} 

					.form_base label .placeholder.tooltip::before {
						content: '';
						display: block;
						border-top: 4px solid #AFA376;
						border-left: 4px solid transparent;
						border-right: 4px solid transparent;
						display: block;
						position: absolute;
						top: 100%;
						left: 10px;
					} 

					.form_base label:hover .placeholder.tooltip { display: block; }

			.form_base label.required .placeholder:after { content: '*'; }

		.form_base label.label_checkbox 
		,.form_base label.label_radio 
		{
			width: auto;
			/*
			height: 20px;
			line-height: 20px;
			padding-left: 25px;
            margin-left: -15px;
			margin-right: 10px;
			*/
			padding-left: 30px;
			margin-bottom: 0;
			float: none;
			display: inline-block;
			position: relative;
		}
			.form_base label.label_checkbox + label { margin-left: 20px; }
			/*
			.form_base label.label_checkbox:last-child
			,.form_base label.label_radio:last-child
			{
				margin-right: 0;
			}*/

			.form_base label.label_checkbox:before
			,.form_base label.label_radio:before
			,.form_base label.label_checkbox:after
			,.form_base label.label_radio:after
			{
				content: '';
				display: block;
				position: absolute;
				z-index: 10;
			}

				.form_base label.label_checkbox:before
				,.form_base label.label_radio:before
				{
					width: 14px;
					height: 14px;
					border: 1px solid #D9D9D9;
			        border-radius: 3px; 
					top: 2px;
					left: 7px;
					background: #FFF;
				}

                    /* spunta */
				.form_base label.label_checkbox:after
				,.form_base label.label_radio:after
				{
					width: 10px;
					height: 10px;
			        border-radius: 1px; 
					display: none;
					top: 5px;
					left: 10px;
					background: #333333;
				}
					.form_base input[type="checkbox"]:checked + label.label_checkbox:after
					,.form_base input[type="radio"]:checked + label.label_radio:after
					{
						display: block;
					}

				.form_base label.label_radio:before
				,.form_base label.label_radio:after
				{
			        border-radius: 50%; 
				}
		

        .form_base input[type="checkbox"]
        ,.form_base input[type="radio"]
        {
        	margin-right: -19px;
            position: relative;
            top: 3px;
            left: -3500px;
            z-index: 2;
        }		

        
        /*.form_base .field .placeholder 
		{
			height: 35px;
			line-height: 35px;
			display: inline-block;
			position: absolute;
			left: 0;
			top: 0;
            z-index: 2;
			font-size: 14px;
			color: #58585A;
            margin: 0 10px;
		} 
        .form_base .label_select .placeholder { display: none; }

        .form_base .field.ObjectPlaceholder {display: none;}*/



	.form_base input[type="text"]
	,.form_base input[type="tel"]
	,.form_base input[type="email"]
	,.form_base input[type="number"]
	,.form_base input[type="date"]
	,.form_base input[type="search"]
	,.form_base input[type="password"]
	,.form_base textarea
	,.form_base select
	{
		width: 100%;
		height: 35px;
		line-height: 35px;
		padding: 0 10px;
		border: 1px solid #D9D9D9;
        box-sizing: border-box; 
		display: block;
    	font-family: 'Montserrat', 'Arial', 'Helvetica', sans-serif;
		font-size: 14px;
		color: #58585A;
		background: #FFFFFF;
        position: relative;
        z-index: 1;
	}

		*::-webkit-input-placeholder {color: #828282;}
        *::-moz-placeholder {color: #828282;}
        *:-ms-input-placeholder {color: #828282;}


		.form_base input[type=number] { -moz-appearance: textfield; }
		.form_base input[type=number]::-webkit-inner-spin-button
		,.form_base input[type=number]::-webkit-outer-spin-button 
		{ 
		    -webkit-appearance: none;
		}


		.form_base select { padding: 0 5px; }
        .form_base select +:after {content: 'e';}

		.form_base textarea {
			padding: 10px;
			line-height: 17px;
			min-height: 155px;
			resize: vertical;
		}

	.form_base .privacy {
		margin: 11px 0 0 0; 
		float: left;
		position: relative;
		font-size: 11px;
	}
		.form_base .privacy label { line-height: auto; height: auto; padding-left: 0; margin-right: 0; margin-bottom: 0; position: static; }

		.form_base .privacy input[type="checkbox"] { top: 1px; margin-right: 5px; }
				.form_base .privacy input[type="checkbox"]:checked + label.label_checkbox:after { display: block; }

	.form_base  .legal { font-size: 11px; margin: 15px 0; width: 98%; float: left;}
        .form_base .legal a {color: #002f60;}
        .form_base .legal a:hover {text-decoration: underline;}

	.form_base .campi_obbligatori 
	,.form_base .info_privacy 
	,.form_base .info_newsletter 
	{ 
		margin: 15px 0 0 0; 
		font-size: 11px; 
		color: #828282; 
        font-family: "Open Sans",sans-serif;
	}
	/*.form_base .info_privacy 
	,.form_base .info_newsletter 
	{ float: right; }*/

	.form_base .info_newsletter {
		clear: both;
	}

	.form_base *[type="submit"] 
	{
        width: 165px;
		height: 35px;
		margin-top: 30px;
		float: left;
    	font-family: 'Montserrat', 'Arial', 'Helvetica', sans-serif;
		font-size: 16px;
		text-transform: uppercase;
		color: #FFFFFF;
		background: #000000;
		cursor: pointer;
        position: relative;
        clear: both;
	}


	.form_base .response { margin: 15px 0; }
		.form_base .response strong { text-transform: capitalize; }
		.form_base .response.error { color: #DD0000;}
		.form_base .response.ok { color: #65DB38;}
		.form_base .response .close_btn { width: 20px; height: 20px; display: none; position: absolute; right: 10px; top: 10px; cursor: default; }



	.form_base #response_inline {
		width: 94%;
		max-width: 420px;
		margin: 0;
		padding: 20px;
		border: 2px solid #000;
        box-sizing: border-box; 
		position: absolute;
		right: 0;
		bottom: 48px;
		z-index: 100;
        background: #FFF;
	}

		.form_base #response_inline h3 { margin: 0; }

		.form_base #response_inline:after {
			content: '';
			margin-right: -8px;
			border-top: 8px solid #000000;
			border-right: 8px solid transparent;
			border-left: 8px solid transparent;
			display: block;
			position: absolute;
			top: 100%;
			right: 82px;
		} 

		.form_base #response_inline .close_btn { display: block; }

			.form_base #response_inline .close_btn:after {
				content: '\00d7';
				width: 20px;
				height: 20px;
				line-height: 20px;
				position: absolute;
				top: 0;
				left: 0;
				text-align: center;
				font-size: 20px;
				cursor: pointer;
			}
        
    
    .form_base #response_inline_top {
        text-align: left;
        width: 100%;
        margin: 30px 0 ;
        border: 3px solid #000;
        padding: 15px 20px;
        box-sizing: border-box;
    }

    .form_base #g-recaptcha {
        margin-top: 30px; 
        /* altezza minima per dare altezza prima del rendering completo
        del captcha (utile per i form chiamati in ajax) */
        min-height: 90px;
    }

@media (orientation: portrait) and (max-width: 599px),(orientation: landscape) and (max-width: 768px) {

	.form_base label
    ,.form_base label.w25
    ,.form_base label.w33
    ,.form_base label.w66
    ,.form_base label.w100
    ,.form_base .field
	{
		width: 97%;
		float: none;
	}

	.form_base *[type="submit"] { width: 97%; display: block; box-sizing: border-box;}

	.js .form_base #response_inline {
		width: auto;
		padding: 10px;
		left: 0;
	}

		.js .form_base #response_inline:after {
			right: 50%;
		} 

    .form_base #response_inline .close_btn {top: 5px; right: 5px;}

}