/*
 * P.H. COMPUTER — Typografia V1
 * Czytelniejsze rozmiary tekstu bez zmiany struktury strony.
 */

:root {
    --ph-text-xs: 12px;
    --ph-text-sm: 14px;
    --ph-text-md: 16px;
    --ph-text-lg: 18px;
    --ph-title-sm: 20px;
    --ph-title-md: 28px;
    --ph-title-lg: 38px;
}

body {
    font-size: var(--ph-text-md);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

/* Nagłówek — zachowany układ z wersji V1 */
.ph-header .main-nav a strong,
.ph-header .nav-secondary a strong {
    font-size: 16px;
    line-height: 1.2;
}

.ph-header .main-nav a small {
    font-size: 12px;
    line-height: 1.25;
}

.ph-header .header-contact small {
    font-size: 12px;
}

.ph-header .header-contact strong {
    font-size: 15px;
}

/* Hero strony głównej */
.hero h1 {
    font-size: clamp(34px, 3.2vw, 44px);
    line-height: 1.08;
}

.hero h2 {
    font-size: 20px;
}

.hero p {
    font-size: 16px;
    line-height: 1.65;
}

.btn,
button,
input,
select,
textarea {
    font-size: 15px;
}

.btn {
    padding: 14px 22px;
}

/* Pasek korzyści */
.feature b {
    font-size: 15px;
}

.feature small {
    font-size: 13px;
    line-height: 1.55;
}

/* Nagłówki sekcji */
.section-head h2,
.featured-heading h2 {
    font-size: 21px;
    letter-spacing: .01em;
}

.section-head a,
.featured-heading a {
    font-size: 14px;
}

/* Karty polecanych produktów */
.featured-category,
.tag {
    font-size: 11px !important;
    letter-spacing: .03em;
}

.featured-card h3,
.card h3 {
    font-size: 18px !important;
    line-height: 1.3;
}

.featured-card p,
.card p {
    font-size: 15px !important;
    line-height: 1.55;
}

.featured-primary,
.featured-secondary,
.inquiry {
    font-size: 14px !important;
}

.featured-primary {
    min-height: 48px;
}

/* Sekcja „Dlaczego warto” */
.why-us-heading .category-eyebrow {
    font-size: 12px;
    letter-spacing: .16em;
}

.why-us-heading h2 {
    font-size: clamp(30px, 3vw, 42px);
    line-height: 1.12;
}

.why-us-heading p {
    font-size: 16px;
    line-height: 1.7;
}

.why-item b {
    font-size: 16px;
}

.why-item small {
    font-size: 14px;
    line-height: 1.55;
}

/* Dolny pasek informacyjny */
.info-strip h3 {
    font-size: 15px;
    line-height: 1.35;
}

.info-strip p {
    font-size: 13px;
    line-height: 1.55;
}

.info-strip a {
    font-size: 12px;
}

/* Katalog i boczne kategorie */
.page-hero h1,
.catalog-header h1,
.catalog-main h1 {
    font-size: clamp(28px, 3vw, 38px);
}

.filters,
.category-menu,
.category-accordion {
    font-size: 15px;
}

.catalog-card h2,
.catalog-card h3,
.product-card h2,
.product-card h3 {
    font-size: 18px;
}

.catalog-card p,
.product-card p {
    font-size: 15px;
    line-height: 1.55;
}

/* Karta produktu */
.breadcrumbs {
    font-size: 13px;
}

.product-summary h1,
.product-copy h1 {
    font-size: clamp(30px, 3.2vw, 42px);
    line-height: 1.15;
}

.product-summary p,
.product-copy p,
.product-description,
.tab-content {
    font-size: 16px;
    line-height: 1.7;
}

.product-contact-card h2,
.product-tabs button,
.product-tabs a {
    font-size: 16px;
}

.spec-item small,
.grouped-technical-specs .spec-item small {
    font-size: 12px;
}

.spec-item strong,
.grouped-technical-specs .spec-item strong {
    font-size: 15px;
}

.spec-group h3,
.grouped-technical-specs .spec-group h3 {
    font-size: 18px;
}

/* Formularze publiczne */
.field label,
.form-field label,
.contact-form label {
    font-size: 14px;
    font-weight: 700;
}

.field input,
.field textarea,
.field select,
.form-field input,
.form-field textarea,
.form-field select,
.contact-form input,
.contact-form textarea,
.contact-form select {
    font-size: 16px;
    min-height: 48px;
}

/* Stopka — plik stopki ładuje własny CSS później, dlatego ważne reguły mają !important */
.ph-footer__description,
.ph-footer__feature-list li,
.ph-footer__links a,
.ph-footer__contact-row,
.ph-footer__contact-row a {
    font-size: 15px !important;
}

.ph-footer h2 {
    font-size: 18px !important;
}

.ph-footer__bottom p,
.ph-footer__legal a {
    font-size: 14px !important;
}

/* Telefony i mniejsze ekrany */
@media (max-width: 1100px) {
    .ph-header .main-nav a strong,
    .ph-header .nav-secondary a strong {
        font-size: 15px;
    }

    .hero h1 {
        font-size: 36px;
    }
}

@media (max-width: 650px) {
    body {
        font-size: 15px;
    }

    .hero h1 {
        font-size: 31px;
    }

    .hero h2 {
        font-size: 18px;
    }

    .hero p,
    .why-us-heading p,
    .product-summary p,
    .product-copy p,
    .product-description,
    .tab-content {
        font-size: 15px;
    }

    .section-head h2,
    .featured-heading h2 {
        font-size: 19px;
    }

    .featured-card h3,
    .card h3,
    .catalog-card h2,
    .catalog-card h3,
    .product-card h2,
    .product-card h3 {
        font-size: 17px !important;
    }

    .featured-card p,
    .card p,
    .catalog-card p,
    .product-card p {
        font-size: 14px !important;
    }
}


/* ==========================================================
   P.H. COMPUTER — Typografia całego serwisu V4
   Spójna skala dla strony głównej, katalogu, produktu,
   serwisu, kontaktu i wspólnych sekcji polecanych.
   ========================================================== */
:root {
    --ph-body-size: 17px;
    --ph-small-size: 14px;
    --ph-label-size: 13px;
    --ph-button-size: 16px;
    --ph-card-title-size: 21px;
    --ph-section-title-size: 30px;
}

body {
    font-size: var(--ph-body-size);
    line-height: 1.65;
}

p, li, address, label, input, select, textarea, button {
    line-height: 1.6;
}

/* Nagłówki sekcji publicznych */
.section-head h2,
.featured-heading h2,
.catalog-section-title,
.pcv2-section-title h2,
.service-section-title,
.contact-section-title {
    font-size: clamp(24px, 2.2vw, var(--ph-section-title-size)) !important;
    line-height: 1.2;
}

/* Nagłówek */
.ph-header .main-nav a strong,
.ph-header .nav-secondary a strong {
    font-size: 17px;
}
.ph-header .main-nav a small { font-size: 13px; }
.ph-header .header-contact small { font-size: 12px; }
.ph-header .header-contact strong { font-size: 16px; }

/* Hero i tekst główny */
.hero h1,
.page-hero h1,
.catalog-header h1,
.catalog-main h1 {
    font-size: clamp(38px, 4vw, 54px);
    line-height: 1.08;
}
.hero p,
.page-hero p,
.catalog-header p {
    font-size: 18px;
    line-height: 1.7;
}

/* Karty produktów: katalog + komponenty współdzielone */
.catalog-card h2,
.catalog-card h3,
.product-card h2,
.product-card h3,
.card h3 {
    font-size: var(--ph-card-title-size) !important;
    line-height: 1.3;
}
.catalog-card p,
.product-card p,
.card p {
    font-size: 16px !important;
    line-height: 1.65;
}
.catalog-card .tag,
.product-card .tag,
.card .tag,
.category-eyebrow {
    font-size: var(--ph-label-size) !important;
}
.catalog-card .btn,
.product-card .btn,
.card .btn,
.inquiry {
    font-size: var(--ph-button-size) !important;
    min-height: 50px;
}

/* Filtry i boczne menu katalogu */
.filters,
.category-menu,
.category-accordion,
.catalog-toolbar,
.catalog-sort,
.catalog-chips {
    font-size: 16px;
}
.category-menu a,
.category-accordion a,
.catalog-chips a,
.catalog-chips button {
    font-size: 16px;
}

/* Karta produktu */
.pcv2-breadcrumbs { font-size: 14px !important; }
.pcv2-summary h1 {
    font-size: clamp(38px, 3.5vw, 50px) !important;
    line-height: 1.1 !important;
}
.pcv2-lead,
.pcv2-description,
.pcv2-panel,
.pcv2-contact-card > p {
    font-size: 18px !important;
    line-height: 1.75 !important;
}
.pcv2-lead p { font-size: inherit !important; }
.pcv2-benefits p,
.pcv2-benefits small,
.pcv2-service-strip p,
.pcv2-service-strip small {
    font-size: 15px;
    line-height: 1.5;
}
.pcv2-contact-card h2 { font-size: 28px !important; }
.pcv2-contact-card a,
.pcv2-contact-card button,
.pcv2-primary,
.pcv2-tab-buttons button {
    font-size: 16px !important;
}
.pcv2-tab-buttons button { min-height: 58px; }
.pcv2-description h2 { font-size: 30px; }
.pcv2-description h3 { font-size: 24px; }
.pcv2-spec-toggle { font-size: 16px; }
.pcv2-spec-item small { font-size: 14px !important; }
.pcv2-spec-item strong { font-size: 17px !important; }

/* Formularze */
.field label,
.form-field label,
.contact-form label,
.pcv2-form-grid label {
    font-size: 15px !important;
}
.field input,
.field textarea,
.field select,
.form-field input,
.form-field textarea,
.form-field select,
.contact-form input,
.contact-form textarea,
.contact-form select,
.pcv2-form-grid input,
.pcv2-form-grid textarea {
    font-size: 17px !important;
    min-height: 52px;
}

/* Serwis i kontakt — dodatkowa ochrona dla nazw klas stron */
.service-hero h1,
.serwis-hero h1,
.contact-hero h1 {
    font-size: clamp(40px, 4vw, 56px) !important;
}
.service-hero p,
.serwis-hero p,
.contact-hero p,
.service-card p,
.contact-card p {
    font-size: 17px !important;
}
.service-card h2,
.service-card h3,
.contact-card h2,
.contact-card h3 {
    font-size: 23px !important;
}

/* Stopka */
.ph-footer__description,
.ph-footer__feature-list li,
.ph-footer__links a,
.ph-footer__contact-row,
.ph-footer__contact-row a {
    font-size: 16px !important;
}
.ph-footer h2 { font-size: 19px !important; }
.ph-footer__bottom p,
.ph-footer__legal a { font-size: 14px !important; }

@media (max-width: 1100px) {
    :root { --ph-body-size: 16px; }
    .ph-header .main-nav a strong,
    .ph-header .nav-secondary a strong { font-size: 16px; }
}

@media (max-width: 650px) {
    :root {
        --ph-body-size: 16px;
        --ph-card-title-size: 19px;
        --ph-section-title-size: 25px;
    }
    .hero h1,
    .page-hero h1,
    .catalog-header h1,
    .catalog-main h1,
    .service-hero h1,
    .serwis-hero h1,
    .contact-hero h1 {
        font-size: 34px !important;
    }
    .hero p,
    .page-hero p,
    .catalog-header p,
    .pcv2-lead,
    .pcv2-description,
    .pcv2-panel {
        font-size: 16px !important;
    }
    .pcv2-summary h1 { font-size: 34px !important; }
}
