*, *::before, *::after { box-sizing: border-box; }

:root {
    --alf-main: #8D293E;
    --alf-white: #ffffff;
    --alf-dark: #2C3A47;
    --font-headings: 'Noto Sans', sans-serif;
    --font-body: 'Montserrat', sans-serif;
    --top-bar-height: 54px; 
    --nav-height: 80px;
}

body, html {
    margin: 0; 
    padding: 0; 
    /* ZMIANA: Usuwamy height: 100% i overflow: hidden */
    min-height: 100%; 
    font-family: var(--font-body);
    /* Pozwalamy na naturalny skrol, ale blokujemy drgania na boki */
    overflow-x: hidden; 
}

body { 
    display: flex;
    flex-direction: column;
    /* Zapewnia, że stopka będzie na dole, jeśli treści jest mało */
    min-height: 100vh; 
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

.ms-icon {
    font-family: 'Material Symbols Outlined';
    font-weight: normal;
    font-style: normal;
    font-size: 24px;
    display: inline-block;
    line-height: 1;
    text-transform: none;
    letter-spacing: normal;
    word-wrap: normal;
    white-space: nowrap;
    direction: ltr;
    vertical-align: middle;
    font-variation-settings: 'FILL' 0, 'wght' 300, 'GRAD' 0, 'opsz' 22;
}

.top-bar {
    width: 100%;
    height: var(--top-bar-height);
    background-color: #2B333B;
    color: #ffffff;
    font-size: 14px;
    font-weight: 500;
    position: fixed;
    top: 0;
    z-index: 1001;
    display: flex;
    justify-content: center;
    align-items: center;
}

.top-bar-content {
    width: 90%;
    max-width: 1200px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 100%;
}

.top-bar-domain {
    display: flex;
    align-items: center;
    gap: 12px;
}

.top-bar .ms-icon { color: #ffffff !important; font-size: 22px; }

.top-bar-info { display: flex; align-items: center; }
.top-bar-infolinia-wrap {
    display: flex;
    align-items: center;
    gap: 15px;
}

.top-bar-label { font-weight: 500; text-transform: uppercase; }
.top-bar-hours { opacity: 0.9; }

.top-bar-phones {
    display: flex;
    align-items: center;
    gap: 15px;
}

.top-bar-phones a {
    color: #ffffff !important;
    text-decoration: none;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 8px;
}

.main-nav {
    width: 100%;
    background: rgba(255, 255, 255, 0.95);
    height: var(--nav-height);
    position: fixed;
    top: var(--top-bar-height); 
    z-index: 1000;
    box-shadow: 0 2px 10px rgba(0,0,0,0.1);
    display: flex;
    justify-content: center;
}

.nav-container {
    width: 90%;
    max-width: 1200px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 100%;
}

.nav-logo { height: 60px; }

.nav-links {
    display: flex;
    list-style: none;
    gap: 25px;
    margin: 0;
}

.nav-links li a {
    text-decoration: none;
    color: var(--alf-dark);
    font-size: 15px;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 8px;
}

.nav-links li a .ms-icon { color: var(--alf-dark); transition: 0.3s; }
.nav-links li a:hover .ms-icon { color: var(--alf-main); }

.hamburger {
    display: none;
    cursor: pointer;
    background: none;
    border: none;
    font-size: 24px;
    color: var(--alf-dark);
    z-index: 1002;
}

.hero {
    flex: 1;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    color: var(--alf-white);
    padding: 100px 0; /* Dodaj padding, by treść nie dotykała krawędzi przy skrolowaniu */
}

.hero {
	background-image: linear-gradient(rgba(0,0,0,0.1), rgba(0,0,0,0.1)), url('/img/car.webp');
    
    /* 1. Wypełnij całą przestrzeń */
    background-size: cover; 
    
    /* 2. Wyśrodkuj obraz (ważne przy przycinaniu) */
    background-position: center; 
    
    /* 3. Nie powtarzaj grafiki */
    background-repeat: no-repeat;
    
    /* 4. Określ wysokość (np. 60% wysokości ekranu lub stała wartość) */
    /* height: 60vh; */
	
	/* ZMIANA: min-height zamiast height, aby treść mogła wypchnąć sekcję w dół */
    min-height: 100vh; 
    
    /* Opcjonalnie: stałe tło (efekt lekkiego paralaksy) */
    /* background-attachment: fixed; */
}

.hero-content { 
    max-width: 900px; 
    width: 90%; 
    margin-top: 40px;
}

/* GŁÓWNY NAGŁÓWEK - BRAND */
.hero h1 { 
    font-family: var(--font-headings); 
    font-size: clamp(40px, 7vw, 72px); 
    font-weight: 700; 
    line-height: 1.0; 
    text-transform: none;
    letter-spacing: -1px; /* Mocniejsze zacieśnienie dla dużego Brandu */
    margin-bottom: 15px;
    text-align: center;
	opacity: 0.75;
}

/* PODTYTUŁ - GŁÓWNE SŁOWA KLUCZOWE (SEO) */
.hero h2 {
    font-family: var(--font-headings);
    /* Rośnie o połowę wolniej niż H1 (3.5vw) */
    font-size: clamp(24px, 3.5vw, 36px); 
    font-weight: 600;
    line-height: 1.2;
    text-transform: none;
    letter-spacing: -0.2px;
    margin-bottom: 10px;
    text-align: center;
    color: var(--text-color); /* Możesz tu dodać np. kolor akcentowy */
	opacity: 0.75;
}

/* ROZSZERZENIE OFERTY - USŁUGI */
.hero h3 {
    font-family: var(--font-headings);
    /* Rośnie bardzo subtelnie (1.5vw) */
    font-size: clamp(18px, 1.5vw, 22px);
    font-weight: 400;
    line-height: 1.4;
    text-transform: none;
    letter-spacing: 0.5px;
    margin-bottom: 30px;
    text-align: center;
    opacity: 0.75; /* Delikatne zmiękczenie dla kontrastu z H1/H2 */
}

/* AKAPIT OPISOWY - TREŚĆ UZUPEŁNIAJĄCA */
.hero p { 
    /* Prawie statyczny (1.1vw), by zawsze był czytelny */
    font-size: clamp(14px, 1.1vw, 16px); 
    font-weight: 400;
    line-height: 1.6;
    letter-spacing: 0.3px;
    max-width: 750px; /* Zapobiega rozciąganiu tekstu na całą szerokość monitora */
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 40px;
    text-align: center;
	opacity: 0.75;
}

.btn {
    /* RESPONSYWNOŚĆ: Rozmiar fontu od 14px na mobile do 18px na desktopie */
    font-size: clamp(14px, 1.2vw, 18px);
    
    /* RESPONSYWNOŚĆ: Padding rośnie proporcjonalnie do ekranu */
    padding: clamp(12px, 1.5vw, 18px) clamp(30px, 4vw, 55px);
    
    /* CENTROWANIE: Wymuszenie pozycji na środku */
    display: block;      /* Zmieniamy na block, aby margin auto zadziałał */
    width: fit-content;  /* Ale szerokość ma się dopasować do tekstu w środku */
    margin: 40px auto 0; /* Góra: 40px, Boki: Auto (centrowanie), Dół: 0 */
    
    /* STYLIZACJA */
    text-decoration: none;
    font-weight: 700;    /* Podbijamy do 700, by pasował do grubego H1 */
    border-radius: 50px;
    transition: all 0.3s ease;
    text-transform: uppercase;
    letter-spacing: 1px; /* Dodaje elegancji w trybie uppercase */
    
    /* KOLORYSTYKA */
    background-color: var(--alf-main);
    color: var(--alf-white);
    
    /* DODATKOWE SEO/UX: Zapobieganie zawijaniu tekstu w przycisku */
    white-space: nowrap;
}

/* EFEKT PO NAJECHANIU */
.btn:hover {
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
    filter: brightness(1.1); /* Lekkie rozjaśnienie Twojego koloru głównego */
}

.footer {
    width: 100%;
    /* Ścieżka do Twojego obrazka */
    background-image: linear-gradient(rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.8)), url('/img/car.webp');
    background-size: cover;
    background-position: bottom center; /* Skupiamy się na dolnej części zdjęcia */
    background-attachment: scroll; /* Na mobile lepiej dać scroll, na desktop można fixed */
    padding: 40px 0;
    text-align: center;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    color: var(--alf-white);
}

.social-links {
	margin: 8px 0;
    display: flex;
    gap: 20px;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
}

.si-icon {
    width: 20px;
    height: 20px;
    display: inline-block;
    background-color: #ffffff;
    opacity: 0.5;
    transition: all 0.3s ease;
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
}

.social-links a:hover .si-icon {
    background-color: var(--alf-main);
    opacity: 1;
    transform: scale(1.1);
}

.icon-facebook  { -webkit-mask-image: url('icons/facebook.svg');  mask-image: url('icons/facebook.svg'); }
.icon-instagram { -webkit-mask-image: url('icons/instagram.svg'); mask-image: url('icons/instagram.svg'); }
.icon-youtube   { -webkit-mask-image: url('icons/youtube.svg');   mask-image: url('icons/youtube.svg'); }
.icon-linkedin  { -webkit-mask-image: url('icons/linkedin.svg');  mask-image: url('icons/linkedin.svg'); }
.icon-x         { -webkit-mask-image: url('icons/x.svg');         mask-image: url('icons/x.svg'); }
.icon-github    { -webkit-mask-image: url('icons/github.svg');    mask-image: url('icons/github.svg'); }
.icon-n8n       { -webkit-mask-image: url('icons/n8n.svg');       mask-image: url('icons/n8n.svg'); }
.icon-kicad     { -webkit-mask-image: url('icons/kicad.svg');     mask-image: url('icons/kicad.svg'); }
.icon-inventree { -webkit-mask-image: url('icons/inventree.svg'); mask-image: url('icons/inventree.svg'); }

.copyright { font-size: 11px; color: var(--alf-white); opacity: 0.5; display: block; margin-top: 0px; }
.company { font-size: 12px; color: var(--alf-white); opacity: 0.5; display: block; margin-top: 0px; letter-spacing: 0.4px}
.company a { text-decoration: none; color: var(--alf-white); transition: 0.3s; }

@media (max-width: 768px) {
    /* 1. NAPRAWA SKROLOWANIA */
    body, html {
        overflow-x: hidden;
        height: auto; 
        min-height: 100vh;
        overscroll-behavior-y: auto;
    }

    /* 2. NAWIGACJA I TOP BAR */
    .top-bar { display: none; }
    
    .main-nav { 
        position: fixed; /* Zmieniamy na fixed, żeby menu było zawsze pod ręką */
        top: 0; 
        width: 100%;
        z-index: 1000;
    }

    .nav-logo { height: 35px; margin-top: 5px; }
    .hamburger { display: block; }

    .nav-links {
        position: fixed;
        top: 0;
        right: -100%;
        height: 100vh;
        width: 75%;
        background: var(--alf-white);
        flex-direction: column;
        justify-content: center;
        align-items: flex-start; 
        padding-left: 40px; 
        transition: 0.3s;
        box-shadow: -5px 0 15px rgba(0,0,0,0.2);
        z-index: 1001;
    }

    .nav-links.active { right: 0; }

    /* 3. HERO (Tylko jedna, poprawna definicja) */
    .hero { 
        height: auto; 
        min-height: 100vh; 
        padding: 120px 20px 80px; /* Odpowiednie odstępy od góry (menu) i dołu */
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .hero-content {
        width: 100%;
        margin-top: 0; /* Padding w .hero już załatwia sprawę */
    }

    /* 4. TYPOGRAFIA MOBILNA */
    .hero p { 
        font-size: clamp(14px, 4vw, 16px); /* Poprawiona dynamika na mobile */
        margin-top: 25px; 
        margin-bottom: 25px; 
        line-height: 1.5;
    }

    .btn { 
        margin: 30px auto 0;
        padding: 16px 32px; 
        font-size: 14px; 
        width: fit-content;
        display: block;
    }

    /* 5. STOPKA (RELATYWNA NA MOBILE) */
    .footer { 
        position: relative; 
        background: #1a1a1a; 
        padding: 20px 10px; 
        width: 100%;
    }

    .footer .company { font-size: 10px; line-height: 1.4; opacity: 0.7; }
    .footer .copyright { font-size: 9px; margin-top: 5px; opacity: 0.5; }
    .social-links { gap: 15px; margin-bottom: 10px; }
    .si-icon { width: 18px; height: 18px; }
}

/* Tryb poziomy (Landscape) dla telefonów */
@media (max-height: 450px) {
    .footer .company { display: none; }
    .hero { padding: 80px 0 40px; }
}