/* Definicje globalne i płynne przejścia */
html {
    scroll-behavior: smooth !important;
}

.material-symbols-outlined { 
    font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48; 
}

/* Tła graficzne */
.hero-bg { 
    background-image: url('../foto/hero_bg.webp'); 
    background-size: cover; 
    background-position: center; 
}

.cta-bg { 
    background-image: url('../foto/hero_bg.webp'); 
    background-size: cover; 
    background-position: center; 
}

/* Dekoracyjne linie siatki */
.grid-line { 
    background: repeating-linear-gradient(90deg, transparent, transparent 40px, rgba(129, 0, 17, 0.03) 40px, rgba(129, 0, 17, 0.03) 41px); 
}

/* Efekty hover podnoszenia kafelków */
.hover-lift { 
    transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1); 
}

.hover-lift:hover { 
    transform: translateY(-8px); 
}

.text-glow { 
    text-shadow: 0 0 20px rgba(0, 0, 0, 0.2); 
}

/* Niestandardowy pasek przewijania tabeli */
.custom-scrollbar::-webkit-scrollbar { 
    width: 6px; 
}

.custom-scrollbar::-webkit-scrollbar-track { 
    background: rgba(0,0,0,0.05); 
}

.custom-scrollbar::-webkit-scrollbar-thumb { 
    background: #810011; 
    border-radius: 10px; 
}

/* Animacje przycisków */
.btn-white-animate {
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.btn-white-animate:hover {
    transform: scale(1.05);
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
}

.btn-white-animate .material-symbols-outlined {
    transition: transform 0.3s ease;
}

.btn-white-animate:hover .material-symbols-outlined {
    transform: translateX(6px);
}

/* Logo */
.logo-container img {
    height: 56px;
    width: auto;
    display: block;
}

@media (max-width: 640px) {
    .logo-container img {
        height: 40px;
    }
}

/* Wymuszenie czcionek na elementach formularzy */
input, textarea, button, select, label {
    font-family: 'Roboto Flex', sans-serif !important;
}

.font-montserrat {
    font-family: 'Montserrat', sans-serif !important;
}

/* Style animacji wjeżdżania sekcji przy przewijaniu (Scroll Reveal) */
.reveal-section {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 0.8s cubic-bezier(0.21, 0.6, 0.35, 1), transform 0.8s cubic-bezier(0.21, 0.6, 0.35, 1);
    will-change: transform, opacity;
}

.reveal-section.active {
    opacity: 1;
    transform: translateY(0);
}

.map-reveal-effect {
    opacity: 0;
    transform: scale(0.96);
    transition: opacity 1.2s cubic-bezier(0.21, 0.6, 0.35, 1), transform 1.2s cubic-bezier(0.21, 0.6, 0.35, 1);
}

.reveal-section.active .map-reveal-effect {
    opacity: 1;
    transform: scale(1);
}

/* Style interaktywne dla wstrzykniętego kodu oryginalnego pliku SVG mapy */
#injected-map-container svg {
    width: 100%;
    height: auto;
    overflow: visible;
}

#injected-map-container path {
    transition: fill 0.3s cubic-bezier(0.4, 0, 0.2, 1), filter 0.3s ease, transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Blokada interakcji dla szarych, nieaktywnych województw i innych elementów tła mapy */
#injected-map-container svg * {
    pointer-events: none !important;
}

/* Aktywacja interakcji tylko dla wyznaczonych elementów aktywnych i ich dzieci */
#injected-map-container .map-active-element,
#injected-map-container .map-active-element * {
    pointer-events: auto !important;
    cursor: pointer !important;
}

/* Wyrównanie transformacji elementów aktywnych */
.map-active-element {
    transition: transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1), fill 0.25s ease, filter 0.25s ease;
}

/* Domyślny kolor aktywnego województwa (jasnoczerwony/brzoskwiniowy) */
.map-active-voivodeship {
    fill: #efaa9a !important;
    transition: fill 0.25s ease;
}

/* Efekt podświetlenia całego województwa po najechaniu na dowolny element grupy (tylko powiększenie, bez zmiany koloru) */
.map-unit-hovered.map-active-voivodeship {
    filter: drop-shadow(0px 8px 16px rgba(129, 0, 17, 0.2));
    transform: scale(1.02);
    transform-origin: center;
}

/* Efekt powiększenia kropki i nazwy miasta na mapie */
.map-unit-hovered.map-active-dot,
.map-unit-hovered.map-active-label {
    transform: scale(1.05);
    transform-origin: center;
}

/* Województwo zaznaczone (po kliknięciu) - koloruje się na ciemnoczerwony */
.map-unit-selected.map-active-voivodeship {
    fill: #810011 !important;
    filter: drop-shadow(0px 8px 16px rgba(129, 0, 17, 0.35));
}

/* Klasa wyróżnienia ramki adresowej w kontaktach po kliknięciu na mapie */
.address-card-highlighted {
    border-color: #810011 !important;
    box-shadow: 0 20px 25px -5px rgba(129, 0, 17, 0.15), 0 10px 10px -5px rgba(129, 0, 17, 0.15) !important;
    transform: scale(1.02);
    background-color: rgba(129, 0, 17, 0.03) !important;
    transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Style wyskakującego komunikatu dymku przy kopiowaniu danych (Tooltip) */
.copy-tooltip {
    position: absolute;
    background: #1c1b1b;
    color: #ffffff;
    font-size: 11px;
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    padding: 4px 8px;
    border-radius: 6px;
    top: -24px;
    right: 24px;
    opacity: 0;
    transform: translateY(5px);
    transition: opacity 0.2s, transform 0.2s;
    pointer-events: none;
    z-index: 50;
}

.copy-tooltip.show {
    opacity: 1;
    transform: translateY(0);
}