/* =========================================================================
   Podhaisky Framework – styly WooCommerce (e-shop)
   Čistý, vzdušný a důvěryhodný vzhled obchodu, produktu, košíku a pokladny.
   ========================================================================= */

/* ---- Produktová mřížka ----------------------------------------------- */
.woocommerce ul.products li.product,
.wc-block-grid__product {
    text-align: center;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2,
.wc-block-grid__product-title {
    font-family: var(--pf-font-heading);
    font-weight: 500;
    font-size: 1.35rem !important;
    line-height: 1.2;
    padding-top: .9rem !important;
    color: var(--pf-contrast);
}

.woocommerce ul.products li.product .price,
.wc-block-grid__product-price {
    color: var(--pf-muted);
    font-size: 1rem !important;
    font-weight: 500;
}

.woocommerce ul.products li.product img {
    border-radius: 6px;
    margin-bottom: .4rem;
    transition: opacity .3s ease, transform .4s ease;
}
.woocommerce ul.products li.product a:hover img {
    opacity: .9;
}

/* Příznak velikosti na kartě (místo kategorií) – decentní pill s číslem */
.pf-card-size {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: .5rem;
    margin: .55rem 0 .1rem;
}
.pf-card-size__label {
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--pf-muted);
}
.pf-card-size__chips {
    display: inline-flex;
    flex-wrap: wrap;
    gap: .3rem;
}
.pf-card-size__chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.9rem;
    padding: .1rem .55rem;
    border: 1px solid var(--pf-accent);
    border-radius: 999px;
    font-family: var(--pf-font-body);
    font-size: .85rem;
    font-weight: 600;
    line-height: 1.5;
    color: var(--pf-accent-dk, var(--pf-accent));
    background: transparent;
}

/* Tlačítko „přidat do košíku“ v mřížce – decentní, plné na hover */
.woocommerce ul.products li.product .button {
    margin-top: .4rem;
    background-color: transparent;
    color: var(--pf-contrast);
    border: 1px solid var(--pf-contrast);
}
.woocommerce ul.products li.product .button:hover {
    background-color: var(--pf-contrast);
    color: var(--pf-white);
    border-color: var(--pf-contrast);
}

/* Akční štítek */
.woocommerce span.onsale,
.wc-block-grid__product .wc-block-grid__product-onsale {
    background-color: var(--pf-accent);
    color: var(--pf-white);
    border-radius: 999px;
    font-family: var(--pf-font-body);
    font-weight: 600;
    font-size: .7rem;
    letter-spacing: .06em;
    text-transform: uppercase;
    min-height: auto;
    min-width: auto;
    padding: .35em .8em;
    line-height: 1;
}

/* ---- Detail produktu ------------------------------------------------- */
.woocommerce div.product .product_title {
    font-family: var(--pf-font-heading);
    font-weight: 500;
    font-size: clamp(2rem, 4vw, 2.8rem);
    line-height: 1.1;
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
    color: var(--pf-contrast);
    font-size: 1.6rem;
    font-weight: 500;
}

.woocommerce div.product .woocommerce-product-rating { margin-bottom: 1rem; }

.woocommerce .quantity .qty {
    border: 1px solid var(--pf-border);
    border-radius: 4px;
    padding: .7rem .5rem;
    background: var(--pf-white);
}

/* USP seznam pod tlačítkem (z inc/woocommerce.php) */
.pf-product-usp {
    list-style: none;
    margin: 1.8rem 0 0;
    padding: 1.4rem 0 0;
    border-top: 1px solid var(--pf-border);
    display: grid;
    gap: .6rem;
}
.pf-product-usp li {
    display: flex;
    align-items: center;
    gap: .6rem;
    font-size: .95rem;
    color: var(--pf-muted);
}
.pf-product-usp li .pf-check {
    color: var(--pf-accent);
    flex: 0 0 auto;
}

/* Záložky popisu */
.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
    border-bottom-color: var(--pf-accent);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
    font-family: var(--pf-font-body);
    font-weight: 600;
    letter-spacing: .03em;
}

/* ---- Sekce „Mohlo by se vám líbit“ ----------------------------------- */
.woocommerce .related > h2,
.woocommerce .upsells > h2,
.woocommerce .cart_totals h2,
.woocommerce-checkout h3 {
    font-family: var(--pf-font-heading);
    font-weight: 500;
}

/* ---- Košík ----------------------------------------------------------- */
.woocommerce table.shop_table {
    border: 1px solid var(--pf-border);
    border-radius: 6px;
    overflow: hidden;
}
.woocommerce table.shop_table th {
    font-family: var(--pf-font-body);
    font-weight: 600;
    letter-spacing: .03em;
    background: var(--pf-surface);
}
.woocommerce-cart table.cart img { border-radius: 4px; }

.woocommerce .cart-collaterals .cart_totals,
.woocommerce-checkout #order_review {
    background: var(--pf-white);
    border: 1px solid var(--pf-border);
    border-radius: 6px;
    padding: 1.2rem 1.4rem;
}

/* ---- Pokladna – působí důvěryhodně a čistě ---------------------------- */
.woocommerce-checkout #payment {
    background: var(--pf-surface);
    border-radius: 6px;
}
.woocommerce-checkout #payment ul.payment_methods {
    border-bottom: 1px solid var(--pf-border);
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.select2-container--default .select2-selection--single {
    border: 1px solid var(--pf-border);
    border-radius: 4px;
    padding: .8rem .9rem;
    background: var(--pf-white);
    font-family: var(--pf-font-body);
}
/* Nativní <select> v pokladně: Blocksy nastavuje pevnou výšku a vlastní
   appearance, kvůli čemuž se text „ořezával" (viditelná jen půlka). Reset
   appearance + auto výška + rozumný line-height to opraví a přidá vlastní
   šipku, aby select ladil se zbytkem formuláře. */
.woocommerce form .form-row select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    height: auto;
    min-height: 46px;
    line-height: 1.4;
    padding-right: 2.5rem;
    background-image: var(--pf-select-arrow);
    background-repeat: no-repeat;
    background-position: right .95rem center;
    background-size: .7rem auto;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus {
    border-color: var(--pf-accent);
    outline: none;
}

/* Informační hlášky */
.woocommerce-message,
.woocommerce-info,
.woocommerce-noreviews {
    border-top-color: var(--pf-accent);
}
.woocommerce-message::before,
.woocommerce-info::before { color: var(--pf-accent); }

/* ---- Drobné sjednocení ----------------------------------------------- */
.woocommerce-breadcrumb {
    font-size: .85rem;
    color: var(--pf-muted);
    letter-spacing: .02em;
}

/* =========================================================================
   UI/UX rozšíření e-shopu – „Quiet Couture"
   ========================================================================= */

/* ---- Výpis: hover zoom, cena, štítky, reveal tlačítka ---------------- */
.woocommerce ul.products li.product { position: relative; }
.woocommerce ul.products li.product a img,
.woocommerce ul.products li.product img {
    border-radius: var(--pf-radius-md);
    transition: transform var(--pf-dur) var(--pf-ease), opacity .3s ease;
}
.woocommerce ul.products li.product a:hover img { opacity: 1; transform: scale(1.045); }
.woocommerce ul.products li.product .price del { color: var(--pf-muted); margin-right: .5em; font-weight: 400; }
.woocommerce ul.products li.product .price ins { text-decoration: none; color: var(--pf-accent-dk); font-weight: 600; }

/* Tlačítko v gridu: reveal na hover (desktop), na dotyku vždy */
.woocommerce ul.products li.product .button {
    opacity: 0; transform: translateY(6px);
    transition: opacity var(--pf-dur) var(--pf-ease), transform var(--pf-dur) var(--pf-ease),
                background-color .25s ease, color .25s ease, border-color .25s ease;
}
.woocommerce ul.products li.product:hover .button,
.woocommerce ul.products li.product:focus-within .button { opacity: 1; transform: none; }
@media (hover: none) {
    .woocommerce ul.products li.product .button { opacity: 1; transform: none; }
}
/* Primární akce karty je VŽDY viditelná (ne jen na hover). Skrývání CTA do hoveru
   způsobilo, že po odebrání kusu z košíku „zmizelo" i tlačítko „Do košíku" –
   zákazník ho tak nemohl hned znovu přidat. */
.woocommerce ul.products li.product .add_to_cart_button,
.woocommerce ul.products li.product .ajax_add_to_cart,
.woocommerce ul.products li.product .pf-view-cart,
.woocommerce ul.products li.product .button.na-dotaz,
.woocommerce ul.products li.product .button.pf-reserved {
    opacity: 1; transform: none;
}

/* ---- Detail produktu -------------------------------------------------- */
@media (min-width: 1000px) {
    .woocommerce div.product .summary.entry-summary {
        position: sticky; top: calc(var(--pf-header-h-stuck) + 1.5rem); align-self: start;
    }
}
.woocommerce div.product .stock.in-stock { color: var(--pf-success); font-weight: 500; }
.woocommerce div.product .stock.na-dotaz,
.woocommerce div.product .stock.pf-reserved-stock,
.woocommerce div.product .stock.out-of-stock { color: var(--pf-accent-dk); font-style: italic; }

/* ---- Stav „v košíku": přepnutí tlačítek (výpis) --------------------- */
/* Ve výpisu je „Zobrazit košík" defaultně skryté; ukáže se až .pf-in-cart. */
.woocommerce ul.products li.product .pf-view-cart { display: none; }
.woocommerce ul.products li.product.pf-in-cart .add_to_cart_button,
.woocommerce ul.products li.product.pf-in-cart .ajax_add_to_cart { display: none !important; }
/* „Zobrazit košík" u kusu v košíku je vidět vždy (ne jen na hover) – jasný signál. */
.woocommerce ul.products li.product.pf-in-cart .pf-view-cart {
    display: inline-block; opacity: 1; transform: none;
}

/* ---- Stav „v košíku": detail produktu ------------------------------- */
.pf-view-cart--single { display: none; }
body.pf-product-in-cart form.cart .single_add_to_cart_button,
body.pf-product-in-cart form.cart .quantity { display: none !important; }
body.pf-product-in-cart .pf-view-cart--single { display: inline-block; }
body.pf-product-in-cart .pf-sticky-atc { display: none !important; }

/* ---- Rezervováno (kus drží nedokončená objednávka) ------------------ */
.button.pf-reserved {
    background: var(--pf-surface); color: var(--pf-muted);
    border: 1px solid var(--pf-border); cursor: not-allowed;
    pointer-events: none; opacity: 1; transform: none;
}
/* Štítek „Rezervováno" v rohu karty ve výpisu (vpravo, ať se nepere se slevou). */
.woocommerce ul.products li.product.pf-reserved-card::before {
    content: "Rezervováno";
    position: absolute; top: .75rem; right: .75rem; left: auto; z-index: 3;
    background: color-mix(in srgb, var(--pf-accent) 20%, var(--pf-base));
    color: var(--pf-accent-dk);
    font: 600 .68rem/1 var(--pf-font-body); letter-spacing: .06em; text-transform: uppercase;
    padding: .4rem .55rem; border-radius: 999px;
}
.pf-reserved-note { display: flex; flex-direction: column; gap: .5rem; margin: 0 0 1rem; }
.pf-reserved-hint { font-size: .85rem; color: var(--pf-muted); }

/* ---- Na zakázku (šití na míru) -------------------------------------- */
/* Štítek „Na zakázku" v rohu karty ve výpisu (vlevo, aby se nepral se slevou). */
.woocommerce ul.products li.product.pf-made-to-order-card::after {
    content: "Na zakázku";
    position: absolute; top: .75rem; left: .75rem; right: auto; z-index: 3;
    background: color-mix(in srgb, var(--pf-accent-dk) 12%, var(--pf-base));
    color: var(--pf-accent-dk);
    font: 600 .68rem/1 var(--pf-font-body); letter-spacing: .06em; text-transform: uppercase;
    padding: .4rem .55rem; border-radius: 999px;
}
/* Hláška o lhůtě zhotovení na detailu produktu (nad tlačítkem do košíku). */
.pf-mto-notice {
    display: flex; align-items: baseline; flex-wrap: wrap; gap: .5rem .75rem;
    margin: 0 0 1.25rem; padding: .85rem 1rem;
    background: color-mix(in srgb, var(--pf-accent) 8%, var(--pf-base));
    border: 1px solid color-mix(in srgb, var(--pf-accent) 25%, transparent);
    border-radius: var(--pf-radius, 10px);
}
.pf-mto-notice__tag {
    flex: none;
    font: 600 .7rem/1 var(--pf-font-body); letter-spacing: .06em; text-transform: uppercase;
    color: var(--pf-accent-dk);
    background: color-mix(in srgb, var(--pf-accent) 22%, var(--pf-base));
    padding: .35rem .55rem; border-radius: 999px;
}
.pf-mto-notice__text { font-size: .92rem; color: var(--pf-text); }

/* ---- Košík: sticky souhrn + progress dopravy zdarma ------------------ */
@media (min-width: 861px) {
    .woocommerce-cart .cart-collaterals .cart_totals {
        position: sticky; top: calc(var(--pf-header-h-stuck) + 1.5rem);
    }
}
.pf-shipping-progress { height: 4px; background: var(--pf-border); border-radius: 999px; overflow: hidden; margin: .75rem 0; }
.pf-shipping-progress__fill { height: 100%; background: var(--pf-accent); transition: width .5s var(--pf-ease); }

/* ---- Pokladna: focus s viditelným kruhem (oprava a11y) --------------- */
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus,
.select2-container--default.select2-container--focus .select2-selection--single {
    border-color: var(--pf-accent);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--pf-accent) 22%, transparent);
    outline: none;
}
/* Validační stavy */
.woocommerce form .form-row.woocommerce-invalid input.input-text { border-color: var(--pf-error); }
.woocommerce form .form-row.woocommerce-validated input.input-text { border-color: var(--pf-success); }

/* Prvky důvěry v pokladně */
.pf-checkout-trust {
    display: flex; flex-wrap: wrap; gap: 1.25rem; align-items: center;
    margin: 1rem 0 1.5rem; padding: 1rem 1.25rem;
    background: var(--pf-surface); border-radius: var(--pf-radius-md);
    font-size: .85rem; color: var(--pf-muted);
}
.pf-checkout-trust span { display: inline-flex; align-items: center; gap: .45rem; }
.pf-checkout-trust span::before { content: "✓"; color: var(--pf-success); font-weight: 700; }

/* ---- Našeptávač adresy ----------------------------------------------- */
.pf-addr-field { position: relative; }
.pf-addr-suggest {
    position: absolute; left: 0; right: 0; top: 100%; z-index: 30;
    background: var(--pf-white); border: 1px solid var(--pf-border); border-radius: var(--pf-radius-md);
    box-shadow: var(--pf-shadow-md); max-height: 280px; overflow: auto; margin: .25rem 0 0; padding: 0; list-style: none;
}
.pf-addr-suggest li {
    padding: .85rem 1rem; cursor: pointer; font-size: .875rem; border-bottom: 1px solid var(--pf-border);
}
.pf-addr-suggest li:last-child { border-bottom: 0; }
.pf-addr-suggest li[aria-selected="true"], .pf-addr-suggest li:hover { background: var(--pf-surface); }
.pf-addr-spinner {
    position: absolute; right: .75rem; top: 1.1rem;
    width: 16px; height: 16px; border: 2px solid var(--pf-border); border-top-color: var(--pf-accent);
    border-radius: 50%; animation: pf-spin .7s linear infinite; display: none;
}
.pf-addr-field.is-loading .pf-addr-spinner { display: block; }

/* ---- Responzivita ----------------------------------------------------- */
@media (max-width: 600px) {
    /* Na mobilu jeden sloupec produktů */
    .woocommerce ul.products[class*="columns-"] { grid-template-columns: minmax(0, 1fr) !important; gap: 1.5rem !important; }
}

/* Schovat divnou ikonu řazení (Blocksy) – řazení máme v panelu filtrů */
.woocommerce-ordering .ct-sort-icon { display: none !important; }
@media (min-width: 601px) and (max-width: 1099px) {
    .woocommerce ul.products[class*="columns-"] { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}
@media (min-width: 1100px) {
    .woocommerce ul.products[class*="columns-"] { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
}
@media (max-width: 900px) {
    .woocommerce div.product .woocommerce-product-gallery { width: 100% !important; margin-bottom: 1.5rem; float: none !important; }
    .woocommerce div.product .summary.entry-summary { width: 100% !important; float: none !important; }
}
@media (max-width: 768px) {
    .woocommerce-cart .cart-collaterals,
    .woocommerce-cart .woocommerce-cart-form { width: 100% !important; float: none !important; }
    /* Sticky tlačítko detailu nepřekrývá obsah */
    .single-product .site-main { padding-bottom: 80px; }
}

/* =========================================================================
   Výška fotek na PC (poměr 9:16 je vysoký → na notebook se „nevejde")
   Fotky produktů jsou 9:16 (na výšku). Na PC (min-width: 1000px = Blocksy „lg",
   kde má detail dva sloupce) omezíme jejich výšku, aby se vešly na obrazovku:
     • detail produktu   → hlavní fotka max 80vh
     • kartička produktu → fotka max 50vh (výpis, „Vybrané kousky", hledání)
   Šířku vždy dopočítá poměr 9:16, takže je pořád vidět CELÁ fotka (bez ořezu).
   Na mobilu a tabletu (< 1000px) necháváme vše beze změny.
   ========================================================================= */
@media (min-width: 1000px) {
    /* Detail: zúžíme sloupec galerie tak, aby 9:16 fotka byla max 80vh vysoká
       (80vh × 9/16 = šířka). Sumář se posune těsně vedle, bez zbytečné mezery.
       min(50%, …) = na hodně vysokých obrazovkách zůstane původních 50 %. */
    .woocommerce div.product .product-entry-wrapper {
        --product-gallery-width: min(50%, calc(80vh * 9 / 16));
    }

    /* Kartička: 9:16 fotka max 50vh vysoká, vycentrovaná v kartě. */
    .woocommerce ul.products li.product .ct-media-container {
        max-width: calc(50vh * 9 / 16);
        margin-inline: auto;
    }
}

/* =========================================================================
   MŮJ ÚČET
   ========================================================================= */
.woocommerce-account .woocommerce {
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: clamp(1.5rem, 4vw, 3rem);
    align-items: start;
}
.woocommerce-account .woocommerce::before,
.woocommerce-account .woocommerce::after { content: none; } /* zruší clearfix mřížku */

/* Navigace účtu jako čistá karta */
.woocommerce-MyAccount-navigation { margin: 0; }
.woocommerce-MyAccount-navigation ul {
    list-style: none; margin: 0; padding: .5rem;
    border: 1px solid var(--pf-border); border-radius: var(--pf-radius-md);
    background: var(--pf-white);
}
.woocommerce-MyAccount-navigation li { margin: 0; }
.woocommerce-MyAccount-navigation li a {
    display: block; padding: .8rem 1rem; border-radius: var(--pf-radius-sm);
    color: var(--pf-contrast); font-weight: 500; letter-spacing: .01em;
    transition: background .2s var(--pf-ease), color .2s var(--pf-ease);
}
.woocommerce-MyAccount-navigation li a:hover { background: var(--pf-surface); color: var(--pf-contrast); }
.woocommerce-MyAccount-navigation li.is-active a {
    background: var(--pf-primary); color: var(--pf-white);
}
.pf-account-greeting {
    font-family: var(--pf-font-heading); font-size: 1.4rem; line-height: 1.3;
    color: var(--pf-contrast); margin: 0 0 1.25rem;
}
.woocommerce-MyAccount-content { min-width: 0; }

/* Tabulka objednávek – vzdušná, čitelná */
.woocommerce-orders-table,
.woocommerce-orders-table.shop_table {
    border: 1px solid var(--pf-border); border-radius: var(--pf-radius-md);
    border-collapse: separate; border-spacing: 0; overflow: hidden; width: 100%;
}
.woocommerce-orders-table th,
.woocommerce-orders-table td {
    padding: 1rem 1.25rem; text-align: left; vertical-align: middle;
    border: 0; border-bottom: 1px solid var(--pf-border);
}
.woocommerce-orders-table thead th {
    background: var(--pf-surface); font-family: var(--pf-font-body);
    font-weight: 600; font-size: .8rem; letter-spacing: .06em; text-transform: uppercase;
    color: var(--pf-muted);
}
.woocommerce-orders-table tbody tr:last-child td { border-bottom: 0; }
.woocommerce-orders-table tbody tr:hover td { background: color-mix(in srgb, var(--pf-surface) 45%, transparent); }
.woocommerce-orders-table .woocommerce-orders-table__cell-order-number a { font-weight: 600; color: var(--pf-contrast); }
.woocommerce-orders-table .woocommerce-orders-table__cell-order-total { font-weight: 500; white-space: nowrap; }
.woocommerce-orders-table .woocommerce-orders-table__cell-order-actions { text-align: right; }
.woocommerce-orders-table .woocommerce-button { margin: 0; }

/* Badge stavů objednávek */
.pf-status {
    display: inline-flex; align-items: center; gap: .4em;
    padding: .35em .8em; border-radius: 999px; font-size: .78rem; font-weight: 600;
    letter-spacing: .02em; line-height: 1; white-space: nowrap;
    background: var(--pf-surface); color: var(--pf-contrast);
}
.pf-status::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.pf-status--completed { background: color-mix(in srgb, var(--pf-success) 16%, var(--pf-base)); color: var(--pf-success); }
.pf-status--processing { background: color-mix(in srgb, var(--pf-accent) 18%, var(--pf-base)); color: var(--pf-accent-dk); }
.pf-status--on-hold,
.pf-status--pending { background: color-mix(in srgb, #C99A2E 18%, var(--pf-base)); color: #8A6A1C; }
.pf-status--cancelled,
.pf-status--failed,
.pf-status--refunded,
.pf-status--vraceni { background: color-mix(in srgb, var(--pf-error) 14%, var(--pf-base)); color: var(--pf-error); }

/* Login / Registrace – dvě vyvážené karty */
.woocommerce-account:not(.logged-in) .u-columns.col2-set,
.woocommerce .col2-set#customer_login {
    display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.5rem, 4vw, 3rem);
    width: 100%; margin: 0;
}
.woocommerce #customer_login .col-1,
.woocommerce #customer_login .col-2 {
    width: 100%; float: none; padding: clamp(1.5rem, 3vw, 2.25rem);
    border: 1px solid var(--pf-border); border-radius: var(--pf-radius-md); background: var(--pf-white);
}
.woocommerce #customer_login h2 { margin-top: 0; font-size: 1.6rem; }
.woocommerce-form-register__submit, .woocommerce-form-login__submit { width: 100%; }

/* Adresy */
.woocommerce-Addresses.col2-set,
.woocommerce-Addresses.u-columns {
    display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.25rem, 3vw, 2rem); width: 100%;
}
.woocommerce-Address { width: 100% !important; float: none !important; }
.woocommerce-Address-title { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.woocommerce-Address address {
    border: 1px solid var(--pf-border); border-radius: var(--pf-radius-md);
    padding: 1.1rem 1.25rem; font-style: normal; color: var(--pf-muted); line-height: 1.7;
}

/* Detail objednávky */
.woocommerce-order-details, .woocommerce-customer-details { margin-top: 2rem; }
.woocommerce-order-details__title, .woocommerce-column__title { font-family: var(--pf-font-heading); }

@media (max-width: 860px) {
    .woocommerce-account .woocommerce { grid-template-columns: 1fr; }
    .woocommerce #customer_login .col2-set,
    .woocommerce .col2-set#customer_login,
    .woocommerce-Addresses.col2-set { grid-template-columns: 1fr; }
    .woocommerce-MyAccount-navigation ul { display: flex; flex-wrap: wrap; gap: .25rem; }
    .woocommerce-MyAccount-navigation li a { padding: .6rem .85rem; font-size: .9rem; }
}

/* Tabulka objednávek na mobilu jako karty */
@media (max-width: 600px) {
    .woocommerce-orders-table.shop_table_responsive tbody tr {
        display: block; border: 1px solid var(--pf-border); border-radius: var(--pf-radius-md);
        margin-bottom: 1rem; padding: .5rem .25rem; background: var(--pf-white);
    }
    .woocommerce-orders-table.shop_table_responsive tbody td {
        display: flex; justify-content: space-between; align-items: center; gap: 1rem;
        border-bottom: 1px dashed var(--pf-border); text-align: right; padding: .65rem 1rem;
    }
    .woocommerce-orders-table.shop_table_responsive tbody tr td:last-child { border-bottom: 0; }
    .woocommerce-orders-table.shop_table_responsive td::before {
        content: attr(data-title); font-weight: 600; color: var(--pf-muted);
        font-size: .75rem; text-transform: uppercase; letter-spacing: .05em; text-align: left;
    }
    .woocommerce-orders-table .woocommerce-orders-table__cell-order-actions { text-align: right; }
}

/* =========================================================================
   FILTRY OBCHODU
   ========================================================================= */
.pf-filter-toggle {
    display: none; align-items: center; gap: .5rem; cursor: pointer;
    background: var(--pf-white); color: var(--pf-contrast);
    border: 1px solid var(--pf-border); border-radius: var(--pf-radius-sm);
    padding: .7rem 1.1rem; font: 600 .85rem/1 var(--pf-font-body); letter-spacing: .04em;
    margin-bottom: 1rem;
}
.pf-filters {
    display: flex; flex-wrap: wrap; align-items: flex-end; gap: 1rem 1.5rem;
    padding: 1.25rem 1.5rem; margin: 0 0 1.5rem;
    background: var(--pf-surface); border: 1px solid var(--pf-border); border-radius: var(--pf-radius-md);
}
.pf-filters__group { display: flex; flex-direction: column; gap: .4rem; }
.pf-filters__label { font-size: .75rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--pf-muted); }
.pf-filters__select,
.pf-filters__price input {
    border: 1px solid var(--pf-border); border-radius: var(--pf-radius-sm);
    padding: .6rem .75rem; background: var(--pf-white); color: var(--pf-contrast);
    font-family: var(--pf-font-body); min-height: 44px;
}
.pf-filters__select {
    appearance: none; -webkit-appearance: none; -moz-appearance: none;
    height: auto; line-height: 1.4; padding-right: 2.4rem;
    background-image: var(--pf-select-arrow);
    background-repeat: no-repeat; background-position: right .85rem center; background-size: .65rem auto;
}
.pf-filters__price { display: flex; align-items: center; gap: .5rem; }
.pf-filters__price input { width: 90px; }
.pf-filters__group--check { justify-content: center; }
.pf-check { display: inline-flex; align-items: center; gap: .55rem; cursor: pointer; font-size: .95rem; min-height: 44px; }
.pf-check input { width: 18px; height: 18px; accent-color: var(--pf-primary); }
.pf-filters__actions { display: flex; align-items: center; gap: 1rem; margin-left: auto; }
.pf-filters__reset { font-size: .85rem; color: var(--pf-muted); text-decoration: underline; }
.pf-filters__reset:hover { color: var(--pf-accent-dk); }
.pf-filters__head, .pf-filters-backdrop { display: none; } /* jen mobilní panel */

/* Desktop: lišta filtrů „plave" – zůstává přístupná i po odscrollování */
@media (min-width: 861px) {
    .pf-filters {
        position: sticky;
        /* --pf-header-real měří JS (skutečná výška hlavičky) → filtr sedí pod ní
           a header ho nepřekrývá. Fallback, když JS neběží. */
        top: calc(var(--pf-header-real, 96px) + 0px);
        z-index: 40;
        box-shadow: var(--pf-shadow-sm);
    }
}

/* Mobil: tlačítko Filtry je sticky (vždy po ruce), panel se otevře jako
   spodní plovoucí list (bottom-sheet) přes obsah. */
@media (max-width: 860px) {
    .pf-filter-toggle {
        display: inline-flex;
        position: sticky;
        /* O kus níž pod hlavičkou (měří JS), ať ji header nepřekrývá. */
        top: calc(var(--pf-header-real, 96px) + 14px);
        z-index: 41;
        box-shadow: var(--pf-shadow-sm);
    }
    .pf-filters {
        display: flex; flex-direction: column; align-items: stretch;
        position: fixed; left: 0; right: 0; bottom: 0; z-index: 120;
        margin: 0; max-height: 82vh; overflow-y: auto;
        border-radius: 16px 16px 0 0; box-shadow: var(--pf-shadow-lg);
        transform: translateY(100%); transition: transform .35s var(--pf-ease);
    }
    .pf-filters.is-open { transform: none; }
    .pf-filters__head {
        display: flex; align-items: center; justify-content: space-between;
        position: sticky; top: -1.25rem; z-index: 1; margin: -1.25rem -1.5rem 0; padding: .9rem 1rem .9rem 1.5rem;
        background: var(--pf-surface); border-bottom: 1px solid var(--pf-border);
    }
    .pf-filters__title { font: 500 1.4rem/1.1 var(--pf-font-heading); color: var(--pf-contrast); }
    .pf-filters__close {
        display: inline-flex; align-items: center; justify-content: center;
        width: 44px; height: 44px; padding: 0; border: 0; border-radius: 999px;
        background: transparent; color: var(--pf-contrast); cursor: pointer;
    }
    .pf-filters__close:hover, .pf-filters__close:focus-visible { background: var(--pf-border); color: var(--pf-contrast); }
    .pf-filters-backdrop {
        display: block; position: fixed; inset: 0; z-index: 119;
        background: rgba(28, 26, 23, .45); opacity: 0; pointer-events: none;
        transition: opacity .3s var(--pf-ease);
    }
    .pf-filters-backdrop.is-open { opacity: 1; pointer-events: auto; }
    html.pf-filters-open { overflow: hidden; } /* stránka pod panelem nescrolluje */
    .pf-filters__actions { margin-left: 0; position: sticky; bottom: 0; background: var(--pf-surface); padding-top: .75rem; }
}

/* =========================================================================
   WOOCOMMERCE OBECNĚ – doladění
   ========================================================================= */
/* Badge „Sleva" / „Na dotaz" ve výpisu jednotně */
.woocommerce span.onsale {
    background: var(--pf-accent); color: var(--pf-white); border-radius: 999px;
    font: 600 .7rem/1 var(--pf-font-body); letter-spacing: .06em; text-transform: uppercase;
    padding: .4em .85em; min-height: auto; min-width: auto; top: 12px; left: 12px; margin: 0;
}

/* Pagination --------------------------------------------------------------
   Blocksy renderuje stránkování (i na obchodu, přes blocksy_display_posts_pagination)
   jako <nav class="ct-pagination"> s ul.page-numbers, uvnitř PŘÍMO
   a.page-numbers / span.page-numbers (BEZ <li>); prev/next jsou .prev/.next.
   Staré selektory `ul li a/span` proto nezabíraly → prosvítaly modré Blocksy
   defaulty (barvy bere z --theme-* proměnných, které si Blocksy dynamicky
   přepisuje na svou paletu). Barvíme proto napřímo na .page-numbers a přebíjíme
   přes !important, ať to drží nezávisle na tom, na co se ty proměnné vyhodnotí.
   Pozadí/fill na hoveru zůstává beze změny (byl v pořádku). */
.woocommerce nav.woocommerce-pagination,
.ct-pagination {
    display: flex; flex-wrap: wrap; justify-content: center; gap: .4rem;
    /* pojistka: lokálně srovnat proměnné, ze kterých Blocksy bere barvy */
    --theme-palette-color-1: var(--pf-primary);
    --theme-link-initial-color: var(--pf-contrast);
    --theme-link-hover-color: var(--pf-accent-dk);
    --theme-border-color: var(--pf-border);
    --theme-text-color: var(--pf-contrast);
}
.woocommerce nav.woocommerce-pagination ul.page-numbers { border: 0; margin: 0; padding: 0; }

/* Číslice, tečky i šipky (prev/next) – značková barva místo modré.
   Šipky jsou SVG s fill:currentColor, takže je obarví color. */
.woocommerce nav.woocommerce-pagination .page-numbers,
.ct-pagination .page-numbers {
    color: var(--pf-contrast) !important;
    border-radius: var(--pf-radius-sm);
}

/* Aktuální stránka – plný značkový box */
.woocommerce nav.woocommerce-pagination .page-numbers.current,
.woocommerce nav.woocommerce-pagination span.current,
.ct-pagination .page-numbers.current {
    color: var(--pf-white) !important;
    background: var(--pf-primary) !important;
    border-color: var(--pf-primary) !important;
}

/* Hover/fokus číslic i šipek – značkový border/ring místo modrého
   (fill/pozadí záměrně neměníme). */
.woocommerce nav.woocommerce-pagination a.page-numbers:hover,
.woocommerce nav.woocommerce-pagination a.page-numbers:focus-visible,
.ct-pagination a.page-numbers:hover,
.ct-pagination a.page-numbers:focus-visible {
    color: var(--pf-contrast) !important;
    border-color: var(--pf-accent-dk) !important;
    box-shadow: 0 0 0 1px var(--pf-accent-dk) !important;
}

/* Breadcrumbs (Blocksy .ct-breadcrumbs i nativní .woocommerce-breadcrumb) */
.pf-breadcrumbs-wrap { margin: 0 0 1.25rem; }
.woocommerce-breadcrumb,
.pf-breadcrumbs-wrap .ct-breadcrumbs {
    font-size: .85rem;
    color: var(--pf-muted);
    letter-spacing: .02em;
    line-height: 1.5;
}
.woocommerce-breadcrumb { margin-bottom: 1.5rem; }
.woocommerce-breadcrumb a,
.pf-breadcrumbs-wrap .ct-breadcrumbs a { color: var(--pf-muted); text-decoration: none; }
.woocommerce-breadcrumb a:hover,
.pf-breadcrumbs-wrap .ct-breadcrumbs a:hover { color: var(--pf-accent-dk); }
.pf-breadcrumbs-wrap .ct-breadcrumbs .ct-separator { color: var(--pf-border); margin: 0 .15rem; }
.pf-breadcrumbs-wrap .ct-breadcrumbs [aria-current="page"],
.pf-breadcrumbs-wrap .ct-breadcrumbs .last-item { color: var(--pf-contrast); }

/* Result count + ordering zarovnání */
.woocommerce .woocommerce-result-count { color: var(--pf-muted); font-size: .9rem; }
.woocommerce .woocommerce-ordering select {
    border: 1px solid var(--pf-border); border-radius: var(--pf-radius-sm);
    padding: .6rem 2.4rem .6rem .75rem; background: var(--pf-white); color: var(--pf-contrast); min-height: 44px;
    appearance: none; -webkit-appearance: none; -moz-appearance: none;
    height: auto; line-height: 1.4;
    background-image: var(--pf-select-arrow);
    background-repeat: no-repeat; background-position: right .85rem center; background-size: .65rem auto;
}

/* Product tabs */
.woocommerce-tabs ul.tabs::before { border-bottom-color: var(--pf-border); }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
    background: transparent; border: 0; border-bottom: 2px solid transparent; border-radius: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: transparent; border-bottom-color: var(--pf-accent); }

/* Notices – sjednotit barvy (žádná modrá) */
.woocommerce-message { border-top-color: var(--pf-success); }
.woocommerce-message::before { color: var(--pf-success); }
.woocommerce-info { border-top-color: var(--pf-accent); }
.woocommerce-error { border-top-color: var(--pf-error); }
.woocommerce-error::before { color: var(--pf-error); }

/* =========================================================================
   Padding ve VŠECH WooCommerce tabulkách (první/poslední sloupec nelepit)
   !important kvůli přepsání Blocksy.
   ========================================================================= */
.woocommerce table.shop_table th,
.woocommerce table.shop_table td,
.woocommerce-orders-table th,
.woocommerce-orders-table td,
.woocommerce-table--order-details th,
.woocommerce-table--order-details td,
.woocommerce table.cart th,
.woocommerce table.cart td,
.woocommerce-checkout table.shop_table th,
.woocommerce-checkout table.shop_table td,
.woocommerce-cart table.cart th,
.woocommerce-cart table.cart td {
    padding: 1rem 1.25rem !important;
    vertical-align: middle;
}
.woocommerce table.shop_table tfoot th,
.woocommerce table.shop_table tfoot td {
    padding: .85rem 1.25rem !important;
}
/* Tělo tabulek bez náhodného béžového pozadí (jen hlavička je béžová) */
.woocommerce-orders-table tbody td,
.woocommerce-table--order-details tbody td { background: var(--pf-white); }
.woocommerce-orders-table thead th { background: var(--pf-surface); }

/* =========================================================================
   Hero obchodu (inc/woocommerce.php → woocommerce_before_shop_loop)
   ========================================================================= */
.pf-shop-hero {
    text-align: center;
    max-width: 760px;
    margin: 0 auto clamp(1.75rem, 4vw, 3rem);
    padding: clamp(.5rem, 2vw, 1.5rem) 1rem 0;
}
.pf-shop-hero .pf-eyebrow { display: block; margin-bottom: .6rem; }
.pf-shop-hero__title {
    font-family: var(--pf-font-heading); font-weight: 500;
    font-size: clamp(2.2rem, 5vw, 3.5rem); line-height: 1.08; margin: 0;
    color: var(--pf-contrast);
}
.pf-shop-hero__lead {
    margin: 1rem auto 0; max-width: 56ch;
    color: var(--pf-muted); font-size: 1.08rem; line-height: 1.7;
}
.pf-shop-hero__trust {
    display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem 1.5rem;
    margin-top: 1.4rem; padding-top: 1.4rem;
    border-top: 1px solid var(--pf-border);
    font-size: .82rem; letter-spacing: .04em; text-transform: uppercase; color: var(--pf-muted);
}
.pf-shop-hero__trust span { display: inline-flex; align-items: center; gap: .5rem; }
.pf-shop-hero__trust span::before { content: ""; width: 6px; height: 6px; border-radius: 999px; background: var(--pf-accent); }
.pf-shop-hero__trust span:first-child::before { display: none; }
.pf-shop-hero__note { margin: .9rem auto 0; max-width: 56ch; color: var(--pf-muted); font-size: .95rem; line-height: 1.65; }
@media (max-width: 600px) {
    .pf-shop-hero__trust { flex-direction: column; align-items: center; gap: .4rem; }
    .pf-shop-hero__trust span::before { display: none; }
}

/* Náhled produktu v tabulce košíku / objednávky */
.woocommerce table.shop_table td.product-thumbnail img,
.woocommerce-cart table.cart td.product-thumbnail img { width: 64px; height: auto; border-radius: var(--pf-radius-sm); }

/* =========================================================================
   Pokladna – souhlas s obchodními podmínkami + odeslání objednávky
   Blok byl bez paddingu a checkbox „souhlasím s podmínkami" byl prakticky
   neviditelný (nativní bílý čtvereček na bílém). Sjednocujeme s formuláři.
   ========================================================================= */
.woocommerce-checkout .form-row.place-order,
.woocommerce form.checkout .form-row.place-order {
    padding: 1.5rem;
    margin: 1rem 0 0;
    background: var(--pf-surface);
    border: 1px solid var(--pf-border);
    border-radius: var(--pf-radius-md);
}
.woocommerce-terms-and-conditions-wrapper { margin-bottom: 1.25rem; }
.woocommerce-privacy-policy-text { margin-bottom: 1rem; font-size: .9rem; color: var(--pf-muted); }
.woocommerce-privacy-policy-text a { color: var(--pf-accent-dk); }
/* Vnořený náhled obchodních podmínek (rozbalovací box) */
.woocommerce-terms-and-conditions {
    background: var(--pf-white); border: 1px solid var(--pf-border);
    border-radius: var(--pf-radius-sm); padding: 1rem 1.25rem; margin-bottom: 1rem;
}

/* Řádek se souhlasem: checkbox + text vedle sebe, čitelně zarovnané */
.woocommerce-checkout .form-row.place-order .woocommerce-form__label-for-checkbox {
    display: flex; align-items: flex-start; gap: .65rem;
    font-size: .95rem; line-height: 1.5; color: var(--pf-contrast); cursor: pointer; margin: 0;
}
.woocommerce-checkout .form-row.place-order .woocommerce-terms-and-conditions-checkbox-text a {
    color: var(--pf-accent-dk); text-decoration: underline;
}
.woocommerce-checkout .form-row.place-order abbr.required {
    border: 0; color: var(--pf-accent-dk); text-decoration: none;
}
.woocommerce-checkout .form-row.place-order #place_order { margin-top: 1.25rem; }

/* Vlastní, viditelný checkbox (platí pro souhlas i další WooCommerce checkboxy) */
.woocommerce form .woocommerce-form__input-checkbox,
.woocommerce-checkout .input-checkbox {
    appearance: none; -webkit-appearance: none; -moz-appearance: none;
    flex: 0 0 auto; width: 20px; height: 20px; margin: 1px 0 0;
    border: 1.5px solid var(--pf-border); border-radius: 4px;
    background: var(--pf-white); cursor: pointer; position: relative;
    transition: background-color .15s ease, border-color .15s ease;
}
.woocommerce form .woocommerce-form__input-checkbox:hover,
.woocommerce-checkout .input-checkbox:hover { border-color: var(--pf-accent); }
.woocommerce form .woocommerce-form__input-checkbox:checked,
.woocommerce-checkout .input-checkbox:checked {
    background: var(--pf-primary); border-color: var(--pf-primary);
}
.woocommerce form .woocommerce-form__input-checkbox:checked::after,
.woocommerce-checkout .input-checkbox:checked::after {
    content: ""; position: absolute; left: 6px; top: 2px;
    width: 5px; height: 10px; border: solid var(--pf-white);
    border-width: 0 2px 2px 0; transform: rotate(45deg);
}
.woocommerce form .woocommerce-form__input-checkbox:focus-visible,
.woocommerce-checkout .input-checkbox:focus-visible {
    outline: none; box-shadow: 0 0 0 3px color-mix(in srgb, var(--pf-accent) 22%, transparent);
}

/* Možnosti rozbaleného <select> (Firefox/Win respektuje, ostatní použijí systém) */
.woocommerce select option,
.pf-filters__select option { background: var(--pf-white); color: var(--pf-contrast); }

/* =========================================================================
   QR platba (děkovací stránka + detail objednávky)
   ========================================================================= */
.pf-qr {
    margin: 2rem 0;
    padding: 1.5rem;
    background: var(--pf-white);
    border: 1px solid var(--pf-border);
    border-radius: var(--pf-radius, 12px);
    box-shadow: 0 8px 30px rgba(28, 26, 23, 0.05);
}
.pf-qr__title {
    margin: 0 0 1rem;
    font-size: 1.2rem;
    color: var(--pf-contrast);
}
.pf-qr__inner {
    display: flex;
    gap: 1.5rem;
    align-items: center;
    flex-wrap: wrap;
}
.pf-qr__img {
    width: 200px;
    height: 200px;
    flex: 0 0 auto;
    border: 1px solid var(--pf-border);
    border-radius: var(--pf-radius-sm, 8px);
    background: #fff;
    padding: .5rem;
}
.pf-qr__details { flex: 1 1 240px; min-width: 240px; }
.pf-qr__lead { margin: 0 0 1rem; color: var(--pf-muted); }
.pf-qr__list { list-style: none; margin: 0; padding: 0; }
.pf-qr__list li {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: .5rem 0;
    border-bottom: 1px solid var(--pf-border);
}
.pf-qr__list li:last-child { border-bottom: 0; }
.pf-qr__list span { color: var(--pf-muted); }
.pf-qr__list strong { color: var(--pf-contrast); }
.pf-qr__deadline { margin: .85rem 0 0; font-size: .9rem; color: var(--pf-muted); line-height: 1.5; }
@media (max-width: 480px) {
    .pf-qr__inner { justify-content: center; text-align: center; }
    .pf-qr__list li { justify-content: center; }
}

/* =========================================================================
   Produktový accordion (Péče o výrobek, Tabulka velikostí)
   ========================================================================= */
.pf-accordion {
    margin: 1.9rem 0 .5rem;
    border-top: 1px solid var(--pf-border);
}
.pf-accordion__item {
    border-bottom: 1px solid var(--pf-border);
}
.pf-accordion__head {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: 1.05rem .25rem;
    cursor: pointer;
    list-style: none;
    font-family: var(--pf-font-heading);
    font-size: 1.3rem;
    font-weight: 500;
    color: var(--pf-contrast);
    -webkit-tap-highlight-color: transparent;
    transition: color .2s ease;
}
.pf-accordion__head::-webkit-details-marker { display: none; }
.pf-accordion__head::marker { content: ""; }
.pf-accordion__lead {
    display: inline-flex;
    flex: 0 0 auto;
    color: var(--pf-accent);
}
.pf-accordion__title { flex: 1 1 auto; }
.pf-accordion__chevron {
    flex: 0 0 auto;
    color: var(--pf-muted);
    transition: transform .35s var(--pf-ease);
}
.pf-accordion__item[open] .pf-accordion__chevron { transform: rotate(180deg); }
.pf-accordion__head:hover { color: var(--pf-accent-dk); }
.pf-accordion__head:focus-visible {
    outline: 2px solid var(--pf-accent);
    outline-offset: 3px;
    border-radius: 4px;
}
.pf-accordion__panel {
    overflow: hidden;
    transition: height .38s var(--pf-ease);
}
.pf-accordion__inner { padding: .1rem .25rem 1.5rem; }

/* ---- Péče o výrobek: mřížka symbolů ---------------------------------- */
.pf-care__grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(155px, 1fr));
    gap: 1.05rem .9rem;
}
.pf-care__item {
    display: flex;
    align-items: center;
    gap: .65rem;
}
.pf-care__ico {
    flex: 0 0 auto;
    display: inline-flex;
    color: var(--pf-primary);
}
.pf-care__ico .pf-care-sym { width: 42px; height: 42px; }
.pf-care__label {
    font-size: .9rem;
    line-height: 1.35;
    color: var(--pf-muted);
}
.pf-care__special {
    margin: 0 0 1.1rem;
    padding: .75rem 1rem;
    background: var(--pf-surface);
    border-left: 3px solid var(--pf-accent);
    border-radius: var(--pf-radius-sm, 4px);
    color: var(--pf-contrast);
    font-size: .95rem;
    font-weight: 600;
    line-height: 1.5;
}
.pf-care__special:last-child { margin-bottom: 0; }
.pf-care__note {
    margin: 1.2rem 0 0;
    padding-top: 1rem;
    border-top: 1px dashed var(--pf-border);
    color: var(--pf-muted);
    font-size: .92rem;
    line-height: 1.6;
}

/* ---- Tabulka velikostí ----------------------------------------------- */
.pf-size__intro {
    margin: 0 0 1rem;
    color: var(--pf-muted);
    font-size: .92rem;
    line-height: 1.55;
}
/* Náčrt „jak měřit" (vlastní silueta) + legenda k číslům. */
.pf-size__guide {
    display: flex;
    gap: 1.1rem 1.4rem;
    align-items: center;
    flex-wrap: wrap;
    margin: 0 0 1.25rem;
    padding: 1rem 1.2rem;
    background: var(--pf-base);
    border: 1px solid var(--pf-border);
    border-radius: var(--pf-radius-md);
}
.pf-size__figure { flex: 0 0 auto; }
.pf-size__svg {
    display: block;
    height: 260px;
    width: auto;
    color: var(--pf-accent);
}
.pf-size__body ellipse,
.pf-size__body path {
    fill: var(--pf-surface);
    stroke: color-mix(in srgb, var(--pf-accent) 32%, var(--pf-surface));
    stroke-width: 1.5;
    stroke-linejoin: round;
}
.pf-size__dim { stroke: var(--pf-accent); stroke-width: 1.5; fill: none; }
.pf-size__lead {
    stroke: var(--pf-accent);
    stroke-width: 1;
    stroke-dasharray: 2 3;
    opacity: .6;
    fill: none;
}
.pf-size__fbadge { fill: var(--pf-accent); }
.pf-size__fnum {
    fill: #fff;
    font-family: var(--pf-font-body);
    font-size: 12px;
    font-weight: 700;
}
.pf-size__legend {
    flex: 1 1 190px;
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: .55rem;
}
.pf-size__legend li {
    display: flex;
    align-items: flex-start;
    gap: .6rem;
    font-size: .92rem;
    color: var(--pf-contrast);
}
.pf-size__num {
    flex: 0 0 auto;
    width: 1.4rem;
    height: 1.4rem;
    border-radius: 50%;
    background: var(--pf-accent);
    color: #fff;
    font-size: .78rem;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: .05rem;
}
.pf-size__mlabel small {
    display: block;
    color: var(--pf-muted);
    font-size: .8rem;
    line-height: 1.4;
}
@media (max-width: 480px) {
    .pf-size__guide { justify-content: center; }
    .pf-size__svg { height: 220px; }
}
.pf-size__scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border: 1px solid var(--pf-border);
    border-radius: var(--pf-radius-md);
}
.pf-size__table {
    width: 100%;
    border-collapse: collapse;
    font-size: .92rem;
    min-width: 360px;
}
.pf-size__table th,
.pf-size__table td {
    padding: .62rem .85rem;
    text-align: center;
    border-bottom: 1px solid var(--pf-border);
    white-space: nowrap;
}
.pf-size__table thead th {
    background: var(--pf-surface);
    color: var(--pf-contrast);
    font-family: var(--pf-font-body);
    font-weight: 600;
    font-size: .8rem;
    letter-spacing: .02em;
}
.pf-size__table tbody th {
    font-weight: 600;
    color: var(--pf-contrast);
    background: rgba(28, 26, 23, .02);
}
.pf-size__table tbody tr:last-child th,
.pf-size__table tbody tr:last-child td { border-bottom: 0; }
.pf-size__table tbody tr:hover th,
.pf-size__table tbody tr:hover td { background: var(--pf-base); }

@media (prefers-reduced-motion: reduce) {
    .pf-accordion__panel,
    .pf-accordion__chevron { transition: none; }
}

/* =========================================================================
   Balíkovna na pokladně (inc/shipping-balikovna.php)
   ========================================================================= */

.woocommerce-checkout .pf-balikovna-row th { vertical-align: top; }

.pf-balikovna .pf-balikovna-choose {
    width: 100%;
    font-size: .85rem;
}

.pf-balikovna-selected {
    margin-top: .6rem;
    padding: .65rem .8rem;
    background: var(--pf-surface);
    border: 1px solid var(--pf-border);
    border-radius: var(--pf-radius-sm);
    font-size: .85rem;
    line-height: 1.5;
    color: var(--pf-contrast);
}
.pf-balikovna-selected strong {
    display: block;
    font-weight: 600;
}

/* Modal s iframem vyhledávače Balíkoven (b2c.cpost.cz).
   Doporučený minimální rozměr dialogu dle manuálu je 360x800 px. */
.pf-balikovna-modal {
    position: fixed;
    inset: 0;
    z-index: 100000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    background: rgba(28, 26, 23, .55);
}
.pf-balikovna-modal[hidden] { display: none; }

.pf-balikovna-modal__dialog {
    display: flex;
    flex-direction: column;
    width: min(560px, 100%);
    height: min(820px, 100%);
    background: var(--pf-white, #fff);
    border-radius: var(--pf-radius-md);
    box-shadow: var(--pf-shadow-lg);
    overflow: hidden;
}

.pf-balikovna-modal__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .65rem .5rem .65rem 1rem;
    border-bottom: 1px solid var(--pf-border);
}
.pf-balikovna-modal__title {
    font-weight: 600;
    color: var(--pf-contrast);
}
.pf-balikovna-modal__close {
    border: 0;
    background: none;
    padding: .25rem .75rem;
    font-size: 1.6rem;
    line-height: 1;
    color: var(--pf-muted);
    cursor: pointer;
}
.pf-balikovna-modal__close:hover,
.pf-balikovna-modal__close:focus { color: var(--pf-contrast); }

.pf-balikovna-modal__iframe {
    flex: 1;
    width: 100%;
    min-height: 0;
    border: 0;
}

/* Neposouvat stránku pod otevřeným modalem. */
html.pf-balikovna-modal-open,
html.pf-balikovna-modal-open body { overflow: hidden; }

/* Blok Balíkovny na děkovací stránce / v Mém účtu. */
.pf-balikovna-point-box {
    margin: 1.5rem 0;
    padding: 1rem 1.25rem;
    background: var(--pf-surface);
    border: 1px solid var(--pf-border);
    border-radius: var(--pf-radius-md);
}
.pf-balikovna-point-box h2 {
    margin: 0 0 .35rem;
    font-size: 1.15rem;
}
.pf-balikovna-point-box address {
    margin: 0;
    font-style: normal;
    line-height: 1.55;
}

/* Loga Balíkovny u výběru dopravy („ideální varianta" z manuálu). */
#shipping_method li,
.woocommerce-shipping-methods li {
    line-height: 1.4;
}
.pf-balikovna-logo {
    display: inline-block;
    vertical-align: middle;
    width: auto;
    margin: .1rem .35rem .1rem 0;
}
.pf-balikovna-logo--pickup { height: 22px; }
.pf-balikovna-logo--address { height: 30px; }
.pf-balikovna-rate {
    vertical-align: middle;
    white-space: nowrap;
}
.pf-balikovna-desc {
    display: block;
    margin-top: .1rem;
    font-size: .8rem;
    line-height: 1.45;
    color: var(--pf-muted);
}
