.gallery-item{display: block !important;position: relative;overflow: hidden;transition: transform 0.3s ease;text-decoration: none;color: inherit;}
.gallery-item:hover{transform: scale(1.02);text-decoration: none;color: inherit;}
.gallery-item:hover img{filter: brightness(1.1);}
.gallery-item::before{content: '';position: absolute;top: 0;left: 0;right: 0;bottom: 0;background: rgba(0, 0, 0, 0.3);opacity: 0;transition: opacity 0.3s ease;z-index: 1;}
.gallery-item:hover::before{opacity: 1;}
.gallery-item::after{content: '🔍';position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);font-size: 2rem;color: white;opacity: 0;transition: opacity 0.3s ease;z-index: 2;text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);}
.gallery-item:hover::after{opacity: 1;}
.fancybox__backdrop{background: rgba(0, 0, 0, 0.9);}
.fancybox__toolbar{background: rgba(0, 0, 0, 0.8);backdrop-filter: blur(10px);}
.fancybox__caption{background: rgba(0, 0, 0, 0.8);backdrop-filter: blur(10px);color: white;font-size: 14px;padding: 10px 20px;display: flex;align-items: center;justify-content: space-between;gap: 16px;}
.fancybox-preventivo-btn{display: inline-flex;align-items: center;gap: 6px;padding: 7px 16px;background: linear-gradient(135deg, #005096 0%, #00a3d0 100%);color: #fff !important;text-decoration: none !important;border-radius: 6px;font-size: 13px;font-weight: 600;white-space: nowrap;box-shadow: 0 2px 8px rgba(0, 80, 150, 0.4);transition: filter 0.2s, transform 0.2s;flex-shrink: 0;}
.fancybox-preventivo-btn:hover{filter: brightness(1.2);transform: translateY(-1px);color: #fff !important;}
.lightbox-img-fullscreen{max-height: 80vh;background: #fff;padding: 1rem;}
.placeholder-img-fallback{height: 200px;color: #adb5bd;}
.search-result-icon{font-size: 1.1rem;}
.dove-siamo-section{padding-top: 2rem;padding-bottom: 5rem;}
.dove-siamo-wrapper{border-radius: 20px;overflow: hidden;box-shadow: 0 32px 80px rgba(0,0,0,0.13);display: flex;min-height: 500px;}
.dove-siamo-info-col{width: 340px;min-width: 280px;display: flex;flex-shrink: 0;}
.dove-siamo-info-panel{background: linear-gradient(160deg, #0d1b2e 0%, #1a3556 100%);padding: 3.5rem 2.5rem;display: flex;flex-direction: column;width: 100%;position: relative;overflow: hidden;}
.dove-siamo-info-panel::before{content: '';position: absolute;inset: 0;background-image: radial-gradient(circle at 1px 1px, rgba(255,255,255,0.04) 1px, transparent 0);background-size: 28px 28px;pointer-events: none;}
.dove-siamo-info-panel::after{content: '';position: absolute;bottom: -60px;right: -60px;width: 220px;height: 220px;border-radius: 50%;background: radial-gradient(circle, rgba(59,130,246,0.15) 0%, transparent 70%);pointer-events: none;}
.dove-siamo-brand{font-size: 0.68rem;letter-spacing: 0.22em;text-transform: uppercase;color: rgba(255,255,255,0.35);margin-bottom: 2.25rem;font-weight: 600;}
.dove-siamo-heading{font-size: 1.65rem;font-weight: 700;color: #fff;line-height: 1.2;margin-bottom: 0.75rem;letter-spacing: -0.02em;}
.dove-siamo-lead{color: rgba(255,255,255,0.52);font-size: 0.9rem;line-height: 1.7;margin-bottom: 2.75rem;}
.dove-siamo-items{display: flex;flex-direction: column;gap: 1.6rem;flex: 1;}
.dove-siamo-item{display: flex;align-items: flex-start;gap: 1rem;}
.dove-siamo-icon-wrap{width: 42px;height: 42px;min-width: 42px;border-radius: 11px;background: rgba(255,255,255,0.07);border: 1px solid rgba(255,255,255,0.1);display: flex;align-items: center;justify-content: center;color: #60a5fa;font-size: 1rem;transition: background 0.25s, border-color 0.25s;}
.dove-siamo-item:hover .dove-siamo-icon-wrap{background: rgba(96,165,250,0.14);border-color: rgba(96,165,250,0.35);}
.dove-siamo-text{display: flex;flex-direction: column;gap: 0.18rem;padding-top: 0.1rem;}
.dove-siamo-label{font-size: 0.65rem;text-transform: uppercase;letter-spacing: 0.12em;color: rgba(255,255,255,0.35);font-weight: 600;}
.dove-siamo-value{color: rgba(255,255,255,0.88);font-size: 0.93rem;line-height: 1.5;font-weight: 500;}
a.dove-siamo-value{text-decoration: none;transition: color 0.2s;}
a.dove-siamo-value:hover{color: #93c5fd;}
.dove-siamo-divider{height: 1px;background: rgba(255,255,255,0.07);margin: 2.25rem 0 1.75rem;}
.dove-siamo-orari{display: flex;flex-direction: column;gap: 0.35rem;margin-top: 0.4rem;}
.dove-siamo-orari-row{display: flex;justify-content: space-between;font-size: 0.85rem;gap: 0.5rem;}
.dove-siamo-orari-day{color: rgba(255,255,255,0.88);font-weight: 500;white-space: nowrap;}
.dove-siamo-orari-time{color: rgba(255,255,255,0.6);text-align: right;}
.dove-siamo-orari-time.closed{color: rgba(255,255,255,0.3);}
.dove-siamo-map-col{flex: 1;min-height: 460px;position: relative;}
.dove-siamo-map-col iframe{position: absolute;inset: 0;width: 100%;height: 100%;border: 0;display: block;}
@media (max-width: 991px){.dove-siamo-wrapper{flex-direction: column;} .dove-siamo-info-col{width: 100%;min-width: 0;} .dove-siamo-info-panel{padding: 2rem 1.75rem;} .dove-siamo-info-panel::after{display: none;} .dove-siamo-heading{font-size: 1.3rem;margin-bottom: 0.5rem;} .dove-siamo-lead{margin-bottom: 1.75rem;font-size: 0.85rem;} .dove-siamo-map-col{min-height: 320px;position: relative;}}
@media (max-width: 575px){.dove-siamo-info-panel{padding: 1.5rem 1.25rem;} .dove-siamo-brand,.dove-siamo-heading,.dove-siamo-lead{display: none;} .dove-siamo-icon-wrap{width: 38px;height: 38px;min-width: 38px;} .dove-siamo-value{font-size: 0.9rem;} .dove-siamo-map-col{min-height: 250px;}}
.archive-thumbs{display: grid;grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));gap: 8px;margin: 2rem 0 3rem;}
.archive-thumb-item{position: relative;aspect-ratio: 1 / 1;overflow: hidden;border-radius: 3px;border: 2px solid transparent;transition: border-color .2s, transform .2s;}
.archive-thumb-item:hover{transform: scale(1.04);border-color: #0038a8;}
.archive-thumb-item.active{border-color: #0038a8;box-shadow: 0 0 0 2px #0038a8;}
.archive-thumb-item img{width: 100%;height: 100%;object-fit: cover;display: block;}
.archive-thumb-item a{display: block;width: 100%;height: 100%;}
.archive-thumbs-title{font-size: .9rem;font-weight: 600;color: #444;margin-bottom: .75rem;text-transform: uppercase;letter-spacing: .05em;}
.archive-gallery-photo-wrap{text-align: center;margin: 2rem 0;}
.archive-gallery-photo-wrap img{max-width: 100%;max-height: 75vh;object-fit: contain;border-radius: 4px;box-shadow: 0 4px 24px rgba(0,0,0,0.12);}
.archive-gallery-nav{display: flex;align-items: center;justify-content: space-between;gap: 1rem;margin: 2rem 0 3rem;}
.archive-gallery-nav a.btn-nav{display: inline-flex;align-items: center;gap: .5rem;padding: .6rem 1.4rem;border: 1px solid #0038a8;border-radius: 3px;color: #0038a8;font-size: .875rem;font-weight: 600;text-decoration: none;transition: background .2s, color .2s;white-space: nowrap;}
.archive-gallery-nav a.btn-nav:hover{background: #0038a8;color: #fff;}
.archive-gallery-nav a.btn-nav.disabled{pointer-events: none;opacity: .35;border-color: #aaa;color: #aaa;}
.archive-gallery-counter{font-size: .85rem;color: #888;text-align: center;flex: 1;}
.archive-gallery-description{margin: 1.5rem 0;text-align: center;color: #555;font-size: 1rem;font-style: italic;}
.archive-gallery-back{text-align: center;margin-bottom: 3rem;}
.archive-note{background: #f8f9fa;border-left: 3px solid #0038a8;padding: .75rem 1.25rem;margin-bottom: 2rem;font-size: .85rem;color: #555;border-radius: 0 4px 4px 0;}
.error-page-wrapper{min-height: 100vh;display: flex;flex-direction: column;}
.error-hero{flex: 1;position: relative;display: flex;align-items: center;justify-content: center;overflow: hidden;background-color: #0a0e1a;padding: 120px 0 80px;}
.error-hero::before{content: '';position: absolute;inset: 0;background-image: linear-gradient(rgba(1, 80, 150, 0.06) 1px, transparent 1px), linear-gradient(90deg, rgba(1, 80, 150, 0.06) 1px, transparent 1px);background-size: 48px 48px;pointer-events: none;}
.error-hero::after{content: '';position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);width: 600px;height: 600px;background: radial-gradient(ellipse, rgba(1, 80, 150, 0.18) 0%, transparent 70%);pointer-events: none;}
.error-hero-inner{position: relative;z-index: 2;text-align: center;padding: 0 24px;max-width: 700px;width: 100%;}
.error-code{font-size: clamp(120px, 20vw, 220px);line-height: 1;font-weight: 900;letter-spacing: -6px;font-family: 'Georgia', 'Times New Roman', serif;color: #ffffff;text-shadow: 0 0 40px rgba(1, 80, 150, 0.9), 0 0 80px rgba(1, 80, 150, 0.5), 0 0 120px rgba(1, 80, 150, 0.25);animation: errorGlow 3s ease-in-out infinite alternate;margin: 0 0 8px;display: block;}
@keyframes errorGlow{from{text-shadow: 0 0 30px rgba(1, 80, 150, 0.8), 0 0 60px rgba(1, 80, 150, 0.4), 0 0 100px rgba(1, 80, 150, 0.2);}to{text-shadow: 0 0 50px rgba(1, 80, 150, 1), 0 0 100px rgba(1, 80, 150, 0.6), 0 0 150px rgba(1, 80, 150, 0.3);}}
.error-divider{display: flex;align-items: center;gap: 16px;margin: 20px auto 28px;max-width: 320px;}
.error-divider-line{flex: 1;height: 1px;background: linear-gradient(90deg, transparent, rgba(1, 80, 150, 0.8), transparent);}
.error-divider-dot{width: 6px;height: 6px;border-radius: 50%;background: #015096;box-shadow: 0 0 8px rgba(1, 80, 150, 0.9);}
.error-label{display: inline-block;font-family: 'Poppins', sans-serif;font-size: 11px;font-weight: 600;letter-spacing: 4px;text-transform: uppercase;color: #015096;margin-bottom: 16px;}
.error-title{font-family: 'Georgia', 'Times New Roman', serif;font-size: clamp(22px, 4vw, 32px);font-weight: 400;color: #ffffff;margin: 0 0 16px;letter-spacing: -0.5px;}
.error-desc{font-family: 'Poppins', sans-serif;font-size: 15px;color: rgba(255, 255, 255, 0.55);line-height: 1.7;margin: 0 0 36px;}
.error-actions{display: flex;gap: 12px;justify-content: center;flex-wrap: wrap;margin-bottom: 48px;}
.error-btn-primary{display: inline-flex;align-items: center;gap: 8px;padding: 13px 28px;background: #015096;color: #ffffff;font-family: 'Poppins', sans-serif;font-size: 13px;font-weight: 500;letter-spacing: 0.5px;text-decoration: none;border-radius: 3px;transition: background 0.25s, transform 0.2s, box-shadow 0.25s;box-shadow: 0 4px 20px rgba(1, 80, 150, 0.4);}
.error-btn-primary:hover{background: #0167bf;color: #ffffff;transform: translateY(-2px);box-shadow: 0 8px 28px rgba(1, 80, 150, 0.55);text-decoration: none;}
.error-btn-secondary{display: inline-flex;align-items: center;gap: 8px;padding: 13px 28px;background: transparent;color: rgba(255, 255, 255, 0.7);font-family: 'Poppins', sans-serif;font-size: 13px;font-weight: 500;letter-spacing: 0.5px;text-decoration: none;border: 1px solid rgba(255, 255, 255, 0.2);border-radius: 3px;transition: border-color 0.25s, color 0.25s, transform 0.2s;}
.error-btn-secondary:hover{border-color: rgba(255, 255, 255, 0.5);color: #ffffff;transform: translateY(-2px);text-decoration: none;}
.error-search{margin-top: 8px;}
.error-search-label{font-family: 'Poppins', sans-serif;font-size: 11px;font-weight: 500;letter-spacing: 3px;text-transform: uppercase;color: rgba(255, 255, 255, 0.35);display: block;margin-bottom: 14px;}
.error-search-form{display: flex;max-width: 420px;margin: 0 auto;border: 1px solid rgba(255, 255, 255, 0.15);border-radius: 3px;overflow: hidden;background: rgba(255, 255, 255, 0.04);transition: border-color 0.25s;}
.error-search-form:focus-within{border-color: rgba(1, 80, 150, 0.7);background: rgba(1, 80, 150, 0.05);}
.error-search-form input{flex: 1;background: transparent;border: none;outline: none;padding: 12px 16px;font-family: 'Poppins', sans-serif;font-size: 14px;color: #ffffff;}
.error-search-form input::placeholder{color: rgba(255, 255, 255, 0.3);}
.error-search-form button{background: #015096;border: none;color: #ffffff;padding: 12px 18px;cursor: pointer;font-size: 15px;transition: background 0.2s;}
.error-search-form button:hover{background: #0167bf;}
.error-categories{margin-top: 52px;padding-top: 32px;border-top: 1px solid rgba(255, 255, 255, 0.07);}
.error-categories-label{font-family: 'Poppins', sans-serif;font-size: 11px;font-weight: 500;letter-spacing: 3px;text-transform: uppercase;color: rgba(255, 255, 255, 0.3);display: block;margin-bottom: 16px;}
.error-categories-list{display: flex;flex-wrap: wrap;gap: 8px;justify-content: center;list-style: none;padding: 0;margin: 0;}
.error-categories-list a{display: inline-block;padding: 7px 16px;border: 1px solid rgba(255, 255, 255, 0.12);border-radius: 2px;font-family: 'Poppins', sans-serif;font-size: 12px;font-weight: 400;color: rgba(255, 255, 255, 0.5);text-decoration: none;transition: border-color 0.2s, color 0.2s, background 0.2s;}
.error-categories-list a:hover{border-color: rgba(1, 80, 150, 0.6);color: #ffffff;background: rgba(1, 80, 150, 0.1);text-decoration: none;}
.error-corner{position: absolute;width: 32px;height: 32px;opacity: 0.25;}
.error-corner--tl{top: 32px;left: 32px;border-top: 2px solid #015096;border-left: 2px solid #015096;}
.error-corner--tr{top: 32px;right: 32px;border-top: 2px solid #015096;border-right: 2px solid #015096;}
.error-corner--bl{bottom: 32px;left: 32px;border-bottom: 2px solid #015096;border-left: 2px solid #015096;}
.error-corner--br{bottom: 32px;right: 32px;border-bottom: 2px solid #015096;border-right: 2px solid #015096;}
.error-code.is-500{text-shadow: 0 0 40px rgba(160, 30, 30, 0.9), 0 0 80px rgba(160, 30, 30, 0.4), 0 0 120px rgba(160, 30, 30, 0.2);animation: errorGlow500 3s ease-in-out infinite alternate;}
@keyframes errorGlow500{from{text-shadow: 0 0 30px rgba(160, 30, 30, 0.7), 0 0 60px rgba(160, 30, 30, 0.3), 0 0 100px rgba(160, 30, 30, 0.15);}to{text-shadow: 0 0 50px rgba(180, 40, 40, 1), 0 0 100px rgba(160, 30, 30, 0.5), 0 0 150px rgba(160, 30, 30, 0.25);}}
.error-code.is-500 ~ .error-divider .error-divider-line{background: linear-gradient(90deg, transparent, rgba(160, 30, 30, 0.8), transparent);}
.error-code.is-500 ~ .error-divider .error-divider-dot{background: #a01e1e;box-shadow: 0 0 8px rgba(160, 30, 30, 0.9);}
.error-label.is-500{color: #c03030;}
.error-btn-primary.is-500{background: #8b1c1c;box-shadow: 0 4px 20px rgba(140, 28, 28, 0.4);}
.error-btn-primary.is-500:hover{background: #a82424;box-shadow: 0 8px 28px rgba(140, 28, 28, 0.55);}
@media (max-width: 640px){.error-corner{display: none;} .error-hero{padding: 100px 0 60px;}}
.service-card{transition: transform 0.2s;}
.service-card:hover{transform: translateY(-4px);}
.category-index a{text-decoration: none;color: inherit;}
.category-index a:hover{text-decoration: underline;}
.category-title{font-size: 1rem;font-weight: 600;color: #444;margin-bottom: 1rem;}
.category-count{font-weight: 400;color: #999;font-size: 0.9rem;}
