@font-face {
    font-family: 'montserrathairline';
    src: url('../font/montserrat-hairline-webfont.eot');
    src: url('../font/montserrat-hairline-webfont.eot?#iefix') format('embedded-opentype'),
         url('../font/montserrat-hairline-webfont.woff2') format('woff2'),
         url('../font/montserrat-hairline-webfont.woff') format('woff'),
         url('../font/montserrat-hairline-webfont.ttf') format('truetype'),
         url('../font/montserrat-hairline-webfont.svg#montserrathairline') format('svg');
    font-weight: normal;
    font-style: normal;

}




@font-face {
    font-family: 'montserratlight';
    src: url('/assets/font/montserrat-light-webfont.eot');
    src: url('/assets/font/montserrat-light-webfont.eot?#iefix') format('embedded-opentype'),
         url('/assets/font/montserrat-light-webfont.woff2') format('woff2'),
         url('/assets/font/montserrat-light-webfont.woff') format('woff'),
         url('/assets/font/montserrat-light-webfont.ttf') format('truetype'),
         url('/assets/font/montserrat-light-webfont.svg#montserratlight') format('svg');
    font-weight: normal;
    font-style: normal;

}




@font-face {
    font-family: 'montserratbold';
    src: url('/assets/font/montserrat-bold-webfont.eot');
    src: url('/assets/font/montserrat-bold-webfont.eot?#iefix') format('embedded-opentype'),
         url('/assets/font/montserrat-bold-webfont.woff2') format('woff2'),
         url('/assets/font/montserrat-bold-webfont.woff') format('woff'),
         url('/assets/font/montserrat-bold-webfont.ttf') format('truetype'),
         url('/assets/font/montserrat-bold-webfont.svg#montserratbold') format('svg');
    font-weight: normal;
    font-style: normal;

}


* { margin: 0; }

html, body 			{ height: 100%; width:100%; font-family:'montserratlight', Arial, Helvetica, sans-serif; font-size:16px; color:#444; line-height:20px; background:#EFEFEF; }

h1					{ font-size:24px; font-weight:300; line-height:28px; margin:0 0 10px 0; color:#077323; display:inline-block; font-family: 'montserratbold';}
h2					{ font-size:20px; font-weight:300; line-height:24px; margin:0 0 10px 0; color:#077323; display:inline-block; font-family: 'montserratbold';}



a					{ text-decoration:none; color:#000;}
a:hover				{ text-decoration:none; color:#666;}

b, strong			{ font-weight: 700; }
em					{ font-style:italic;}
u					{ text-decoration:underline;}

p					{ width:100%; margin:0 0 10px 0;}

.wrapper {
min-height: 100%;
height: auto !important;
height: 100%;
margin: 0 auto -300px;
}

footer, .push {
clear: both;
height:300px;
}

header				{ background:#222; height:70px; width:100%; border-bottom:3px solid #FFF; }

header > .int		{ width:100%; background:#222; height:70px; margin:0 auto; position:relative;}


a.choose			{ 
					background: #FFF;
					width: auto;
					padding: 8px 7px;
					border-radius: 50%;
					float: left;
					margin: 3px;
					}					
					
a.choose:hover		{ background:#222; }					

a.choose img		{ float:left;}

.box_lang			{
					float:right;
					width:100px;
					padding:0 10px;
					height:50px;
					line-height:50px;
					margin:10px 0 10px 10px;
					border-radius:3px;
					background:#EFEFEF;
					text-transform:uppercase;
					}

.box_lang:hover		{ background:#FFF;}


a.lang				{ color:#222; line-height:50px; float:left; width:100%;}
a.lang:hover		{ color:#666;}

a.lang > img		{ float:left; padding:16px 5px 16px 0; height:18px;}

a.lang > span		{ float:right; height:50px; background:url(/assets/img/down.png) no-repeat center; width:15px;}

.cont_lang			{ position:absolute; top:70px; right:0; line-height:20px; z-index:10; padding:15px; width:88px; float:left; border:1px solid #CCC;
					background:#FFF; border-radius:3px;text-transform:uppercase;}


a.lang2				{ color:#222; line-height:20px; float:left; width:100%;}
a.lang2:hover		{ color:#666;}

a.lang2 > img		{ float:left; padding:1px 5px 1px 0; height:18px;}


a.logo_header		{ padding:10px 0; float:left; margin:0 20px 0 0; height:50px;}

a.logo_header img	{ height:50px; float:left; }

.cont_search		{ height:50px; background:#363636; float:left; border-radius:3px; margin:10px;}

.campo_search		{ 
					border-right:1px solid #FFF !important; 
					border-top:none !important; 
					border-bottom:none !important; 
					border-left:none !important; 
					padding:0 10px 0 10px !important; 
					float:left; 
					color:#222 !important; 
					background-color:#FFF !important; 
					width:280px; 
					height:30px; 
					line-height:30px; 
					margin:10px 0 10px 10px !important;
					}

.lente			  {   
				  height: 50px;
				  width: 50px;
				  float: left;
				  padding: 10px;
				  cursor: pointer;
				  float: left;
				  background: url(/assets/img/lente.png) no-repeat center;
				  border: 0;
				  }
				  
.lente:hover	  { opacity:0.7;}

.cont_search_home		{  height:50px; background:#363636; float:left; border-radius:3px; margin:50px 10px 10px 10px;}
.campo_search_home		{ 
					border-right:1px solid #FFF !important; 
					border-top:none !important; 
					border-bottom:none !important; 
					border-left:none !important; 
					padding:0 10px 0 10px !important; 
					float:left; 
					color:#222 !important; 
					background-color:#FFF !important; 
					width:870px; 
					height:30px; 
					line-height:30px; 
					margin:10px 0 10px 10px !important;
					}

.lente_home			  {   
				  height: 70px;
				  width: 70px;
				  float: left;
				  padding: 10px;
				  cursor: pointer;
				  float: left;
				  background: url(/assets/img/lente.png) no-repeat center;
				  border: 0;
				  }
				  
.lente_home:hover	  { opacity:0.7;}

@media screen and (min-width: 980px) {
header > .int		{ width:980px;}
}


#content			{ width:100%; min-height: 100%; height: auto !important; height: 100%;}

#content > .int		{ width:100%; min-height: 100%; height: auto !important; height: 100%; margin:0 auto;}

@media screen and (min-width: 980px) {
#content > .int		{ width:980px; }
}


.path				{ width:100%; margin:10px 0; line-height:20px; font-size:11px; text-transform:uppercase; text-align:right; display:inline-block;}
	
	.path a			{ color:#222;}
	.path a:hover	{ color:#077323;}
	
	.path > ol			{ float:right;}
	.path > ol > li		{ float:left;}
	.path > ol > span	{ float:left; margin:0 5px;}		

.bandiere			{ width:100%; min-height:20px; padding:10px 0;}

footer				{ background:#FFF; height:300px; width:100%; background:#222;}

footer > .int		{   
					width: 98px;
					height: 280px;
					padding: 10px 1%;
					margin:0 auto;
					background:#222;
					}

footer > .int > a		{ width:auto; color:#FFF; margin:0 10px 0 0;}

.link_footer {
  height: 240px;
  float: left;
}

	.link_footer a			{ color:#FFF; margin:0 10px 0 0; line-height:20px;}
	.link_footer a:hover	{ color:#CCC;}

.footer_bottom		{ height:40px; line-height:40px;}

.addthis_sharing_toolbox	{ float:right; margin:5px 0 0 0;}

.logo_footer		{ float:left; margin:5px 0 0 0;}

@media screen and (min-width: 980px) {
footer > .int		{ width:960px; height:280px; padding:10px;}
}

.sx			{ width:98%; background:FFF; padding:1%;}

.dx			{ width:98%;  padding:1%;}

@media screen and (min-width: 980px) {
.sx			{ width:670px; float:left; padding:10px 10px 0 0px;}

.dx			{ width:300px; float:left; padding:10px 0;}
}


/**************************************************************/
 
.listato	{ 
			width:96%;
			padding:2%;
			background:#FFF;
			margin:0 0 15px 0; 
			display:grid;
			grid-template-columns: 120px 1fr 220px;
			gap:20px;
			border-radius:5px;
			box-shadow:0 2px 5px rgba(0,0,0,0.08);
			transition:box-shadow 0.3s ease;
			}

.listato:hover	{ box-shadow:0 4px 12px rgba(0,0,0,0.15); }

/* Aziende registrate hanno bordo speciale */
.listato.registered-company	{
			border-left:4px solid #077323;
			}

.listato.basic-company	{
			border-left:4px solid #ddd;
			}

/* Logo Azienda */
.listing-logo	{
			display:flex;
			align-items:flex-start;
			justify-content:center;
			}

.company-logo	{
			max-width:100%;
			height:auto;
			border-radius:3px;
			border:1px solid #eee;
			}

/* Contenuto Principale */
.listing-content	{
			display:flex;
			flex-direction:column;
			gap:12px;
			}

/* Header Azienda */
.listing-header	{
			display:flex;
			flex-direction:column;
			gap:5px;
			}

.company-title	{
			font-size:20px;
			font-weight:600;
			line-height:24px;
			margin:0;
			display:flex;
			align-items:center;
			gap:8px;
			}

.company-link	{
			color:#077323;
			text-decoration:none;
			transition:color 0.2s ease;
			}

.company-link:hover	{
			color:#055219;
			text-decoration:underline;
			}

.badge-registered	{
			display:inline-flex;
			align-items:center;
			color:#FFD700;
			flex-shrink:0;
			}

.company-legal-name	{
			font-size:14px;
			color:#666;
			font-style:italic;
			}

/* Descrizione */
.company-description	{
			font-size:14px;
			line-height:20px;
			color:#555;
			padding:8px 0;
			border-top:1px solid #f0f0f0;
			border-bottom:1px solid #f0f0f0;
			}

/* Info Groups */
.company-info	{
			display:flex;
			flex-direction:column;
			gap:8px;
			}

.info-group	{
			display:flex;
			align-items:flex-start;
			gap:8px;
			font-size:14px;
			line-height:20px;
			}

.info-icon	{
			flex-shrink:0;
			margin-top:2px;
			color:#077323;
			opacity:0.7;
			}

.info-content	{
			flex:1;
			}

.info-content strong	{
			color:#333;
			}

.website-link	{
			color:#077323;
			text-decoration:none;
			word-break:break-all;
			}

.website-link:hover	{
			text-decoration:underline;
			}

/* Azioni */
.company-actions	{
			display:flex;
			gap:10px;
			margin-top:5px;
			}

.btn	{
			display:inline-block;
			padding:8px 16px;
			border-radius:4px;
			text-decoration:none;
			font-size:14px;
			font-weight:500;
			transition:all 0.2s ease;
			border:1px solid;
			cursor:pointer;
			}

.btn-primary	{
			background:#077323;
			color:#FFF;
			border-color:#077323;
			}

.btn-primary:hover	{
			background:#055219;
			border-color:#055219;
			}

.btn-secondary	{
			background:#FFF;
			color:#077323;
			border-color:#077323;
			}

.btn-secondary:hover	{
			background:#077323;
			color:#FFF;
			}

.btn-outline	{
			background:#FFF;
			color:#666;
			border-color:#ddd;
			}

.btn-outline:hover	{
			background:#f5f5f5;
			border-color:#999;
			color:#333;
			}

.btn-sm	{
			padding:6px 12px;
			font-size:13px;
			}

/* Mappa */
.listing-map	{
			display:flex;
			align-items:flex-start;
			justify-content:center;
			}

.map-link	{
			display:block;
			border-radius:5px;
			overflow:hidden;
			transition:transform 0.2s ease;
			}

.map-link:hover	{
			transform:scale(1.02);
			}

.map-image	{
			display:block;
			max-width:100%;
			height:auto;
			border:1px solid #eee;
			}

/* Responsive */
@media (max-width: 900px) {
	.listato	{
				grid-template-columns: 100px 1fr;
				gap:15px;
				}
	
	.listing-map	{
				grid-column: 1 / -1;
				}
}

@media (max-width: 600px) {
	.listato	{
				grid-template-columns: 1fr;
				gap:12px;
				}
	
	.listing-logo	{
				justify-content:flex-start;
				}
	
	.company-logo	{
				max-width:100px;
				}
	
	.company-actions	{
				flex-direction:column;
				}
	
	.btn	{
				text-align:center;
				}
}

.radius50	{ border-radius:50%; overflow:hidden; float:left;}
			
a.titolo_listing		{ color:#077323; font-size:18px; line-height:20px; display: inline-block; width:100%; margin:0 0 5px 0;}	
a.titolo_listing:hover	{ color:#222; }

.list_left	{ width:88%; float:left;}
.list_right	{ width:10%; float:left; padding:0 0 0 2%;}

	.list_right	img	{ max-width:100%; float:left;}
	
	.description	{ float:left; max-width:450px; padding:0 0 0 10px;}

/************************************************************/

ul > li > a			{ padding:1%; width:98%; line-height:20px; color:#077323; margin:0 0 10px 0; border-radius:3px; background:#FFF; display:inline-block;}
ul > li > a:hover	{ color:#222; }	
/************************************************************/

.paginazione	{ width:100%; display:inline-block; margin:10px 0;}

	.paginazione a	{
					height:40px;
					line-height:40px;
					margin:0 10px 0 0;
					float:left;
					border:1px solid #222;
					background:#FFF;
					color:#222;
					min-width:30px;
					padding:0 5px;
					text-align:center;
					}
					
	.paginazione a:hover	{ background:#222; color:#FFF;}	
	
/**************************************************************/

.logo_scheda		{ margin:0 10px 5px 0;}		
.cont_scheda		{ background:#FFF; padding:2%; width:96%; border-radius:3px; display:inline-block; margin:15px 0 0 0;}	

a.contatti			{ line-height:30px; height:30px; padding:0 10px; border-radius:3px; color:#FFF; background:#077323; display:inline-block;}	
a.contatti:hover	{ background:#222; color:#FFF;}	

.mappa_scheda		{ width:100%; margin:15px 0 0 0; display:inline-block;}

/* ===============================================
   SISTEMA NAVIGAZIONE COMPLETO 3 LIVELLI
   =============================================== */

/* HOME - Macro-categorie */
.home-categories {
    margin: 40px 0;
    padding: 30px 20px;
    background: #f8f9fa;
    border-radius: 8px;
}

.home-categories h2 {
    font-family: 'montserratbold', Arial, sans-serif;
    color: #333;
    text-align: center;
    margin-bottom: 30px;
    font-size: 24px;
}

.macrocategories-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 20px;
    max-width: 1200px;
    margin: 0 auto;
}

.macro-category-card {
    background: white;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    overflow: hidden;
    transition: all 0.3s ease;
}

.macro-category-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 25px rgba(0,0,0,0.1);
    border-color: #077323;
}

.macro-link {
    display: block;
    padding: 25px 20px;
    text-decoration: none;
    color: inherit;
}

.macro-link h3 {
    font-family: 'montserratbold', Arial, sans-serif;
    color: #333;
    margin: 0 0 10px 0;
    font-size: 20px;
}

.company-count {
    color: #077323;
    font-weight: bold;
    font-size: 14px;
}

/* MACRO-CATEGORIA - Sotto-categorie e Province */
.subcategories-section, .provinces-section {
    margin: 30px 0;
    padding: 25px;
    background: #f8f9fa;
    border-radius: 8px;
}

.subcategories-section h2, .provinces-section h2 {
    font-family: 'montserratbold', Arial, sans-serif;
    color: #333;
    margin-bottom: 20px;
    font-size: 22px;
    border-bottom: 2px solid #077323;
    padding-bottom: 10px;
}

.subcategories-list {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
}

.subcategory-link, .province-link {
    background: white;
    border: 1px solid #ddd;
    border-radius: 6px;
    padding: 12px 18px;
    text-decoration: none;
    color: #333;
    font-weight: 500;
    transition: all 0.2s ease;
    display: inline-block;
}

.subcategory-link:hover, .province-link:hover {
    background: #077323;
    color: white;
    border-color: #077323;
    text-decoration: none;
    transform: translateY(-2px);
}

.provinces-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 12px;
    margin-top: 15px;
}

/* CATEGORIA - Province */
.category-provinces {
    background: #f0f8f0;
    border: 1px solid #c3e6cb;
    border-radius: 6px;
    padding: 20px;
    margin: 25px 0;
}

.category-provinces h3 {
    font-family: 'montserratbold', Arial, sans-serif;
    color: #155724;
    margin: 0 0 15px 0;
    font-size: 18px;
}

.province-links {
    line-height: 32px;
}

.provincia-link {
    background: white;
    border: 1px solid #28a745;
    border-radius: 4px;
    padding: 8px 14px;
    margin: 0 8px 8px 0;
    display: inline-block;
    color: #155724;
    text-decoration: none;
    transition: all 0.2s ease;
    font-size: 14px;
    font-weight: 500;
}

.provincia-link:hover {
    background: #28a745;
    color: white;
    text-decoration: none;
    transform: scale(1.05);
}

/* CATEGORIA+PROVINCIA - Info e risultati */
.category-province-info {
    background: #e7f3ff;
    border: 1px solid #b8daff;
    border-radius: 6px;
    padding: 20px;
    margin: 20px 0;
}

.category-province-info p {
    margin: 8px 0;
    color: #004085;
}

.no-results {
    background: #fff3cd;
    border: 1px solid #ffeaa7;
    border-radius: 6px;
    padding: 30px;
    text-align: center;
    margin: 30px 0;
}

.no-results p {
    color: #856404;
    margin: 10px 0;
}

.no-results a {
    color: #007bff;
    font-weight: bold;
}

/* Responsive */
@media (max-width: 768px) {
    .macrocategories-grid {
        grid-template-columns: 1fr;
        gap: 15px;
    }
    
    .provinces-grid {
        grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
        gap: 8px;
    }
    
    .subcategories-list {
        flex-direction: column;
        gap: 10px;
    }
    
    .home-categories, 
    .subcategories-section, 
    .provinces-section,
    .category-provinces,
    .category-province-info {
        margin: 20px 10px;
        padding: 15px;
    }
}

/* ============================================
   HAMBURGER MENU & HIDDEN HEADER
   ============================================ */
.transition { transition: all 0.3s ease; }

.open-hidden {
    display: block;
    float: right;
    width: 30px;
    height: 30px;
    margin: 20px 10px;
    cursor: pointer;
    position: relative;
}

.open-hidden .uno,
.open-hidden .due {
    display: block;
    width: 24px;
    height: 2px;
    background: #fff;
    position: absolute;
    left: 3px;
}

.open-hidden .uno { top: 10px; }
.open-hidden .due { top: 18px; }

/* Quando il menu è aperto, le linee diventano una X */
.open-hidden.active .uno {
    transform: rotate(45deg);
    top: 14px;
}
.open-hidden.active .due {
    transform: rotate(-45deg);
    top: 14px;
}

.hidden-header {
    display: none;
    position: absolute;
    top: 70px;
    left: 0;
    right: 0;
    background: #222;
    z-index: 100;
    padding: 15px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.3);
    max-height: 80vh;
    overflow-y: auto;
}

.hidden-header.open {
    display: block;
}

/* Navigation menu inside hidden-header */
.hidden-header .nav-menu {
    width: 100%;
    float: left;
    padding: 10px 0;
}

.hidden-header .nav-menu a {
    display: block;
    color: #fff;
    padding: 8px 15px;
    text-decoration: none;
    font-size: 14px;
    border-bottom: 1px solid #333;
}

.hidden-header .nav-menu a:hover {
    background: #333;
    color: #49bfd5;
}

/* DX sidebar styling */
.dx h2 {
    font-size: 16px;
    font-weight: bold;
    margin: 15px 0 8px 0;
    padding: 8px 0;
    border-bottom: 2px solid #077323;
    color: #222;
}

.dx ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.dx ul li {
    margin: 0;
    line-height: 22px;
}

.dx ul li a {
    display: block;
    padding: 4px 0;
    color: #077323;
    text-decoration: none;
    font-size: 13px;
    border-bottom: 1px solid #f0f0f0;
}

.dx ul li a:hover {
    color: #055219;
    background: #f9f9f9;
    padding-left: 5px;
}

/* Pagination */
.pagination {
    width: 100%;
    text-align: center;
    padding: 20px 0;
    margin: 20px 0;
    border-top: 1px solid #eee;
}

.pagination a {
    display: inline-block;
    padding: 8px 16px;
    margin: 0 5px;
    background: #077323;
    color: #fff;
    text-decoration: none;
    border-radius: 4px;
    font-size: 14px;
}

.pagination a:hover {
    background: #055219;
}

.pagination span {
    display: inline-block;
    padding: 8px 16px;
    margin: 0 5px;
    color: #666;
    font-size: 14px;
}

/* Breadcrumbs (path) */
.path ol {
    list-style: none;
    padding: 0;
    margin: 0;
}

.path ol li {
    float: left;
    font-size: 11px;
}

.path ol li + li:before {
    content: " > ";
    padding: 0 5px;
    color: #999;
}

/* Company count badge */
.aziende-count {
    color: #666;
    font-size: 14px;
    margin: 5px 0 15px 0;
}

/* Section title */
h1.sezione {
    font-size: 24px;
    font-weight: bold;
    color: #222;
    padding: 10px 0;
    margin: 0 0 10px 0;
    border-bottom: 3px solid #077323;
}

h1.sezione span {
    display: none;
}