/*
 * Nadpisania własne — ładowane PO style.css szablonu.
 * Trzymamy je osobno, żeby oryginalny arkusz szablonu został nietknięty.
 */

:root {
    /* Spójna skala szarości. Szablon mieszał pięć przypadkowych odcieni
       (#797979, #666666, #414141, #313131, #111111), przez co ciemne teksty
       nie trzymały się jednej kompozycji. */
    --ink: #2b2f36;    /* nagłówki */
    --body: #565b63;   /* tekst główny */
    --muted: #6f757e;  /* podpisy, metadane */
    --accent: #EF233C; /* akcent szablonu — bez zmian */
}

/* ---------- Kolory tekstu ---------- */

body {
    color: var(--body);
}

h1, h2, h3, h4, h5, h6 {
    color: var(--ink);
}

a {
    color: var(--ink);
}

/* Podpis pod opinią był jeszcze innym szarym (#666666) */
.testimonial .testimonial-text h4 {
    color: var(--muted);
}

/* Metadane wpisu (autor, kategoria, data) — drugi plan, nie główny tekst */
.blog .blog-text .blog-meta p {
    color: var(--muted);
}

/* ---------- Nawigacja ---------- */

@media (min-width: 992px) {
    /* Szablon dawał tu #111111 — prawie czarny na przezroczystym pasku
       nad zdjęciem w hero, czyli praktycznie nieczytelny. Akcent działa lepiej. */
    .navbar-light .navbar-nav .nav-link:hover,
    .navbar-light .navbar-nav .nav-link.active {
        color: var(--accent);
    }
}

/* Nazwa marki: szablon ustawia 45px, co rozjeżdża się na telefonach */
@media (max-width: 767.98px) {
    .navbar .navbar-brand {
        font-size: 28px;
        letter-spacing: 1px;
    }
}

@media (max-width: 400px) {
    .navbar .navbar-brand {
        font-size: 23px;
        letter-spacing: 0.5px;
    }
}

/* ---------- Umiejętności ---------- */

/*
 * Szablon układał nazwę i procent przez inline-block + float:right.
 * Przy dłuższych nazwach ("Frontend — JavaScript / TypeScript / React")
 * nazwa łamała się na dwie linie, a procent odrywał się od paska.
 * Flexbox trzyma procent przy prawej krawędzi niezależnie od długości nazwy.
 */
.about .skill-name {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
}

.about .skill-name p {
    display: block;
    margin: 0 0 5px 0;
}

.about .skill-name p:last-child {
    float: none;
    flex: 0 0 auto;
    color: var(--muted);
    font-variant-numeric: tabular-nums;
}

/* ---------- Cennik ---------- */

/*
 * Blok ceny był zaprojektowany pod krótką liczbę ("$49/mo").
 * Przy tekście ("Wycena / indywidualna") 45px rozbijało kartę na mobile.
 */
.price .price-prices h2 {
    font-size: 32px;
    margin-left: 0;
    line-height: 1.25;
}

.price .price-prices h2 span {
    display: block;
    margin-left: 0;
    font-size: 15px;
    color: var(--muted);
}

.price .price-item.featured-item .price-prices h2 span {
    color: inherit;
    opacity: 0.85;
}

/* ---------- Drobne poprawki układu na mobile ---------- */

@media (max-width: 991.98px) {
    /* 15px do krawędzi ekranu było ciasne przy dłuższych akapitach */
    .about .about-content {
        padding: 45px 20px 0 20px;
    }
}

@media (max-width: 767.98px) {
    /* Metadane wpisu potrafiły wypaść poza kafelek */
    .blog .blog-text .blog-meta {
        display: flex;
        flex-wrap: wrap;
        gap: 4px 14px;
    }

    .blog .blog-text .blog-meta p {
        margin-right: 0;
    }
}

/* Długie nazwy (np. adresy, nazwy technologii) nie mogą wychodzić poza kontener */
h1, h2, h3, h4, h5, h6, p, li {
    overflow-wrap: break-word;
}
