/*
 * Name: Woltario: szablony sklepu i poradnika
 * Slug: ft-szablony
 * Version: 1.0.4
 * Description: Wygląd podstron w stylu makiety strony głównej: sklep i kategorie, strona produktu, koszyk i kasa na blokach, moje konto, poradnik, wpis, zwykła strona, 404 i ulubione. Warstwa szablonów na komponentach ft-core 1.6.0.
 * Module: wyglad
 * Scope: front
 * Load: manual
 * Media: all
 *
 * 1.0.4: dokumenty prawne: kolumna ze spisem treści i przyciskiem druku obok treści od komputera, zwinięty spis na telefonie, numeracja i odstępy długiego tekstu, ramka danych (wzorce Woltario), wersja do druku bez nagłówka, stopki i przycisków.
 * 1.0.3: strona podziękowania po zakupie i podgląd zamówienia w koncie w języku kart: potwierdzenie z zielonym znacznikiem, podsumowanie zamówienia w siatce, tabela i adresy w jasnych ramkach, tytuły sekcji w rozmiarze H3 zamiast łamanych nagłówków H2.
 * 1.0.2: bez ciemnej linii Astry nad zakładkami produktu, chipy kategorii w jednym przewijanym rzędzie na telefonie, koszyk na telefonie bez poziomego przewijania, odstęp pod menu konta.
 * 1.0.1: kolumny strony produktu wygrywają z regułami Astry, odznaka promocji i okruszki w podsumowaniu, suma koszyka w jednej linii, podsumowanie kasy bez podwójnego marginesu, cytat i tabela we wpisie, formularze i menu konta.
 * 1.0.0: pierwsza wersja: wspólna oprawa podstron, siatka kart w sklepie, strona produktu w dwóch kolumnach, zakładki i tabela parametrów, koszyk i kasa na blokach, formularze i menu konta, karty poradnika, typografia wpisu, 404, ulubione.
 */

/* ==========================================================================
   1. OPRAWA PODSTRON
   Białe tło zamiast szarych ramek Astry, jeden rytm odstępów pod okruszkami.
   ========================================================================== */
body.ast-separate-container,
body.ast-plain-container { background-color: var(--ft-surface); }

body:not(.ast-page-builder-template) .site-content #primary.content-area {
    margin-block: var(--ft-space-5) var(--ft-space-8);
    padding: 0;
}
@media (min-width: 1024px) {
    body:not(.ast-page-builder-template) .site-content #primary.content-area { margin-block: var(--ft-space-6) var(--ft-space-9); }
}

/* Astra w układzie „separate” rysuje szare pudełka z dużym paddingiem wokół treści */
body.ast-separate-container .site-content .ast-article-post,
body.ast-separate-container .site-content .ast-article-single,
body.ast-separate-container .site-content .ast-archive-description,
body.ast-separate-container .site-content .comments-area,
body.ast-separate-container .site-content .comment-respond,
body.ast-separate-container .site-content .ast-author-box,
body.ast-separate-container .site-content .error-404,
body.ast-separate-container .site-content .no-results {
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}
body.ast-separate-container #primary,
body.ast-separate-container .ast-row { background: transparent; }

/* Nagłówek zwykłej strony (koszyk, kasa, konto, strony informacyjne) */
body.page:not(.ast-page-builder-template) .entry-header {
    margin: 0 0 var(--ft-space-5);
    padding: 0;
}
body.page:not(.ast-page-builder-template) .entry-header .entry-title,
.woocommerce-products-header .woocommerce-products-header__title.page-title {
    margin: 0;
    color: var(--ft-ink);
    font-family: var(--ft-font-display);
    font-size: var(--ft-fs-h1);
    font-weight: var(--ft-fw-display);
    line-height: var(--ft-lh-tight);
    letter-spacing: var(--ft-track-display);
    text-wrap: balance;
}
.content-area .ft-page-head { padding-block: 0 var(--ft-space-5); }

/* ==========================================================================
   2. TREŚĆ: wpis i strony informacyjne
   ========================================================================== */
.single-post .entry-content,
body.page:not(.woocommerce-page):not(.ast-page-builder-template) .entry-content {
    color: var(--ft-ink);
    font-size: var(--ft-fs-body);
    line-height: var(--ft-lh-body);
}
.single-post .entry-content > :where(p, ul, ol, h2, h3, h4, blockquote, .wp-block-table, .wp-block-image, figure),
body.page:not(.woocommerce-page):not(.ast-page-builder-template) .entry-content > :where(p, ul, ol, h2, h3, h4, blockquote, .wp-block-table) {
    max-width: var(--ft-measure);
}
.single-post .entry-content > p,
body.page:not(.woocommerce-page):not(.ast-page-builder-template) .entry-content > p { margin: 0 0 var(--ft-space-4); text-wrap: pretty; }
.single-post .entry-content h2,
body.page:not(.woocommerce-page):not(.ast-page-builder-template) .entry-content h2 {
    margin: var(--ft-space-7) 0 var(--ft-space-3);
    font-size: var(--ft-fs-section);
}
.single-post .entry-content h3,
body.page:not(.woocommerce-page):not(.ast-page-builder-template) .entry-content h3 {
    margin: var(--ft-space-6) 0 var(--ft-space-2);
    font-size: var(--ft-fs-h3);
}
.single-post .entry-content > :first-child,
body.page:not(.woocommerce-page):not(.ast-page-builder-template) .entry-content > :first-child { margin-top: 0; }
.single-post .entry-content :where(ul, ol),
body.page:not(.woocommerce-page):not(.ast-page-builder-template) .entry-content > :where(ul, ol) {
    margin: 0 0 var(--ft-space-4);
    padding-left: var(--ft-space-5);
}
.single-post .entry-content li,
body.page:not(.woocommerce-page):not(.ast-page-builder-template) .entry-content > :where(ul, ol) > li { margin: 0 0 var(--ft-space-2); }
.single-post .entry-content ul > li::marker,
body.page:not(.woocommerce-page):not(.ast-page-builder-template) .entry-content > ul > li::marker { color: var(--ft-brand); }
.single-post .entry-content a:not([class]),
body.page:not(.woocommerce-page):not(.ast-page-builder-template) .entry-content a:not([class]) {
    color: var(--ft-accent);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 0.18em;
}
.single-post .entry-content a:not([class]):hover,
body.page:not(.woocommerce-page):not(.ast-page-builder-template) .entry-content a:not([class]):hover { color: var(--ft-accent-hover); }
body.single-post .entry-content :is(blockquote, .wp-block-quote),
body.page:not(.woocommerce-page):not(.ast-page-builder-template) .entry-content :is(blockquote, .wp-block-quote) {
    margin: var(--ft-space-5) 0;
    padding: var(--ft-space-4) var(--ft-space-5);
    border: 0;
    border-left: var(--ft-space-1) solid var(--ft-brand);
    border-radius: 0 var(--ft-radius-md) var(--ft-radius-md) 0;
    background: var(--ft-surface-alt);
    color: var(--ft-ink);
    font-style: normal;
    font-weight: var(--ft-fw-medium);
}
.single-post .entry-content blockquote p,
body.page:not(.woocommerce-page):not(.ast-page-builder-template) .entry-content blockquote p { margin: 0; }
.single-post .entry-content table,
body.page:not(.woocommerce-page):not(.ast-page-builder-template) .entry-content table {
    width: 100%;
    margin: 0;
    border: 1px solid var(--ft-border);
    border-collapse: collapse;
    font-size: var(--ft-fs-sm);
    font-variant-numeric: tabular-nums;
}
.single-post .entry-content :where(th, td),
body.page:not(.woocommerce-page):not(.ast-page-builder-template) .entry-content :where(th, td) {
    padding: var(--ft-space-3);
    border: 1px solid var(--ft-border);
    text-align: left;
    vertical-align: top;
}
.single-post .entry-content th,
body.page:not(.woocommerce-page):not(.ast-page-builder-template) .entry-content th { background: var(--ft-surface-alt); font-weight: var(--ft-fw-bold); }
.single-post .entry-content .wp-block-table,
body.page:not(.woocommerce-page):not(.ast-page-builder-template) .entry-content .wp-block-table { margin: var(--ft-space-5) 0; overflow-x: auto; box-shadow: none; }
.single-post .entry-content .wp-block-table :is(table, thead, tfoot),
body.page:not(.woocommerce-page):not(.ast-page-builder-template) .entry-content .wp-block-table :is(table, thead, tfoot) { border-bottom-width: 1px; box-shadow: none; }
.single-post .entry-content img { border-radius: var(--ft-radius-md); }

/* ==========================================================================
   3. WPIS PORADNIKA
   ========================================================================== */
.single-post #primary.content-area {
    max-width: calc(var(--ft-measure) + var(--ft-space-9));
    margin-inline: auto;
}
.single-post .entry-header {
    margin: 0 0 var(--ft-space-5);
    padding: 0;
    text-align: left;
}
.single-post .entry-header .entry-title {
    margin: 0;
    font-size: var(--ft-fs-h1);
    font-weight: var(--ft-fw-display);
    letter-spacing: var(--ft-track-display);
    line-height: var(--ft-lh-tight);
    text-wrap: balance;
}
.entry-content .wo-post__cat, .wo-post__cat { margin: 0 0 var(--ft-space-3); }
.wo-post__cat a.ft-badge { text-decoration: none; }
.wo-post__cat a.ft-badge:hover { background: var(--ft-accent); color: var(--ft-surface); }

/* Metadane Astry: data zostaje, nazwa konta autora znika (nie pokazujemy loginu) */
.single-post .entry-header .entry-meta {
    margin-top: var(--ft-space-3);
    color: var(--ft-muted);
    font-size: 0;
}
.single-post .entry-header .entry-meta > *:not(.posted-by) { font-size: var(--ft-fs-sm); }
.single-post .entry-header .entry-meta .posted-by { display: none; }
.single-post .entry-header .entry-meta a { color: var(--ft-muted); }
.wo-post__cover {
    margin: 0 0 var(--ft-space-6);
    overflow: hidden;
    border-radius: var(--ft-radius-md);
    background: var(--ft-surface-alt);
}
.wo-post__cover-img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 7;
    object-fit: cover;
}

/* Nawigacja między wpisami i komentarze */
.single-post .post-navigation {
    max-width: var(--ft-measure);
    margin-top: var(--ft-space-7);
    padding-top: var(--ft-space-5);
    border-top: 1px solid var(--ft-border);
}
.single-post .post-navigation a { color: var(--ft-ink); font-weight: var(--ft-fw-bold); text-decoration: none; }
.single-post .post-navigation a:hover { color: var(--ft-accent); }
.single-post .comments-area { max-width: var(--ft-measure); margin-top: var(--ft-space-7); }
.single-post .comment-reply-title { font-size: var(--ft-fs-h3); }
.comment-form :where(input[type="text"], input[type="email"], input[type="url"], textarea) {
    width: 100%;
    min-height: var(--ft-tap);
    padding: var(--ft-space-2) var(--ft-space-4);
    border: 1px solid var(--ft-border-strong);
    border-radius: var(--ft-radius-md);
    background: var(--ft-surface);
    color: var(--ft-ink);
    font-size: var(--ft-fs-body);
}
.comment-form :where(input, textarea):focus { outline: none; border-color: var(--ft-accent); box-shadow: var(--ft-focus-ring); }

/* ==========================================================================
   4. LISTY ARTYKUŁÓW: poradnik, kategorie wpisów, wyniki wyszukiwania treści
   ========================================================================== */
body:not(.woocommerce):is(.blog, .archive, .search) #primary .ast-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--ft-space-4);
    margin: 0;
    padding: 0;
}
body:not(.woocommerce):is(.blog, .archive, .search) #primary .ast-row::before,
body:not(.woocommerce):is(.blog, .archive, .search) #primary .ast-row::after { display: none; }
body:not(.woocommerce):is(.blog, .archive, .search) #primary .ast-row > article {
    display: flex;
    flex: none;
    width: auto;
    max-width: none;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
}
@media (min-width: 640px) {
    body:not(.woocommerce):is(.blog, .archive, .search) #primary .ast-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
    body:not(.woocommerce):is(.blog, .archive, .search) #primary .ast-row { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--ft-space-5); }
}
/* Astra przy kategoriach wypisuje własny tytuł archiwum; H1 jest w nagłówku .ft-page-head */
body:not(.woocommerce) .ast-archive-description,
body:not(.woocommerce) .ast-archive-entry-banner { display: none; }

/* Brak wyników */
.no-results .page-title { font-size: var(--ft-fs-section); }
.no-results .search-form { max-width: var(--ft-measure); }

/* ==========================================================================
   5. PAGINACJA (sklep i poradnik)
   ========================================================================== */
.woocommerce nav.woocommerce-pagination,
.ast-pagination { margin-top: var(--ft-space-6); text-align: center; }
.woocommerce nav.woocommerce-pagination ul.page-numbers,
.ast-pagination .nav-links {
    display: inline-flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--ft-space-2);
    margin: 0;
    padding: 0;
    border: 0;
}
.woocommerce nav.woocommerce-pagination ul.page-numbers li { margin: 0; border: 0; overflow: visible; }
.woocommerce nav.woocommerce-pagination ul.page-numbers li .page-numbers,
.ast-pagination .page-numbers {
    display: inline-grid;
    place-items: center;
    min-width: var(--ft-tap);
    min-height: var(--ft-tap);
    margin: 0;
    padding: 0 var(--ft-space-3);
    border: 1px solid var(--ft-border);
    border-radius: var(--ft-radius-md);
    background: var(--ft-surface);
    color: var(--ft-ink);
    font-size: var(--ft-fs-sm);
    font-weight: var(--ft-fw-bold);
    line-height: 1;
    text-decoration: none;
    transition: var(--ft-transition);
}
.woocommerce nav.woocommerce-pagination ul.page-numbers li a.page-numbers:hover,
.ast-pagination a.page-numbers:hover { border-color: var(--ft-accent); background: var(--ft-surface); color: var(--ft-accent); }
.woocommerce nav.woocommerce-pagination ul.page-numbers li span.current,
.ast-pagination .page-numbers.current { border-color: var(--ft-accent); background: var(--ft-accent); color: var(--ft-surface); }

/* ==========================================================================
   6. SKLEP I KATEGORIE
   Selektory od #primary wygrywają z regułami kolumn Astry bez !important.
   ========================================================================== */
.woocommerce-products-header { margin: 0 0 var(--ft-space-3); padding: 0; }
.woocommerce-products-header .term-description,
.woocommerce-products-header .page-description {
    max-width: var(--ft-measure);
    margin-top: var(--ft-space-3);
    color: var(--ft-muted);
}
.woocommerce-products-header .term-description p { margin: 0; }
.wo-shop-cats { margin: var(--ft-space-4) 0 var(--ft-space-5); }
/* Telefon: chipy w jednym przewijanym rzędzie zamiast pięciu linii nad produktami */
@media (max-width: 767px) {
    .wo-shop-cats { margin-inline: calc(var(--ft-gutter) * -1); }
    .entry-content .wo-shop-cats .ft-chips, .wo-shop-cats .ft-chips {
        flex-wrap: nowrap;
        padding-inline: var(--ft-gutter);
        overflow-x: auto;
        overscroll-behavior-x: contain;
        scrollbar-width: none;
    }
    .wo-shop-cats .ft-chips::-webkit-scrollbar { display: none; }
    .wo-shop-cats .ft-chip { white-space: nowrap; }
}

.wo-shop-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--ft-space-2) var(--ft-space-4);
    margin: 0 0 var(--ft-space-5);
    padding-block: var(--ft-space-3);
    border-block: 1px solid var(--ft-border);
}
#primary .wo-shop-bar .woocommerce-result-count {
    float: none;
    margin: 0;
    color: var(--ft-muted);
    font-size: var(--ft-fs-sm);
}
#primary .wo-shop-bar .woocommerce-ordering { float: none; margin: 0; }
#primary .woocommerce-ordering select.orderby {
    min-height: var(--ft-tap);
    padding: 0 calc(var(--ft-space-6) + var(--ft-space-2)) 0 var(--ft-space-4);
    border: 1px solid var(--ft-border-strong);
    border-radius: var(--ft-radius-md);
    background: var(--ft-surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6' fill='none' stroke='%231A2A30' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") right var(--ft-space-3) center / var(--ft-space-4) no-repeat;
    color: var(--ft-ink);
    font-family: var(--ft-font-body);
    font-size: var(--ft-fs-sm);
    font-weight: var(--ft-fw-medium);
    appearance: none;
    cursor: pointer;
}
#primary .woocommerce-ordering select.orderby:focus { outline: none; border-color: var(--ft-accent); box-shadow: var(--ft-focus-ring); }

/* Siatka kart: 2, 3, 4 i 5 kolumn jak na stronie głównej */
#primary ul.products {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--ft-space-3);
    margin: 0 0 var(--ft-space-6);
    padding: 0;
    list-style: none;
}
#primary ul.products::before,
#primary ul.products::after { display: none; }
#primary ul.products li.product {
    display: flex;
    float: none;
    clear: none;
    width: auto;
    min-width: 0;
    margin: 0;
    padding: 0;
    text-align: left;
}
@media (min-width: 640px) {
    #primary ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
    #primary ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--ft-space-4); }
}
@media (min-width: 1280px) {
    #primary ul.products { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}

/* Karta w pętli: reguły WooCommerce dla obrazków, tytułów i przycisków w li.product nie dotyczą .ft-pc */
#primary ul.products li.product .ft-pc__media img {
    width: 100%;
    height: 100%;
    margin: 0;
    box-shadow: none;
    object-fit: contain;
}
#primary ul.products li.product .ft-pc .ft-pc__name {
    margin: 0 0 var(--ft-space-3);
    padding: 0;
    font-size: var(--ft-fs-sm);
}
#primary ul.products li.product a.ft-pc__cart {
    display: grid;
    width: var(--ft-tap);
    height: var(--ft-tap);
    min-height: 0;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: var(--ft-radius-md);
    box-shadow: none;
    font-size: 0;
}
#primary ul.products li.product .ft-pc__badge { margin: 0; }
.woocommerce-no-products-found .woocommerce-info,
.woocommerce .woocommerce-info.woocommerce-no-products-found { margin-top: var(--ft-space-4); }

/* ==========================================================================
   7. STRONA PRODUKTU
   ========================================================================== */
#primary div.product {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--ft-space-5);
}
#primary div.product > * { grid-column: 1 / -1; min-width: 0; }
/* WooCommerce i Astra ustawiają szerokości w procentach selektorami z #content, stąd dwa identyfikatory */
#content #primary div.product div.images,
#content #primary div.product div.summary {
    float: none;
    width: auto;
    max-width: none;
    margin: 0;
}
@media (min-width: 922px) {
    #primary div.product { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); column-gap: var(--ft-space-8); }
    #primary div.product > .woocommerce-product-gallery { grid-column: 1; grid-row: 1; }
    #primary div.product > .summary { grid-column: 2; grid-row: 1; }
}

/* Odznaka promocji na zdjęciu */
#primary div.product > span.onsale,
#primary div.product > .ast-onsale-card {
    position: absolute;
    top: var(--ft-space-3);
    left: var(--ft-space-3);
    right: auto;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    width: auto;
    min-width: 0;
    height: auto;
    min-height: 0;
    margin: 0;
    padding: var(--ft-space-1) var(--ft-space-2);
    border: 0;
    border-radius: var(--ft-radius-sm);
    background: var(--ft-sale);
    color: var(--ft-surface);
    font-size: var(--ft-fs-xs);
    font-weight: var(--ft-fw-bold);
    line-height: var(--ft-lh-tight);
}
/* Okruszki są nad treścią (moduł okruszki), Astra dubluje je w podsumowaniu produktu */
#primary div.product .summary .woocommerce-breadcrumb { display: none; }

/* Galeria */
#primary div.product .woocommerce-product-gallery { position: relative; }
#primary div.product .woocommerce-product-gallery__wrapper { margin: 0; }
#primary div.product .woocommerce-product-gallery .flex-viewport,
#primary div.product .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:only-child {
    overflow: hidden;
    border: 1px solid var(--ft-border);
    border-radius: var(--ft-radius-md);
    background: var(--ft-surface);
}
#primary div.product .woocommerce-product-gallery__image img {
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    padding: var(--ft-space-5);
    object-fit: contain;
    background: var(--ft-surface);
}
#primary div.product .flex-control-thumbs {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: var(--ft-space-2);
    margin: var(--ft-space-3) 0 0;
    padding: 0;
}
#primary div.product .flex-control-thumbs li { width: auto; margin: 0; float: none; }
#primary div.product .flex-control-thumbs li img {
    aspect-ratio: 1;
    padding: var(--ft-space-1);
    border: 1px solid var(--ft-border);
    border-radius: var(--ft-radius-sm);
    object-fit: contain;
    opacity: 1;
    cursor: pointer;
    transition: border-color var(--ft-dur-fast) var(--ft-ease);
}
#primary div.product .flex-control-thumbs li img:hover,
#primary div.product .flex-control-thumbs li img.flex-active { border-color: var(--ft-accent); }

/* Przycisk powiększenia: ikona lupy zamiast znaku z czcionki emoji */
#primary div.product .woocommerce-product-gallery__trigger {
    position: absolute;
    top: var(--ft-space-3);
    right: var(--ft-space-3);
    z-index: 4;
    display: grid;
    place-items: center;
    width: var(--ft-tap);
    height: var(--ft-tap);
    border: 1px solid var(--ft-border);
    border-radius: 50%;
    background: var(--ft-surface);
    box-shadow: var(--ft-shadow-1);
    font-size: 0;
    text-indent: 0;
}
#primary div.product .woocommerce-product-gallery__trigger > *,
#primary div.product .woocommerce-product-gallery__trigger::before,
#primary div.product .woocommerce-product-gallery__trigger::after { display: none; }
#primary div.product .woocommerce-product-gallery__trigger {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='6.5' fill='none' stroke='%231A2A30' stroke-width='1.9'/%3E%3Cpath d='m20 20-4.4-4.4M11 8.5v5M8.5 11h5' fill='none' stroke='%231A2A30' stroke-width='1.9' stroke-linecap='round'/%3E%3C/svg%3E");
    background-position: center;
    background-size: var(--ft-space-5);
    background-repeat: no-repeat;
}
#primary div.product .woocommerce-product-gallery__trigger:hover { border-color: var(--ft-accent); }

/* Podsumowanie */
#primary div.product .summary > * { margin-top: 0; }
#primary div.product .summary .single-product-category {
    display: block;
    margin: 0 0 var(--ft-space-2);
    font-size: var(--ft-fs-sm);
    font-weight: var(--ft-fw-medium);
}
#primary div.product .summary .single-product-category a { color: var(--ft-accent); text-decoration: none; }
#primary div.product .summary .product_title {
    margin: 0 0 var(--ft-space-4);
    font-size: var(--ft-fs-section);
    line-height: var(--ft-lh-tight);
    text-wrap: balance;
}
#primary div.product .summary p.price,
#primary div.product .summary span.price {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0 var(--ft-space-3);
    margin: 0 0 var(--ft-space-4);
    color: var(--ft-ink);
    font-family: var(--ft-font-display);
    font-size: var(--ft-fs-price);
    font-weight: var(--ft-fw-display);
    line-height: var(--ft-lh-tight);
}
#primary div.product .summary .price del { order: 2; color: var(--ft-muted); font-family: var(--ft-font-body); font-size: var(--ft-fs-body); font-weight: var(--ft-fw-medium); opacity: 1; }
#primary div.product .summary .price ins { color: var(--ft-sale); text-decoration: none; }
#primary div.product .summary .woocommerce-price-suffix { color: var(--ft-muted); font-family: var(--ft-font-body); font-size: var(--ft-fs-xs); font-weight: var(--ft-fw-body); }
#primary div.product .woocommerce-product-details__short-description {
    margin: 0 0 var(--ft-space-4);
    color: var(--ft-muted);
}
#primary div.product .woocommerce-product-details__short-description p { margin: 0 0 var(--ft-space-2); }

/* Dostępność w języku .ft-stock */
#primary div.product .summary p.stock {
    display: inline-flex;
    align-items: center;
    gap: var(--ft-space-2);
    margin: 0 0 var(--ft-space-4);
    font-size: var(--ft-fs-sm);
    font-weight: var(--ft-fw-medium);
}
#primary div.product .summary p.stock::before {
    content: "";
    flex: none;
    width: var(--ft-space-2);
    height: var(--ft-space-2);
    margin: 0;
    border-radius: 50%;
    background: currentColor;
    font-family: inherit;
}
#primary div.product .summary p.stock.in-stock { color: var(--ft-accent); }
#primary div.product .summary p.stock.available-on-backorder { color: var(--ft-warning); }
#primary div.product .summary p.stock.out-of-stock { color: var(--ft-muted); }

/* Koszyk: ilość, przycisk, serce */
#primary div.product form.cart {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: var(--ft-space-2);
    margin: 0 0 var(--ft-space-5);
}
#primary div.product form.cart::before,
#primary div.product form.cart::after { display: none; }
#primary div.product form.cart .quantity { float: none; margin: 0; }
#primary div.product form.cart .quantity input.qty {
    width: calc(var(--ft-space-8) + var(--ft-space-4));
    height: 100%;
    min-height: var(--ft-tap-lg);
    padding: 0 var(--ft-space-2);
    border: 1px solid var(--ft-border-strong);
    border-radius: var(--ft-radius-md);
    background: var(--ft-surface);
    color: var(--ft-ink);
    font-size: var(--ft-fs-body);
    font-weight: var(--ft-fw-bold);
    font-variant-numeric: tabular-nums;
    text-align: center;
}
#primary div.product form.cart .quantity input.qty:focus { outline: none; border-color: var(--ft-accent); box-shadow: var(--ft-focus-ring); }
#primary div.product form.cart button.single_add_to_cart_button {
    flex: 1 1 auto;
    min-height: var(--ft-tap-lg);
    margin: 0;
    padding: 0 var(--ft-space-6);
    border-radius: var(--ft-radius-md);
    background: var(--ft-accent);
    font-size: var(--ft-fs-body);
    float: none;
}
#primary div.product form.cart button.single_add_to_cart_button:hover { background: var(--ft-accent-hover); }
#primary div.product form.cart .wo-sp__fav { flex: none; border-radius: var(--ft-radius-md); }
#primary div.product .wo-sp__fav:hover { border-color: var(--ft-sale); color: var(--ft-sale); }
#primary div.product form.variations_form table.variations { margin: 0 0 var(--ft-space-4); }
#primary div.product form.variations_form table.variations select {
    min-height: var(--ft-tap);
    padding: 0 var(--ft-space-4);
    border: 1px solid var(--ft-border-strong);
    border-radius: var(--ft-radius-md);
}

/* Atuty sklepu i metadane */
.wo-sp__extras {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--ft-space-4);
    margin: 0 0 var(--ft-space-5);
    padding-top: var(--ft-space-4);
    border-top: 1px solid var(--ft-border);
}
.entry-content .wo-sp__trust, .wo-sp__trust { flex-direction: column; gap: var(--ft-space-2); }
#primary div.product .product_meta {
    display: grid;
    gap: var(--ft-space-1);
    margin: 0;
    padding-top: var(--ft-space-4);
    border-top: 1px solid var(--ft-border);
    color: var(--ft-muted);
    font-size: var(--ft-fs-xs);
}
#primary div.product .product_meta > span { display: block; }
#primary div.product .product_meta .sku { color: var(--ft-ink); font-variant-numeric: tabular-nums; }
#primary div.product .product_meta a { color: var(--ft-ink); text-decoration: none; }
#primary div.product .product_meta a:hover { color: var(--ft-accent); }

/* Zakładki: podkreślenie w kolorze marki zamiast kart */
#primary div.product .woocommerce-tabs { margin-top: var(--ft-space-6); padding-top: 0; border-top: 0; }
#primary div.product .woocommerce-tabs ul.tabs {
    display: flex;
    gap: var(--ft-space-5);
    margin: 0;
    padding: 0;
    overflow-x: auto;
    border-bottom: 1px solid var(--ft-border);
    scrollbar-width: none;
}
/* Astra rysuje ciemną linię nad zakładkami selektorem z #content, stąd dwa identyfikatory */
#content #primary div.product .woocommerce-tabs ul.tabs::before,
#content #primary div.product .woocommerce-tabs ul.tabs li::before,
#content #primary div.product .woocommerce-tabs ul.tabs li::after { display: none; }
#primary div.product .woocommerce-tabs ul.tabs li {
    flex: none;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}
#primary div.product .woocommerce-tabs ul.tabs li a {
    display: block;
    padding: var(--ft-space-3) 0;
    color: var(--ft-muted);
    font-size: var(--ft-fs-sm);
    font-weight: var(--ft-fw-bold);
    text-decoration: none;
    box-shadow: inset 0 calc(var(--ft-space-1) * -1) 0 transparent;
    transition: color var(--ft-dur-fast) var(--ft-ease), box-shadow var(--ft-dur-fast) var(--ft-ease);
}
#primary div.product .woocommerce-tabs ul.tabs li a:hover { color: var(--ft-ink); }
#primary div.product .woocommerce-tabs ul.tabs li.active a {
    color: var(--ft-ink);
    box-shadow: inset 0 calc(var(--ft-space-1) * -1) 0 var(--ft-brand);
}
#primary div.product .woocommerce-tabs .panel {
    max-width: var(--ft-measure);
    margin: 0;
    padding: var(--ft-space-5) 0 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}
#primary div.product .woocommerce-tabs .panel > h2:first-child { display: none; }
#primary div.product .woocommerce-tabs .panel h2,
#primary div.product .woocommerce-tabs .panel h3 { margin: var(--ft-space-5) 0 var(--ft-space-2); font-size: var(--ft-fs-h3); }
#primary div.product .woocommerce-tabs .panel ul { padding-left: var(--ft-space-5); }
#primary div.product .woocommerce-tabs .panel li { margin: 0 0 var(--ft-space-2); }
#primary div.product .woocommerce-tabs .panel ul > li::marker { color: var(--ft-brand); }

/* Tabela parametrów */
#primary .woocommerce-product-attributes {
    width: 100%;
    margin: 0;
    border: 1px solid var(--ft-border);
    border-collapse: collapse;
    font-size: var(--ft-fs-sm);
}
#primary .woocommerce-product-attributes th,
#primary .woocommerce-product-attributes td {
    padding: var(--ft-space-3);
    border: 1px solid var(--ft-border);
    text-align: left;
    vertical-align: top;
}
#primary .woocommerce-product-attributes th { width: 40%; background: var(--ft-surface-alt); font-weight: var(--ft-fw-bold); }
#primary .woocommerce-product-attributes td p { margin: 0; }

/* Opinie */
#primary #reviews #comments h2,
#primary #reviews .comment-reply-title { font-size: var(--ft-fs-h3); }
#primary #reviews .comment-form-rating .stars a { color: var(--ft-ink); }
#primary #reviews :where(input[type="text"], input[type="email"], textarea) {
    width: 100%;
    padding: var(--ft-space-2) var(--ft-space-4);
    border: 1px solid var(--ft-border-strong);
    border-radius: var(--ft-radius-md);
    background: var(--ft-surface);
}

/* Podobne i polecane: nagłówek jak na stronie głównej */
#primary div.product section.related,
#primary div.product section.up-sells { margin-top: var(--ft-space-8); }
#primary section.related > h2,
#primary section.up-sells > h2,
#primary .cross-sells > h2 {
    display: flex;
    align-items: center;
    gap: var(--ft-space-4);
    margin: 0 0 var(--ft-space-4);
    font-size: var(--ft-fs-section);
}
#primary section.related > h2::before,
#primary section.up-sells > h2::before,
#primary .cross-sells > h2::before {
    content: "";
    flex: none;
    width: var(--ft-space-6);
    height: var(--ft-space-1);
    border-radius: var(--ft-radius-pill);
    background: var(--ft-brand);
}

/* ==========================================================================
   8. KOMUNIKATY WOOCOMMERCE (klasyczne i blokowe)
   ========================================================================== */
#content .woocommerce-message,
#content .woocommerce-info,
#content .woocommerce-error {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--ft-space-3);
    margin: 0 0 var(--ft-space-5);
    padding: var(--ft-space-3) var(--ft-space-4);
    border: 1px solid var(--ft-border);
    border-left: var(--ft-space-1) solid var(--ft-accent);
    border-radius: var(--ft-radius-md);
    background: var(--ft-surface-alt);
    color: var(--ft-ink);
    font-size: var(--ft-fs-sm);
    list-style: none;
}
#content .woocommerce-error { border-left-color: var(--ft-danger); }
#content .woocommerce-message::before,
#content .woocommerce-info::before,
#content .woocommerce-error::before { display: none; }
#content .woocommerce-message .button,
#content .woocommerce-info .button { order: 2; margin-left: auto; float: none; }
#content .woocommerce-error li { margin: 0; }
body .wc-block-components-notice-banner {
    border-radius: var(--ft-radius-md);
    font-size: var(--ft-fs-sm);
}
body .wc-block-components-notice-banner.is-success { border-color: var(--ft-accent); background: var(--ft-accent-soft); }
body .wc-block-components-notice-banner.is-success > svg { background: var(--ft-accent); }

/* ==========================================================================
   9. KOSZYK I KASA NA BLOKACH
   ========================================================================== */
body .wp-block-woocommerce-cart,
body .wp-block-woocommerce-checkout { color: var(--ft-ink); font-family: var(--ft-font-body); }
body .wc-block-components-title,
body .wc-block-components-checkout-step__title,
body .wc-block-components-checkout-order-summary__title-text,
body .wc-block-cart__totals-title {
    color: var(--ft-ink);
    font-family: var(--ft-font-display);
    font-weight: var(--ft-fw-display);
    letter-spacing: var(--ft-track-display);
}
body .wp-block-woocommerce-checkout .wc-block-components-checkout-step__title,
body .wp-block-woocommerce-checkout .wc-block-components-checkout-order-summary__title-text {
    font-family: var(--ft-font-display);
    font-size: var(--ft-fs-h3);
    font-weight: var(--ft-fw-display);
}
body .wc-block-cart .wc-block-cart__totals-title { font-size: var(--ft-fs-xs); letter-spacing: var(--ft-track-caps); }
body .wc-block-cart-items .wc-block-cart-items__header { color: var(--ft-muted); font-size: var(--ft-fs-xs); letter-spacing: var(--ft-track-caps); }
body .wc-block-cart-items td,
body .wc-block-cart-items th { border-color: var(--ft-border); }
body .wc-block-components-product-name {
    color: var(--ft-ink);
    font-size: var(--ft-fs-sm);
    font-weight: var(--ft-fw-bold);
    text-decoration: none;
}
body a.wc-block-components-product-name:hover { color: var(--ft-accent); }
body .wc-block-cart-item__image img,
body .wc-block-components-order-summary-item__image img {
    border: 1px solid var(--ft-border);
    border-radius: var(--ft-radius-sm);
    background: var(--ft-surface);
    object-fit: contain;
}
body .wc-block-components-product-metadata { color: var(--ft-muted); font-size: var(--ft-fs-xs); }
body .wc-block-components-sale-badge {
    border: 0;
    border-radius: var(--ft-radius-sm);
    background: var(--ft-sale);
    color: var(--ft-surface);
    font-size: var(--ft-fs-xs);
    font-weight: var(--ft-fw-bold);
}
body .wc-block-components-quantity-selector {
    border-color: var(--ft-border-strong);
    border-radius: var(--ft-radius-md);
}
body .wc-block-components-quantity-selector::after { border-color: var(--ft-border-strong); border-radius: var(--ft-radius-md); }
body .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:hover { color: var(--ft-accent); }
body .wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input { font-weight: var(--ft-fw-bold); }
body .wc-block-cart-item__remove-link { color: var(--ft-muted); }
/* Na telefonie odznaka oszczędności rozpycha kolumnę sumy poza ekran; przekreślona cena mówi to samo */
body .wc-block-cart.is-mobile .wc-block-cart-item__total .wc-block-components-sale-badge,
body .wc-block-cart.is-small .wc-block-cart-item__total .wc-block-components-sale-badge { display: none; }
body .wc-block-cart-item__remove-link:hover { color: var(--ft-danger); }

/* Podsumowanie koszyka i zamówienia jako karta */
body .wp-block-woocommerce-cart-totals-block {
    padding: var(--ft-space-5);
    border: 1px solid var(--ft-border);
    border-radius: var(--ft-radius-md);
    background: var(--ft-surface-alt);
}
body .wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block {
    border-color: var(--ft-border);
    border-radius: var(--ft-radius-md);
    background: var(--ft-surface-alt);
}
/* Opis skrócony produktu w koszyku i podsumowaniu tylko zaśmieca listę */
body .wc-block-cart-item__product .wc-block-components-product-metadata__description,
body .wc-block-components-order-summary .wc-block-components-product-metadata__description { display: none; }
body .wc-block-components-totals-wrapper { border-color: var(--ft-border); }
body .wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
    font-size: var(--ft-fs-body);
    font-weight: var(--ft-fw-bold);
}
body .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
    font-family: var(--ft-font-display);
    font-size: var(--ft-fs-h3);
    font-weight: var(--ft-fw-display);
    white-space: nowrap;
}
body .wc-block-components-totals-footer-item-tax { color: var(--ft-muted); font-size: var(--ft-fs-xs); }

/* Główne przyciski ścieżki zakupu */
body .wc-block-cart__submit-button,
body .wc-block-components-checkout-place-order-button {
    min-height: var(--ft-tap-lg);
    border-radius: var(--ft-radius-md);
    font-size: var(--ft-fs-body);
}

/* Pola formularza kasy */
body .wc-block-components-text-input input[type],
body .wc-block-components-text-input textarea,
body .wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input,
body .wc-blocks-components-select .wc-blocks-components-select__select,
body .wc-block-components-textarea {
    border: 1px solid var(--ft-border-strong);
    border-radius: var(--ft-radius-md);
    background: var(--ft-surface);
    color: var(--ft-ink);
}
body .wc-blocks-components-select .wc-blocks-components-select__container { border-radius: var(--ft-radius-md); }
body .wc-block-components-text-input input[type]:focus,
body .wc-block-components-textarea:focus,
body .wc-blocks-components-select .wc-blocks-components-select__select:focus {
    border-color: var(--ft-accent);
    outline: none;
    box-shadow: var(--ft-focus-ring);
}
body .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"] {
    border-color: var(--ft-border-strong);
    border-radius: var(--ft-radius-sm);
}
body .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked {
    border-color: var(--ft-accent);
    background: var(--ft-accent);
}
body .wc-block-components-checkbox .wc-block-components-checkbox__mark { fill: var(--ft-surface); }
body .wc-block-components-radio-control__input:checked { border-color: var(--ft-accent); }
body .wc-block-components-radio-control__input:checked::before { background: var(--ft-accent); }
body .wc-block-components-radio-control-accordion-option,
body .wc-block-components-radio-control__option { border-color: var(--ft-border); }
body .wc-block-components-panel__button,
body .wc-block-components-totals-coupon__button,
body .wc-block-checkout__add-note .wc-block-components-checkbox__label,
body .wc-block-components-address-form__address_2-toggle { color: var(--ft-ink); font-weight: var(--ft-fw-medium); }
body .wc-block-components-address-form__address_2-toggle:hover { color: var(--ft-accent); }

/* Pusty koszyk */
body .wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title { font-family: var(--ft-font-display); font-weight: var(--ft-fw-display); }

/* ==========================================================================
   10. MOJE KONTO
   ========================================================================== */
.woocommerce-account #customer_login.u-columns {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--ft-space-5);
}
.woocommerce-account #customer_login.u-columns::before,
.woocommerce-account #customer_login.u-columns::after { display: none; }
.woocommerce-account #customer_login .u-column1,
.woocommerce-account #customer_login .u-column2 {
    float: none;
    width: auto;
    padding: var(--ft-space-5);
    border: 1px solid var(--ft-border);
    border-radius: var(--ft-radius-md);
    background: var(--ft-surface);
}
.woocommerce-account #customer_login h2 { margin: 0 0 var(--ft-space-4); font-size: var(--ft-fs-h3); }
@media (min-width: 768px) {
    .woocommerce-account #customer_login.u-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .woocommerce-account #customer_login .u-column1,
    .woocommerce-account #customer_login .u-column2 { padding: var(--ft-space-6); }
}
.woocommerce-account .woocommerce form.woocommerce-form-login,
.woocommerce-account .woocommerce form.woocommerce-form-register,
.woocommerce-account .woocommerce form.lost_reset_password {
    margin: 0;
    padding: 0;
    border: 0;
}

/* Pola klasycznych formularzy WooCommerce (konto, adresy, hasło) */
.woocommerce form .form-row { margin: 0 0 var(--ft-space-4); padding: 0; }
.woocommerce form .form-row label {
    display: block;
    margin: 0 0 var(--ft-space-1);
    color: var(--ft-ink);
    font-size: var(--ft-fs-sm);
    font-weight: var(--ft-fw-medium);
    line-height: var(--ft-lh-snug);
}
.woocommerce form .form-row label.woocommerce-form__label-for-checkbox { display: inline-flex; align-items: center; gap: var(--ft-space-2); font-weight: var(--ft-fw-body); }
.woocommerce form .form-row .required { color: var(--ft-danger); text-decoration: none; }
.woocommerce form .form-row :where(input.input-text, textarea, select),
.woocommerce form .form-row .select2-container .select2-selection {
    width: 100%;
    min-height: var(--ft-tap);
    padding: var(--ft-space-2) var(--ft-space-4);
    border: 1px solid var(--ft-border-strong);
    border-radius: var(--ft-radius-md);
    background: var(--ft-surface);
    color: var(--ft-ink);
    font-family: var(--ft-font-body);
    font-size: var(--ft-fs-body);
    line-height: var(--ft-lh-snug);
    box-shadow: none;
}
.woocommerce form .form-row :where(input.input-text, textarea, select):focus {
    outline: none;
    border-color: var(--ft-accent);
    box-shadow: var(--ft-focus-ring);
}
.woocommerce form .form-row input[type="checkbox"] { width: var(--ft-space-4); height: var(--ft-space-4); accent-color: var(--ft-accent); }
.woocommerce form .show-password-input { top: 50%; transform: translateY(-50%); }
.woocommerce-account .woocommerce-form-login__submit,
.woocommerce-account .woocommerce-form-register__submit { min-height: var(--ft-tap-lg); padding-inline: var(--ft-space-6); border-radius: var(--ft-radius-md); }
.woocommerce-account .woocommerce-LostPassword a,
.woocommerce-account .woocommerce-privacy-policy-text a { color: var(--ft-accent); }
.woocommerce-account .woocommerce-privacy-policy-text { color: var(--ft-muted); font-size: var(--ft-fs-xs); }

/* Menu konta: pionowa lista z aktywną pozycją w kolorze marki */
.woocommerce-account .woocommerce-MyAccount-navigation { margin-bottom: var(--ft-space-5); }
.woocommerce-account .woocommerce-MyAccount-navigation ul {
    margin: 0;
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--ft-border);
    border-radius: var(--ft-radius-md);
    list-style: none;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li { margin: 0; padding: 0; border: 0; border-bottom: 1px solid var(--ft-border); }
.woocommerce-account .woocommerce-MyAccount-navigation ul li:last-child { border-bottom: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
    display: block;
    padding: var(--ft-space-3) var(--ft-space-4);
    color: var(--ft-ink);
    font-size: var(--ft-fs-sm);
    font-weight: var(--ft-fw-medium);
    text-decoration: none;
    transition: var(--ft-transition);
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover { background: var(--ft-surface-alt); color: var(--ft-accent); }
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a {
    background: var(--ft-accent-soft);
    color: var(--ft-accent);
    box-shadow: inset var(--ft-space-1) 0 0 var(--ft-brand);
}
.woocommerce-account .woocommerce-MyAccount-content > p:first-child { margin-top: 0; }
.woocommerce-account .woocommerce-MyAccount-content a:not(.button) { color: var(--ft-accent); }

/* Tabele zamówień i adresów */
.woocommerce table.shop_table {
    border: 1px solid var(--ft-border);
    border-radius: var(--ft-radius-md);
    border-collapse: separate;
    border-spacing: 0;
    overflow: hidden;
    font-size: var(--ft-fs-sm);
}
.woocommerce table.shop_table th {
    background: var(--ft-surface-alt);
    color: var(--ft-ink);
    font-weight: var(--ft-fw-bold);
}
.woocommerce table.shop_table :where(th, td) { padding: var(--ft-space-3); border-color: var(--ft-border); }
.woocommerce table.shop_table .button { min-height: 0; padding: var(--ft-space-2) var(--ft-space-3); font-size: var(--ft-fs-xs); }
.woocommerce-account .woocommerce-Addresses .woocommerce-Address {
    padding: var(--ft-space-5);
    border: 1px solid var(--ft-border);
    border-radius: var(--ft-radius-md);
}
.woocommerce-account .woocommerce-Address-title h2 { font-size: var(--ft-fs-h3); }

/* ==========================================================================
   10A. ZAMÓWIENIE: podziękowanie po zakupie i podgląd zamówienia w koncie
   Klasyczne szablony WooCommerce (order-details, customer-details) w języku kart kontraktu.
   ========================================================================== */
#primary .woocommerce-order { display: flex; flex-direction: column; gap: var(--ft-space-5); }
#primary .woocommerce-order > * { margin: 0; }

/* Potwierdzenie przyjęcia zamówienia */
#primary .woocommerce-order .woocommerce-thankyou-order-received {
    display: flex;
    align-items: center;
    gap: var(--ft-space-3);
    padding: var(--ft-space-4) var(--ft-space-5);
    border: 1px solid color-mix(in oklab, var(--ft-accent) 25%, var(--ft-surface));
    border-radius: var(--ft-radius-md);
    background: var(--ft-accent-soft);
    color: var(--ft-ink);
    font-size: var(--ft-fs-body);
    font-weight: var(--ft-fw-bold);
    line-height: var(--ft-lh-snug);
}
#primary .woocommerce-order .woocommerce-thankyou-order-received::before {
    content: "";
    flex: none;
    width: var(--ft-space-6);
    height: var(--ft-space-6);
    border-radius: 50%;
    background: var(--ft-brand) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='m5.5 10.5 3 3 6-6.5' fill='none' stroke='white' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 100% no-repeat;
}

/* Numer, data, e-mail, kwota i płatność w jednej siatce */
#primary ul.woocommerce-order-overview {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    margin: 0;
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--ft-border);
    border-radius: var(--ft-radius-md);
    background: var(--ft-border);
    list-style: none;
}
#primary ul.woocommerce-order-overview::before,
#primary ul.woocommerce-order-overview::after { display: none; }
#primary ul.woocommerce-order-overview li {
    float: none;
    margin: 0;
    padding: var(--ft-space-3) var(--ft-space-4);
    border: 0;
    background: var(--ft-surface);
    color: var(--ft-muted);
    font-size: var(--ft-fs-xs);
    line-height: var(--ft-lh-snug);
    letter-spacing: 0;
    text-transform: none;
}
#primary ul.woocommerce-order-overview li:last-child:nth-child(odd) { grid-column: 1 / -1; }
#primary ul.woocommerce-order-overview li strong {
    display: block;
    margin-top: var(--ft-space-1);
    color: var(--ft-ink);
    font-size: var(--ft-fs-sm);
    font-weight: var(--ft-fw-bold);
    line-height: var(--ft-lh-snug);
    text-transform: none;
    overflow-wrap: anywhere;
}
@media (min-width: 768px) {
    #primary ul.woocommerce-order-overview { grid-auto-columns: minmax(0, 1fr); grid-auto-flow: column; grid-template-columns: none; }
    #primary ul.woocommerce-order-overview li:last-child:nth-child(odd) { grid-column: auto; }
}

/* Tytuły sekcji zamówienia w rozmiarze H3, bez tła i ramek motywu */
#primary .woocommerce-order-details__title,
#primary .woocommerce-column__title,
#primary .woocommerce-customer-details > h2 {
    margin: 0 0 var(--ft-space-3);
    padding: 0;
    border: 0;
    background: none;
    color: var(--ft-ink);
    font-size: var(--ft-fs-h3);
    font-weight: var(--ft-fw-display);
    line-height: var(--ft-lh-tight);
}
#primary .woocommerce-MyAccount-content :is(.woocommerce-order-details, .woocommerce-customer-details) { margin: 0 0 var(--ft-space-5); }

/* Tabela produktów i sum */
#primary table.shop_table {
    border: 1px solid var(--ft-border);
    border-radius: var(--ft-radius-md);
    border-collapse: separate;
    border-spacing: 0;
    overflow: hidden;
}
#primary table.woocommerce-table--order-details :is(th, td) { border-color: var(--ft-border); }
#primary table.woocommerce-table--order-details tfoot :is(th, td) { border-top: 1px solid var(--ft-border); background: var(--ft-surface); }
#primary table.woocommerce-table--order-details tfoot th { color: var(--ft-muted); font-weight: var(--ft-fw-medium); }
#primary table.woocommerce-table--order-details tfoot td { color: var(--ft-ink); font-weight: var(--ft-fw-bold); font-variant-numeric: tabular-nums; }
#primary table.woocommerce-table--order-details tfoot td .amount { font-weight: inherit; }
#primary table.woocommerce-table--order-details .product-name a { color: var(--ft-ink); font-weight: var(--ft-fw-bold); text-decoration: none; }
#primary table.woocommerce-table--order-details .product-name a:hover { color: var(--ft-accent); }
#primary table.woocommerce-table--order-details .product-quantity { color: var(--ft-muted); font-weight: var(--ft-fw-medium); }
#primary table.woocommerce-table--order-details small { color: var(--ft-muted); font-weight: var(--ft-fw-medium); }

/* Adresy jako karty: dwie kolumny od tabletu */
#primary .woocommerce-customer-details .woocommerce-columns--addresses { display: grid; gap: var(--ft-space-4); margin: 0; }
#primary .woocommerce-customer-details .woocommerce-columns--addresses::before,
#primary .woocommerce-customer-details .woocommerce-columns--addresses::after { display: none; }
#primary .woocommerce-customer-details .woocommerce-column,
#primary .woocommerce-customer-details > address {
    float: none;
    width: auto;
    margin: 0;
    padding: var(--ft-space-4) var(--ft-space-5);
    border: 1px solid var(--ft-border);
    border-radius: var(--ft-radius-md);
    background: var(--ft-surface);
}
#primary .woocommerce-customer-details address {
    margin: 0;
    padding: 0;
    border: 0;
    color: var(--ft-ink);
    font-style: normal;
    line-height: var(--ft-lh-body);
}
#primary .woocommerce-customer-details > address { padding: var(--ft-space-4) var(--ft-space-5); border: 1px solid var(--ft-border); }
#primary .woocommerce-customer-details address p { margin: var(--ft-space-2) 0 0; color: var(--ft-muted); }
@media (min-width: 640px) {
    #primary .woocommerce-customer-details .woocommerce-columns--addresses { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Stan zamówienia w koncie: numer, data i status pogrubione, bez żółtego tła znacznika */
#primary .woocommerce-MyAccount-content mark { background: transparent; color: var(--ft-ink); font-weight: var(--ft-fw-bold); }

/* ==========================================================================
   10B. DOKUMENTY PRAWNE
   Znaczniki z modułu wyglad: div.wo-legal > aside.wo-legal__aside (details.wo-legal__toc, przycisk druku) + div.wo-legal__body.
   ========================================================================== */
.wo-legal { display: grid; gap: var(--ft-space-5); }
.wo-legal__aside { display: flex; flex-direction: column; align-items: flex-start; gap: var(--ft-space-3); }
.wo-legal__toc {
    width: 100%;
    border: 1px solid var(--ft-border);
    border-radius: var(--ft-radius-md);
    background: var(--ft-surface-alt);
}
.wo-legal__toc summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: var(--ft-tap);
    padding: 0 var(--ft-space-4);
    color: var(--ft-ink);
    font-size: var(--ft-fs-sm);
    font-weight: var(--ft-fw-bold);
    cursor: pointer;
    list-style: none;
}
.wo-legal__toc summary::-webkit-details-marker { display: none; }
.wo-legal__toc summary::after {
    content: "";
    width: var(--ft-space-2);
    height: var(--ft-space-2);
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    transition: transform var(--ft-dur-fast) var(--ft-ease);
}
.wo-legal__toc[open] summary::after { transform: rotate(-135deg); }
.wo-legal__toc summary:focus-visible { outline: 2px solid var(--ft-accent); outline-offset: -2px; border-radius: var(--ft-radius-md); }
#primary .wo-legal__toc ol {
    margin: 0;
    padding: 0 var(--ft-space-4) var(--ft-space-3) var(--ft-space-4);
    list-style: none;
    counter-reset: none;
}
#primary .wo-legal__toc li { margin: 0; padding: 0; }
#primary .wo-legal__toc a {
    display: flex;
    min-height: calc(var(--ft-tap) - var(--ft-space-2));
    align-items: center;
    padding: var(--ft-space-1) 0;
    color: var(--ft-muted);
    font-size: var(--ft-fs-sm);
    line-height: var(--ft-lh-snug);
    text-decoration: none;
    transition: color var(--ft-dur-fast) var(--ft-ease);
}
#primary .wo-legal__toc a:hover { color: var(--ft-accent); }
#primary .wo-legal__toc a:focus-visible { outline: 2px solid var(--ft-accent); outline-offset: 2px; }
.wo-legal__print { min-height: var(--ft-tap); }

.wo-legal__body { min-width: 0; max-width: var(--ft-measure); }
#primary .wo-legal__updated { margin: 0 0 var(--ft-space-5); color: var(--ft-muted); font-size: var(--ft-fs-sm); }
#primary .wo-legal__body > p,
#primary .wo-legal__body > .wp-block-group p { margin: 0 0 var(--ft-space-4); text-wrap: pretty; }
#primary .wo-legal__body :where(ul, ol) { margin: 0 0 var(--ft-space-4); padding-left: var(--ft-space-5); }
#primary .wo-legal__body li { margin: 0 0 var(--ft-space-2); }
#primary .wo-legal__body h2 { scroll-margin-top: calc(var(--ft-space-9) + var(--ft-space-7)); margin: var(--ft-space-7) 0 var(--ft-space-3); font-size: var(--ft-fs-section); }
#primary .wo-legal__body h2:first-of-type { margin-top: 0; }
#primary .wo-legal__body h3 { margin: var(--ft-space-5) 0 var(--ft-space-2); font-size: var(--ft-fs-h3); }
#primary .wo-legal__body a { color: var(--ft-accent); text-decoration: underline; }
#primary .wo-legal__body a:hover { color: var(--ft-ink); }

/* Ramka z danymi powtarzanymi na wielu stronach (wzorce zsynchronizowane „Woltario: …”) */
#primary .wo-legal__body .wo-legal-box {
    margin: 0 0 var(--ft-space-5);
    padding: var(--ft-space-4) var(--ft-space-5);
    border: 1px solid var(--ft-border);
    border-left: 3px solid var(--ft-brand);
    border-radius: var(--ft-radius-md);
    background: var(--ft-surface-alt);
}
#primary .wo-legal__body .wo-legal-box > :last-child { margin-bottom: 0; }

@media (min-width: 1024px) {
    .wo-legal { grid-template-columns: minmax(0, var(--ft-card-min)) minmax(0, 1fr); gap: var(--ft-space-8); align-items: start; }
    .wo-legal__aside { position: sticky; top: calc(var(--ft-space-9) + var(--ft-space-7)); }
    .wo-legal__toc { background: var(--ft-surface); }
    .wo-legal__toc summary { pointer-events: none; }
    .wo-legal__toc summary::after { display: none; }
}

/* Wydruk i zapis do PDF: sama treść dokumentu */
@media print {
    .wo-hdr, .wo-ftr, #wpadminbar, .ft-fab, #ast-scroll-top, .ft-breadcrumbs, .wo-legal__aside { display: none; }
    html { margin-top: 0; }
    .wo-legal { display: block; }
    .wo-legal__body { max-width: none; }
    #primary .wo-legal__body a { color: var(--ft-ink); text-decoration: none; }
    #primary .wo-legal__body h2 { break-after: avoid; }
}

/* ==========================================================================
   11. STRONA 404
   ========================================================================== */
.error404 .error-404 { text-align: left; }
.wo-404 { max-width: var(--ft-measure); padding-block: var(--ft-space-4) var(--ft-space-6); }
.wo-404 .ft-eyebrow--dash { margin: 0 0 var(--ft-space-3); }
.wo-404 .ft-page-head__lead { margin-bottom: var(--ft-space-5); }
.wo-404__search { max-width: var(--ft-measure); margin: 0 0 var(--ft-space-5); }
.wo-404__cats { margin: 0 0 var(--ft-space-6); }
.entry-content .wo-404__actions, .wo-404__actions { display: flex; flex-wrap: wrap; gap: var(--ft-space-3); margin: 0; }

/* ==========================================================================
   12. ULUBIONE
   ========================================================================== */
.wo-favs { margin-top: var(--ft-space-5); }
.wo-favs [hidden], .wo-favs[hidden] { display: none !important; }
.wo-favs[aria-busy="true"] .wo-favs__list { opacity: 0.5; }
.entry-content .wo-favs__msg, .wo-favs__msg { margin: 0 0 var(--ft-space-4); color: var(--ft-danger); font-size: var(--ft-fs-sm); }
.wo-favs__msg:empty { display: none; }
.wo-favs__empty {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--ft-space-4);
    padding: var(--ft-space-6);
    border: 1px dashed var(--ft-border-strong);
    border-radius: var(--ft-radius-md);
    background: var(--ft-surface-alt);
}
.entry-content .wo-favs__empty p, .wo-favs__empty p { max-width: var(--ft-measure); margin: 0; color: var(--ft-muted); }

/* ==========================================================================
   13. RUCH
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
    #primary div.product .woocommerce-tabs ul.tabs li a,
    .woocommerce nav.woocommerce-pagination ul.page-numbers li .page-numbers,
    .ast-pagination .page-numbers,
    .wo-legal__toc summary::after,
    #primary .wo-legal__toc a { transition: none; }
}
