html {
	overflow-x: hidden !important;
}
body {
      font-family: "Raleway", "Montserrat", "Plus Jakarta Sans", "IBM Plex Serif", serif-serif;
      background-color: #f0f0f0;
      color: #000;
	  overflow-x: hidden !important;
    }
	.hero {
	  position: relative;
	  display: flex;
	  align-items: center;
	  justify-content: center;
	  color: #000;
	  text-align: center;
	  z-index: 1;
	  overflow: hidden;

	}

	@media (min-width: 769px) {
	  .hero {
		height: 75vh;
	  }
	}

	.hero::before {
	  content: "";
	  position: absolute;
	  inset: 0;
	  background-image: url('../images/sfondo-home.png');
	  background-size: cover;
	  background-position: center;
	  opacity: 0.3; /* Cambia il livello di trasparenza qui */
	  z-index: -1;
	}
    .section {
      padding: 60px 0;
    }
    .footer {
      background-color: #f8f9fa;
      padding: 20px 0;
    }
    .icon-button {
      background: none;
      border: none;
      /*margin-left: 10px;*/
      font-size: 1.2rem;
      position: relative;
  	  color: #000;
	  transition: color 0.3s ease;
    }
    .icon-button::before {
      content: "";
      position: absolute;
      /*left: -10px;*/
      top: 0;
      bottom: 0;
      width: 0px;
      background-color: #ccc;
    }
	.icon-button:hover,
	.icon-button:focus {
	  color: #6c757d;
	}
	/* Tooltip CSS */
	.icon-button::after {
	  content: attr(aria-label);
	  position: absolute;
	  bottom: -150%; /* sopra l’icona */
	  left: 50%;
	  transform: translateX(-50%);
	  background-color: #000;
	  color: #fff;
	  padding: 8px 16px;
	  border-radius: 4px;
	  white-space: nowrap;
	  font-size: 0.75rem;
	  opacity: 0;
	  pointer-events: none;
	  transition: opacity 0.3s ease;
	  z-index: 100;
	}

	.icon-button:hover::after,
	.icon-button:focus::after {
	  opacity: 1;
	}
    .dropdown-toggle {
      border: none !important;
      background: none !important;
      padding: 0;
    }
    .dropdown-toggle:focus,
    .dropdown-toggle:active,
    .dropdown-toggle.show {
      outline: none !important;
      box-shadow: none !important;
    }
    .dropdown-toggle::after {
      display: none !important;
    }
    .flag-icon {
	  height: 16px;
	  width: auto;
    }
	.flag-icon-sm {
	  height: 14px;
	  width: auto;		
	}
	.dropdown-menu {
	  border-radius: 0 !important;
	}
	.navbar {
		background-color: #f8f9fa;
	}
	.navbar .nav-link {
	  color: #000 !important;
	  transition: color 0.3s ease;
	}

	.navbar .nav-link:hover,
	.navbar .nav-link:focus {
	  color: #6c757d !important; /* grigio bootstrap */
	}
	.navbar-nav {
	  white-space: nowrap;
	}
	.fs-7 {
		font-size: 0.90rem !important;
	}
	.fs-8 {
		font-size: 0.75rem !important;
	}
	
	.text-justify {
	  text-align: justify;
	}
	.date-badge {
	  position: absolute;
	  bottom: 0;
	  left: 0;
	  width: 60px;
	  height: 60px;
	  background-color: #000;
	  color: #fff;
	  font-size: 0.8rem;
	  line-height: 1;
	  padding: 6px;
	  display: flex;
	  flex-direction: column;
	  justify-content: center;
	  align-items: center;
	}

	.date-badge .day {
	  font-size: 1.2rem;
	  font-weight: bold;
	}

	.date-badge .month {
	  text-transform: uppercase;
	  font-size: 0.7rem;
	}
	.news-title {
	  height: 90px;
	  overflow: hidden;
	  text-overflow: ellipsis;
	  display: -webkit-box;
	  -webkit-line-clamp: 3; 
	  -webkit-box-orient: vertical;
	}
	.truncate-2 {
	  display: -webkit-box;
	  -webkit-line-clamp: 2;      
	  -webkit-box-orient: vertical;
	  overflow: hidden;
	  text-overflow: ellipsis;
	}
	.truncate-3 {
	  display: -webkit-box;
	  -webkit-line-clamp: 3;      
	  -webkit-box-orient: vertical;
	  overflow: hidden;
	  text-overflow: ellipsis;
	}
	.truncate-5 {
	  display: -webkit-box;
	  -webkit-line-clamp: 5;
	  -webkit-box-orient: vertical;
	  overflow: hidden;
	  text-overflow: ellipsis;
	}
	
	.equal-height-img-400 {
	  width: 100%;
	  height: 400px;       /* altezza fissa uguale */
	  object-fit: cover;   /* ritaglia mantenendo proporzioni */
	  object-position: center;
	}
	
	.location-title {
	  height: 80px;
	  overflow: hidden;
	  text-overflow: ellipsis;
	  display: -webkit-box;
	  -webkit-line-clamp: 3; 
	  -webkit-box-orient: vertical;
	}
	
	.galleria-overlay {
	  position: fixed;
	  inset: 0;
	  background: rgba(0, 0, 0, 0.95);
	  z-index: 1050;
	  overflow: hidden !important;
	}

	.galleria-content {
	  overflow-y: auto;
	  max-height: 100%;
	  position: relative;
	  animation: fadeIn 0.3s ease-in-out;
	}

	@keyframes fadeIn {
	  from { opacity: 0; transform: scale(0.95); }
	  to { opacity: 1; transform: scale(1); }
	}
	
	.mousepointer {
		cursor:pointer;
	}

	.artist-preview {
	  width: 390px;
	  /*height: 300px;*/
	  /*max-height: 300px;*/
	  /*border-radius: 50%;*/
	  max-height: 390px;
	  overflow: hidden;
	  display: flex;
	  align-items: center;
	  justify-content: center;
	}

	.object-fit-cover {
	  width: 100%;
	  height: 100%;
	  object-fit: cover;
	}
	.artist-bio {
	  max-width: 400px;
	  font-size: 0.95rem;
	  line-height: 1.5;
	}
	
	#artmap, #artmapgarden, #artmapgroundfloor,#artmapunderground  { height: 500px; background-color:#fff;}
	.popup-title { font-size: 16px; font-weight: bold; color: #2c3e50; }
	.popup-description { font-size: 14px; margin-top: 5px; }
	.popup-author { font-size: 13px; font-style: italic; color: #7f8c8d; }
	.popup-item { font-size: 11px; font-weight: bold; font-style: italic; color: #cc0000; }

	/* Personalizza il contenitore del pannello dei layers */
	.leaflet-control-layers {
		background: #2C3E4F22; /* Sfondo nero semi-trasparente */
		color: white; 					/* Testo bianco */
		border-radius: 5px; 			/* Bordi arrotondati */
		padding: 10px;
		font-family: Arial, sans-serif;
	}

	.leaflet-control-layers {
		position: relative;
	}

	.leaflet-control-layers-toggle::before {
		content: "Percorsi ";
		font-size: 18px;
		font-weight: bold;
		color: #2C3E4F;
		position: absolute;
		left: -85px;  /* Sposta il testo a sinistra */
		top: 50%;
		transform: translateY(-50%);  /* Centra verticalmente */
	}


	/* Cambia il colore del testo e degli input */
	.leaflet-control-layers label {
		color: white;
		font-size: 13px;
		text-align: left;
	}

	/* Cambia il colore dei checkbox */
	.leaflet-control-layers input {
		accent-color: #2C3E4F ; /* Cambia colore selezione */
	}

	/* Personalizza il titolo */
	.leaflet-control-layers-base, .leaflet-control-layers-overlays {
		font-weight: bold;
		font-size: 13;
		margin-bottom: 5px;
	}

	/* Aggiungi un'ombra e un bordo */
	.leaflet-control-layers {
		box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.5);
		border: 1px solid white;
	}
	
	.text-right {
		text-align: right;
	}
	
	.navbar-toggler:focus {
	  box-shadow: none;
	}
	
	.img-home {
		width: 30%;
	}
	
	.img-fixed-height {
	  height: 350px; /* scegli l'altezza che preferisci */
	  object-fit: cover; /* mantiene il ritaglio proporzionato */
	  object-position: center; /* centra l’immagine */
	}

	.accordion-button:focus {
	  z-index: 3;
	  border-color: transparent !important;
	  outline: 0;
	  box-shadow: none;
	}
	
	.img-box {
	  height: 220px;          /* scegli l'altezza */
	  overflow: hidden;
	  display: flex;
	  align-items: center;
	  justify-content: center;
	}
	.img-box img {
	  width: 100%;
	  height: 100%;
	  object-fit: cover;      /* cover = riempie, ritaglia se necessario */
	  object-position: center;
	  display: block;
	}


	.fade-in {
		opacity: 0;
		transition: opacity 1.5s ease-in-out;
	}

	.fade-in.show {
		opacity: 1;
	}

	/*VIDEO PLACEHOLDER */
	.media-preview-wrapper {
		overflow: hidden;
	}

	.media-preview-wrapper img {
		transition: transform 0.4s ease;
	}

	.media-preview-wrapper:hover img {
		transform: scale(1.05);
	}

	.video-overlay {
		position: absolute;
		inset: 0;
		background: rgba(0,0,0,0.35);
		opacity: 0;
		transition: opacity 0.3s ease;
	}

	.media-preview-wrapper:hover .video-overlay {
		opacity: 1;
	}

	.video-play-icon {
		font-size: 3rem;
		color: white;
	}

	.video-count-badge {
		position: absolute;
		bottom: 10px;
		right: 10px;
		background: rgba(0,0,0,0.7);
		color: white;
		font-size: 0.8rem;
		padding: 4px 8px;
		border-radius: 20px;
	}
	
	.attachment-card{
		transition: all 0.2s;
		cursor:pointer;
	}

	.attachment-card:hover{
		background:#f8f9fa;
		transform:translateY(-2px);
		box-shadow:0 3px 8px rgba(0,0,0,0.08);
	}
	.spinner-light {
	  background-position: 50% 50%;
	  background-repeat: no-repeat;
	  background-image: url('data:image/gif;base64,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');
	}
	
	.work-preview {
		/* background-color: #dddddd;*/
	}
	
	.work-preview a img {
		max-height: 500px !important;
	}
	.catalogue-item a img {
		max-height: 350px !important;
	}
	.artist-preview img {
		/*max-height: 350px !important;*/
		width: 100% !important;
		height: 100% !important;
		object-fit: cover;   /* ritaglia mantenendo proporzioni */
		object-position: center;
	}
	
	.text-intro {
		font-weight:500;
		color: #000;
	}
	
	.bg-project-btn {
		background-color: #e0e0e0;
	}
	.bg-project-btn:hover {
		background-color: #ffffff;
	}
	

	.fs-6.fs-home {
	  font-size: 1.1rem !important;
	}
	
	.text-link {
		color: #000 !important;
	}
	
	.z-index-10 {
		z-index:10;
	}
	
	/* ******************************************************************
		FLIP PDF
	******************************************************************* */
	
	/* MODAL */
	.modal {
		display: none;
		position: fixed;
		inset: 0;
		background: rgba(0,0,0,0.6);
		z-index: 9999;
	}

	.modal-content {
		width: 90%;
		height: 90%;
		margin: 2% auto;
		background: #fff;
		border-radius: 10px;
		display: flex;
		flex-direction: column;
		overflow: hidden;
	}

	/* TOOLBAR */
	.toolbar {
		display: flex;
		gap: 10px;
		align-items: center;
		padding: 10px;
		background: #1f2937;
		color: white;
	}

	.toolbar button {
		background: #374151;
		color: white;
		border: none;
		padding: 6px 10px;
		cursor: pointer;
		border-radius: 5px;
	}

	.toolbar button:hover {
		background: #4b5563;
	}

	/* VIEWER */
	.viewer {
		flex: 1;
		overflow: auto;
		background: #e5e7eb;
		display: flex;
		justify-content: center;
		align-items: flex-start;
	}

	/* loader */
	.loader {
		position: absolute;
		inset: 0;
		display: flex;
		justify-content: center;
		align-items: center;
		background: white;
		z-index: 10;
	}

	.spinner {
		width: 40px;
		height: 40px;
		border: 4px solid #ddd;
		border-top: 4px solid #2563eb;
		border-radius: 50%;
		animation: spin 1s linear infinite;
	}

	@keyframes spin {
		to { transform: rotate(360deg); }
	}

	.close {
		margin-left: auto;
		cursor: pointer;
		font-size: 20px;
		background: #374151;
		color: white;
		border: none;
		padding: 6px 10px;
		cursor: pointer;
		border-radius: 5px;
	}
	
	.badge-filter.active {
		background-color: #cccccc !important;
	}
	
	.min-h-300 {
		min-height: 300px;
	}
	
	@media (min-width: 769px) {	
		.appointment-preview {
			max-height:275px; 
			width:100%;
		}
	}
	
	.fs-navbar {
	  font-size: 0.70rem !important;
	}
	
	@media (min-width: 1181px) {	
		.fs-navbar {
			font-size: 0.90rem !important;
		}
	}