/* ==========================================================================
   1. Definicje Zmiennych (Paleta Kolorów)
   ========================================================================== */

/* Zmienne CSS pozwalają na łatwe zarządzanie kolorami w całym projekcie.
   Zmiana wartości w tym miejscu zaktualizuje kolor na całej stronie. */
:root {
    --bg-color: #121212;                /* Główny kolor tła */
    --primary-text-color: #FFFFFF;      /* Kolor tekstu podstawowego */
    --secondary-text-color: #b3b3b3;    /* Kolor tekstu pomocniczego (podtytuły, stopka) */
    --accent-color: #FFFFFF;            /* Kolor akcentu (dla przycisków, linków) */
}

/* ==========================================================================
   2. Style Podstawowe i Reset
   ========================================================================== */

/* Resetowanie domyślnych stylów przeglądarki dla spójnego wyglądu. */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box; /* Zapewnia intuicyjne obliczanie wymiarów elementów. */
}

/* Ustawienie koloru tła dla całego dokumentu (<html>),
   co zapobiega białym "mignięciom" podczas przewijania na urządzeniach mobilnych. */
html {
    height: 100%;
    background-color: var(--bg-color);
}

body {
    font-family: 'Poppins', sans-serif;
    color: var(--primary-text-color);
    text-align: center;
    
    /* Aplikowanie obrazu tła z ciemnym, półprzezroczystym filtrem dla lepszej czytelności tekstu. */
    background-image: linear-gradient(rgba(18, 18, 18, 0.7), rgba(18, 18, 18, 0.7)), url('../images/background.png');
    background-size: cover;             /* Skaluje obraz, aby pokrył cały obszar. */
    background-position: center center; /* Wyśrodkowuje obraz. */
    background-repeat: no-repeat;       /* Zapobiega powtarzaniu obrazu. */
    
    /* Użycie Flexbox do idealnego wyśrodkowania zawartości w pionie i poziomie. */
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100%;
    padding: 20px;
}

/* ==========================================================================
   3. Struktura i Layout
   ========================================================================== */

/* Główny kontener centrujący treść i ograniczający jej szerokość na dużych ekranach. */
.container {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 100%;
    width: 100%;
    max-width: 700px;
    position: relative;
    z-index: 1;
}

/* Kontener na główną treść, pozwalający na jej pionowe wyśrodkowanie. */
.content {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

/* ==========================================================================
   4. Elementy Typograficzne
   ========================================================================== */

.title {
    font-size: 3rem;
    font-weight: 600;
    margin-bottom: 1rem;
    letter-spacing: 1px;
}

.subtitle {
    font-size: 1.125rem;
    font-weight: 300;
    line-height: 1.6;
    color: var(--secondary-text-color);
    margin-bottom: 3rem;
}

.contact-info p {
    margin-bottom: 1.5rem;
}

/* ==========================================================================
   5. Elementy Interaktywne (Przyciski)
   ========================================================================== */

/* Styl dla przycisku "ghost button" - z przezroczystym tłem i ramką. */
.email-button {
    display: inline-block;
    background-color: transparent;
    color: var(--accent-color);
    border: 2px solid var(--accent-color);
    text-decoration: none;
    padding: 13px 30px;
    border-radius: 50px;
    font-weight: 600;
    transition: background-color 0.3s ease, color 0.3s ease; /* Płynne przejście efektu. */
}

/* Efekt po najechaniu myszką - przycisk wypełnia się kolorem. */
.email-button:hover {
    background-color: var(--accent-color);
    color: var(--bg-color);
}

/* ==========================================================================
   6. Stopka
   ========================================================================== */

.footer {
    padding: 20px 0;
    color: var(--secondary-text-color);
    font-size: 0.875rem;
    font-weight: 300;
}

/* ==========================================================================
   7. Style Responsywne (Mobile First)
   ========================================================================== */

/* Style dla ekranów o maksymalnej szerokości 600px (np. smartfony). */
@media (max-width: 600px) {
    .title {
        font-size: 2.25rem;
    }
    .subtitle {
        font-size: 1rem;
    }
}