/* WKLEJ NA SAMEJ GÓRZE PLIKU: */
:root {
  --primary-color: #2c3e50;
  --accent-color: #3498db;
  --bg-light: #f5f8ff;
}

/* FRAGMENT PO (Twoje pierwsze style): */
body {
  margin: 0;
  background-color: var(--bg-light);
}
html {
    scroll-behavior: smooth;
}
/* --- GLOBALNE ZMIENNE (Design System) --- */
:root {
    --bg-color: #FFFFFF;        /* Zmienione z #E5E5E5 na czystą biel, by bloki odcięły się od tła */      
    --text-color: #111111;      
    --accent-color: #FF2A00;    
    --line-color: #111111;      
    
    --border-radius: 24px;      /* PRZYWRÓCONE ZAOKRĄGLENIA */
    
    --font-heading: 'Oswald', sans-serif; 
    --font-body: 'Lato', sans-serif;

    /* FLUID TYPOGRAPHY (Skaluje się płynnie od iPhone'a do 27" 4K) */
    --text-sm: clamp(0.875rem, 0.8vw + 0.5rem, 1rem);
    --text-base: clamp(1rem, 1vw + 0.5rem, 1.125rem);
    --text-lg: clamp(1.25rem, 1.5vw + 1rem, 1.5rem);
    --text-h3: clamp(1.5rem, 2vw + 1rem, 2.5rem);
    --text-h2: clamp(2rem, 3vw + 1rem, 3.5rem);
    --text-hero: clamp(3rem, 6vw + 1rem, 6.5rem);

    /* FLUID SPACING (Płynne marginesy i paddingi) */
    --space-sm: clamp(10px, 1vw + 5px, 20px);
    --space-md: clamp(20px, 2vw + 10px, 40px);
    --space-lg: clamp(40px, 4vw + 20px, 80px);
    --space-xl: clamp(60px, 6vw + 30px, 120px);
}

* { margin: 0; padding: 0; box-sizing: border-box; }

html {
    scroll-behavior: smooth;
}
/* --- KLASA KONTENERA (RWD) --- */
.container {
    width: 100%;
    max-width: 1280px; /* Zmniejszono, aby wymusić eleganckie wyśrodkowanie */
    margin-left: auto;
    margin-right: auto;
    padding-left: clamp(20px, 4vw, 60px); /* Płynne marginesy: 20px na telefonie, rosną do 60px na PC */
    padding-right: clamp(20px, 4vw, 60px);
}
/* --- TŁO GŁÓWNE --- */
body {
    background-color: #E5E5E5; /* TYLKO szary kolor, bez stardustu! */
    color: var(--text-color);
    font-family: var(--font-body);
    overflow-x: hidden;
}

/* --- EFEKT 3D: KONTENER TŁA --- */
.bg-blobs {
    position: fixed; 
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: 0; 
    overflow: hidden;
    pointer-events: none; 
}

/* 1. GWIEZDNY PYŁ (NA SAMEJ GÓRZE TŁA) */
.noise-overlay {
    position: absolute;
    top: 0; 
    left: 0; 
    width: 100%; 
    height: 100%;
    background-image: url("https://www.transparenttextures.com/patterns/stardust.png");
    z-index: 5; /* Pył przykrywa plamy */
    pointer-events: none;
}

/* 2. PLAMY CIENIA (POD PYŁEM) */
.blob {
    position: absolute;
    border-radius: 50%;
    filter: blur(100px); 
    animation: float-shadows 25s infinite ease-in-out alternate; 
    z-index: 1; 
}

.blob-1 {
    width: 600px; height: 600px;
    background: #000000;
    top: -10%; left: -10%;
    opacity: 0.25; /* Znacznie zwiększona widoczność! */
}

.blob-2 {
    width: 800px; height: 800px;
    background: #222222;
    bottom: -20%; right: -10%;
    opacity: 0.20;
    animation-delay: -5s; 
}

.blob-3 {
    width: 500px; height: 500px;
    background: #444444;
    top: 40%; left: 50%;
    opacity: 0.15;
    animation-delay: -10s;
}

@keyframes float-shadows {
    0% { transform: translate(0, 0) scale(1); }
    50% { transform: translate(30px, -30px) scale(1.05); }
    100% { transform: translate(-20px, 20px) scale(0.95); }
}

/* --- PODNOSIMY ZAWARTOŚĆ STRONY NAD TŁO --- */
main, .main-footer {
    position: relative;
    z-index: 20;
}
/* --- BANER UNIJNY (EU LOGO - PŁYWAJĄCY BADGE) --- */
.eu-banner-top {
    position: absolute; /* Odrywa logo od przepływu strony */
    top: 30px;          /* Dystans od górnej krawędzi ekranu */
    right: 40px;        /* Dystans od prawej krawędzi ekranu */
    z-index: 9999;      /* Upewnia się, że zawsze jest na wierzchu */
    width: auto;
    background-color: transparent; 
    padding: 0;
}

.eu-banner-top a {
    display: inline-block;
    transition: transform 0.3s ease;
}

.eu-banner-top a:hover {
    transform: scale(1.05); /* Delikatne powiększenie przy najechaniu */
}

.eu-banner-top img {
    height: 65px; /* Optymalna wielkość dla desktopu */
    width: auto;
    display: block;
}

/* Responsywność dla telefonów */
@media (max-width: 768px) {
    .eu-banner-top {
        top: 15px;
        right: 15px;
    }
    .eu-banner-top img {
        height: 45px; /* Optymalna wielkość dla mobile */
    }
}

/* Responsywność dla telefonów */
@media (max-width: 768px) {
    .eu-banner-top {
        padding: 15px;
        width: 100%;
        box-sizing: border-box; /* Marginesy wewnętrzne nie rozepchną ekranu */
        overflow: hidden; /* Ucięcie wszystkiego, co próbuje rozepchać stronę */
    }
    .eu-banner-top img {
        height: auto; 
        max-height: 55px; /* Skaluje się płynnie, nie przekraczając 55px */
        max-width: 100%;
    }
}
/* --- NAGŁÓWEK --- */
.main-header {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 40px 0 10px 0; /* Zwrócony oddech z góry (40px zamiast 0px) */
    position: relative;
    z-index: 100;
    background: transparent;
    user-select: none;
    cursor: default;
}

.logo-img { 
    height: 250px; /* Minimalnie mniejsze, by złapać lepsze proporcje */
    width: auto; 
    display: block; 
    margin-bottom: 40px; /* Dystans między logo a nawigacją */
}

.logo-img { height: 290px; width: auto; display: block; margin-bottom: 0px; }

/* --- POPRAWIONY NAVBAR (PODĄŻAJĄCY) --- */
.desktop-menu {
    position: sticky;       
    top: 20px;              
    z-index: 9999;
    
    display: flex;
    gap: 55px;               
    background-color: rgba(224, 224, 224, 0.9); 
    padding: 12px 50px;      
    border-radius: 50px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
    border: 1px solid rgba(0, 0, 0, 0.05);
    
    width: fit-content;     
    /* KLUCZOWA ZMIANA: Zmieniamy pierwszy parametr na ujemny, by podciągnąć menu do góry */
    /* Jeśli chcesz, by pasek był jeszcze wyżej, zmień -30px na np. -50px */
    margin: -30px auto 40px auto; 
    
    backdrop-filter: blur(8px);
    transition: all 0.3s ease;
}

.desktop-menu a {
    text-decoration: none;
    color: #111111;
    font-family: var(--font-heading);
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: bold;
    position: relative;
}

.desktop-menu a::after {
    content: '';
    position: absolute;
    width: 0; height: 2px;
    bottom: -5px; left: 0;
    background-color: var(--accent-color);
    transition: width 0.3s;
}

.desktop-menu a:hover::after { width: 100%; }

/* --- HERO EDITORIAL - NAPRAWIONY --- */
.hero-editorial {
    display: flex;
    align-items: stretch;
    margin-top: 40px; 
    
   /* KLUCZOWA POPRAWKA: Precyzyjne wyrównanie szerokości do kafelków usług */
    width: calc(100% - 40px); 
    max-width: 1240px; /* 1280px minus 40px marginesu */
    margin-left: auto;
    margin-right: auto;

    background-color: var(--bg-color); 
    border-radius: var(--border-radius); 
    box-shadow: 0 25px 70px rgba(0, 0, 0, 0.08);
    overflow: hidden; /* To musi zostać, by "przyciąć" zdjęcie do zaokrągleń */
    position: relative;
    padding: 0 !important; /* Wymuszamy brak odstępów wewnątrz */
}

.hero-text-side {
    flex: 0 0 50%; /* Zwiększamy nieco miejsce na tekst do 50% */
    background-color: var(--bg-color);
    padding: 50px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0; /* Ważne: zapobiega "rozpychaniu" flexboxa przez długie słowa */
}

.editorial-title {
    font-family: var(--font-heading) !important;
    font-size: clamp(3rem, 6vw, 5.5rem); 
    line-height: 1.0;        /* POPRAWA: Zwiększono z 0.85 na 1.1, by słowa nie wchodziły na siebie */
    text-transform: uppercase;
    margin-bottom: 25px;
    letter-spacing: -2px;
    font-weight: 700;
    color: var(--text-color);
    word-wrap: break-word; 
}

.outlined-text {
    color: transparent;
    -webkit-text-stroke: 1.5px var(--text-color);
    display: block;
}

.hero-img-side {
    flex: 1; 
    position: relative;
    display: flex; /* To usunie biały pasek po prawej stronie zdjęcia */
}

.editorial-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* --- PIONOWY PASEK NA ZDJĘCIU --- */
.vertical-stripe {
    position: absolute;
    top: 0; 
    left: 0; /* Zmień z 20px na 0 */
    width: 45px; 
    height: 100%;
    background-color: var(--accent-color);
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
}

.vertical-stripe span {
    writing-mode: vertical-rl;
    text-orientation: mixed;
    transform: rotate(180deg);
    white-space: nowrap;
    color: black;
    font-family: var(--font-heading);
    font-weight: bold;
    text-transform: uppercase;
    letter-spacing: 2px;
}
.top-meta {
    font-family: var(--font-body);
    font-size: 0.9rem;
    display: flex;
    justify-content: space-between;
    border-bottom: 1px solid var(--line-color);
    padding-bottom: 10px;
    margin-bottom: 40px;
    text-transform: uppercase;
    font-weight: 700;
}

/* --- EFEKT REVEAL (POJAWIANIE SIĘ) --- */
.reveal {
    opacity: 0;
    transform: translateY(60px); 
    transition: all 1s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    will-change: transform, opacity;
}

.reveal.active { 
    opacity: 1; 
    transform: translateY(0); 
}
/* --- SEKCJA USŁUGI --- */
.services-section {
    padding: 80px 20px 60px 20px; 
    background: transparent; 
}

.section-title.centered-title {
    text-align: center;
    margin-top: 0; 
    margin-bottom: 80px; 
    padding: 0;
    font-size: 3rem;
    font-family: var(--font-heading);
    text-transform: uppercase;
    line-height: 1; 
    position: relative;
    z-index: 10;
}

.section-title {
    font-family: var(--font-heading);
    font-size: 2.5rem;
    margin-bottom: 40px;
    text-transform: uppercase;
}
/* --- MINI KARUZELA W SEKCJI USŁUG --- */
.mini-carousel {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
}
/* --- PRZYCISKI MINI KARUZELI (SVG STYLE) --- */
.mini-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(0,0,0,0.1); /* Bardzo delikatne tło */
    color: white;
    border: none;
    width: 40px;
    height: 40px;
    cursor: pointer;
    z-index: 10;
    border-radius: 50%;
    transition: all 0.3s ease;
    
    /* Centrowanie ikony SVG */
    display: flex;
    align-items: center;
    justify-content: center;
    
    /* Domyślnie ukryte, pokazują się po najechaniu na zdjęcie */
    opacity: 0; 
}

/* Ikona w środku */
.mini-btn svg {
    width: 24px;
    height: 24px;
    stroke-width: 2;
    transition: transform 0.3s;
}

/* Hover na kontener karuzeli -> Pokaż przyciski */
.mini-carousel:hover .mini-btn {
    opacity: 1;
}

/* Hover na sam przycisk */
.mini-btn:hover {
    background-color: var(--accent-color);
    transform: translateY(-50%) scale(1.1);
}

.mini-prev { left: 15px; }
.mini-next { right: 15px; }

/* Pokazujemy przyciski dopiero jak najedziesz myszką na zdjęcie */
.mini-carousel:hover .mini-btn {
    opacity: 1;
}

.mini-btn:hover {
    background-color: var(--accent-color); /* Podświetlenie kolorem akcentu */
}

.mini-prev { left: 10px; }
.mini-next { right: 10px; }
.mini-slide {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0; /* Domyślnie ukryte */
    transition: opacity 1s ease-in-out, transform 4s ease; /* Płynne przenikanie i lekki zoom */
    z-index: 1;
}

/* Klasa, która pokazuje aktualne zdjęcie */
.mini-slide.active {
    opacity: 1;
    z-index: 2;
    transform: scale(1.05); /* Lekki efekt przybliżania (Ken Burns effect) */
}

/* KOREKTA DLA SPOTLIGHTA */
/* Żeby efekt spotlight działał też na karuzelę, musimy upewnić się, 
   że zdjęcia też reagują na przygaszanie */
body.spotlight-mode .mini-slide {
    filter: grayscale(50%); /* Dopasuj do reszty ustawień spotlight */
}
/* Ale aktywny wiersz ma mieć pełny kolor */
body.spotlight-mode .service-row.active-row .mini-slide {
    filter: none !important;
}

/* Kafelki Usług */
.service-row {
    display: grid;
    /* Domyślnie Mobile: 1 kolumna */
    grid-template-columns: 1fr; 
    margin-bottom: 40px;
    background: var(--bg-color); 
    border: none; 
    border-radius: var(--border-radius);
    overflow: hidden; 
}

.service-img-col {
    position: relative;
    height: 300px; /* Wysokość na mobile */
    overflow: hidden;
    border-bottom: none; 
}

.service-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: grayscale(100%);
    transition: 0.5s;
}
.service-row:hover .service-img { filter: grayscale(0%); transform: scale(1.05); }

.service-text-col {
    padding: 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.service-num {
    font-family: var(--font-heading);
    color: var(--accent-color);
    font-size: 1.2rem;
    margin-bottom: 15px;
    font-weight: bold;
}
.service-text-col h3 {
    font-family: var(--font-heading);
    font-size: 2.5rem;
    text-transform: uppercase;
    margin-bottom: 15px;
    line-height: 1;
}
.service-desc {
    font-family: var(--font-body);
    font-size: 1rem;
    color: #555;
    margin-bottom: 30px;
    line-height: 1.5;
}
.outline-btn-small {
    display: inline-block;
    font-family: var(--font-heading);
    text-decoration: none;
    color: var(--text-color);
    text-transform: uppercase;
    font-size: 0.9rem;
    font-weight: bold;
    align-self: flex-start; 
    border-bottom: 1px solid var(--text-color); 
    padding-bottom: 2px;
}
.outline-btn-small:hover { color: var(--accent-color); border-color: var(--accent-color); }

/* --- SEKCJA PORTFOLIO --- */
.portfolio-section {
    padding: 0 20px 20px 20px; /* Zredukowano z 60px */
    border-bottom: none;
    background: transparent;
}
.portfolio-section .section-title { text-align: center; }

.gallery-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
    margin-bottom: 40px;
}
.gallery-item {
    display: block;
    text-decoration: none;
    position: relative;
    border: none;
    border-radius: var(--border-radius);
    overflow: hidden;
}
.img-wrapper {
    width: 100%;
    height: 300px;
    overflow: hidden;
    background: #000;
}
.gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: all 0.5s ease;
    filter: grayscale(100%);
    opacity: 0.9;
}
.gallery-item:hover img { filter: grayscale(0%); transform: scale(1.1); opacity: 1; }
.gallery-caption {
    padding: 15px;
    background: var(--bg-color);
    border-top: none; 
    font-family: var(--font-heading);
    color: var(--text-color);
    font-size: 1.2rem;
    text-transform: uppercase;
    text-align: center;
    transition: 0.3s;
}
.gallery-item:hover .gallery-caption { background: var(--text-color); color: white; }
.portfolio-footer { text-align: center; margin-top: 40px; }
.outline-btn {
    background: transparent; 
    color: var(--text-color); 
    border: 2px solid var(--text-color);
    padding: 10px 30px;
    text-transform: uppercase;
    font-family: var(--font-heading);
    text-decoration: none;
    transition: 0.3s;
    border-radius: 50px; 
}
.outline-btn:hover { background: var(--text-color); color: white; }

/* --- SEKCJA O MNIE --- */
.about-section {
    background-color: var(--text-color); 
    color: white;
    padding: 80px 50px; 
    width: calc(100% - 40px); 
    max-width: 1240px;
    margin: 20px auto 20px auto; /* Zredukowano z 80px */
    border-radius: 30px; 
    overflow: hidden; 
}

.about-container {
    display: grid;
    grid-template-columns: 1fr;
    gap: 40px;
    
    /* KLUCZOWA ZMIANA: Pozwalamy zdjęciu i tekstom zająć całą szerokość karty */
    max-width: 100%; 
    margin: 0 auto;
    position: relative;
    z-index: 2; 
}
.white-text { color: white; border-bottom: 2px solid white; display: inline-block; }
.about-subtitle {
    font-family: var(--font-heading);
    color: var(--accent-color);
    margin-bottom: 20px;
    font-size: 1.5rem;
}
.about-text p {
    margin-bottom: 20px;
    line-height: 1.6;
    font-size: 1.1rem;
    color: #ccc;
}
.about-image {
    width: 100%;
    height: 420px;
    border: 2px solid white; 
    border-radius: var(--border-radius);
    overflow: hidden;
}
.about-image img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(100%); }

/* --- SEKCJA KONTAKT --- */
.contact-section { padding: 80px 20px; background: transparent; }
.contact-container {
    display: grid;
    grid-template-columns: 1fr;
    gap: 60px;
    max-width: 1200px;
    margin: 0 auto;
}
.contact-form {
    background: var(--bg-color);
    padding: 30px;
    border: none;
    border-radius: var(--border-radius);
}
.form-group { margin-bottom: 25px; }
.form-group label {
    display: block;
    font-family: var(--font-heading);
    margin-bottom: 10px;
    font-weight: bold;
    letter-spacing: 1px;
}
.form-group input, .form-group select, .form-group textarea {
    width: 100%; padding: 15px;
    background: #fff; 
    border: 2px solid var(--line-color);
    font-family: var(--font-body);
    font-size: 1rem;
    outline: none;
    transition: 0.3s;
    border-radius: 8px; 
}
.form-group input:focus, .form-group textarea:focus { border-color: var(--accent-color); }
.submit-btn { 
    width: 100%; cursor: pointer;
    background: var(--text-color);
    color: white; border: none; padding: 15px;
    font-family: var(--font-heading);
    text-transform: uppercase;
    transition: 0.3s;
    border-radius: 8px;
}
.submit-btn:hover { background: var(--accent-color); }
.contact-info {
    background: var(--bg-color);
    padding: 30px;
    border: none;
    border-radius: var(--border-radius);
}
.contact-info h3 { font-family: var(--font-heading); font-size: 2rem; margin-bottom: 20px; }
.contact-info p { font-size: 1.2rem; margin-bottom: 10px; }
.social-links { 
    margin-top: 20px; 
    display: flex; 
    flex-direction: row; /* Zmiana na ułożenie poziome */
    gap: 25px; /* Odstęp między ikonami */
}
.social-links a {
    color: var(--text-color); /* Ikony przyjmują kolor tekstu */
    transition: 0.3s ease;
    display: inline-flex;
}
.social-links a:hover { 
    color: var(--accent-color); /* Zmiana koloru na pomarańczowy */
    transform: translateY(-5px); /* Delikatne podskoczenie ikony do góry */
}

/* --- STOPKA --- */
.main-footer {
    background: var(--text-color);
    color: #666;
    padding: 20px;
    text-align: center;
    font-size: 0.8rem;
}
.main-footer a { color: #666; text-decoration: none; margin-left: 10px; }

/* --- MEDIA QUERIES (DESKTOP) --- */
@media (min-width: 768px) {
    .gallery-grid { grid-template-columns: repeat(2, 1fr); }
    .about-container, .contact-container {
        grid-template-columns: 1fr 1fr;
        align-items: start;
    }
}

@media (min-width: 992px) {
    .gallery-grid { grid-template-columns: repeat(4, 1fr); }

    /* USŁUGI: WERSJA DESKTOP (Split Screen - OBOK SIEBIE) */
    /* To przywraca Twój układ: Foto Lewo / Tekst Prawo */
    .service-row {
        grid-template-columns: 1fr 1fr; 
    }

    .service-img-col {
        height: auto; 
        min-height: 400px;
    }
    
    /* Na desktopie (szerokim ekranie) usuwamy dolne zaokrąglenia, 
       żeby obrazek ładnie łączył się z tekstem */
    .service-row .service-img-col {
         /* Opcjonalnie: można tu dodać korekty dla split screena */
    }
}
/* --- KARUZELA --- */
.carousel-container {
    position: relative;
    height: 500px; /* Wysokość zdjęć */
    width: 100%;
    max-width: 900px;
    margin: 0 auto 40px auto;
}

.carousel-track-container {
    background: #000;
    height: 100%;
    position: relative;
    overflow: hidden; 
    border-radius: var(--border-radius);
}

.carousel-track {
    padding: 0;
    margin: 0;
    list-style: none;
    position: relative;
    height: 100%;
    transition: transform 0.4s ease-in-out;
}

.carousel-slide {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 100%;
}

.carousel-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.carousel-caption {
    position: absolute;
    bottom: 0; left: 0; width: 100%;
    padding: 15px;
    background: rgba(255, 255, 255, 0.9);
    font-family: var(--font-heading);
    color: var(--text-color);
    font-size: 1.2rem;
    text-transform: uppercase;
    text-align: center;
}

.carousel-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: transparent;
    color: var(--text-color);
    border: none;
    font-size: 3rem;
    padding: 10px;
    cursor: pointer;
    z-index: 10;
    transition: 0.3s;
}

.carousel-btn:hover {
    color: var(--accent-color);
    transform: translateY(-50%) scale(1.2);
}

.prev-btn { left: -60px; }
.next-btn { right: -60px; }

@media (max-width: 900px) {
    .carousel-container {
        height: 300px;
        max-width: 85%;
    }
    .prev-btn { left: -10px; background: rgba(255,255,255,0.3); border-radius: 50%; }
    .next-btn { right: -10px; background: rgba(255,255,255,0.3); border-radius: 50%; }
}

/* =========================================
   SYSTEM SPOTLIGHT - WERSJA ULTRA SUBTELNA (10%)
   ========================================= */

/* 1. Bardzo płynne przejście */
body {
    transition: background-color 0.8s ease;
}

/* 2. Tło zmienia się minimalnie (z jasnego na o ton ciemniejszy) */
body.spotlight-mode {
    background-color: #d0d0d0; /* Ledwo zauważalna zmiana tła */
}

/* 3. WYGASZANIE TŁA (Header, Footer, Inne sekcje) */
body.spotlight-mode header,
body.spotlight-mode main > section:not(.services-section),
body.spotlight-mode footer,
body.spotlight-mode .portfolio-footer {
    opacity: 0.85; /* 85% widoczności (bardzo lekko przygaszone) */
    filter: grayscale(30%); /* Tylko trochę traci kolory */
    transition: all 0.6s ease;
    /* Usunąłem pointer-events: none, żeby przy tak słabym efekcie dało się klikać w menu */
}

/* 4. WYGASZANIE SĄSIADUJĄCYCH USŁUG */
body.spotlight-mode .service-row:not(.active-row) {
    opacity: 0.7; /* Sąsiedzi gasną trochę mocniej niż reszta (do 70%) */
    filter: grayscale(50%); 
    transform: scale(0.995); /* Minimalne zmniejszenie */
    transition: all 0.6s ease;
}

/* 5. AKTYWNY KAFEL */
.service-row.active-row {
    opacity: 1 !important;
    filter: none !important;
    transform: scale(1.01); /* Bardzo delikatne powiększenie */
    
    position: relative; 
    z-index: 1000;
    
    background-color: var(--bg-color); 
    /* Cień jest teraz bardzo miękki i jasny */
    box-shadow: 0 10px 40px rgba(0,0,0, 0.15);
    
    border: 1px solid rgba(0,0,0, 0.1); /* Bardzo delikatna ramka */
    transition: all 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.service-row.active-row h3 {
    color: var(--accent-color);
}
/* Opcja 1: Czysty odstęp */
.service-text-col h3 {
    color: var(--accent-color); /* Twój pomarańcz */
    margin-top: 0;
    margin-bottom: 30px; /* <-- Tu sterujesz wielkością przerwy (30px to sporo) */
    line-height: 1.2;
}
/* --- CENNIK STYLE --- */
.pricing-section {
    padding: 0px 20px;
    background: transparent;
}

.pricing-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 1px;
    background-color: #e0e0e0; /* Delikatniejszy kolor linii rozdzielających */
    border: 1px solid #e0e0e0;
    margin-top: 40px;
    border-radius: var(--border-radius);    
    
    /* Zmieniamy z hidden na visible, aby po najechaniu karta mogła wyjść poza obrys */
    overflow: visible; 
}

/* Ręczne zaokrąglenie skrajnych elementów w spoczynku (na ekranach komputerów) */
@media (min-width: 769px) {
    .pricing-item:first-child {
        border-top-left-radius: var(--border-radius);
        border-bottom-left-radius: var(--border-radius);
    }
    .pricing-item:last-child {
        border-top-right-radius: var(--border-radius);
        border-bottom-right-radius: var(--border-radius);
    }
}

.pricing-item {
    background-color: var(--bg-color); 
    padding: 40px 30px;
    display: flex;
    flex-direction: column;
    transition: 0.3s ease;
    
    /* KLUCZOWE ZMIANY: */
    text-align: center;  /* Centruje tekst */
    align-items: center; /* Centruje przycisk na dole */
}

/* --- EFEKT NAJECHANIA (WYPUKLENIE + POŚWIATA) --- */
.pricing-item:hover {
    background-color: #ffffff;
    transform: scale(1.08); /* Powiększa kartę, tworząc efekt wypuklenia */
    z-index: 10; /* Karta wskakuje nad sąsiadów */
    border-radius: var(--border-radius); /* Dodaje zaokrąglenia ze wszystkich stron */
    
    /* Podwójny cień: miękki ciemny pod spodem + szeroka pomarańczowa poświata (#FF2A00 = 255, 42, 0) */
    box-shadow: 
        0 15px 35px rgba(0, 0, 0, 0.08), 
        0 0 40px rgba(255, 42, 0, 0.25); 
}

.pricing-header {
    margin-bottom: 25px;
    border-bottom: 1px solid #ddd;
    padding-bottom: 20px;
}

.pricing-header h3 {
    font-family: var(--font-heading);
    font-size: 1.1rem;
    letter-spacing: 1px;
    margin-bottom: 10px;
}

.price-tag {
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 1.4rem;
    color: var(--accent-color);
}

.pricing-features {
    list-style: none;
    margin-bottom: 30px;
    flex-grow: 1; 
}

.pricing-features li {
    font-size: 0.9rem;
    line-height: 1.6;
    margin-bottom: 10px;
    color: #444;
    
    /* KLUCZOWE ZMIANY: */
    padding-left: 0;     /* Usuwamy sztywne wcięcie z lewej */
    text-align: center;  /* Wyśrodkowanie tekstu punktów */
}

.pricing-features li::before {
    content: "—";
    color: var(--accent-color);
    
    /* KLUCZOWE ZMIANY: */
    position: relative; /* Zmieniamy z absolutnej */
    left: auto;         /* Usuwamy przypięcie do lewej krawędzi */
    margin-right: 8px;  /* Dodajemy mały odstęp, żeby myślnik nie dotykał liter */
}

.pricing-disclaimer {
    text-align: center;
    font-size: 0.8rem;
    color: #888;
    margin-top: 25px;
    font-style: italic;
}

/* --- KOREKTA ODSTĘPU POD CENNIKIEM --- */
.pricing-section {
    padding-bottom: 70px !important; 
}

#portfolio .section-title {
    margin-top: 0px !important;
    margin-bottom: 70px !important;
}

/* Responsywność dla Mobile */
@media (max-width: 768px) {
    .pricing-grid {
        gap: 20px;
        background: transparent;
        border: none;
    }
    .pricing-item {
        border: 1px solid #e0e0e0;
        /* Na telefonach wymuszamy zaokrąglenia dla każdej karty w spoczynku */
        border-radius: var(--border-radius) !important; 
    }
    .pricing-item:hover {
        /* Na telefonach lepiej wygląda delikatne uniesienie (translateY) niż mocne skalowanie */
        transform: translateY(-5px); 
    }
}
/* =======================================================
   WERSJA MOBILNA (SMARTFONY - np. iPhone)
   ======================================================= */
@media (max-width: 768px) {
    
    /* 1. NAGŁÓWEK I MENU */
    .main-header {
    width: 100%;
    display: flex;
    justify-content: space-between; /* Logo po lewej, menu po prawej */
    align-items: center;
    padding: 20px 40px;
    position: relative; /* Ważne, by nie uciekał */
    z-index: 10;
    background: transparent; /* Możesz zmienić na kolor tła, jeśli chcesz odciąć menu */
}
    .logo-img { 
    height: 180px; /* Nieco mniejsze logo wygląda bardziej premium */
    width: auto; 
    display: block; 
    margin: 0 auto; /* Gwarantuje wycentrowanie logo */
}
/* NOWOŚĆ: Swipeable Pill Menu - przewijane palcem na boki */
    .desktop-menu {
        display: flex;
        justify-content: flex-start; /* Układamy od lewej */
        align-items: center;     
        background-color: #E0E0E0;
        padding: 12px 20px;
        border-radius: 50px;
        box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
        border: 1px solid rgba(0, 0, 0, 0.05);
        gap: 25px;               /* Przywracamy ładny odstęp między linkami */
        
        width: 90%;              /* Bezpieczna szerokość */
        max-width: 400px;        
        /* POPRAWA: Ujemny margines górny (-30px) zlikwiduje ogromną przerwę pod logiem na telefonach */
        margin: -30px auto 20px auto;       
        
        /* KLUCZOWE: Pozwala na przewijanie zawartości, która wychodzi poza pasek */
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch; /* Płynne, kinetyczne przewijanie na iOS */
        
        /* Ukrywanie paska przewijania w Firefox i IE */
        scrollbar-width: none;
        -ms-overflow-style: none;
    }

    /* Ukrywanie paska przewijania w Chrome, Safari i na iOS */
    .desktop-menu::-webkit-scrollbar {
        display: none;
    }

    .desktop-menu a {
        text-decoration: none;
        color: #333333; 
        font-family: var(--font-heading);
        font-size: 13px;         /* Wracamy do czytelnego, większego rozmiaru! */
        text-transform: uppercase;
        font-weight: bold;
        position: relative;
        white-space: nowrap;     /* Kategoryczny zakaz łamania słów do nowej linii */
        flex-shrink: 0;          /* Kategoryczny zakaz zgniatania słów - zachowują swój pełny wymiar */
    }

/* Zmieniamy kolor podkreślenia na Twój pomarańczowy, żeby nawiązać do reszty */
.desktop-menu a::after {
    content: '';
    position: absolute;
    width: 0; 
    height: 2px;
    bottom: -5px; 
    left: 0;
    background-color: var(--accent-color);
    transition: width 0.3s;
}

  /* 2. SEKCJA HERO (Przestrzeń, Detal, Chwila) */
    .hero-editorial {
        flex-direction: column; 
        margin-top: 20px; 
        padding: 0 !important; 
        
        /* KLUCZOWA ZMIANA: Góra zaokrąglona (24px), dół ostry (0) */
        border-radius: 24px 24px 0 0 !important; 
    }
    
    .hero-text-side {
        flex: none;             
        width: 100%;
        padding: 30px 20px;     
        text-align: center;      /* POPRAWA: Wyśrodkowanie całego tekstu w bloku */
        align-items: center;     /* POPRAWA: Wyśrodkowanie elementów dla Flexboxa */
    }
    
    .top-meta {
        justify-content: center; /* POPRAWA: Wyśrodkowanie małego napisu EST. 2025 nad tytułem */
    }
    
    .editorial-title {
        font-size: 3.5rem; 
        text-align: center;      /* POPRAWA: Wymuszone wyśrodkowanie nagłówka H1 */
    }
    
    .editorial-desc {
        max-width: 100%;
        text-align: center;      /* POPRAWA: Zmienione z left na center dla opisu */
        margin-left: auto;       /* Pomaga w idealnym wyśrodkowaniu bloku tekstu */
        margin-right: auto;
    }
    
    .vertical-stripe {
        display: none; 
    }

    /* 3. ZDJĘCIE W HERO */
   .hero-img-side {
        height: 350px; 
        margin-bottom: 0;
        border-radius: 0; /* Usuwamy zaokrąglenie z kontenera */
        overflow: hidden;
    }

   .editorial-img {
        /* Filmik na dole będzie teraz idealnie ostry i dopasowany do dołu karty */
        border-radius: 0 !important; 
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
    }

  /* 4. SEKCJA USŁUGI I CENNIK */
    .section-title {
        font-size: 2rem;
    }
    
    /* POPRAWA: Centrowanie tekstów w usługach (Architektura, Śluby, itd.) na telefonie */
    .service-text-col {
        align-items: center;     /* Wyśrodkowuje przycisk i zawartość bloku */
        text-align: center;      /* Wyśrodkowuje sam tekst (nagłówki i akapity) */
        padding: 40px 20px;      /* Zmniejszone marginesy wewnętrzne dla lepszego wyglądu na mobile */
    }

    .outline-btn-small {
        align-self: center;      /* Zmusza przycisk do stanięcia na środku (nadpisuje flex-start) */
    }

    .pricing-grid {
        gap: 20px;
        background: transparent;
        border: none;
        border-radius: 0; /* Na telefonie rezygnujemy z zaokrąglonej siatki */
    }
    .pricing-item {
        border: 1px solid #111;
        border-radius: 20px;
        padding: 30px 20px;
    }

/* 5. SEKCJA O NAS - POPRAWIONE CENTROWANIE */
    .about-section {
        padding: 40px 20px;
        /* auto sprawi, że blok idealnie zrówna się z blokiem Hero powyżej */
        margin: 40px auto 20px auto; 
        border-radius: 20px;
    }
    
    .about-image {
        height: 250px;           /* Niższe zdjęcie */
    }

    /* POPRAWA: Wyśrodkowanie całej zawartości "O NAS" na telefonach */
    .about-text {
        text-align: center;      /* Centruje akapity (p) i nagłówki */
        display: flex;
        flex-direction: column;
        align-items: center;     /* Zmusza podkreślenie (border-bottom) pod "O NAS" do wyśrodkowania */
    }

    /* 6. FORMULARZ KONTAKTOWY - POPRAWKA SZEROKOŚCI */
    .contact-section {
        padding: 60px 0; /* Usuwamy boczne paddingi sekcji, by nie dublować odstępów */
    }

    .contact-container {
        grid-template-columns: 1fr;
        gap: 30px;
        
        /* KLUCZ: Ustawiamy taką samą logikę szerokości jak w Hero i About */
        width: calc(100% - 40px); 
        margin: 0 auto;
        padding-left: 0 !important; /* Czyścimy dodatkowy padding z klasy .container */
        padding-right: 0 !important;
    }

    .contact-form, .contact-info {
        padding: 30px 20px; /* Wewnętrzne odstępy wewnątrz czarnych/białych boksów */
        width: 100%;
        border-radius: 20px;
    }
}
/* --- STYL DLA KLAUZULI RODO --- */
.checkbox-group {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    margin-top: 20px;
}

.checkbox-group input[type="checkbox"] {
    width: 20px;
    height: 20px;
    margin-top: 4px; /* Wyrównanie do pierwszej linii tekstu */
    cursor: pointer;
}

.checkbox-group label {
    font-size: 0.85rem; /* Mniejszy, dyskretny druk */
    line-height: 1.4;
    color: #666;
    font-weight: normal;
    cursor: pointer;
}

.checkbox-group label a {
    color: var(--accent-color);
    text-decoration: underline;
}
/* --- PREMIUM COOKIE PILL --- */
.cookie-pill-container {
    position: fixed;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 999999;
    
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 10px 25px;
    
    background-color: rgba(17, 17, 17, 0.95); /* Głęboka czerń z lekkim prześwitem */
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 50px;
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.4);
    
    width: fit-content;
    max-width: 90vw;
    transition: all 0.5s ease;
}

.cookie-pill-container p {
    color: #eee;
    font-size: 0.85rem;
    margin: 0;
    font-family: var(--font-body);
    white-space: nowrap;
}

.cookie-pill-container a {
    color: var(--accent-color);
    text-decoration: underline;
}

.cookie-pill-container button {
    background: var(--accent-color);
    color: white;
    border: none;
    padding: 8px 18px;
    border-radius: 40px;
    font-family: var(--font-heading);
    font-weight: bold;
    font-size: 0.75rem;
    cursor: pointer;
    transition: transform 0.3s ease;
}

.cookie-pill-container button:hover {
    transform: scale(1.05);
}

/* Ukrycie na mobile, jeśli ekran jest za mały na poziomy układ */
@media (max-width: 600px) {
    .cookie-pill-container {
        flex-direction: column;
        text-align: center;
        border-radius: 20px;
        padding: 20px;
        gap: 15px;
    }
    .cookie-pill-container p { white-space: normal; }
}
/* --- SEO HELPER --- */
.seo-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
}
/* --- ODSTĘPY DLA NOWEGO TEKSTU --- */
.service-text {
    margin-bottom: 20px !important; /* Wymusza przerwę między akapitami */
    line-height: 1.6;
}
.service-description {
    margin-bottom: 25px;
}
/* =======================================================
   STYLIZACJA LISTY - GLOBALNA NAPRAWA (iOS & DESKTOP)
   ======================================================= */

/* 1. Usunięcie domyślnych kropek (Safari Fix) */
.service-details {
    list-style-type: none !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 30px 0 !important;
    border-top: 1px solid rgba(0, 0, 0, 0.05);
    padding-top: 20px !important;
    -webkit-padding-start: 0 !important; /* Wymuszenie dla iPhone */
}

/* 2. Stylizacja elementów listy */
.service-details li {
    position: relative;
    padding-left: 30px !important;
    margin-bottom: 15px !important;
    font-size: 0.95rem;
    color: #444;
    text-align: left !important;
    line-height: 1.4;
    display: block !important; /* Safari Fix */
}

/* 3. Tworzenie kresek zamiast kropek */
.service-details li::before {
    content: "" !important;
    position: absolute;
    left: 0;
    top: 10px;
    width: 15px;
    height: 2px;
    background-color: var(--accent-color);
    display: block !important;
}

/* 4. Efekt po najechaniu (tylko na urządzeniach z myszką) */
@media (hover: hover) {
    .service-details li:hover::before {
        width: 25px;
        background-color: #000;
    }
}

.service-details li strong {
    color: #111;
    font-weight: 700;
    text-transform: uppercase;
    font-size: 0.85rem;
    letter-spacing: 0.5px;
}

/* 5. SEO Helper na samym końcu */
.seo-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
}

/* ==============================================
   SEKCJA DOFINANSOWANIA UE
   ============================================== */
.eu-fund-section {
    background-color: #FFFFFF;
    padding: 40px 50px;
    width: calc(100% - 40px);
    max-width: 1240px;
    
    /* POPRAWKA ODSTĘPU: Zmieniliśmy dolny margines z 40px na 0 */
    margin: 0 auto 0 auto; 
    
    border-radius: 30px; 
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05); 
    text-align: center;
    position: relative;
    z-index: 2;
}

.eu-fund-content p {
    font-family: var(--font-body);
    font-size: 1.1rem;
    line-height: 1.6;
    color: #444444; 
    margin: 0;
}

/* --- STYLE DLA WYŚRODKOWANEGO LOGO --- */
.eu-fund-logo {
    display: block;
    margin: 30px auto 0 auto; /* Odstęp 30px od góry, auto po bokach wymusza środek */
    height: auto;
    max-height: 90px; /* Rozmiar logo - w razie potrzeby możesz go powiększyć/zmniejszyć */
    width: auto;
    max-width: 100%;
}

/* --- DODATKOWA POPRAWKA ODSTĘPU DLA SEKCJI KONTAKTOWEJ --- */
.contact-section {
    padding-top: 40px !important; /* Wymuszamy zmniejszenie górnego odstępu z 80px na 40px */
}

/* Responsywność dla telefonów (Mobile) */
@media (max-width: 768px) {
    .eu-fund-section {
        padding: 30px 20px;
        border-radius: 20px;
        margin: 0 auto 0 auto;
    }
    
    .eu-fund-content p {
        font-size: 1rem;
        text-align: center;
    }
    
    .eu-fund-logo {
        max-height: 60px; /* Nieco mniejsze logo na telefonach */
    }
    
    .contact-section {
        padding-top: 30px !important;
    }
}