/* ============================================================================
   mimeble — kierunek „Pion": czysta biel, jedna rodzina pisma, jeden znak stanu.

   PISMO: jedna rodzina — Manrope (300/400/500/700), zmienna, z Google Fonts.
   Wszędzie przez var(--mim-font); nie wpisywać nazwy kroju w regułach.
   Cyfry w cenach, licznikach i tabelach chodzą na tabular-nums, żeby stały w kolumnie.

   PALETA: sześć wartości i ani jednej więcej.
     #FFFFFF tło · #111111 tekst · #6B6B6B tekst poboczny · #9A9A9A trzeciorzędny
     #E8E8E8 linia · #72BB53 zieleń z logotypu
   Czerwień #A6323A zostaje wyłącznie na komunikaty błędu.

   ZIELEŃ ma zamkniętą listę miejsc:
     1. pionowa kreska 2 px przy lewej krawędzi = „tu jesteś / to wybrałeś" (jedyny nośnik stanu)
     2. przycisk główny (Do koszyka, Przejdź do kasy)
     3. kropka dostępności
     4. kropka po nagłówku sekcji
   Nigdzie indziej — w szczególności żadnych zielonych teł, tintów ani jaśniejszych odcieni.

   Tło jest zawsze #fff. Zdjęcia produktów NIE dostają żadnego tła ani ramki —
   ich własna biel ma się zlewać z tłem strony. Nie dodawać tu background,
   border ani box-shadow na kontenerach zdjęć, bo to psuje cały układ.
   ============================================================================ */

:root {
  --mim-font: Manrope, "Segoe UI", system-ui, -apple-system, sans-serif;
  --mim-ink: #111111;
  --mim-green: #72bb53;
  --mim-green-dk: #5da23f;      /* tylko hover przycisku głównego */
  --mim-muted: #6b6b6b;
  --mim-faint: #9a9a9a;
  --mim-soft: #6b6b6b;          /* dawny szarozielony #6e7369 — Pion nie ma zielonych szarości */
  --mim-line: #e8e8e8;
  --mim-line-2: #f2f2f2;
  --mim-wash: #f7f7f5;          /* neutralne tło pomocnicze; dawniej zielony tint #eef5ea */
}

*, *::before, *::after { box-sizing: border-box; }

/* Szuflada koszyka WooCommerce siedzi w DOM-ie na stałe, zaparkowana za prawą krawędzią ekranu
   (480 px) i pozycjonowana `fixed`, więc obcięcie na `body` jej nie dotyczy — dokument rósł do
   855 px przy oknie 375 px i strona jechała na boki. W stanie schowanym po prostu jej nie ma. */
.wc-block-components-drawer__screen-overlay--is-hidden { display: none !important; }

body {
  background: #fff;
  color: var(--mim-ink);
  font-family: var(--mim-font);
  /* Nie ma tu obcięcia przewijania w poziomie: `overflow-x: clip` na html albo body ŁAMIE
     `position: sticky` w środku (przyklejony nagłówek na telefonie przestawał się kleić).
     Prawdziwą przyczynę szerokiego dokumentu — zaparkowaną szufladę koszyka WooCommerce —
     wyłącza reguła przy `.wc-block-components-drawer__screen-overlay--is-hidden`. */
  -webkit-font-smoothing: antialiased;
}
a { transition: color .15s ease; }
img { max-width: 100%; height: auto; }

/* ── nagłówek ─────────────────────────────────────────────────────────────── */
.mimeble-header { background: #fff; }
.mimeble-header__main { padding-top: 20px; padding-bottom: 14px; }
.mimeble-header__row { gap: 2rem; }
.mimeble-logo img { max-height: 38px; width: auto; }

/* rząd kategorii — własny wiersz, bo dziesięć pozycji nie zmieści się obok logo */
.mimeble-navbar { border-top: 1px solid var(--mim-line); padding-top: 10px; padding-bottom: 10px; }
.mimeble-nav__menu { width: 100%; }
.mimeble-nav__menu .wp-block-navigation__container { gap: 1.55rem; row-gap: .4rem; }
.mimeble-nav__menu .wp-block-navigation-item__content {
  color: #3a3d37; padding-bottom: 4px; font-size: .875rem;
}
.mimeble-nav__menu .wp-block-navigation-item__content:hover,
.mimeble-nav__menu .current-menu-item > .wp-block-navigation-item__content {
  color: var(--mim-ink);
}
/* podkreślenie aktywnej kategorii — jedno z czterech miejsc na zieleń */
.mimeble-nav__menu .current-menu-item > .wp-block-navigation-item__content,
.mimeble-nav__menu .current-menu-ancestor > .wp-block-navigation-item__content {
  box-shadow: inset 0 -2px 0 var(--mim-green);
}
.mimeble-nav__menu .wp-block-navigation__submenu-container {
  border: 1px solid var(--mim-line); border-radius: 0; box-shadow: none;
  min-width: 220px; padding: .35rem 0; background: #fff;
}
.mimeble-nav__menu .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
  padding: .45rem 1.1rem; box-shadow: none;
}

.mimeble-search { flex: 0 1 260px; }
.mimeble-search .wp-block-search__inside-wrapper {
  border: 0; border-bottom: 1px solid var(--mim-line); padding: 0; border-radius: 0;
}
.mimeble-search .wp-block-search__input {
  border: 0; background: transparent; padding: .45rem 0; font: inherit; font-size: .875rem;
}
.mimeble-search .wp-block-search__input::placeholder { color: var(--mim-muted); }
.mimeble-search .wp-block-search__button {
  background: transparent !important; color: var(--mim-muted) !important;
  border: 0; padding: 0 .35rem; min-width: 0;
}
.mimeble-search .wp-block-search__button:hover { color: var(--mim-green-dk) !important; }

.mimeble-header__tools { gap: 1.6rem; }
.mimeble-header__tools .wc-block-customer-account,
.mimeble-wishlist-link { font-size: .78rem; margin: 0; }
.mimeble-header__tools a { color: var(--mim-soft); }
.mimeble-header__tools a:hover { color: var(--mim-ink); }
.wc-block-customer-account a,
.mimeble-wishlist-link a { display: flex; align-items: center; gap: .45rem; }
.mimeble-header__tools svg { width: 19px; height: 19px; }
.wc-block-mini-cart__button {
  border: 0; padding: 0; color: var(--mim-soft); font-size: .78rem; gap: .45rem;
}
.wc-block-mini-cart__button:hover { color: var(--mim-ink); }
.wc-block-mini-cart__quantity-badge { border: 0; }

.mimeble-promise {
  border-top: 1px solid var(--mim-line); border-bottom: 1px solid var(--mim-line);
  padding-top: 10px; padding-bottom: 10px;
}
.mimeble-promise__row { gap: 1.9rem; font-size: .72rem; color: var(--mim-muted); letter-spacing: .06em; }
.mimeble-promise__row p { margin: 0; position: relative; }
.mimeble-promise__row p:not(:last-child)::after {
  content: "·"; position: absolute; right: -1.05rem; color: #c9cdc4;
}

/* ── nawigacja okruszkowa ─────────────────────────────────────────────────── */
.woocommerce-breadcrumb, .mimeble-breadcrumbs {
  font-size: .72rem; color: var(--mim-muted); letter-spacing: .03em;
  margin: 16px 0 22px; padding: 0;
}
.woocommerce-breadcrumb a { color: var(--mim-muted); }
.woocommerce-breadcrumb a:hover { color: var(--mim-ink); }
.mimeble-bc-sep { margin: 0 .45em; color: #c9cdc4; }

/* ── nagłówki sekcji ──────────────────────────────────────────────────────── */
.mimeble-section-title,
.woocommerce-products-header__title.page-title,
.woocommerce .related > h2, .woocommerce .upsells > h2 {
  font-family: var(--mim-font); font-weight: 300; letter-spacing: -.015em;
  color: var(--mim-ink); margin: 0 0 1.4rem;
}
.woocommerce-products-header__title.page-title { font-size: clamp(1.7rem, 3.2vw, 2.35rem); margin-bottom: .3rem; }
.mimeble-section-title { font-size: clamp(1.5rem, 2.8vw, 2rem); }
/* kropka po nagłówku sekcji — jedno z czterech miejsc na zieleń */
.mimeble-section-title::after { content: "."; color: var(--mim-green); }
.woocommerce .related > h2, .woocommerce .upsells > h2 { font-size: 1.5rem; margin-top: 3.5rem; }

/* ── przyciski ────────────────────────────────────────────────────────────── */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce a.button.alt,
.woocommerce button.button.alt, .woocommerce input.button.alt,
.wp-element-button, .wp-block-button__link {
  background: var(--mim-green) !important; color: #fff !important;
  border: 0; border-radius: 0; font-family: var(--mim-font); font-weight: 500;
  font-size: .9375rem; letter-spacing: .02em; text-transform: none; padding: .9rem 1.9rem;
  transition: background .15s ease;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover,
.wp-element-button:hover, .wp-block-button__link:hover {
  background: var(--mim-green-dk) !important; color: #fff !important;
}
.woocommerce a.button.disabled, .woocommerce button.button:disabled { opacity: .45; }
/* Przycisk drugoplanowy — kontur, bez wypełnienia.
   Selektory muszą być co najmniej tak specyficzne jak `.woocommerce a.button` powyżej,
   bo przy dwóch regułach z !important wygrywa wyższa specyficzność, nie kolejność. */
.woocommerce a.button.mimeble-btn-ghost,
.woocommerce button.button.mimeble-btn-ghost,
.woocommerce input.button.mimeble-btn-ghost,
.wp-block-button.mimeble-btn-ghost .wp-block-button__link,
a.wp-block-button__link.mimeble-btn-ghost,
.woocommerce .button.wc-backward {
  background: transparent !important; color: var(--mim-ink) !important;
  border: 1px solid var(--mim-line) !important; box-shadow: none !important;
}
.woocommerce a.button.mimeble-btn-ghost:hover,
.woocommerce button.button.mimeble-btn-ghost:hover,
.woocommerce input.button.mimeble-btn-ghost:hover,
.wp-block-button.mimeble-btn-ghost .wp-block-button__link:hover,
a.wp-block-button__link.mimeble-btn-ghost:hover,
.woocommerce .button.wc-backward:hover {
  background: transparent !important; border-color: var(--mim-ink) !important; color: var(--mim-ink) !important;
}

/* ── SIATKA PRODUKTÓW — bez kafli, bez ramek, bez cieni ───────────────────── */
.woocommerce ul.products,
.woocommerce-page ul.products {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: 44px; row-gap: 56px;
  margin: 0 0 3rem; padding: 0; list-style: none;
}
.woocommerce ul.products::before, .woocommerce ul.products::after { content: none !important; display: none !important; }
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
  width: auto !important; float: none !important; margin: 0 !important; padding: 0;
  border: 0; background: none; box-shadow: none; text-align: left; position: relative;
}
.woocommerce ul.products li.product:hover { box-shadow: none; border: 0; }

/* zdjęcie: przezroczysty kontener, obraz w całości, biel zdjęcia = biel strony */
.woocommerce ul.products li.product a img,
.woocommerce ul.products li.product img {
  width: 100%; aspect-ratio: 1 / 1; object-fit: contain;
  background: none; border: 0; border-radius: 0; box-shadow: none;
  padding: 7%; margin: 0 0 .9rem; transition: transform .25s ease;
}
.woocommerce ul.products li.product a:hover img { transform: scale(1.03); }

.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--mim-font); font-size: 1rem; font-weight: 400; line-height: 1.32;
  color: var(--mim-ink); padding: 0; margin: 0 0 .3rem;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.woocommerce ul.products li.product a:hover .woocommerce-loop-product__title {
  box-shadow: inset 0 -1px 0 var(--mim-ink);
}
.woocommerce ul.products li.product .price {
  font-family: var(--mim-font); font-size: 1rem; font-weight: 500; color: var(--mim-ink);
  margin: 0; font-variant-numeric: tabular-nums; display: block;
}
.woocommerce ul.products li.product .price del { color: var(--mim-muted); font-weight: 400; opacity: 1; margin-right: .4em; }
.woocommerce ul.products li.product .price ins { color: var(--mim-ink); text-decoration: none; font-weight: 500; }
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart { display: none; }
.woocommerce ul.products li.product .star-rating { display: none; }

/* kategoria nad nazwą */
.mimeble-loop-cat {
  font-size: .65rem; letter-spacing: .15em; text-transform: uppercase;
  color: var(--mim-muted); font-weight: 700; margin: 0 0 .3rem;
}
/* dostępność — jedno z czterech miejsc na zieleń */
.mimeble-stock {
  display: flex; align-items: center; gap: .45rem;
  font-size: .72rem; color: var(--mim-soft); margin: .45rem 0 0;
}
.mimeble-stock::before {
  content: ""; width: 6px; height: 6px; border-radius: 50%;
  background: var(--mim-green); flex: 0 0 auto;
}
.mimeble-stock.is-out::before { background: #c9cdc4; }

/* stare etykiety i plakietki — wyłączone w tym kierunku */
.mimeble-labels, .onsale, .wc-block-grid__product-onsale { display: none !important; }

/* pasek nad listą */
.woocommerce .woocommerce-result-count { font-size: .8rem; color: var(--mim-muted); margin: 0; }
.woocommerce .woocommerce-ordering select {
  border: 0; border-bottom: 1px solid var(--mim-line); border-radius: 0;
  padding: .35rem 1.6rem .35rem 0; font-size: .8rem; color: var(--mim-ink); background-color: transparent;
}
.term-description { color: var(--mim-soft); font-size: .95rem; max-width: 62ch; }

/* paginacja */
.woocommerce nav.woocommerce-pagination { margin: 1rem 0 3rem; }
.woocommerce nav.woocommerce-pagination ul,
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  border: 0; border-radius: 0; margin: 0 .1rem; padding: .5em .85em;
  font-family: var(--mim-font); font-size: .95rem; color: var(--mim-soft); background: none;
}
.woocommerce nav.woocommerce-pagination ul li span.current {
  color: var(--mim-ink); background: none; box-shadow: inset 0 -2px 0 var(--mim-ink);
}
.woocommerce nav.woocommerce-pagination ul li a:hover { background: none; color: var(--mim-ink); }

/* ── KARTA PRODUKTU ───────────────────────────────────────────────────────── */
.woocommerce div.product { margin-top: .5rem; }
.woocommerce div.product div.images { margin-bottom: 2rem; }
.woocommerce div.product div.images img {
  border: 0; border-radius: 0; box-shadow: none; background: none;
  aspect-ratio: 1 / 1; object-fit: contain; padding: 4%;
}
.woocommerce div.product div.images .flex-control-thumbs { margin: 1rem 0 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; }
.woocommerce div.product div.images .flex-control-thumbs li { width: auto; margin: 0; float: none; }
.woocommerce div.product div.images .flex-control-thumbs li img {
  border: 0; border-radius: 0; padding: 9%; opacity: .75; transition: opacity .15s ease;
}
.woocommerce div.product div.images .flex-control-thumbs li img:hover { opacity: 1; }
/* aktywna miniatura — jedno z czterech miejsc na zieleń */
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active {
  opacity: 1; box-shadow: inset 0 -2px 0 var(--mim-green);
}
.woocommerce div.product .woocommerce-product-gallery__trigger { display: none; }

.woocommerce div.product .product_title {
  font-family: var(--mim-font); font-weight: 300; font-size: clamp(1.6rem, 3vw, 2.1rem);
  line-height: 1.14; letter-spacing: -.015em; margin: 0 0 .3rem;
}
.mimeble-sku { font-size: .72rem; color: var(--mim-muted); letter-spacing: .05em; margin: 0 0 1.4rem; }
.mimeble-price-label { color: var(--mim-muted); font-size: .78rem; margin: 0 0 .1rem; letter-spacing: .02em; }
.woocommerce div.product p.price, .woocommerce div.product span.price {
  font-family: var(--mim-font); font-size: 2rem; font-weight: 400; color: var(--mim-ink);
  margin: 0 0 .2rem; font-variant-numeric: tabular-nums; line-height: 1.2;
}
.woocommerce div.product p.price del { font-size: 1.05rem; color: var(--mim-muted); font-weight: 400; opacity: 1; }
.woocommerce div.product p.price ins { color: var(--mim-ink); text-decoration: none; }
.mimeble-vat { font-size: .72rem; color: var(--mim-muted); margin: 0 0 1rem; }
.mimeble-delivery { font-size: .8rem; color: var(--mim-soft); margin: 0 0 1.4rem; }
.mimeble-delivery__free { color: var(--mim-ink); font-weight: 600; }
.woocommerce div.product .stock { font-size: .8rem; margin: 0 0 1.2rem; display: flex; align-items: center; gap: .45rem; }
.woocommerce div.product .stock::before {
  content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--mim-green); flex: 0 0 auto;
}
.woocommerce div.product .stock.in-stock { color: var(--mim-soft); }
.woocommerce div.product .stock.out-of-stock { color: var(--mim-soft); font-weight: 400; }
.woocommerce div.product .stock.out-of-stock::before { background: #c9cdc4; }

.woocommerce div.product form.cart { margin: 1.6rem 0 .6rem; display: flex; gap: .7rem; align-items: stretch; flex-wrap: wrap; }
.woocommerce div.product form.cart .quantity { margin: 0; }
.woocommerce div.product form.cart .quantity .qty {
  border: 1px solid var(--mim-line); border-radius: 0; height: 100%; min-height: 46px;
  width: 64px; text-align: center; font-family: var(--mim-font); font-size: .95rem; color: var(--mim-ink);
}
.woocommerce div.product form.cart .button { min-height: 46px; flex: 1 1 220px; }
.woocommerce div.product form.cart .variations { display: block; width: 100%; margin: 0 0 1rem; }
.woocommerce div.product form.cart .variations table,
.woocommerce div.product form.cart .variations tbody,
.woocommerce div.product form.cart .variations tr,
.woocommerce div.product form.cart .variations td { display: block; width: 100%; border: 0; padding: 0; }
.woocommerce div.product form.cart .variations label {
  font-family: var(--mim-font); font-weight: 400; font-size: .8rem; color: var(--mim-muted);
  letter-spacing: .08em; text-transform: uppercase; margin: 0 0 .4rem; display: block;
}
.woocommerce div.product form.cart .variations select {
  border: 0; border-bottom: 1px solid var(--mim-line); border-radius: 0;
  padding: .55rem 0; width: 100%; font-size: .95rem; color: var(--mim-ink); background-color: transparent;
}
.woocommerce div.product form.cart .reset_variations { font-size: .72rem; color: var(--mim-muted); }
.mimeble-notify { margin-top: .4rem; display: inline-block; }
.woocommerce div.product .product_meta { font-size: .75rem; color: var(--mim-muted); margin-top: 1.6rem; }
.woocommerce div.product .product_meta > span { display: block; padding: .35rem 0; border-top: 1px solid var(--mim-line-2); }

/* zakładki */
.woocommerce div.product .woocommerce-tabs { margin-top: 3.5rem; }
.woocommerce div.product .woocommerce-tabs ul.tabs {
  padding: 0; margin: 0 0 2rem; border-bottom: 1px solid var(--mim-line); display: flex; gap: 2rem;
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { content: none !important; display: none !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
  background: none; border: 0; border-radius: 0; margin: 0; padding: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  font-family: var(--mim-font); padding: .7rem 0; color: var(--mim-muted); font-weight: 400; font-size: 1rem;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
  color: var(--mim-ink); box-shadow: inset 0 -2px 0 var(--mim-ink);
}
.woocommerce div.product .woocommerce-tabs .panel { padding: 0; max-width: 74ch; }
.woocommerce div.product .woocommerce-tabs .panel > h2:first-of-type { display: none; }
.woocommerce div.product .woocommerce-tabs .panel h3 { font-size: 1.15rem; margin: 1.6rem 0 .5rem; font-family: var(--mim-font); font-weight: 400; }
.woocommerce div.product .woocommerce-tabs .panel p { margin: 0 0 .9rem; }
.woocommerce div.product .woocommerce-tabs .panel ul { padding-left: 1.1rem; }
.woocommerce div.product .woocommerce-tabs .panel img { height: auto; margin: 1rem 0; }
.mimeble-gpsr h3 { font-size: .95rem; font-weight: 700; font-family: var(--mim-font); margin: 1.2rem 0 .3rem; }
.mimeble-gpsr p { color: var(--mim-soft); font-size: .9rem; }

/* tabela atrybutów jako pary etykieta / wartość, bez ramek */
.woocommerce div.product .shop_attributes { border: 0; border-top: 1px solid var(--mim-line); margin: 0; }
.woocommerce div.product .shop_attributes tr { border: 0; }
.woocommerce div.product .shop_attributes th,
.woocommerce div.product .shop_attributes td {
  border: 0; border-bottom: 1px solid var(--mim-line-2); padding: .7rem 0;
  font-size: .875rem; background: none !important; font-style: normal;
}
.woocommerce div.product .shop_attributes th { color: var(--mim-muted); font-weight: 400; width: 45%; }
.woocommerce div.product .shop_attributes td { color: var(--mim-ink); font-variant-numeric: tabular-nums; }
.woocommerce div.product .shop_attributes td p { margin: 0; }

/* opinie */
.woocommerce #reviews #comments h2 { font-family: var(--mim-font); font-weight: 300; font-size: 1.35rem; }
.woocommerce .star-rating span::before, .woocommerce .star-rating::before, .woocommerce p.stars a { color: var(--mim-green); }
.woocommerce #review_form #respond input[type=text],
.woocommerce #review_form #respond textarea {
  border: 1px solid var(--mim-line); border-radius: 0; padding: .7rem;
}

/* ── koszyk, zamówienie, konto ────────────────────────────────────────────── */
.woocommerce table.shop_table { border: 0; border-top: 1px solid var(--mim-line); border-radius: 0; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td {
  border-top: 0; border-bottom: 1px solid var(--mim-line-2); padding: 1rem .6rem;
}
.woocommerce table.shop_table th { font-family: var(--mim-font); font-weight: 500; font-size: .8rem; letter-spacing: .06em; text-transform: uppercase; color: var(--mim-muted); }
.woocommerce table.cart img { width: 62px; aspect-ratio: 1/1; object-fit: contain; }
.woocommerce-cart table.cart td.actions .coupon .input-text {
  border: 1px solid var(--mim-line); border-radius: 0; padding: .7rem;
}
.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(--mim-line); border-radius: 0; padding: .7rem .8rem; height: auto; font-size: .95rem;
}
.woocommerce form .form-row label { font-size: .8rem; color: var(--mim-soft); }
.woocommerce-checkout #payment { background: #fff; border: 1px solid var(--mim-line); border-radius: 0; }
.woocommerce-checkout #payment ul.payment_methods { border-bottom: 1px solid var(--mim-line); }
.woocommerce-checkout #payment div.payment_box { background: #fafbf9; border-radius: 0; font-size: .875rem; }
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: #fafbf9; }
.woocommerce .cart_totals h2, .woocommerce-checkout h3 { font-family: var(--mim-font); font-weight: 300; }
.woocommerce-info, .woocommerce-message { border-top-color: var(--mim-green); background: #fafbf9; border-radius: 0; }
.woocommerce-info::before, .woocommerce-message::before { color: var(--mim-green); }
.woocommerce-error { border-top-color: #a6323a; background: #fdfafa; border-radius: 0; }
.woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; margin: 0; }
.woocommerce-MyAccount-navigation ul li a {
  display: block; padding: .65rem 0; border-bottom: 1px solid var(--mim-line-2); color: var(--mim-soft); font-size: .95rem;
}
.woocommerce-MyAccount-navigation ul li.is-active a { color: var(--mim-ink); font-weight: 600; }

/* ── ulubione ─────────────────────────────────────────────────────────────── */
.yith-wcwl-add-to-wishlist { margin-top: .6rem; font-size: .78rem; }
.yith-wcwl-add-to-wishlist a { color: var(--mim-soft) !important; }
.yith-wcwl-add-to-wishlist a:hover { color: var(--mim-ink) !important; }

/* ── stopka ───────────────────────────────────────────────────────────────── */
.mimeble-footer { border-top: 1px solid var(--mim-line); background: #fff; }
.mimeble-footer__list { list-style: none; padding: 0; margin: 0; }
.mimeble-footer__list li { margin-bottom: .45rem; }
.mimeble-footer a { color: var(--mim-soft); }
.mimeble-footer a:hover { color: var(--mim-ink); }
.mimeble-footer h3 { font-family: var(--mim-font); font-size: .78rem; letter-spacing: .13em; text-transform: uppercase; font-weight: 700; color: var(--mim-ink); }
.mimeble-footer .wp-block-social-links { margin-top: 1.1rem; }

/* ── banery na stronie głównej ────────────────────────────────────────────── */
.mimeble-banner img { border-radius: 0; width: 100%; height: auto; }

/* ── responsywność ────────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
  .woocommerce ul.products, .woocommerce-page ul.products { column-gap: 30px; row-gap: 44px; }
}
@media (max-width: 781px) {
  .mimeble-header__row { gap: 1rem; }
  /* blok wyszukiwarki ma własną szerokość w atrybutach (220px) — na telefonie musi ustąpić */
  .mimeble-search { order: 3; flex-basis: 100%; width: 100% !important; max-width: 100%; }
  .mimeble-header__tools { width: 100%; flex-wrap: wrap; justify-content: flex-start; }
  .mimeble-promise__row { gap: 1.1rem; font-size: .68rem; }
  /* przy zawijaniu do dwóch wierszy kropka rozdzielająca zostaje wisieć na końcu linii */
  .mimeble-promise__row p:not(:last-child)::after { content: none; }
  .woocommerce ul.products, .woocommerce-page ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 20px; row-gap: 34px;
  }
  .woocommerce div.product .woocommerce-tabs ul.tabs { gap: 1.2rem; overflow-x: auto; }
  .woocommerce div.product form.cart .button { flex-basis: 100%; }
  .woocommerce div.product div.images .flex-control-thumbs { grid-template-columns: repeat(4, 1fr); gap: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; }
  .woocommerce ul.products li.product a:hover img { transform: none; }
}


/* ── baner cookies ────────────────────────────────────────────────────────────
   Wtyczka używa klasy .button, którą motyw maluje na zielono. To nie jest akcja
   sklepowa, więc zieleń jej nie przysługuje: zgoda na ciemno, reszta konturem. */
#cookie-notice { font-family: var(--mim-font) !important; }
#cookie-notice .cn-button,
#cookie-notice .cn-button.button,
#cookie-notice a.cn-set-cookie,
#cookie-notice a.cn-more-info {
  background: transparent !important; color: var(--mim-ink) !important;
  border: 1px solid var(--mim-line) !important; border-radius: 0 !important;
  font-family: var(--mim-font) !important; font-weight: 400 !important;
  font-size: .85rem !important; padding: .55rem 1.2rem !important; text-shadow: none !important;
}
#cookie-notice a.cn-set-cookie.cn-button[data-cookie-set="accept"],
#cookie-notice #cn-accept-cookie {
  background: var(--mim-ink) !important; color: #fff !important; border-color: var(--mim-ink) !important;
}
#cookie-notice .cn-button:hover { border-color: var(--mim-ink) !important; }
.cookie-notice-container { padding: 14px 20px !important; }
#cookie-notice .cn-text-container { font-size: .82rem !important; color: var(--mim-soft) !important; }


/* ── blokowe siatki produktów (strona główna: Polecane / Bestsellery / Nowości) ──
   Klasyczna pętla `ul.products` i bloki WooCommerce to dwa różne drzewa HTML.
   Te same zasady muszą być zapisane dla obu, inaczej strona główna wygląda inaczej
   niż listing kategorii. */
.wc-block-grid__products,
.wp-block-woocommerce-product-collection .wc-block-product-template,
.wc-block-product-template {
  display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr));
  column-gap: 34px; row-gap: 46px; margin: 0 0 1rem; padding: 0; list-style: none;
}
.wc-block-grid__product,
.wc-block-product-template .wc-block-product {
  width: auto !important; margin: 0 !important; padding: 0 !important;
  border: 0 !important; background: none !important; box-shadow: none !important; text-align: left !important;
}
.wc-block-grid__product-image,
.wc-block-product-template .wc-block-components-product-image { margin: 0 0 .8rem; display: block; }
.wc-block-grid__product-image img,
.wc-block-product-template .wc-block-components-product-image img {
  width: 100%; aspect-ratio: 1 / 1; object-fit: contain;
  background: none; border: 0; border-radius: 0; box-shadow: none; padding: 6%;
  transition: transform .25s ease;
}
.wc-block-grid__product-image:hover img,
.wc-block-product-template .wc-block-components-product-image:hover img { transform: scale(1.03); }
.wc-block-grid__product-title,
.wc-block-product-template .wp-block-post-title {
  font-family: var(--mim-font) !important; font-size: .95rem !important; font-weight: 400 !important;
  line-height: 1.32; color: var(--mim-ink); margin: 0 0 .3rem !important; padding: 0;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.wc-block-grid__product-title a,
.wc-block-product-template .wp-block-post-title a { color: var(--mim-ink); }
.wc-block-grid__product-price,
.wc-block-components-product-price {
  font-family: var(--mim-font) !important; font-size: .95rem; font-weight: 500;
  color: var(--mim-ink); font-variant-numeric: tabular-nums; display: block; margin: 0;
}
.wc-block-grid__product-price del, .wc-block-components-product-price del { color: var(--mim-muted); font-weight: 400; }
.wc-block-grid__product-price ins, .wc-block-components-product-price ins { color: var(--mim-ink); text-decoration: none; }
/* na kafelkach nie ma przycisków ani gwiazdek — to lista do oglądania, nie do klikania w akcje */
.wc-block-grid__product-add-to-cart,
.wc-block-grid__product-rating,
.wc-block-product-template .wp-block-button,
.wc-block-product-template .wc-block-components-product-button,
.wc-block-product-template .wc-block-components-product-rating { display: none !important; }
.wc-block-grid__product-onsale { display: none !important; }

@media (max-width: 1024px) {
  .wc-block-grid__products, .wc-block-product-template { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 24px; row-gap: 36px; }
}
@media (max-width: 781px) {
  .wc-block-grid__products, .wc-block-product-template { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 18px; row-gap: 30px; }
}

/* ── menu kategorii z wysuwanym panelem ───────────────────────────────────────
   Własne menu zamiast core/navigation: tamten blok nie umie pokazać obrazków
   w podmenu i dokłada strzałki, których w tym projekcie nie chcemy nigdzie. */
.mim-nav { position: relative; }
.mim-nav__bar { border-top: 1px solid var(--mim-line); }
.mim-nav__list {
  list-style: none; margin: 0 auto; padding: 10px 0; display: flex; flex-wrap: wrap;
  gap: .35rem 1.55rem; max-width: var(--wp--style--global--content-size, 1280px);
}
.mim-nav__item { margin: 0; display: inline-flex; align-items: center; gap: 2px; }
.mim-nav__btn {
  appearance: none; background: none; border: 0; cursor: pointer;
  font-family: var(--mim-font); font-size: .875rem; font-weight: 500; color: var(--mim-muted);
  padding: 4px 0; line-height: 1.4; display: inline-block; text-decoration: none; position: relative;
}
/* podkreślenie = „to jest link", nic więcej; stan niesie tylko kreska pionowa */
.mim-nav__btn:hover { color: var(--mim-ink); box-shadow: inset 0 -1px 0 var(--mim-ink); }
/* PIONOWA kreska 2 px przy lewej krawędzi = „tu jesteś". Jedyny nośnik stanu w całym sklepie. */
.mim-nav__btn.is-active { color: var(--mim-ink); padding-left: 10px; box-shadow: none; }
.mim-nav__btn.is-active::before {
  content: ""; position: absolute; left: 0; top: 50%; transform: translateY(-50%);
  width: 2px; height: 15px; background: var(--mim-green);
}
.mim-nav__more {
  appearance: none; background: none; border: 0; cursor: pointer; color: var(--mim-faint);
  padding: 6px 2px; line-height: 0; display: inline-flex; align-items: center;
}
.mim-nav__more:hover { color: var(--mim-ink); }
.mim-nav__more svg { transition: transform .2s ease; }
.mim-nav__item.is-open .mim-nav__more svg { transform: rotate(180deg); }
.mim-nav__item.is-open .mim-nav__more { color: var(--mim-ink); }

.mim-panel {
  max-height: 0; overflow: hidden; visibility: hidden;
  border-top: 1px solid transparent; background: #fff;
  transition: max-height .28s ease, visibility 0s linear .28s;
}
.mim-panel.is-open {
  max-height: 720px; visibility: visible; border-top-color: var(--mim-line);
  transition: max-height .32s ease, visibility 0s;
}
.mim-panel__inner {
  max-width: var(--wp--style--global--content-size, 1280px); margin: 0 auto; padding: 26px 0 30px;
}
.mim-panel__grid {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 40px;
}
/* podkategoria = wiersz 64 px z miniaturą (panel, strona kategorii, szuflada — wszędzie tak samo) */
.mim-sub {
  display: grid; grid-template-columns: 48px 1fr auto; align-items: center; gap: 14px;
  height: 64px; padding-left: 12px; position: relative;
  color: var(--mim-ink); text-decoration: none; border-bottom: 1px solid var(--mim-line-2);
}
.mim-sub:last-child { border-bottom: 0; }
.mim-sub__img { display: block; width: 48px; height: 48px; }
.mim-sub__img img { width: 100%; height: 100%; object-fit: contain; display: block; }
.mim-sub__label { font-size: .9375rem; line-height: 1.3; }
.mim-sub__count { font-size: .75rem; color: var(--mim-faint); font-variant-numeric: tabular-nums; }
.mim-sub:hover .mim-sub__label { box-shadow: inset 0 -1px 0 var(--mim-ink); }
.mim-sub.is-active::before {
  content: ""; position: absolute; left: 0; top: 8px; bottom: 8px; width: 2px; background: var(--mim-green);
}
.mim-cat { display: block; text-decoration: none; color: var(--mim-ink); }
.mim-cat__img {
  display: block; aspect-ratio: 1 / 1; margin-bottom: .55rem;
  background: none; border: 0;                       /* bez kafla, tak jak w siatce produktów */
}
.mim-cat__img img { width: 100%; height: 100%; object-fit: contain; padding: 8%; display: block; }
.mim-cat__label { display: block; font-family: var(--mim-font); font-size: .875rem; line-height: 1.3; }
.mim-cat__count { display: block; font-size: .7rem; color: var(--mim-muted); margin-top: .1rem; font-variant-numeric: tabular-nums; }
.mim-cat:hover .mim-cat__label { box-shadow: inset 0 -1px 0 var(--mim-ink); }
.mim-panel__all {
  display: inline-block; margin-top: 24px; font-size: .78rem; letter-spacing: .1em;
  text-transform: uppercase; font-weight: 700; color: var(--mim-soft); text-decoration: none;
}
.mim-panel__all:hover { color: var(--mim-ink); }

/* żadnych strzałek w menu — dotyczy też pozostałości po bloku nawigacji */
.wp-block-navigation__submenu-icon,
.mim-nav svg.wp-block-navigation__submenu-icon { display: none !important; }

@media (max-width: 1024px) {
  .mim-panel__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 28px; }
}
@media (max-width: 781px) {
  .mim-nav__list { gap: .35rem 1.1rem; overflow-x: auto; flex-wrap: nowrap; padding-bottom: 12px; }
  .mim-nav__item { flex: 0 0 auto; }
  .mim-panel__grid { grid-template-columns: 1fr; gap: 0; }
  .mim-panel.is-open { max-height: 1200px; }
}
@media (prefers-reduced-motion: reduce) {
  .mim-panel { transition: none; }
}

/* ── produkt bez zdjecia ──────────────────────────────────────────────────────
   Placeholder WooCommerce ma wlasne szare tlo i ramke; w ukladzie bez kafli to
   jedyny prostokat na stronie. Wyciszamy go, zeby nie przyciagal wzroku. */
.woocommerce ul.products li.product img.woocommerce-placeholder,
.woocommerce div.product div.images img.woocommerce-placeholder,
.wc-block-grid__product-image img.woocommerce-placeholder {
  opacity: .18; padding: 22%; background: none; border: 0; box-shadow: none;
}

/* ── cyfry tabelaryczne (Pion) ─────────────────────────────────────────────────
   Manrope ma prawdziwy zestaw tnum; bez niego ceny w siatce i liczniki w menu
   „tańczą" o pół znaku, bo cyfra 1 jest węższa od pozostałych. */
.woocommerce .price,
.woocommerce-Price-amount,
.mimeble-sku,
.mimeble-stock,
.mim-cat__count,
.mim-count,
.woocommerce table.shop_table td,
.woocommerce .quantity input {
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

/* ── kafle kategorii i wiersze podkategorii (Pion) ────────────────────────────
   Kafel = zdjęcie produktu-bohatera na bieli, pod nim nazwa ze strzałką i licznik.
   Bez ramki, bez tła, bez cienia — biel zdjęcia zlewa się z tłem strony, jak w siatce produktów.
   Kafle istnieją TYLKO dla kategorii głównych na stronie głównej; wszędzie indziej kategorie
   są wierszami 64 px (.mim-sub). */
.mimeble-home-title { margin-bottom: 1.6rem; }
.mim-tiles {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px 32px;
}
.mim-tile { display: block; text-decoration: none; color: var(--mim-ink); }
.mim-tile__img { display: block; aspect-ratio: 4 / 3; margin-bottom: .7rem; }
.mim-tile__img img { width: 100%; height: 100%; object-fit: contain; display: block; }
.mim-tile__row { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.mim-tile__name {
  font-size: 1.0625rem; font-weight: 500; line-height: 1.25;
  /* dwie linijki zawsze, także gdy nazwa jest krótka — inaczej liczniki pod kaflami
     w jednym rzędzie stoją na różnych wysokościach (np. „Salon" obok „Przedpokój i garderoba") */
  min-height: 2.5em;
}
.mim-tile__arrow { color: var(--mim-faint); font-size: .95rem; transition: color .15s ease, transform .15s ease; }
.mim-tile__count {
  display: block; font-size: .8125rem; color: var(--mim-faint); margin-top: .2rem;
  font-variant-numeric: tabular-nums;
}
.mim-tile:hover .mim-tile__name { box-shadow: inset 0 -1px 0 var(--mim-ink); }
.mim-tile:hover .mim-tile__arrow { color: var(--mim-ink); transform: translateX(2px); }

.mim-rest { margin: 2rem 0 0; font-size: .875rem; color: var(--mim-muted); line-height: 2; }
.mim-rest a { color: var(--mim-ink); text-decoration: none; }
.mim-rest a:hover { box-shadow: inset 0 -1px 0 var(--mim-ink); }
.mim-rest__n { color: var(--mim-faint); font-variant-numeric: tabular-nums; }
.mim-rest__sep { color: var(--mim-line); margin: 0 .35rem; }

.mim-subs {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 40px;
  margin: 0 0 2.2rem; padding: .2rem 0 .2rem 14px;
  /* zielona kreska wzdłuż CAŁEJ listy kategorii — znak „to jest menu tej gałęzi”;
     kreska przy pojedynczym wierszu znaczy co innego („tu jesteś”) i zostaje nietknięta */
  border-left: 2px solid var(--mim-green);
}
@media (max-width: 1024px) {
  .mim-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 34px 26px; }
  .mim-subs { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 28px; }
}
@media (max-width: 781px) {
  .mim-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px 18px; }
  .mim-tile__name { font-size: .9375rem; }
  .mim-subs { grid-template-columns: 1fr; gap: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .mim-tile__arrow { transition: none; }
}

/* ── szyna filtrów i pasek nad siatką (Pion) ──────────────────────────────────
   Lista produktów to dwie kolumny: szyna 230 px i siatka. Aktywny filtr ma pionową
   kreskę 2 px — ten sam znak, co aktywna kategoria w menu i wybrana miniatura. */
.mim-archive { display: grid; grid-template-columns: 230px minmax(0, 1fr); gap: 0 40px; align-items: start; }
.mim-archive.is-bare { display: block; }
.mim-archive__list { min-width: 0; }
.mim-rail { position: sticky; top: 24px; }
.mim-rail__box { border: 0; }
.mim-rail__sum {
  list-style: none; cursor: pointer; display: flex; align-items: center; gap: 8px;
  font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--mim-faint);
  padding-bottom: 10px; border-bottom: 1px solid var(--mim-line);
}
.mim-rail__sum::-webkit-details-marker { display: none; }
.mim-rail__badge { color: var(--mim-ink); font-variant-numeric: tabular-nums; letter-spacing: 0; }
.mim-rail__grp { padding: 16px 0; border-bottom: 1px solid var(--mim-line-2); }
.mim-rail__grp:last-child { border-bottom: 0; }
.mim-rail__lab {
  font-size: .72rem; letter-spacing: .1em; text-transform: uppercase;
  color: var(--mim-faint); margin: 0 0 6px;
}
.mim-rail__list { list-style: none; margin: 0; padding: 0; }
.mim-rail__opt {
  display: flex; justify-content: space-between; align-items: baseline; gap: 10px;
  min-height: 32px; padding: 6px 0 6px 12px; position: relative;
  color: var(--mim-ink); text-decoration: none; font-size: .875rem;
}
.mim-rail__opt:hover .mim-rail__name { box-shadow: inset 0 -1px 0 var(--mim-ink); }
.mim-rail__opt.is-active .mim-rail__name { font-weight: 600; }
.mim-rail__opt.is-active::before {
  content: ""; position: absolute; left: 0; top: 7px; bottom: 7px; width: 2px; background: var(--mim-green);
}
.mim-rail__n { color: var(--mim-faint); font-size: .75rem; font-variant-numeric: tabular-nums; }
.mim-rail__clear { margin: 12px 0 0; }
.mim-rail__clear a { font-size: .8125rem; color: var(--mim-muted); text-decoration: none; }
.mim-rail__clear a:hover { color: var(--mim-ink); box-shadow: inset 0 -1px 0 var(--mim-ink); }

.mim-count { font-size: .875rem; color: var(--mim-ink); font-variant-numeric: tabular-nums; margin: 0; }
.mim-count__of { color: var(--mim-faint); }

@media (max-width: 1024px) {
  .mim-archive { grid-template-columns: 200px minmax(0, 1fr); gap: 0 28px; }
}
@media (max-width: 781px) {
  .mim-archive { display: block; }
  .mim-rail { position: static; margin-bottom: 20px; }
  .mim-rail__sum { padding: 12px 0; border-top: 1px solid var(--mim-line); }
  .mim-rail__grp { padding: 12px 0; }
  /* palec potrzebuje więcej niż 32 px wysokości wiersza */
  .mim-rail__opt { min-height: 40px; padding-top: 9px; padding-bottom: 9px; }
  .mim-rail__opt.is-active::before { top: 9px; bottom: 9px; }
}

/* ── karta produktu (Pion) ────────────────────────────────────────────────────
   Trzy stany dostępności mają trzy znaki: zielona kropka = jest na miejscu,
   obwódka = na zamówienie, szara kropka = chwilowo niedostępny. Zieleń zostaje
   wyłącznie przy stanie „jest", bo tylko to jest informacją, na którą klient czeka. */
.woocommerce div.product .stock.mim-stock-dostepny { color: var(--mim-muted); }
.woocommerce div.product .stock.mim-stock-dostepny::before { background: var(--mim-green); }
.woocommerce div.product .stock.mim-stock-na-zamowienie { color: var(--mim-muted); }
.woocommerce div.product .stock.mim-stock-na-zamowienie::before {
  background: transparent; box-shadow: inset 0 0 0 1.5px var(--mim-faint);
}
.woocommerce div.product .stock.mim-stock-niedostepny { color: var(--mim-faint); }
.woocommerce div.product .stock.mim-stock-niedostepny::before { background: var(--mim-line); }
.mimeble-stock.is-dostepny::before { background: var(--mim-green); }
.mimeble-stock.is-na-zamowienie::before { background: transparent; box-shadow: inset 0 0 0 1.5px var(--mim-faint); }
.mimeble-stock.is-niedostepny::before { background: var(--mim-line); }

.mimeble-dims {
  font-size: .875rem; color: var(--mim-muted); margin: .2rem 0 1rem;
  font-variant-numeric: tabular-nums;
}

/* próbki wariantów: miniatura produktu w danym kolorze, wybrana z pionową kreską */
.ure-variants { margin: 1.2rem 0 1rem; }
.ure-variants__axis {
  font-size: .72rem; letter-spacing: .1em; text-transform: uppercase;
  color: var(--mim-faint); margin: 0 0 .5rem;
}
.ure-variants__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.ure-variants__item { margin: 0; position: relative; padding-left: 8px; }
.ure-variants__item a, .ure-variants__item > span { display: block; text-decoration: none; color: var(--mim-ink); }
.ure-variants__img {
  display: block; width: 52px; height: 52px; object-fit: contain;
}
.ure-variants__label { display: block; font-size: .6875rem; color: var(--mim-muted); max-width: 60px; line-height: 1.25; }
.ure-variants__item.is-current::before {
  content: ""; position: absolute; left: 0; top: 2px; bottom: 2px; width: 2px; background: var(--mim-green);
}
.ure-variants__item.is-current .ure-variants__label { color: var(--mim-ink); font-weight: 600; }
.ure-variants__item.is-out .ure-variants__img { opacity: .55; }
.ure-variants-count { font-size: .72rem; color: var(--mim-faint); margin: .2rem 0 0; }

/* Galeria: listwa miniatur staje pionowo po lewej — rząd pionowy, więc i kreska pionowa.
   Reguła rusza tylko wtedy, gdy listwa naprawdę istnieje (JS galerii działa), inaczej
   zostawiałaby po sobie pustą kolumnę. */
@media (min-width: 1025px) {
  .woocommerce div.product div.images:has(.flex-control-thumbs) {
    display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 0 22px; align-items: start;
  }
  .woocommerce div.product div.images:has(.flex-control-thumbs) .flex-viewport,
  .woocommerce div.product div.images:has(.flex-control-thumbs) > .woocommerce-product-gallery__wrapper {
    grid-column: 2; grid-row: 1;
  }
  .woocommerce div.product div.images:has(.flex-control-thumbs) .flex-control-thumbs {
    grid-column: 1; grid-row: 1; display: flex; flex-direction: column; gap: 8px;
    margin: 0; padding: 0; max-height: 620px; overflow-y: auto;
  }
  .woocommerce div.product div.images .flex-control-thumbs li { padding-left: 8px; position: relative; }
  .woocommerce div.product div.images .flex-control-thumbs li:has(img.flex-active)::before {
    content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 2px; background: var(--mim-green);
  }
}

/* ── telefon: szuflada kategorii i zwarty nagłówek (Pion) ─────────────────────
   Na komputerze szuflada nie istnieje (panel po najechaniu robi to samo), więc przycisk
   i cała warstwa są ukryte aż do 781 px. */
.mim-burger { display: none; }
.mim-drawer { display: none; }

@media (max-width: 781px) {
  .mim-burger {
    display: inline-flex; align-items: center; gap: 9px; appearance: none; cursor: pointer;
    background: none; border: 0; border-top: 1px solid var(--mim-line); width: 100%;
    padding: 13px 0; font: inherit; font-size: .875rem; font-weight: 500; color: var(--mim-ink);
  }
  /* Atrybut `hidden` daje display:none tylko z arkusza przeglądarki (specyficzność zerowa),
     więc reguła .mim-drawer{display:block} niżej BIŁA go i szuflada stała otwarta po wejściu
     na stronę. Dlatego jawna reguła z selektorem atrybutu. */
  .mim-drawer[hidden] { display: none; }
  .mim-drawer {
    /* wymiary z okna (vw/vh), nie z dokumentu — dokument bywa szerszy od ekranu przez cudze
       zaparkowane szuflady, a wtedy „inset: 0" wypycha panel poza widok */
    display: block; position: fixed; left: 0; top: 0; width: 100vw; height: 100vh; height: 100dvh;
    z-index: 40; background: rgba(17, 17, 17, .35);
  }
  .mim-drawer__in {
    background: #fff; height: 100%; width: min(92vw, 420px); margin-left: auto;
    overflow-y: auto; padding: 0 18px 28px; -webkit-overflow-scrolling: touch;
  }
  .mim-drawer__hd {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    padding: 16px 0 12px; position: sticky; top: 0; background: #fff;
    border-bottom: 1px solid var(--mim-line);
  }
  .mim-drawer__hd strong { font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; color: var(--mim-faint); font-weight: 500; }
  .mim-dgrp { border-bottom: 1px solid var(--mim-line-2); }
  .mim-drow {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    min-height: 52px; padding-left: 12px; position: relative;
    color: var(--mim-ink); text-decoration: none; font-size: 1rem; font-weight: 500;
  }
  .mim-drow__n { color: var(--mim-faint); font-size: .78rem; font-variant-numeric: tabular-nums; }
  .mim-drow.is-active::before {
    content: ""; position: absolute; left: 0; top: 10px; bottom: 10px; width: 2px; background: var(--mim-green);
  }
  .mim-dsub { padding: 0 0 10px; }
  .mim-dsub > summary {
    list-style: none; cursor: pointer; font-size: .78rem; color: var(--mim-muted);
    padding: 4px 0 8px 12px;
  }
  .mim-dsub > summary::-webkit-details-marker { display: none; }
  .mim-dsub .mim-subs { grid-template-columns: 1fr; margin: 0; }
  .mim-dsub .mim-sub { height: 60px; }
  .mim-drawer__ft { display: flex; flex-wrap: wrap; gap: 14px; padding-top: 18px; }
  .mim-drawer__ft a { font-size: .875rem; color: var(--mim-muted); text-decoration: none; }
  .mim-drawer__ft a:hover { color: var(--mim-ink); }

  /* Zwarty nagłówek. Trzy wiersze zamiast sześciu: (1) logo + koszyk, (2) szukajka,
     (3) kategorie z przyciskiem szuflady po lewej. Pasek obietnic jedzie jedną linią.
     `display: contents` na grupie narzędzi rozpuszcza ją w siatce wiersza, żeby szukajka mogła
     zejść pod logo — inaczej wszystko trzy elementy zawijały się każdy do własnej linii. */
  .mimeble-header__main { padding-top: 10px; padding-bottom: 6px; }
  .mimeble-logo img { max-height: 26px; }
  /* WordPress dokłada własne reguły układu bloków (`.is-layout-flex { display: flex }`) w <style>
     DALEJ w dokumencie niż arkusz motywu, więc zwykłe `.mimeble-header__row { display: grid }`
     przegrywało. Stąd selektory z dopisanym `.is-layout-flex` — wyższa specyficzność wygrywa
     bez względu na kolejność. */
  /* Pasek jest ZAWSZE niski: logo, szukajka, planer i koszyk w jednej linii, a belka z dostawą
     tuż pod nim. Nie ma już dwóch stanów, więc nie ma czym mrugać. */
  .mimeble-header .mimeble-header__row.is-layout-flex {
    display: grid; grid-template-columns: 76px minmax(0, 1fr) auto auto; align-items: center;
    column-gap: 10px; row-gap: 0;
  }
  .mimeble-header .mimeble-header__tools.is-layout-flex { display: contents; }
  .mimeble-header .mimeble-logo { grid-column: 1; grid-row: 1; }
  .mimeble-header .mimeble-search { grid-column: 2; grid-row: 1; width: 100%; }
  .mimeble-header .mimeble-logo img { max-height: 20px; }
  .mimeble-header .mimeble-search,
  .mimeble-header .mimeble-search .wp-block-search__inside-wrapper,
  .mimeble-header .mimeble-search .wp-block-search__input { min-width: 0; }
  .mimeble-search .wp-block-search__inside-wrapper { height: 42px; }
  .mimeble-search .wp-block-search__input { height: 40px; }
  .mimeble-header .wc-block-mini-cart { grid-column: 3; grid-row: 1; justify-self: end; }
  /* blok konta ma klasę wp-block-woocommerce-customer-account (nie wc-block-…) — na telefonie
     wchodzi do szuflady, w nagłówku zabierał tylko wiersz */
  .mimeble-header__tools .wp-block-woocommerce-customer-account,
  .mimeble-header__tools .wc-block-customer-account,
  .mimeble-header__tools .mimeble-wishlist-link { display: none; }
  /* to samo co przy wierszu naglowka: `.is-layout-flex` z generowanego CSS WordPressa ustawia
     flex-wrap: wrap i wygrywa specyficznoscia, wiec dopisujemy te klase do selektora */
  .mimeble-promise .mimeble-promise__row.is-layout-flex {
    gap: 1rem; font-size: .66rem; flex-wrap: nowrap; overflow-x: auto;
    justify-content: flex-start; scrollbar-width: none;
  }
  .mimeble-promise__row::-webkit-scrollbar { display: none; }
  .mimeble-promise__row p { white-space: nowrap; }
  .mimeble-promise { padding-top: 5px; padding-bottom: 5px; }

  /* ostatnie oszczędności wysokości: paski nie potrzebują własnych marginesów, a paska przewijania
     w rzędzie kategorii nie chcemy widzieć (sam gest wystarczy) */
  .mimeble-navbar { padding-top: 0; padding-bottom: 0; }
  .mimeble-header__main { padding-bottom: 4px; }
  .mim-nav__list { padding: 6px 0; scrollbar-width: none; }
  .mim-nav__list::-webkit-scrollbar { display: none; }

  /* Belka kategorii znika z telefonu — kategorie prowadzi JEDEN przycisk „Kategorie" w dolnej
     nawigacji (otwiera szufladę z całym drzewem). Przewijany poziomo rząd pokazywał trzy pozycje
     z dziewięciu i zabierał wiersz nad treścią. Chowamy sam rząd i przycisk, nie cały `.mim-nav`,
     bo w środku siedzi szuflada — ukrycie rodzica ukryłoby i ją. */
  /* Szuflada renderuje się teraz w stopce, więc cały kontener nawigacji może zniknąć —
     wcześniej zostawał po nim pusty biały pasek 14 px pod szukajką. */
  .mimeble-navbar { display: none; }

  /* Lupa galerii jest funkcją myszy: na dotyku WooCommerce zostawia tylko podmieniony obraz
     1000 px szerokości, który nic nie powiększa, a potrafi łapać przesuwanie palcem. */
  .woocommerce div.product div.images .zoomImg { display: none !important; }
}

/* ══ TELEFON: układ w języku m.mikup.pl i jsp.mikup.pl ════════════════════════
   Tamte serwisy prowadzą telefon jednakowo: jedna duża okrągła szukajka u góry, lista jako
   pojedyncze karty na całą szerokość (nie siatka miniatur), pod kartą szeroki przycisk akcji
   i rząd kwadratowych kafelków z ikoną i podpisem, a filtry w arkuszu wysuwanym od dołu.
   Wielkości są zmierzone na jsp.mikup.pl: szukajka 52 px (promień pełny), kafelek 61 × 59 px
   (promień 10, tło #F5F5F5), przycisk akcji 52 px. Kolory zostają mimeble. */
@media (max-width: 781px) {
  /* Rząd kategorii obcinamy MIEJSCOWO: jego poddrzewo (przewijana lista + zwinięte panele)
     rozciągało dokument do 1015 px. Obcięcie na html/body łamałoby sticky, to nie. */
  .mim-nav { overflow: hidden; }

  /* Przyklejony jest CAŁY nagłówek (element sticky nie wyjdzie poza pudełko rodzica), a po
     przewinięciu strony chowamy z niego rząd kategorii i pasek obietnic — zostaje pasek jak na
     m.mikup.pl: logo, szukajka i koszyk w jednej linii. */
  /* Nagłówek stoi na STAŁEJ pozycji, a miejsce po nim trzyma podkładka o niezmiennej wysokości
     (`--mim-hdr`, mierzona raz przez JS). To nie kaprys: przy `sticky` zwijanie paska skracało
     dokument, przeglądarka sama korygowała pozycję przewijania o ~90 px i warunek „czy zwinąć"
     przełączał się w kółko — pasek mrugał. Teraz zwijanie nie rusza układu strony. */
  .wp-site-blocks > header.wp-block-template-part {
    position: fixed; top: 0; left: 0; right: 0; z-index: 30; background: #fff;
  }
  .wp-site-blocks { padding-top: var(--mim-hdr, 152px); }
  .mimeble-header { background: #fff; }
  .mimeble-header__main { border-bottom: 1px solid var(--mim-line); }
  /* (klasa „mim-scrolled” nie zmienia już nic — pasek jest niski od pierwszej sekundy) */

  /* — szukajka jako pigułka — */
  .mimeble-search .wp-block-search__inside-wrapper {
    border: 1px solid var(--mim-line); border-radius: 999px; background: var(--mim-wash);
    height: 52px; padding: 0 6px 0 16px; align-items: center;
  }
  .mimeble-search .wp-block-search__input { border: 0; background: transparent; font-size: 15px; height: 50px; }
  /* blok szukajki ma w treści ustawioną szerokość 220 px — na telefonie ma iść na całą */
  .mimeble-header .mimeble-search,
  .mimeble-header .mimeble-search .wp-block-search__inside-wrapper { width: 100% !important; max-width: none; }

  /* Select sortowania i licznik nad siatką znikają: na telefonie prowadzi dolny pasek
     („Filtry · 174 produkty · Sortuj"), a dwa te same sterowania obok siebie tylko mylą. */
  .woocommerce .mim-archive__list .woocommerce-ordering,
  .mim-archive__list > .mim-count { display: none; }
  .mimeble-search .wp-block-search__button { min-width: 40px; height: 40px; border-radius: 0 !important; }

  /* — lista: siatka dwóch kafli, rozdzielona hairline'ami (makieta) — */
  .woocommerce ul.products,
  .wc-block-product-template {
    display: grid !important; grid-template-columns: 1fr 1fr; gap: 1px;
    background: var(--mim-line); margin: 0 -16px; padding: 0;
  }
  .woocommerce ul.products li.product,
  .wc-block-product-template .wc-block-product {
    width: auto !important; float: none !important; margin: 0 !important;
    background: #fff; padding: 12px 12px 14px;
  }
  .woocommerce ul.products li.product a img {
    width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: contain; margin-bottom: 9px;
  }
  .woocommerce ul.products li.product .mimeble-loop-cat { font-size: .625rem; letter-spacing: .08em; }
  .woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-size: .875rem; line-height: 1.3; margin: 0 0 2px;
  }
  .woocommerce ul.products li.product .price { font-size: .9375rem; font-weight: 700; }
  .mim-loop-dims {
    font-size: .71875rem; color: var(--mim-faint); margin: 0 0 5px; font-variant-numeric: tabular-nums;
  }
  .woocommerce ul.products li.product .mimeble-stock { font-size: .71875rem; margin-top: 5px; }
  /* przycisk i kafelki akcji zostają tylko na karcie produktu — w makiecie kafel listy ich nie ma */
  .woocommerce ul.products .mim-card-actions { display: none; }

  /* — przycisk akcji i kafelki pod kartą — */
  .mim-card-actions { margin-top: 12px; }
  .mim-cta {
    display: flex; align-items: center; justify-content: center; height: 52px; width: 100%;
    background: var(--mim-green); color: #fff; text-decoration: none; border-radius: 6px;
    font-size: .8125rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
  }
  .mim-cta.is-off { background: var(--mim-wash); color: var(--mim-ink); border: 1px solid var(--mim-line); }
  .mim-acts { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; margin-top: 10px; }
  .mim-act {
    appearance: none; border: 0; cursor: pointer; background: var(--mim-wash); border-radius: 10px;
    height: 59px; display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 4px; color: var(--mim-ink); text-decoration: none; font: inherit;
  }
  .mim-act span { font-size: .625rem; line-height: 1.1; text-align: center; }
  .mim-act svg { color: var(--mim-ink); }

  /* — karta produktu: jeden szeroki przycisk kupowania, potem kafelki — */
  .woocommerce div.product form.cart { flex-direction: column; gap: 10px; }
  .woocommerce div.product form.cart .quantity .qty { width: 100%; height: 52px; }
  .woocommerce div.product form.cart .button,
  .woocommerce div.product .mimeble-notify {
    width: 100%; min-height: 52px; border-radius: 0 !important;
    font-size: .8125rem !important; font-weight: 700 !important; letter-spacing: .06em;
    text-transform: uppercase; display: flex; align-items: center; justify-content: center;
  }
  .mim-card-actions.is-single { margin: 14px 0 4px; }
  .mim-anchor { display: block; height: 0; scroll-margin-top: 90px; }
  .mimeble-dims { scroll-margin-top: 90px; }
  .woocommerce div.product .woocommerce-tabs { scroll-margin-top: 90px; }

  /* — dolna nawigacja: Start · Kategorie · Zmieści się? · Ulubione · Koszyk — */
  .mim-bottomnav {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 44;
    display: grid; grid-template-columns: repeat(5, 1fr);
    background: #fff; border-top: 1px solid var(--mim-line);
  }
  .mim-bn {
    position: relative; appearance: none; background: none; border: 0; cursor: pointer; font: inherit;
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
    padding: 8px 2px; min-height: 58px; color: var(--mim-muted); text-decoration: none;
  }
  .mim-bn span:last-child { font-size: .625rem; line-height: 1.1; text-align: center; }
  .mim-bn.is-on { color: var(--mim-ink); font-weight: 600; }
  .mim-bn__ico { position: relative; display: inline-flex; }
  .mim-bn__dot {
    position: absolute; top: -2px; right: -4px; width: 7px; height: 7px; border-radius: 50%;
    background: var(--mim-green);
  }
  /* „Przejdź do płatności” w koszyku (24.09.2026, właściciel: „taki większy podwójny") — zajmuje
     DWIE kolumny paska (Menu · Kupon · Udostępnij · [Płatność, dwie kolumny] = pięć, tyle samo,
     ile ma sam pasek), więc nic nie trzeba przeliczać w `grid-template-columns`. */
  .mim-bn--platnosc {
    grid-column: span 2; background: var(--mim-green); color: #fff; font-weight: 700;
    font-size: .8125rem;
  }
  .mim-bn--platnosc:active { background: var(--mim-green-dk); }
  /* Atrybut `hidden` sam by wystarczył, ale `.mim-bn{display:flex}` wyżej jest regułą AUTORA
     i bije domyślny styl przeglądarki dla `[hidden]` — bez tego „Zaktualizuj koszyk” i „Przejdź
     do płatności” pokazywały się jednocześnie (24.09.2026). */
  .mim-bn--platnosc[hidden] { display: none; }
  body.mim-has-bottombar { padding-bottom: 64px; }

  /* — pasek nad listą i metki wybranych warunków — */
  .mim-fbar { display: flex; gap: 8px; padding: 0 0 10px; flex-wrap: wrap; }
  .mim-fbtn {
    appearance: none; cursor: pointer; background: var(--mim-ink); color: #fff; border: 0;
    border-radius: 999px; height: 40px; padding: 0 15px; display: inline-flex; align-items: center;
    gap: 7px; font: inherit; font-size: .8125rem; font-weight: 500;
  }
  .mim-fbtn svg { color: currentColor; }
  .mim-fbtn b { font-weight: 700; }
  .mim-fbtn.is-sec { background: var(--mim-wash); color: var(--mim-ink); }
  .mim-fbtn.is-sec.is-on { background: var(--mim-wash); box-shadow: inset 2px 0 0 var(--mim-green); }
  .mim-chips { display: flex; gap: 7px; padding: 0 0 12px; flex-wrap: wrap; }
  .mim-chip {
    display: inline-flex; align-items: center; gap: 7px; height: 32px; padding: 0 12px;
    border: 1px solid var(--mim-line); border-radius: 999px; background: #fff;
    font-size: .75rem; color: var(--mim-ink); text-decoration: none;
  }
  .mim-chip__x { color: var(--mim-faint); font-size: .6875rem; }
  .mim-chip.is-clear { border-style: dashed; color: var(--mim-muted); }

  /* — arkusz „Zmieści się?" — */
  .mim-fit__lab {
    font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--mim-faint);
    margin: 14px 0 8px;
  }
  .mim-fit { display: flex; gap: 9px; }
  .mim-fit label { flex: 1; display: block; }
  .mim-fit label span {
    display: block; font-size: .6875rem; color: var(--mim-faint); margin-bottom: 4px;
  }
  .mim-fit input {
    width: 100%; height: 52px; text-align: center; font: inherit; font-size: 1.0625rem; font-weight: 600;
    border: 1px solid var(--mim-line); border-radius: 8px; background: #fff; color: var(--mim-ink);
  }
  .mim-fit input::placeholder { font-size: .8125rem; font-weight: 400; color: var(--mim-faint); }
  .mim-fit__hint { font-size: .75rem; color: var(--mim-muted); line-height: 1.45; margin: 9px 0 0; }
  .mim-fit__slack { display: flex; gap: 8px; }
  .mim-slack {
    flex: 1; display: inline-flex; align-items: center; justify-content: center; height: 40px;
    border: 1px solid var(--mim-line); border-radius: 999px; font-size: .8125rem; cursor: pointer;
  }
  .mim-slack input { position: absolute; opacity: 0; pointer-events: none; }
  .mim-slack.is-on { border-color: var(--mim-ink); font-weight: 600; }
  .mim-sheet__clear {
    display: block; text-align: center; padding: 12px 0 2px; font-size: .8125rem;
    color: var(--mim-muted); text-decoration: none;
  }
  .mim-rail__fit { font-size: .8125rem; color: var(--mim-muted); line-height: 1.45; margin: 0; }

  /* — filtry jako arkusz od dołu (ta sama szyna, inne opakowanie) — */
  .mim-rail {
    position: fixed; left: 0; right: 0; bottom: 0; top: auto; z-index: 46; margin: 0;
    background: #fff; border-radius: 18px 18px 0 0; max-height: 84vh; overflow-y: auto;
    /* Bez dolnego paddingu tutaj — ma go dopiero treść (.mim-rail__box), żeby "Zamknij"
       (przyklejony do dołu) sięgał PRAWDZIWEJ krawędzi arkusza, a nie zatrzymywał się
       16 px nad nią zostawiając pasek pustego tła (24.09.2026, właściciel). */
    padding: 0 16px; transform: translateY(102%); transition: transform .22s ease;
    box-shadow: 0 -10px 34px rgba(17, 17, 17, .16);
    /* wtyczka ciasteczek siedzi na z-index 100000 i zasłaniała dolną część arkusza
       razem z przyciskiem „Pokaż N produktów" */
    z-index: 100002;
  }
  .mim-rail.is-open { transform: none; }
  .mim-rail__box { border: 0; padding-bottom: 16px; }
  /* `z-index` jest tu konieczny (23.09.2026, właściciel: „pod przyciskiem w filtrach widać
     resztę strony i suwaki"): bez własnego numeru warstwy element `position: sticky` maluje się
     w kolejności z kodu HTML, więc lista kolorów i suwaki, które są NIŻEJ w kodzie, przy
     przewijaniu wychodziły NAD przyklejonym nagłówkiem, mimo że wizualnie stoi on wyżej. */
  .mim-rail__sum {
    position: sticky; top: 0; z-index: 3; background: #fff; padding: 16px 0 10px; font-size: .78rem;
    letter-spacing: .12em; border-bottom: 1px solid var(--mim-line);
  }
  .mim-rail__opt { min-height: 44px; }
  .mim-sheet {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 100002; background: #fff;
    border-radius: 18px 18px 0 0; padding: 16px; transform: translateY(102%);
    transition: transform .22s ease; box-shadow: 0 -10px 34px rgba(17, 17, 17, .16);
  }
  .mim-sheet.is-open { transform: none; }
  .mim-sheet__hd {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; color: var(--mim-faint);
    padding-bottom: 10px; border-bottom: 1px solid var(--mim-line);
  }
  .mim-sheet__opt {
    display: flex; align-items: center; justify-content: space-between; min-height: 48px;
    color: var(--mim-ink); text-decoration: none; font-size: .9375rem; padding-left: 12px;
    position: relative; border-bottom: 1px solid var(--mim-line-2);
  }
  .mim-sheet__opt:last-child { border-bottom: 0; }
  .mim-sheet__opt.is-active::before {
    content: ""; position: absolute; left: 0; top: 12px; bottom: 12px; width: 2px; background: var(--mim-green);
  }
  .mim-sheet__go {
    display: flex; align-items: center; justify-content: center; height: 52px; margin-top: 14px;
    background: var(--mim-ink); color: #fff; border: 0; border-radius: 6px; width: 100%;
    font: inherit; font-size: .875rem; font-weight: 600; cursor: pointer;
  }
  .mim-backdrop { position: fixed; inset: 0; background: rgba(17, 17, 17, .38); z-index: 100001; }
  .mim-backdrop[hidden] { display: none; }
}
@media (min-width: 782px) {
  /* na komputerze kafelki i pasek nie istnieją — tam prowadzi szyna filtrów i najechanie */
  .mim-card-actions, .mim-bottomnav, .mim-sheet, .mim-backdrop, .mim-loop-dims,
  .mim-sheet__go, .mim-fbar, .mim-chips { display: none !important; }
}

/* ── „Zmieści się?" w szynie filtrów (komputer) ───────────────────────────────
   Trzy krótkie pola w jednym rzędzie, zapas jako select, przycisk pod nimi. Na telefonie ten
   formularz jest zbędny (tam jest arkusz od dołu), więc go tam nie pokazujemy. */
.mim-fitform { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; align-items: end; }
.mim-fitform label { display: block; }
.mim-fitform label span { display: block; font-size: .6875rem; color: var(--mim-faint); margin-bottom: 3px; }
.mim-fitform input {
  width: 100%; height: 36px; text-align: center; font: inherit; font-size: .875rem; font-weight: 600;
  border: 1px solid var(--mim-line); border-radius: 6px; background: #fff; color: var(--mim-ink);
}
.mim-fitform select {
  grid-column: 1 / -1; height: 34px; font: inherit; font-size: .8125rem; margin-top: 4px;
  border: 1px solid var(--mim-line); border-radius: 6px; background: #fff; color: var(--mim-ink);
}
.mim-fitform button { grid-column: 1 / -1; height: 34px; margin-top: 4px; }
.mim-rail__fit { font-size: .75rem; color: var(--mim-muted); line-height: 1.45; margin: 8px 0 0; }
@media (max-width: 781px) {
  /* „Zmieści się?" mieszka w arkuszu filtrów razem z resztą — pasek nad listą zniknął,
     więc jego dawny osobny arkusz nie miał już skąd być wołany. */
  .mim-fitform { display: grid; }
}

/* ── wejście do planera przy szukajce ────────────────────────────────────────
   Planer to narzędzie, nie filtr, więc stoi przy wyszukiwaniu, a nie w dolnej nawigacji.
   Na komputerze z podpisem, na telefonie sama ikona (miejsce w wierszu jest na wagę złota). */
.mimeble-planer-link { margin: 0; }
.mimeble-planer-link a {
  display: inline-flex; align-items: center; gap: 7px; text-decoration: none;
  color: var(--mim-soft); font-size: .8125rem; white-space: nowrap;
}
.mimeble-planer-link a:hover { color: var(--mim-ink); }
.mimeble-planer-link svg { flex: 0 0 auto; }

@media (max-width: 781px) {
  /* Planer stoi DOSŁOWNIE obok szukajki: wiersz 1 to logo i koszyk, wiersz 2 to szukajka
     i przycisk planera na jej prawym końcu. Po przewinięciu wszystko schodzi do jednej linii. */
  .mimeble-header .mimeble-planer-link { grid-column: 3; grid-row: 1; }
  .mimeble-header .wc-block-mini-cart { grid-column: 4; grid-row: 1; }
  .mimeble-planer-link a {
    width: 40px; height: 40px; justify-content: center; gap: 0;
    border: 1px solid var(--mim-line); border-radius: 999px; color: var(--mim-ink);
  }
  .mimeble-planer-link span { display: none; }

  /* W zwartym pasku logo dostaje własną, stałą kolumnę: przy `auto` kolumna zapadała się do
     6 px (szukajka 1fr zabierała całą szerokość) i z logotypu zostawał pasek 6 × 2 px. */

}

/* ── suwaki filtrów ───────────────────────────────────────────────────────────
   Dwa `input[type=range]` leżą na sobie: dolny ustawia „od", górny „do". Tor rysuje kontener,
   a same inputy są przezroczyste — inaczej dwa tory nachodziłyby na siebie. Zaznaczony wycinek
   zakresu dostaje zieloną kreskę (ten sam znak stanu, co wszędzie). */
.mim-sl__hd { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.mim-sl__val {
  font-size: .8125rem; font-weight: 700; font-variant-numeric: tabular-nums;
  background: var(--mim-wash); border-radius: 999px; padding: 3px 10px;
}
/* histogram: ile mebli naprawdę stoi w kolejnych częściach zakresu */
.mim-sl__hist {
  display: flex; align-items: flex-end; gap: 2px; height: 36px; margin: 10px 0 0;
}
.mim-sl__hist i {
  flex: 1; min-height: 0; background: var(--mim-line); border-radius: 2px 2px 0 0;
  transition: background .12s ease;
}
.mim-sl__hist i.is-in { background: var(--mim-ink); opacity: .72; }
.mim-sl__track { position: relative; height: 30px; margin: 2px 0 2px; }
/* Żadnej szarej szyny na całą szerokość: rysujemy tylko zaznaczony odcinek, przez co obie
   jego końcówki chowają się pod kółkami uchwytów. Zakres pokazuje histogram i podpisy krańców. */
.mim-sl__track::after {
  /* Pseudo-element rysuje się PO dzieciach, więc bez z-index zielona linia szła po wierzchu
     kółek i wyglądały jak nieszczelne. Linia ma leżeć pod uchwytami. */
  content: ""; position: absolute; top: 13px; height: 4px; border-radius: 999px; z-index: 1;
  background: var(--mim-green);
  /* 9px = połowa kółka (18px) – końcówki zielonej linii chowają się pod uchwytami */
  left: calc(9px + (100% - 18px) * var(--lo, 0));
  right: calc(9px + (100% - 18px) * var(--hi, 0));
}
.mim-sl__in {
  position: absolute; left: 0; top: 0; width: 100%; height: 30px; margin: 0; z-index: 2;
  appearance: none; background: none; pointer-events: none;
}
.mim-sl__in::-webkit-slider-thumb {
  /* 13.10.2026, właściciel: „zmniejsz trochę kółka przy suwakach” – 24 → 18px */
  appearance: none; pointer-events: auto; width: 18px; height: 18px; border-radius: 50%;
  background: #fff; border: 2px solid var(--mim-ink); cursor: grab; margin-top: -8px;
  box-shadow: 0 1px 3px rgba(17, 17, 17, .18);
}
.mim-sl__in::-moz-range-thumb {
  pointer-events: auto; width: 16px; height: 16px; border-radius: 50%;
  background: #fff; border: 2px solid var(--mim-ink); cursor: grab;
  box-shadow: 0 1px 3px rgba(17, 17, 17, .18);
}
.mim-sl__in:active::-webkit-slider-thumb { cursor: grabbing; border-color: var(--mim-green-d); }
.mim-sl__in:focus-visible::-webkit-slider-thumb { outline: 2px solid var(--mim-green); outline-offset: 2px; }
.mim-sl__in::-webkit-slider-runnable-track { height: 2px; background: transparent; }
.mim-sl__in::-moz-range-track { height: 2px; background: transparent; }
.mim-sl__ends {
  display: flex; justify-content: space-between; font-size: .6875rem; color: var(--mim-faint);
  font-variant-numeric: tabular-nums;
}
/* kolor jako pole wyboru w tym samym wierszu co dotąd */
label.mim-rail__opt { cursor: pointer; }
label.mim-rail__opt input { position: absolute; opacity: 0; pointer-events: none; }
label.mim-rail__opt.is-active::before {
  content: ""; position: absolute; left: 0; top: 7px; bottom: 7px; width: 2px; background: var(--mim-green);
}
.mim-rail__body .mim-sheet__go { display: flex; }
@media (min-width: 782px) {
  .mim-rail__body .mim-sheet__go { display: flex !important; }
}

/* ── belka obietnic wprost pod szukajką ──────────────────────────────────────
   Wcześniej stała pod rzędem kategorii; teraz jest zaraz po wierszu z wyszukiwarką, więc nie
   potrzebuje własnej kreski u góry — wystarczy ta, którą ma nagłówek. */
.mimeble-promise { border-top: 0; }
@media (max-width: 781px) {
  .mimeble-header__main { border-bottom: 0; }
  .mimeble-promise { padding-top: 2px; padding-bottom: 7px; border-bottom: 1px solid var(--mim-line); }
}

/* ── zielona kreska jako JEDYNY znak wyboru (reguła Pionu) ────────────────────
   Wszędzie ten sam znak: pionowa kreska 2 px przy lewej krawędzi tego, co wybrane. */
.mim-bn { position: relative; }
.mim-bn.is-on::before {
  content: ""; position: absolute; left: 6px; top: 10px; bottom: 10px; width: 2px; background: var(--mim-green);
}
.mim-fbtn { position: relative; }
.mim-fbtn.is-sec.is-on { box-shadow: none; }
.mim-fbtn.is-sec.is-on::before,
.mim-fbtn:not(.is-sec)::before {
  content: ""; position: absolute; left: 6px; top: 9px; bottom: 9px; width: 2px; background: var(--mim-green);
}
.mim-fbtn:not(.is-sec) { padding-left: 18px; }
.mim-fbtn.is-sec.is-on { padding-left: 18px; }
.mim-chip { position: relative; padding-left: 16px; }
.mim-chip::before {
  content: ""; position: absolute; left: 6px; top: 7px; bottom: 7px; width: 2px; background: var(--mim-green);
}
.mim-chip.is-clear { padding-left: 12px; }
.mim-chip.is-clear::before { display: none; }

/* ── wielokrotny wybór w wierszach listy ──────────────────────────────────────
   Wiersz: kwadracik, nazwa, licznik. Zielona kreska pojawia się TYLKO przy zaznaczonym —
   niezaznaczony wiersz nie ma żadnego znaku stanu, zgodnie z regułą Pionu. */
.mim-rail__hint { font-size: .625rem; letter-spacing: 0; text-transform: none; color: var(--mim-faint); }
label.mim-rail__opt {
  display: flex; align-items: center; gap: 10px; cursor: pointer; position: relative;
  padding-left: 12px;
}
label.mim-rail__opt input { position: absolute; opacity: 0; pointer-events: none; }
/* UWAGA: kontener szyny to <details class="mim-rail__box"> — kwadracik wyboru MUSI mieć inną
   nazwę, inaczej reguła „15 × 15 px" składa cały arkusz filtrów do wysokości paska tytułu. */
.mim-rail__check {
  width: 15px; height: 15px; flex: 0 0 auto; border: 1px solid var(--mim-line); border-radius: 3px;
  background: #fff; position: relative;
}
label.mim-rail__opt .mim-rail__name { flex: 1; }
label.mim-rail__opt.is-active::before {
  content: ""; position: absolute; left: 0; top: 9px; bottom: 9px; width: 2px; background: var(--mim-green);
}
label.mim-rail__opt.is-active .mim-rail__name { font-weight: 600; }
label.mim-rail__opt.is-active .mim-rail__check { background: var(--mim-ink); border-color: var(--mim-ink); }
label.mim-rail__opt.is-active .mim-rail__check::after {
  content: ""; position: absolute; left: 4.5px; top: 1.5px; width: 4px; height: 8px;
  border: solid #fff; border-width: 0 1.5px 1.5px 0; transform: rotate(45deg);
}
label.mim-rail__opt:focus-within .mim-rail__check { outline: 2px solid var(--mim-green); outline-offset: 2px; }

/* ── cztery produkty na ekran i przewijanie bez końca ─────────────────────────
   Kafel dostaje połowę wolnej wysokości ekranu (bez nagłówka i dolnej nawigacji), więc na jednym
   ekranie stoją dokładnie cztery: dwie kolumny na dwa rzędy. Zdjęcie bierze całą resztę kafla. */
@media (max-width: 781px) {
  /* Stała wysokość kafla obowiązuje TYLKO w kanale (lista kategorii), gdzie z założenia mają
     stać cztery na ekran. Na stronie głównej ta sama reguła ucinała dół kafla — cenę
     i dostępność — bo tam kafel nie ma czterech linii tekstu tylko więcej. */
  /* Wysokość kafla w kanale ustala siatka (`grid-auto-rows: 50%`), nie osobny wzór — dwie
     różne wysokości walczyły ze sobą i na stronie głównej ucinały dół kafla. */
  body.mim-feed .woocommerce ul.products li.product,
  body.mim-feed .wc-block-product-template .wc-block-product {
    display: flex; flex-direction: column; overflow: hidden; min-height: 0;
  }
  .woocommerce ul.products li.product { display: flex; flex-direction: column; }
  .woocommerce ul.products li.product a.woocommerce-LoopProduct-link {
    display: flex; flex-direction: column; flex: 1; min-height: 0;
  }
  .woocommerce ul.products li.product a img {
    flex: 1; min-height: 0; height: auto; aspect-ratio: auto; object-fit: contain; margin-bottom: 6px;
  }
  .woocommerce nav.woocommerce-pagination { display: none; }
  .mim-doladowanie {
    background: #fff; text-align: center; padding: 16px 0 22px;
    font-size: .8125rem; color: var(--mim-faint);
  }
}

/* ── lista zatrzymuje się co cztery produkty ──────────────────────────────────
   Punkt zaczepienia co drugi rząd siatki (czyli co czwarty kafel); margines zaczepienia równy
   wysokości przyklejonego nagłówka, żeby rząd nie chował się pod paskiem. */
@media (max-width: 781px) {
  /* ── kanał produktów (wzór m.mikup.pl) ──────────────────────────────────────
     UWAGA na selektory: WooCommerce trzyma klasę `woocommerce` na <body>, więc zapis
     „body.mim-feed .woocommerce ul.products” nie pasuje do NICZEGO (szukałby .woocommerce
     poniżej body). Poprawnie: „body.mim-feed ul.products”.
     Strona z listą nie przewija się wcale: przewija się sam kanał, wysoki dokładnie tyle, ile
     zostaje między paskiem a dolną nawigacją. Zatrzask jest TWARDY (mandatory), a jeden ekran
     kanału to równe cztery kafle — dwie kolumny po dwa rzędy. */
  body.mim-feed { overflow: hidden; height: 100dvh; }
  body.mim-feed .mim-archive__list { display: flex; flex-direction: column; min-height: 0; }
  body.mim-feed ul.products {
    /* BEZ `flex: 1`: w kontenerze flex to właśnie flex rozstrzyga rozmiar główny i zjadał
       wysokość podaną niżej — kanał rozciągał się na całą listę (12 169 px zamiast ~640).
       Z jawną wysokością procentowe wiersze siatki mają się od czego liczyć. */
    overflow-y: auto; overscroll-behavior: contain;
    scroll-snap-type: y mandatory; -webkit-overflow-scrolling: touch;
    height: calc(100dvh - var(--mim-hdr, 110px) - 64px - var(--mim-nad, 0px));
    grid-auto-rows: calc(50% - 0.5px);
  }
  body.mim-feed ul.products li.product,
  body.mim-feed .wc-block-product-template .wc-block-product { height: auto; }
  body.mim-feed ul.products li.product:nth-child(4n + 1) {
    scroll-snap-align: start; scroll-snap-stop: always;
  }

  /* szukajka pod wysokość logo */
  .mimeble-search .wp-block-search__inside-wrapper { height: 36px; padding-left: 14px; }
  .mimeble-search .wp-block-search__input { height: 34px; font-size: 14px; }
  .mimeble-search .wp-block-search__button { min-width: 32px; height: 32px; }
  .mimeble-planer-link a { width: 36px; height: 36px; }

  /* pionowa kreska przed logo — ten sam znak, co przy menu i przy wyborach */
  .mimeble-header .mimeble-logo { position: relative; padding-left: 10px; }
  .mimeble-header .mimeble-logo::before {
    content: ""; position: absolute; left: 0; top: 50%; transform: translateY(-50%);
    width: 2px; height: 18px; background: var(--mim-green);
  }
}
/* radio w sekcji sortowania: ten sam wiersz co pola wyboru, tylko kółko zamiast kwadratu */
.mim-rail__check.is-radio { border-radius: 50%; }
label.mim-rail__opt.is-active .mim-rail__check.is-radio::after {
  content: ""; position: absolute; left: 3px; top: 3px; width: 7px; height: 7px;
  border: 0; border-radius: 50%; background: #fff; transform: none;
}

/* ── karta produktu na telefonie (wzór m.mikup.pl / jsp.mikup.pl) ─────────────
   Zdjęcie na całą szerokość, pod nim nazwa, cena, przycisk kupowania, a treść — opis, parametry,
   dostawa, bezpieczeństwo — chowa się za przyciskami otwierającymi arkusze od dołu. */
@media (max-width: 781px) {
  .woocommerce div.product .woocommerce-tabs { display: none; }
  .woocommerce div.product div.images { margin-bottom: 1rem; }
  .woocommerce div.product div.images img { cursor: zoom-in; }

  .mim-sekcje { display: flex; flex-direction: column; gap: 1px; background: var(--mim-line); margin: 16px 0 8px; }
  .mim-sek {
    appearance: none; border: 0; background: #fff; cursor: pointer; font: inherit;
    display: flex; align-items: center; gap: 10px; padding: 15px 14px; color: var(--mim-ink);
    font-size: .9375rem; text-align: left;
  }
  .mim-sek span:not(.mim-sek__x) { flex: 1; }
  .mim-sek__x { color: var(--mim-faint); }
  .mim-sheet--tresc .mim-sheet__tresc {
    max-height: 70vh; overflow-y: auto; padding: 14px 0 4px; font-size: .9375rem; line-height: 1.6;
  }
  .mim-sheet--tresc .mim-sheet__tresc img { max-width: 100%; height: auto; }
  .mim-spec__r {
    display: flex; justify-content: space-between; gap: 14px; padding: 11px 0;
    border-bottom: 1px solid var(--mim-line-2); font-size: .9375rem;
  }
  .mim-spec__r span { color: var(--mim-muted); }
  .mim-spec__r b { font-weight: 600; font-variant-numeric: tabular-nums; }
  .mim-sheet--tresc table { width: 100%; border-collapse: collapse; }
  .mim-sheet--tresc th, .mim-sheet--tresc td {
    text-align: left; padding: 10px 0; border-bottom: 1px solid var(--mim-line-2); font-size: .9375rem;
  }

  /* pasek „następny produkt" na końcu karty — widoczny odpowiednik gestu w górę */
  .mim-next {
    display: flex; flex-direction: column; align-items: center; gap: 3px; text-decoration: none;
    background: var(--mim-wash); color: var(--mim-muted); padding: 20px 16px 24px; margin: 22px 0 0;
    font-size: .8125rem; text-align: center;
  }
  .mim-next b { color: var(--mim-ink); font-size: .9375rem; font-weight: 600; }
  .mim-next__strzalka { font-size: 1.1rem; color: var(--mim-green-d); }

  /* pełnoekranowa galeria */
  .mim-galeria {
    position: fixed; inset: 0; z-index: 100003; background: #fff; display: flex; flex-direction: column;
  }
  .mim-galeria[hidden] { display: none; }
  .mim-galeria__hd {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    padding: 12px 14px; border-bottom: 1px solid var(--mim-line); font-size: .8125rem; color: var(--mim-muted);
  }
  .mim-galeria__plotno {
    flex: 1; display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
  }
  .mim-galeria__plotno::-webkit-scrollbar { display: none; }
  .mim-galeria__plotno figure {
    flex: 0 0 100%; scroll-snap-align: center; margin: 0; display: flex; align-items: center;
    justify-content: center; padding: 12px;
  }
  .mim-galeria__plotno img { max-width: 100%; max-height: 100%; object-fit: contain; }
}
@media (min-width: 782px) {
  .mim-sekcje, .mim-next, .mim-galeria { display: none !important; }
}

/* ── wiersz nad kanałem: nazwa kategorii i metki, bez przewijania ─────────────
   Wszystko, co stoi nad kanałem, musi być krótkie — kanał dostaje resztę ekranu. */
@media (max-width: 781px) {
  body.mim-feed .mimeble-main { padding-top: 6px; padding-bottom: 0; }
  body.mim-feed .woocommerce-breadcrumb { margin-bottom: 2px; }
  body.mim-feed .woocommerce-products-header__title,
  body.mim-feed h1.page-title { font-size: 1.35rem; margin: 0 0 6px; }
  body.mim-feed .mim-subs { display: none; }        /* menu podkategorii jest w szufladzie */
  body.mim-feed .mim-chips { padding-bottom: 8px; }
  body.mim-feed .mim-doladowanie { padding: 10px 0 18px; }
}

/* ── kafel w kanale układa się sam i nic w nim nie jest ucięte ────────────────
   Wysokość kafla to zawsze połowa kanału, więc treść musi się w niej zmieścić z definicji:
   teksty mają stałe, policzalne wysokości (nazwa najwyżej dwie linijki), a zdjęcie bierze
   dokładnie tyle, ile zostanie. Dzięki temu przy każdym ekranie — niskim i wysokim — widać
   równe cztery kafle bez przewijania w środku i bez przerwanej nazwy czy ceny. */
@media (max-width: 781px) {
  body.mim-feed li.product { padding: 10px 10px 12px; gap: 0; }
  body.mim-feed li.product a.woocommerce-LoopProduct-link { gap: 0; }
  body.mim-feed li.product a img { flex: 1 1 auto; min-height: 40px; margin-bottom: 8px; }
  body.mim-feed li.product .mimeble-loop-cat {
    font-size: .5625rem; line-height: 1.2; margin: 0 0 2px; letter-spacing: .08em;
  }
  body.mim-feed li.product .woocommerce-loop-product__title {
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
    font-size: .8125rem; line-height: 1.25; height: 2.5em; margin: 0;
  }
  body.mim-feed li.product .price { font-size: .9375rem; line-height: 1.2; margin: 3px 0 0; }
  body.mim-feed li.product .mimeble-stock { font-size: .6875rem; line-height: 1.2; margin: 3px 0 0; }
  body.mim-feed li.product .mim-loop-dims { font-size: .6875rem; line-height: 1.2; margin: 2px 0 0; }
  body.mim-feed li.product .ure-variants-count { font-size: .625rem; line-height: 1.2; margin: 2px 0 0; }
}

/* ── karta produktu jako slajd (wzór m.mikup.pl / jsp.mikup.pl) ───────────────
   Jeden ekran: zdjęcie u góry, pod nim nazwa, cena, dostępność, szeroki przycisk i rząd
   kafelków. Reszta — numer katalogowy, „cena za szt.", VAT, meta, produkty powiązane — znika,
   bo albo siedzi w arkuszach, albo nie jest częścią decyzji zakupowej. */
@media (max-width: 781px) {
  body.single-product .woocommerce-breadcrumb,
  body.single-product .mimeble-sku,
  body.single-product .mimeble-price-label,
  body.single-product .mimeble-vat,
  body.single-product .mimeble-delivery,
  body.single-product .product_meta,
  body.single-product .related,
  body.single-product .up-sells,
  body.single-product .flex-control-thumbs { display: none !important; }

  /* Strona produktu nie przewija się: karta JEST ekranem, a gest w górę prowadzi do następnego
     produktu. Wysokość karty ustawia skrypt (mierzy odległość do dolnej nawigacji) — wzór z dvh
     mylił się o wysokość odstępu nad kartą i jej dół wchodził pod nawigację. */
  body.single-product { overflow: hidden; height: 100dvh; }
  body.single-product .wp-site-blocks > footer { display: none; }
  body.single-product div.product {
    display: flex; flex-direction: column; height: calc(100dvh - var(--mim-hdr, 110px) - 90px);
    overflow: hidden; margin: 0;
  }
  body.single-product div.product div.images {
    flex: 1 1 auto; min-height: 0; margin: 0; position: relative; display: flex;
  }
  body.single-product div.product div.images .woocommerce-product-gallery__wrapper,
  body.single-product div.product div.images .flex-viewport { flex: 1; min-height: 0; display: flex; }
  /* Zdjęcie ma się ZMIEŚCIĆ w przydzielonej wysokości, a nie rządzić nią: WooCommerce daje mu
     `height:auto`, więc kwadratowe zdjęcie robiło się wyższe od ramki i dolny pasek wypadał poza
     ekran. Cały łańcuch (wrapper → __image → <a> → img) dostaje pełną wysokość, a obraz wpisuje
     się w nią z zachowaniem proporcji. */
  body.single-product div.product div.images .woocommerce-product-gallery__image,
  body.single-product div.product div.images .woocommerce-product-gallery__image > a {
    display: block; width: 100%; height: 100%; min-height: 0;
  }
  body.single-product div.product div.images img {
    width: 100% !important; height: 100% !important; object-fit: contain; margin: 0;
  }
  body.single-product div.product div.images img.emoji,
  body.single-product div.product div.images .zoomImg { display: none !important; }
  /* Przycisk wtyczki ulubionych zjadał 38 px i całą szerokość („Dodaj do ulubionych"), a serce
     ma być kafelkiem w rzędzie akcji. Zostawiamy go w kodzie (skrypt wtyczki go potrzebuje),
     ale poza ekranem. */
  body.single-product .yith-add-to-wishlist-button-block {
    position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden;
  }
  /* Bez pola ilości: na karcie-slajdzie kupuje się jedną sztukę, resztę zmienia się w koszyku.
     Razem z ukryciem drobiazgów daje to zdjęciu ~400 px zamiast 115. */
  body.single-product form.cart .quantity { display: none !important; }
  /* Formularz kupowania WRACA do układu blokowego. Jako flex zjadał odstęp 10 px na
     pseudoelement czyszczący WooCommerce (w flexie pseudoelement jest pełnoprawnym elementem)
     i spychał przycisk poza prawą krawędź karty. Reguły WooCommerce mają wyższą specyficzność
     niż selektor motywu, stąd „!important" — inaczej poprawka w ogóle nie wchodziła. */
  body.single-product form.cart { display: block !important; }
  body.single-product form.cart .button {
    width: 100% !important; margin: 0 !important; float: none !important;
  }
  /* Zdjęcie bierze to, co zostanie po treści — sztywna dolna granica (38vh) wypychała rząd
     kafelków poza kartę, a karta ma `overflow:hidden`, więc po prostu znikał. */
  body.single-product div.product div.images { min-height: 0; }
  body.single-product .summary { flex: 0 0 auto; }
  /* 28 px marginesu pod `.summary` to była pusta dziura między kafelkami a paskiem — oddajemy je
     zdjęciu, bo na karcie-slajdzie to ono jest treścią. */
  body.single-product div.product > * { margin: 0 !important; }
  body.single-product form.cart .button { padding: 13px 16px; font-size: .875rem; }
  body.single-product .mim-act { height: 48px; }
  /* Ulubione w pamięci: ten sam znak, co wszędzie indziej — pionowa zielona kreska przy kafelku. */
  .mim-act.is-on { box-shadow: inset 2px 0 0 var(--mim-green); }
  .mim-act.is-on svg { color: var(--mim-green-d); }
  /* Odstępy ustawia JEDNO miejsce — `gap` kolumny — zamiast marginesów, które WooCommerce,
     WordPress i wtyczki dokładają każdy swoje. Bez tego nazwa, cena, wymiary i przycisk rozjeżdżały
     się na 418 px i rząd kafelków wypadał pod ekran. */
  body.single-product .summary { display: flex; flex-direction: column; gap: 6px; margin: 0; }
  body.single-product .summary > * { margin: 0 !important; }
  body.single-product .product_title {
    font-size: 1rem; line-height: 1.2; margin: 6px 0 2px;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
  }
  body.single-product .summary .price { font-size: 1.25rem; font-weight: 700; margin: 0; }
  body.single-product .summary .stock { margin: 2px 0 0; font-size: .75rem; }
  body.single-product .mimeble-dims { margin: 2px 0 6px; font-size: .75rem; }
  body.single-product form.cart { margin: 4px 0 0; }
  body.single-product .mim-card-actions.is-single { margin: 8px 0 0; }
  body.single-product .mim-acts { grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); }

  /* kropki galerii — informacja, że zdjęć jest więcej */
  .mim-kropki { display: flex; gap: 5px; justify-content: center; padding: 6px 0 2px; }
  .mim-kropki i {
    width: 6px; height: 6px; border-radius: 50%; background: var(--mim-line); display: block;
  }
  .mim-kropki i.is-on { background: var(--mim-ink); }

  /* Podpowiedź gestu: wąski pasek tuż nad dolną nawigacją. Klikalny, więc działa też bez gestu. */
  .mim-next {
    position: fixed; left: 0; right: 0; bottom: var(--mim-naw, 59px); z-index: 5;
    flex-direction: row; align-items: center; justify-content: center; gap: 6px;
    padding: 4px 12px; margin: 0; line-height: 1.2;
    background: var(--mim-wash); font-size: .6875rem; border-top: 1px solid var(--mim-line-2);
  }
  .mim-sheet__stopka { font-size: .8125rem; color: var(--mim-muted); }
}

/* ── 2026-09-13: dwa paski przycisków, równa belka, kafelki kategorii, równe miniatury ──────── */
@media (max-width: 781px) {
  /* — drugi pasek pod nawigacją: Opis | Parametry — */
  /* Dwa albo trzy przyciski — tyle, ile ten produkt naprawdę ma; kolumny liczą się same. */
  .mim-bottomnav--druga { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 1fr; }
  .mim-bottomnav--druga .mim-bn { min-height: 50px; flex-direction: row; gap: 8px; }
  .mim-bottomnav--druga .mim-bn span:last-child { font-size: .75rem; }
  /* Na karcie produktu główna nawigacja stoi NAD drugim paskiem. */
  body.single-product .mim-bottomnav:not(.mim-bottomnav--druga) { bottom: var(--mim-naw2, 51px); }

  /* — górna belka: jeden rząd, każdy element tej samej wysokości — */
  .mimeble-header__row { align-items: center; }
  .mimeble-header__row > .mimeble-logo,
  .mimeble-header__tools > * { height: 36px; display: flex; align-items: center; margin: 0; }
  .mimeble-header .mimeble-logo img { height: 22px; width: auto; max-height: 22px; }
  .mimeble-search .wp-block-search__inside-wrapper { height: 36px; }
  .mimeble-planer-link a,
  .mimeble-wishlist-link a,
  .mimeble-header .wp-block-woocommerce-customer-account a,
  .mimeble-header .wc-block-mini-cart__button {
    width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; padding: 0;
  }
  .mimeble-header .wc-block-mini-cart__button svg,
  .mimeble-header .wp-block-woocommerce-customer-account svg,
  .mimeble-wishlist-link svg,
  .mimeble-planer-link svg { width: 20px; height: 20px; }

  /* — miniatury równej wielkości —
     Zdjęcie dostaje STAŁĄ część kafla (54%), więc jego ramka nie zmienia się z długością nazwy,
     i wypełnia ją kadrem. Nazwa zawsze dwa wiersze, żeby nic nie przesuwało ramki. */
  .woocommerce ul.products li.product a img {
    flex: 0 0 auto; width: 100%; height: auto; aspect-ratio: 12 / 11; min-height: 0; padding: 0;
    object-fit: cover; margin-bottom: 6px;
  }
  /* Kilka pikseli z kafla, żeby ramka 12:11 zmieściła się razem z czterema wierszami opisu. */
  .woocommerce ul.products li.product { padding: 10px 12px; }
  .mim-loop-dims { margin: 0 0 3px; }
  .woocommerce ul.products li.product .mimeble-stock { margin-top: 3px; }
  .woocommerce ul.products li.product a img.mim-foto-cale { object-fit: contain; }
  .woocommerce ul.products li.product .woocommerce-loop-product__title {
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
    min-height: 2.3em; line-height: 1.2;
  }

  /* — kategorie w szufladzie: kafelki po trzy w rzędzie — */
  .mim-drawer__in { overflow-y: auto; }
  .mim-dkafle { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; padding: 12px 16px 16px; }
  .mim-kafel {
    display: flex; flex-direction: column; gap: 5px; padding: 8px; cursor: pointer;
    background: var(--mim-wash); color: var(--mim-ink); text-decoration: none; list-style: none;
  }
  .mim-kafel::-webkit-details-marker { display: none; }
  .mim-kafel__img { display: block; aspect-ratio: 1 / 1; background: #fff; overflow: hidden; }
  .mim-kafel__img img { width: 100%; height: 100%; object-fit: contain; display: block; }
  .mim-kafel__n { font-size: .75rem; line-height: 1.2; }
  .mim-kafel__x { font-size: .625rem; color: var(--mim-faint); font-variant-numeric: tabular-nums; }
  .mim-kafel.is-active { box-shadow: inset 2px 0 0 var(--mim-green); }
  .mim-kafel--all { justify-content: center; align-items: center; text-align: center; font-weight: 600; }
  /* Dział rozwinięty zajmuje cały wiersz: jego nagłówek robi się poziomy, a podkategorie
     układają się znów po trzy. */
  details.mim-dk[open] { grid-column: 1 / -1; }
  details.mim-dk[open] > .mim-kafel { flex-direction: row; align-items: center; gap: 10px; }
  details.mim-dk[open] > .mim-kafel .mim-kafel__img { width: 40px; flex: 0 0 40px; }
  details.mim-dk[open] > .mim-kafel .mim-kafel__n { flex: 1; font-size: .875rem; font-weight: 600; }
  .mim-dk__pod { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 8px; }
}

/* ── kanał produktów i jednakowe „Zamknij" (2026-09-13) ─────────────────────── */
@media (max-width: 781px) {
  /* Karta produktu jest slajdem w kanale: przewija się kanał, nie strona, a twardy zatrzask
     zatrzymuje na każdym produkcie — dokładnie jak `main.feed` na m.mikup.pl. */
  .mim-kanal {
    overflow-y: auto; overscroll-behavior: contain; scroll-snap-type: y mandatory;
    -webkit-overflow-scrolling: touch; scrollbar-width: none;
  }
  .mim-kanal::-webkit-scrollbar { display: none; }
  .mim-slajd { height: 100%; scroll-snap-align: start; scroll-snap-stop: always; }
  /* Mocniejszy selektor niż reguła wysokości pojedynczej karty — inaczej doklejone slajdy
     dostawały wysokość liczoną z ekranu (621 px) i przycisk kupowania wychodził poza slajd. */
  body.single-product .mim-kanal div.product { height: 100%; }
  /* Pasek „następny produkt" był protezą gestu — w kanale przewijanie mówi samo za siebie. */
  body.mim-kanal-on .mim-next { display: none; }

  /* — szeroki „Zamknij" na dole, wzór panel-close-wide z m.mikup.pl — */
  .mim-zam {
    appearance: none; cursor: pointer; font: inherit; font-weight: 800; font-size: .8125rem;
    display: block; width: calc(100% + 32px); margin: 14px -16px -16px; height: 48px;
    background: #fff; color: var(--mim-ink); border: 0; border-top: 1px solid var(--mim-line);
  }
  .mim-sheet__hd .mini, .mim-drawer__hd .mini { display: none; }   /* jeden przycisk, nie dwa */
  .mim-drawer__in .mim-zam {
    position: sticky; bottom: 0; width: calc(100% + 36px); margin: 8px -18px 0; z-index: 2;
  }
  .mim-rail .mim-zam { position: sticky; bottom: 0; z-index: 2; margin-bottom: 0; }
  .mim-galeria .mim-zam { width: 100%; margin: 0; }
}

/* ── 2026-09-13 (wieczór): koszyk poza górną belką, szerszy planer, warianty w przycisku ───── */
@media (max-width: 781px) {
  /* Koszyk ma swój przycisk w dolnej nawigacji — w górnej belce tylko dublował funkcję.
     Zwolnioną kolumnę bierze planer, który dostaje podpis zamiast samej ikony. */
  .mimeble-header .wc-block-mini-cart { display: none !important; }
  .mimeble-header .mimeble-header__row.is-layout-flex {
    grid-template-columns: 76px minmax(0, 1fr) auto;
  }
  .mimeble-planer-link a { width: auto; height: 36px; padding: 0 13px; gap: 7px; }
  .mimeble-planer-link span { display: inline; font-size: .8125rem; }

  /* Przełącznik wariantów siedzi w arkuszu pod przyciskiem „Warianty" — w karcie zabierał
     118 px, czyli jedną trzecią zdjęcia. */
  body.single-product .ure-variants { display: none; }
  /* Mocniejszy selektor niż reguła gasząca przełącznik w karcie — inaczej arkusz „Warianty"
     otwierał się pusty. */
  body.single-product .mim-sheet--tresc .ure-variants { display: block; }
  .mim-sheet--tresc .ure-variants__list {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; list-style: none;
    margin: 10px 0 0; padding: 0;
  }
  .mim-sheet--tresc .ure-variants__item a,
  .mim-sheet--tresc .ure-variants__item > span {
    display: flex; flex-direction: column; gap: 6px; text-decoration: none; color: var(--mim-ink);
    background: var(--mim-wash); padding: 8px; font-size: .75rem;
  }
  .mim-sheet--tresc .ure-variants__img { width: 100%; aspect-ratio: 1 / 1; object-fit: contain; background: #fff; }
  /* JEDEN znak wyboru: kreska rysowana przez `::before` kafla i cień wewnętrzny dawały dwie
     zielone linie obok siebie. Zostaje cień, bo obrysowuje cały kafel wariantu. */
  .mim-sheet--tresc .ure-variants__item.is-current::before { content: none; }
  .mim-sheet--tresc .ure-variants__item { padding-left: 0; }
  .mim-sheet--tresc .ure-variants__item.is-current a,
  .mim-sheet--tresc .ure-variants__item.is-current > span { box-shadow: inset 2px 0 0 var(--mim-green); }
  .mim-sheet--tresc .ure-variants__item.is-out { opacity: .55; }
}

/* ── 2026-09-14: belka, logo, zamiana pasków, arkusze od dołu, ulubione i porównywarka ─────── */
@media (max-width: 781px) {
  /* — logo w oryginalnych proporcjach —
     Wysokość 22 px razem z szerokością z bloku WordPressa spłaszczały logotyp z 4,05 do 3,0.
     Teraz jeden wymiar prowadzi, drugi liczy się sam. */
  .mimeble-header .mimeble-logo img {
    height: auto !important; width: auto !important; max-height: 22px; max-width: 100%;
    object-fit: contain;
  }

  /* — kreska pod wyszukiwarką i ciaśniej do belki z informacjami — */
  .mimeble-header .mimeble-header__main {
    border-bottom: 1px solid var(--mim-line); padding-bottom: 7px;
  }
  /* 24 px odstępu dokładał tu układ bloków WordPressa — belka z informacjami ma siedzieć
     tuż pod kreską, a nie pół centymetra niżej. */
  .mimeble-header .mimeble-promise { padding-top: 5px; padding-bottom: 5px; margin-top: 0 !important; }
  .mimeble-header .mimeble-promise__row { gap: 10px 14px; }

  /* — zdjęcie karty produktu ZAWSZE widoczne —
     WooCommerce drukuje galerię z `opacity:0` i odsłania ją własnym skryptem. Gdy ten skrypt
     nie zdąży (wolne łącze, strona z cache, slajd dociągnięty z innej strony), zdjęcia nie ma. */
  body.single-product .woocommerce-product-gallery { opacity: 1 !important; }

  /* — zamiana pasków: nawigacja na samym dole, treść karty nad nią — */
  .mim-bottomnav:not(.mim-bottomnav--druga) { bottom: 0; }
  body.single-product .mim-bottomnav:not(.mim-bottomnav--druga) { bottom: 0; }
  /* Bez własnej kreski u dołu — pasek pod spodem ma swoją górną i wychodziłaby z tego
     podwójna linia. */
  .mim-bottomnav--druga { bottom: var(--mim-naw1, 59px); }

  /* — kategorie wysuwają się OD DOŁU, tak jak każdy inny arkusz — */
  /* Panel ma leżeć na DOLE ekranu — bez flexa na rodzicu `margin-top:auto` nic nie robiło
     i kategorie nadal wjeżdżały od góry. */
  .mim-drawer { display: flex; align-items: flex-end; }
  .mim-drawer__in {
    width: 100%; max-width: none; height: auto; max-height: 82dvh; margin: auto 0 0;
    border-radius: 18px 18px 0 0; padding: 0 16px 0; animation: mim-wsuw .22s ease;
  }
  @keyframes mim-wsuw { from { transform: translateY(100%); } to { transform: none; } }
  .mim-dkafle { padding: 12px 0 16px; }

  /* — arkusz „Menu" — */
  .mim-mrow {
    display: flex; align-items: center; gap: 12px; min-height: 52px; text-decoration: none;
    color: var(--mim-ink); border-bottom: 1px solid var(--mim-line-2); font-size: .9375rem;
  }
  .mim-mrow:last-child { border-bottom: 0; }
  .mim-mrow svg { color: var(--mim-muted); flex: 0 0 auto; }
  button.mim-mrow {
    appearance: none; background: none; border: 0; border-bottom: 1px solid var(--mim-line-2);
    width: 100%; cursor: pointer; font: inherit; font-size: .9375rem; text-align: left;
  }
  .mim-mrow span { flex: 1; }
  .mim-mrow__n {
    font-style: normal; font-size: .75rem; color: var(--mim-faint); font-variant-numeric: tabular-nums;
  }

  /* — guziki nad zdjęciem: ulubione i porównanie — */
  .mim-foto-akcje {
    position: absolute; top: 8px; right: 8px; z-index: 4; display: flex; flex-direction: column; gap: 8px;
  }
  .mim-fbtn2 {
    appearance: none; cursor: pointer; width: 38px; height: 38px; border-radius: 50%;
    background: rgba(255, 255, 255, .92); border: 1px solid var(--mim-line); color: var(--mim-muted);
    display: flex; align-items: center; justify-content: center; padding: 0;
  }
  .mim-fbtn2.is-on { color: var(--mim-green-d); box-shadow: inset 2px 0 0 var(--mim-green); }

  /* — listy w arkuszach: ulubione i porównanie — */
  .mim-sheet__czysc {
    appearance: none; background: none; border: 0; cursor: pointer; font: inherit;
    font-size: .75rem; color: var(--mim-muted); text-decoration: underline; padding: 0;
  }
  .mim-lrow {
    display: grid; grid-template-columns: 56px 1fr auto; gap: 12px; align-items: center;
    padding: 10px 0; border-bottom: 1px solid var(--mim-line-2); text-decoration: none; color: var(--mim-ink);
  }
  .mim-lrow img { width: 56px; height: 56px; object-fit: contain; background: #fff; }
  .mim-lrow a { text-decoration: none; color: inherit; min-width: 0; }
  .mim-lrow__n { display: block; font-size: .8125rem; line-height: 1.3; }
  .mim-lrow__c { display: block; font-weight: 700; font-size: .875rem; margin-top: 3px; }
  .mim-lrow__x {
    appearance: none; background: none; border: 0; cursor: pointer; color: var(--mim-faint);
    font-size: 1.1rem; padding: 6px;
  }
  .mim-pusto { padding: 22px 0; color: var(--mim-faint); font-size: .875rem; text-align: center; }

  /* — arkusz „Porównanie”: lista wybranych mebli i przejście do pełnego widoku (23.09.2026,
     na wzór panelu porównywarki z m.mikup.pl) — */
  .mim-cmpp__i {
    display: grid; grid-template-columns: 44px minmax(0, 1fr) 32px; align-items: center; gap: 10px;
    padding: 8px 0; border-bottom: 1px solid var(--mim-line-2);
  }
  .mim-cmpp__i img { width: 44px; height: 44px; object-fit: contain; background: #fff; }
  .mim-cmpp__n { font-size: .8125rem; line-height: 1.3; }
  .mim-cmpp__go {
    appearance: none; border: 0; cursor: pointer; width: 100%; margin-top: 12px;
    background: var(--mim-green); color: #fff; font: inherit; font-weight: 700; padding: 13px 14px;
  }
  .mim-cmpp__go[disabled] { background: var(--mim-wash); color: var(--mim-faint); cursor: default; }
}

/* ── 2026-09-14: strona główna jako kanał + tekst kafla ma pierwszeństwo ─────── */
@media (max-width: 781px) {
  /* Strona główna wygląda jak kategoria: same produkty, cztery na ekran, przewijane
     z zatrzaskiem. Kategorie, banery i nagłówki mają swoje miejsce w przycisku „Kategorie”. */
  body.home .mimeble-home-title,
  body.home .mimeble-section-title,
  body.home .mim-tiles,
  body.home .mim-rest,
  body.home .mimeble-banners,
  body.home .wp-block-separator { display: none !important; }
  body.home .mimeble-main { padding-top: 0; }

  /* W kaflu USTĘPUJE ZDJĘCIE, nie tekst: na niskim ekranie (albo gdy pasek adresu zjada
     wysokość) wymiary i dostępność wypadały pod krawędź kafla i znikały. Teraz zdjęcie
     kurczy się, a wszystkie cztery wiersze opisu zostają widoczne. Kafle w kanale mają
     jednakową wysokość, więc zdjęcia i tak wychodzą równe. */
  body.mim-feed li.product a.woocommerce-LoopProduct-link { flex: 1 1 auto; min-height: 0; }
  /* Selektor musi być co najmniej tak mocny jak ten, który nadaje zdjęciu ramkę 12:11
     (`.woocommerce ul.products li.product a img`), inaczej `flex: 0 0 auto` stamtąd wygrywa
     i zdjęcie nie ustępuje ani piksela — to przez to ucinało wymiary. */
  body.mim-feed ul.products li.product a.woocommerce-LoopProduct-link img {
    flex: 0 1 auto; min-height: 0;
  }
  body.mim-feed li.product .mimeble-loop-cat,
  body.mim-feed li.product .woocommerce-loop-product__title,
  body.mim-feed li.product .price,
  body.mim-feed li.product .mim-loop-dims,
  body.mim-feed li.product .mimeble-stock,
  body.mim-feed li.product .ure-variants-count { flex: 0 0 auto; }
}

/* ── kafel w kanale: cztery wiersze opisu ciasno, reszta dla zdjęcia ─────────── */
@media (max-width: 781px) {
  /* Skoro tekst ma pierwszeństwo, musi zajmować tyle, ile naprawdę potrzebuje — inaczej
     zdjęcie schodziło do 77 px. Odstępy między wierszami opisu ścieśnione do minimum,
     a licznik wariantów znika: ta sama informacja jest na karcie produktu. */
  body.mim-feed li.product a img { margin-bottom: 6px; }
  /* Metka działu („REGAŁY") zdjęta z kafla na telefonie: w kanale kategorii i tak wiadomo,
     w jakim dziale się jest, a na stronie głównej liczy się mebel, nie nazwa półki.
     Zwolniony wiersz idzie na zdjęcie. */
  body.mim-feed li.product .mimeble-loop-cat { display: none; }
  body.mim-feed li.product .woocommerce-loop-product__title { margin: 0 0 2px; line-height: 1.15; }
  body.mim-feed li.product .price { margin: 0 0 2px; }
  body.mim-feed li.product .mimeble-stock { margin: 0; font-size: .6875rem; }
  body.mim-feed li.product .mim-loop-dims { margin: 1px 0 0; font-size: .6875rem; }
  body.mim-feed li.product .ure-variants-count { display: none; }
}

/* ── po wyłączeniu YITH: serce i porównanie także na komputerze, strona /ulubione/ ─────── */
@media (min-width: 782px) {
  /* Na komputerze galeria to lewa kolumna (48%), opis — prawa. Guziki siadają w prawym górnym
     rogu zdjęcia, tak samo jak na telefonie. */
  .woocommerce div.product { position: relative; }
  .mim-foto-akcje {
    position: absolute; top: 12px; right: calc(52% + 12px); z-index: 4;
    display: flex; flex-direction: column; gap: 8px;
  }
  .mim-fbtn2 {
    appearance: none; cursor: pointer; width: 40px; height: 40px; border-radius: 50%;
    background: rgba(255, 255, 255, .94); border: 1px solid var(--mim-line); color: var(--mim-muted);
    display: flex; align-items: center; justify-content: center; padding: 0;
  }
  .mim-fbtn2:hover { color: var(--mim-ink); }
  .mim-fbtn2.is-on { color: var(--mim-green-d); box-shadow: inset 2px 0 0 var(--mim-green); }
}
/* strona /ulubione/ — ten sam wiersz co w arkuszu na telefonie, szerzej */
.mim-ulubione-strona { max-width: 760px; margin: 0 auto; }
.mim-ulubione-strona__hd {
  display: flex; align-items: baseline; justify-content: space-between; gap: 16px;
  border-bottom: 1px solid var(--mim-line); padding-bottom: 10px; margin-bottom: 4px;
}
.mim-ulubione-strona__hd h2 { margin: 0; font-size: 1.25rem; font-weight: 500; }
.mim-ulubione-strona .mim-sheet__czysc {
  appearance: none; background: none; border: 0; cursor: pointer; font: inherit;
  font-size: .8125rem; color: var(--mim-muted); text-decoration: underline; padding: 0;
}
.mim-ulubione-strona .mim-lrow {
  display: grid; grid-template-columns: 72px 1fr auto; gap: 16px; align-items: center;
  padding: 12px 0; border-bottom: 1px solid var(--mim-line-2);
}
.mim-ulubione-strona .mim-lrow a { text-decoration: none; color: var(--mim-ink); min-width: 0; }
.mim-ulubione-strona .mim-lrow img { width: 72px; height: 72px; object-fit: contain; background: #fff; }
.mim-ulubione-strona .mim-lrow__n { display: block; font-size: .9375rem; line-height: 1.3; }
.mim-ulubione-strona .mim-lrow__c { display: block; font-weight: 700; margin-top: 4px; }
.mim-ulubione-strona .mim-lrow__x {
  appearance: none; background: none; border: 0; cursor: pointer; color: var(--mim-faint);
  font-size: 1.1rem; padding: 6px;
}
.mim-ulubione-strona .mim-pusto { padding: 28px 0; color: var(--mim-faint); text-align: center; }

/* ── 2026-09-15: wersja na komputer — obietnice na górze, szukajka pośrodku, menu bez strzałek ─── */
@media (max-width: 781px) {
  /* Szukajka wyszła z grupy narzędzi w HTML-u (na komputerze jest osobną, środkową kolumną belki).
     Na telefonie dostaje to samo, co dotąd dawała jej reguła dla dzieci tej grupy. */
  .mimeble-header__row > .mimeble-search { height: 36px; display: flex; align-items: center; margin: 0; }

  /* Nagłówki grup na stronie głównej są tylko dla komputera — telefon ma czysty kanał kafli. */
  ul.products li.mim-grupa { display: none; }
  /* (Zatrzask „co cztery kafle” zdjęty 23.09.2026 — na telefonie jest jeden mebel na ekran.) */
}

@media (min-width: 782px) {
  /* — kolejność pasów: obietnice → logo z szukajką → menu —
     W HTML-u obietnice stoją pod logo, bo tak ma zostać na telefonie; tutaj zmienia je `order`.
     Odstępy 24 px z układu bloków liczą się od kolejności w HTML-u, więc zerujemy je wszystkie,
     a każdy pas trzyma własne wnętrze. */
  .mimeble-header { display: flex; flex-direction: column; }
  .mimeble-header > * { margin-top: 0 !important; margin-bottom: 0 !important; }
  .mimeble-header > .mimeble-promise {
    order: -1; border-top: 0; border-bottom: 1px solid var(--mim-line);
    padding-top: 8px; padding-bottom: 8px;
  }
  .mimeble-header .mimeble-promise__row { gap: 2.6rem; font-size: .75rem; letter-spacing: .04em; }
  .mimeble-header .mimeble-promise__row p:not(:last-child)::after { right: -1.45rem; }

  /* — belka z logo: trzy kolumny o równych bokach, więc szukajka stoi dokładnie pośrodku — */
  .mimeble-header .mimeble-header__main {
    padding-top: 16px; padding-bottom: 16px; border-bottom: 1px solid var(--mim-line);
  }
  .mimeble-header .mimeble-header__row.is-layout-flex {
    display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 580px) minmax(0, 1fr);
    align-items: center; column-gap: 32px;
  }
  /* jedna wysokość dla wszystkiego w belce: 44 px */
  .mimeble-header .mimeble-header__row > *,
  .mimeble-header .mimeble-header__tools > * { height: 44px; margin: 0; display: flex; align-items: center; }

  /* logo z pionową kreską — ten sam znak, co na telefonie i przy wybranej kategorii */
  .mimeble-header .mimeble-logo { justify-self: start; position: relative; padding-left: 14px; }
  .mimeble-header .mimeble-logo::before {
    content: ""; position: absolute; left: 0; top: 50%; transform: translateY(-50%);
    width: 2px; height: 26px; background: var(--mim-green);
  }
  .mimeble-header .mimeble-logo a { display: flex; align-items: center; }
  .mimeble-header .mimeble-logo img { height: 30px !important; width: auto !important; max-height: none; }

  /* szukajka: pigułka jak na telefonie; blok ma w treści wpisane 220 px, stąd !important */
  .mimeble-header .mimeble-search { width: 100%; }
  .mimeble-header .mimeble-search .wp-block-search__inside-wrapper {
    width: 100% !important; height: 44px; border: 1px solid var(--mim-line); border-radius: 999px;
    background: var(--mim-wash); padding: 0 4px 0 20px; align-items: center;
    transition: border-color .15s ease, background-color .15s ease;
  }
  .mimeble-header .mimeble-search .wp-block-search__inside-wrapper:focus-within { border-color: var(--mim-ink); background: #fff; }
  .mimeble-header .mimeble-search .wp-block-search__input { height: 42px; padding: 0; font-size: .9375rem; }
  .mimeble-header .mimeble-search .wp-block-search__input:focus { outline: 0; }
  .mimeble-header .mimeble-search .wp-block-search__button {
    width: 36px; min-width: 36px; height: 36px; padding: 0; border-radius: 0 !important;
    display: flex; align-items: center; justify-content: center; color: var(--mim-ink) !important;
  }

  /* narzędzia po prawej: planer z podpisem i trzy okrągłe przyciski tej samej wysokości */
  .mimeble-header .mimeble-header__tools.is-layout-flex { justify-self: end; gap: 10px; flex-wrap: nowrap; }
  .mimeble-header .mimeble-planer-link a,
  .mimeble-header .mimeble-wishlist-link a,
  .mimeble-header .wp-block-woocommerce-customer-account a,
  .mimeble-header .wc-block-mini-cart__button {
    height: 44px; display: flex; align-items: center; justify-content: center; position: relative;
    border: 1px solid var(--mim-line); border-radius: 999px; color: var(--mim-ink); background: #fff;
    transition: border-color .15s ease;
  }
  .mimeble-header .mimeble-planer-link a { padding: 0 18px 0 15px; gap: 8px; font-size: .875rem; font-weight: 600; }
  .mimeble-header .mimeble-wishlist-link a,
  .mimeble-header .wp-block-woocommerce-customer-account a,
  .mimeble-header .wc-block-mini-cart__button { width: 44px; padding: 0; }
  .mimeble-header .mimeble-planer-link a:hover,
  .mimeble-header .mimeble-wishlist-link a:hover,
  .mimeble-header .wp-block-woocommerce-customer-account a:hover,
  .mimeble-header .wc-block-mini-cart__button:hover { border-color: var(--mim-ink); color: var(--mim-ink); }
  .mimeble-header .mimeble-header__tools svg { width: 20px; height: 20px; }
  .mimeble-header .wc-block-customer-account__visual { display: flex; }

  /* — menu kategorii: jeden równy rząd na całą szerokość, bez strzałek —
     Nazwy grube i czarne jak w sklepie, najechanie podkreśla pozycję przy dolnej krawędzi paska,
     a „tu jesteś" dalej niesie wyłącznie zielona kreska pionowa. */
  .mimeble-header .mimeble-navbar { border-top: 0; border-bottom: 1px solid var(--mim-line); padding-top: 0; padding-bottom: 0; }
  .mim-nav > p { display: none; }              /* pusty akapit z wpautop dokładał 16 px pustego pasa */
  .mim-nav__bar { border-top: 0; }
  .mim-nav__list {
    height: 52px; padding: 0 16px; flex-wrap: nowrap; align-items: stretch;
    justify-content: space-between; gap: 0 24px; box-sizing: content-box;
  }
  .mim-nav__item { display: flex; align-items: stretch; gap: 0; }
  .mim-nav__btn {
    display: flex; align-items: center; height: 100%; padding: 0; white-space: nowrap;
    font-size: .9375rem; font-weight: 600; color: var(--mim-ink); letter-spacing: -.005em;
  }
  .mim-nav__btn:hover,
  .mim-nav__item.is-open > .mim-nav__btn { color: var(--mim-ink); box-shadow: inset 0 -2px 0 var(--mim-ink); }
  .mim-nav__btn.is-active { padding-left: 10px; }
  /* Strzałka znika z widoku, ale zostaje dla klawiatury: pokazuje się dopiero, gdy dostanie fokus
     (Tab), bo tylko nią da się otworzyć panel bez myszy. Myszą panel otwiera najechanie. */
  .mim-nav__more {
    position: absolute; width: 1px; height: 1px; padding: 0; margin: 0; overflow: hidden;
    clip-path: inset(50%); white-space: nowrap;
  }
  .mim-nav__more:focus-visible {
    position: static; width: auto; height: auto; padding: 0 0 0 6px; overflow: visible; clip-path: none;
  }

  /* panel podkategorii kładzie się NA treść strony, zamiast ją spychać w dół */
  .mim-panel {
    position: absolute; left: 0; right: 0; top: 100%; z-index: 40;
    border-top: 0; border-bottom: 1px solid var(--mim-line);
    box-shadow: 0 22px 32px -22px rgba(17, 17, 17, .22);
  }
  .mim-panel.is-open { border-top: 1px solid var(--mim-line); }
  .mim-panel__inner { padding: 22px 16px 26px; box-sizing: content-box; }

  /* Treść kategorii i karty produktu (szablon WooCommerce jako `alignwide`, 1440 px) wychodziła
     poza krawędzie belki i menu (1280 px) — okruszki i nagłówek stały 57 px na lewo od logo. */
  .mimeble-main > .content-area.alignwide { max-width: var(--wp--style--global--content-size, 1280px); }

  /* — strona główna: Comfino zaraz pod menu, potem trzy grupy produktów — */
  .mimeble-home > .mimeble-banners { margin-top: 0; margin-bottom: 8px; }
  .mimeble-home ul.products { row-gap: 48px; }
  ul.products li.mim-grupa { grid-column: 1 / -1; list-style: none; margin: 0 0 -20px; padding: 0; }
  ul.products li.mim-grupa .mimeble-section-title { margin: 0; }
  ul.products li.mim-grupa:not(:first-child) { border-top: 1px solid var(--mim-line); padding-top: 44px; }
  .mimeble-home .mimeble-home-title { margin-top: 0; }
}

@media (min-width: 1025px) {
  /* Na stronie głównej nie ma szyny filtrów, więc mieszczą się cztery kafle w rzędzie —
     tyle samo, co kafli kategorii. */
  .mimeble-home ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: 32px; }
}

@media (min-width: 782px) and (max-width: 1180px) {
  /* Za wąsko na równe boki: logo i narzędzia biorą tyle, ile potrzebują, szukajka resztę. */
  .mimeble-header .mimeble-header__row.is-layout-flex { grid-template-columns: auto minmax(0, 1fr) auto; column-gap: 20px; }
  .mim-nav__list { justify-content: flex-start; gap: 0 22px; overflow-x: auto; scrollbar-width: none; }
  .mim-nav__list::-webkit-scrollbar { display: none; }
  .mim-nav__btn { font-size: .875rem; }
}
@media (min-width: 782px) and (max-width: 960px) {
  .mimeble-header .mimeble-planer-link span { display: none; }
  .mimeble-header .mimeble-planer-link a { width: 44px; padding: 0; }
}

/* ── 2026-09-15: bez filtrów na stronie głównej ───────────────────────────────── */
@media (max-width: 781px) {
  /* Dolny pasek liczy kolumny sam: pięć przycisków na liście i karcie, cztery na stronie głównej
     (bez „Filtr"). Stała siatka na pięć zostawiała po prawej pustą kolumnę. */
  .mim-bottomnav:not(.mim-bottomnav--druga) {
    grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr);
  }
}
@media (min-width: 782px) {
  /* Arkusz filtrów renderowany w stopce (karta produktu, koszyk, strony treści) jest dla telefonu,
     gdzie otwiera go dolny pasek. Na komputerze wisiał pod stopką jako panel na 1400 px.
     Filtry na liście produktów siedzą w `.mim-archive`, nie bezpośrednio w <body>, więc zostają. */
  body > .mim-rail { display: none; }
}

/* ── 2026-09-15: filtry pod przyciskiem (komputer) ─────────────────────────────────
   Szyna po lewej zabierała 270 px szerokości każdej liście. Teraz nad listą, zaraz pod
   podkategoriami, stoi wyśrodkowany przycisk „Filtry" ze strzałką w dół na tle cienkiej kreski;
   klik rozsuwa panel na całą szerokość. To wciąż ten sam <details> i ten sam formularz, co arkusz
   na telefonie — zmienia się tylko wygląd. */
@media (min-width: 782px) {
  .mim-archive { display: block; }
  .mim-archive .mim-rail { position: relative; top: auto; margin: 4px 0 26px; }
  .mim-archive .mim-rail::before {
    content: ""; position: absolute; left: 0; right: 0; top: 18px; height: 1px; background: var(--mim-line);
  }

  /* — przycisk — */
  .mim-archive .mim-rail__sum {
    position: relative; z-index: 1; width: max-content; margin: 0 auto; height: 36px;
    padding: 0 16px 0 18px; border: 1px solid var(--mim-line); border-radius: 999px; background: #fff;
    display: flex; align-items: center; gap: 10px;
    font-size: .875rem; font-weight: 600; letter-spacing: 0; text-transform: none; color: var(--mim-ink);
    transition: border-color .15s ease;
  }
  .mim-archive .mim-rail__sum:hover,
  .mim-archive .mim-rail__box[open] > .mim-rail__sum { border-color: var(--mim-ink); }
  .mim-archive .mim-rail__sum:focus-visible { outline: 2px solid var(--mim-green); outline-offset: 2px; }
  /* strzałka w dół; po rozwinięciu obraca się do góry */
  .mim-archive .mim-rail__sum::after {
    content: ""; width: 7px; height: 7px; border: solid currentColor; border-width: 0 1.5px 1.5px 0;
    transform: translateY(-2px) rotate(45deg); transition: transform .2s ease;
  }
  .mim-archive .mim-rail__box[open] > .mim-rail__sum::after { transform: translateY(2px) rotate(-135deg); }
  .mim-archive .mim-rail__badge {
    min-width: 20px; height: 20px; padding: 0 6px; border-radius: 999px; background: var(--mim-ink);
    color: #fff; font-size: .6875rem; font-weight: 700; display: inline-flex; align-items: center; justify-content: center;
  }

  /* — panel: suwaki w jednym rzędzie, pod nimi kolory i rodzaj, na dole przycisk — */
  .mim-archive .mim-rail__body {
    padding: 6px 0 22px; border-bottom: 1px solid var(--mim-line);
    animation: mim-rozsun .24s ease both;
  }
  .mim-archive .mim-rail__body > form {
    display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 40px; align-items: start;
  }
  .mim-archive .mim-rail__grp { border: 0; padding: 18px 0 4px; }
  .mim-archive .mim-rail__grp--kolor {
    grid-column: span 3; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 32px;
    align-content: start;
  }
  .mim-archive .mim-rail__grp--kolor > .mim-rail__lab { grid-column: 1 / -1; }
  /* sortowanie ma nad listą własną listę rozwijaną — w panelu byłoby drugi raz
     (zaznaczony wybór i tak idzie z formularzem, więc filtr nie gubi kolejności) */
  .mim-archive .mim-rail__grp--sort { display: none; }
  .mim-archive .mim-rail__akcje {
    grid-column: 1 / -1; display: flex; justify-content: flex-end; align-items: center; gap: 24px;
    margin-top: 14px; padding-top: 18px; border-top: 1px solid var(--mim-line-2);
  }
  .mim-archive .mim-rail__akcje .mim-rail__clear { order: -1; margin: 0; }
  .mim-archive .mim-sheet__go {
    display: flex !important; align-items: center; justify-content: center; height: 44px; padding: 0 28px;
    margin: 0; width: auto; border: 0; border-radius: 999px; background: var(--mim-ink); color: #fff;
    font: inherit; font-size: .875rem; font-weight: 600; cursor: pointer;
  }
  .mim-archive .mim-sheet__go:hover { background: #000; }
  .mim-archive .mim-sheet__go:focus-visible { outline: 2px solid var(--mim-green); outline-offset: 2px; }

  /* — lista na całą szerokość: licznik po lewej, sortowanie po prawej, w jednym wierszu — */
  .mim-archive__list > .mim-count { float: left; line-height: 34px; }
  .woocommerce .mim-archive__list > .woocommerce-ordering { float: right; margin: 0 0 22px; }
  .mim-archive__list > ul.products { clear: both; }
}
@keyframes mim-rozsun {
  from { opacity: 0; transform: translateY(-6px); }
  to { opacity: 1; transform: none; }
}
@media (min-width: 1025px) {
  /* bez szyny mieszczą się cztery kafle w rzędzie — tyle samo, co na stronie głównej */
  .mim-archive ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: 32px; }
}
@media (min-width: 782px) and (max-width: 1024px) {
  .mim-archive .mim-rail__body > form { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 32px; }
  .mim-archive .mim-rail__grp--kolor { grid-column: 1 / -1; }
}

/* ── 2026-09-15: zastępnik brakującej miniatury ──────────────────────────────────
   Podstawia go nav.js, gdy miniatura zdjęcia z hurtowni jeszcze nie istnieje (404). Cały zastępnik
   ma być widoczny — bez kadrowania, na tym samym neutralnym tle co on sam. */
img.mim-brak-foto { object-fit: contain !important; background: #f7f7f5; }

/* ── 2026-09-16: karta produktu na komputerze — porządek Pionu ───────────────────
   Prośba właściciela: karta ma bardziej pasować do Pionu. Co zmienione i dlaczego:
   – kolumna opisu dzielona włosowymi liniami na trzy grupy (cena · wybór: warianty i wymiary ·
     zakup: stan i przycisk) zamiast luźno rozsypanych szarych wierszy;
   – wymiary mebla jako trzy liczby z podpisami nad nimi, cyfry tabelaryczne;
   – bez zakładek: opis i parametry stoją obok siebie, opinie pod nimi — nic nie jest ukryte za
     kliknięciem, a aktywna zakładka nie potrzebuje podkreślenia (podkreślenie = link);
   – nagłówki sekcji z zieloną kropką (czwarte z miejsc na zieleń), podtytuły w opisie hurtowni
     jak podpis osi wariantu, bo hurtownie piszą je WERSALIKAMI;
   – listwa miniatur bez szarej belki przewijania.
   Telefon bez zmian: tam karta jest slajdem kanału, a opis i parametry siedzą w arkuszach. */

/* wymiary: znaczniki neutralne, dopóki komputer ich nie ułoży (telefon widzi zwykły wiersz tekstu) */
.mimeble-dims small { font-size: inherit; }
.mimeble-dims b { font-weight: inherit; }

@media (min-width: 782px) {
  .woocommerce div.product .product_title { text-wrap: balance; margin-bottom: .55rem; }
  .mimeble-sku { margin-bottom: 1.6rem; }

  /* grupa ceny */
  .mimeble-price-label {
    border-top: 1px solid var(--mim-line); padding-top: 1.35rem; margin: 0 0 .4rem;
    font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--mim-faint);
  }
  .woocommerce div.product p.price { font-size: 2.1rem; letter-spacing: -.01em; margin-bottom: .45rem; }
  .mimeble-vat { font-size: .78rem; margin-bottom: .2rem; }
  .mimeble-delivery { margin-bottom: 1.5rem; }

  /* grupa wyboru: warianty i wymiary */
  .woocommerce div.product .summary .ure-variants { border-top: 1px solid var(--mim-line); padding-top: 1.35rem; margin: 0 0 1.3rem; }
  .woocommerce div.product .summary .mimeble-delivery + .mimeble-dims { border-top: 1px solid var(--mim-line); padding-top: 1.35rem; }
  .mimeble-dims {
    display: flex; flex-wrap: wrap; gap: .4rem 2.4rem; margin: 0 0 1.5rem;
    color: var(--mim-ink); font-size: 1.05rem;
  }
  .mimeble-dims__sep { display: none; }
  .mimeble-dims__c { display: flex; flex-direction: column; }
  .mimeble-dims__c small {
    font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--mim-faint); margin-bottom: .15rem;
  }

  /* grupa zakupu: stan i przycisk */
  .woocommerce div.product .summary > p.stock {
    border-top: 1px solid var(--mim-line); padding-top: 1.35rem; margin: 0 0 1rem; font-size: .875rem;
  }
  .woocommerce div.product .summary form.cart { margin-top: 0; }
  .woocommerce div.product .summary .mimeble-notify { margin-top: 0; min-width: 280px; text-align: center; }
  .woocommerce div.product .product_meta { margin-top: 2.2rem; }

  /* sekcje zamiast zakładek */
  .woocommerce div.product .woocommerce-tabs { margin-top: 4.5rem; border-top: 1px solid var(--mim-line); padding-top: 3rem; }
  .woocommerce div.product .woocommerce-tabs ul.tabs { display: none; }
  .woocommerce div.product .woocommerce-tabs .panel { display: block !important; max-width: none; margin: 0 0 3.2rem; }
  .woocommerce div.product .woocommerce-tabs .panel > h2:first-of-type,
  .woocommerce #reviews #comments h2.woocommerce-Reviews-title {
    display: block; font-family: var(--mim-font); font-weight: 300; font-size: 1.5rem;
    letter-spacing: -.015em; line-height: 1.2; margin: 0 0 1.4rem;
  }
  .woocommerce div.product .woocommerce-tabs .panel > h2:first-of-type::after,
  .woocommerce #reviews #comments h2.woocommerce-Reviews-title::after,
  .woocommerce .related > h2::after, .woocommerce .upsells > h2::after { content: "."; color: var(--mim-green); }
  .woocommerce div.product .woocommerce-tabs #tab-description { max-width: 74ch; }
  .woocommerce div.product .woocommerce-tabs #tab-description h3 {
    font-family: var(--mim-font); font-size: .78rem; font-weight: 600; letter-spacing: .08em;
    text-transform: uppercase; color: var(--mim-ink); margin: 2.2rem 0 .7rem;
  }
  .woocommerce div.product .woocommerce-tabs #tab-description > h2 + h3,
  .woocommerce div.product .woocommerce-tabs #tab-description > h2 + p + h3 { margin-top: 0; }
  .woocommerce div.product .woocommerce-tabs #tab-description li { margin-bottom: .3rem; }
  .woocommerce div.product .woocommerce-tabs #tab-description li::marker { color: var(--mim-faint); }
  .woocommerce div.product .mimeble-parametry + .shop_attributes { border-top: 0; }
  .woocommerce div.product .woocommerce-tabs .shop_attributes th { text-align: left; vertical-align: top; width: 42%; padding-right: 1rem; }
  .mimeble-parametry__opis { display: block; font-size: .72rem; color: var(--mim-faint); margin-top: .15rem; }
  .woocommerce div.product .woocommerce-tabs #tab-reviews,
  .woocommerce div.product .woocommerce-tabs #tab-additional_information,
  .woocommerce div.product .woocommerce-tabs #tab-bezpieczenstwo { max-width: 74ch; }

  /* listwa miniatur: przewijanie zostaje, szara belka znika */
  .woocommerce div.product div.images .flex-control-thumbs { scrollbar-width: thin; scrollbar-color: var(--mim-line) transparent; }
  .woocommerce div.product div.images .flex-control-thumbs::-webkit-scrollbar { width: 3px; }
  .woocommerce div.product div.images .flex-control-thumbs::-webkit-scrollbar-thumb { background: var(--mim-line); }
  .woocommerce div.product div.images .flex-control-thumbs::-webkit-scrollbar-button { display: none; }
}

/* szeroki ekran: opis po lewej, parametry i bezpieczeństwo w węższej kolumnie po prawej, opinie pod spodem */
@media (min-width: 1025px) {
  .woocommerce div.product .woocommerce-tabs:has(#tab-description):has(#tab-additional_information) {
    display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 420px); column-gap: clamp(3rem, 6vw, 6rem); align-items: start;
  }
  .woocommerce-tabs:has(#tab-description):has(#tab-additional_information) > #tab-description { grid-column: 1; grid-row: 1 / span 3; }
  .woocommerce-tabs:has(#tab-description):has(#tab-additional_information) > #tab-additional_information { grid-column: 2; grid-row: 1; }
  .woocommerce-tabs:has(#tab-description):has(#tab-additional_information) > #tab-bezpieczenstwo { grid-column: 2; grid-row: 2; }
  .woocommerce-tabs:has(#tab-description):has(#tab-additional_information) > #tab-reviews { grid-column: 1 / -1; grid-row: 4; }
  .woocommerce-tabs:has(#tab-description):has(#tab-additional_information) > :not(.panel):not(.tabs) { grid-column: 1 / -1; }
}

/* ── 2026-09-16: kafle i reszta sklepu w porządku Pionu ───────────────────────────
   Prośba właściciela: „popraw też kafle i inne niepasujące rzeczy". Przegląd stron (kolory spoza palety,
   zaokrąglenia, podkreślenia jako stan) pokazał resztki domyślnego WooCommerce: błękitne komunikaty,
   zaokrąglone formularze, czerwony krzyżyk w koszyku, trzy zielone przyciski na jednym ekranie,
   szare pudełko płatności. Tutaj wszystko to wraca do sześciu barw i pionowej kreski. */

.mimeble-bc-sep { color: var(--mim-faint); }

/* kafel produktu: podpis kategorii jak podpis osi, nazwa zawsze na dwa wiersze, żeby ceny stały w rzędzie */
.mimeble-loop-cat { font-size: .68rem; letter-spacing: .1em; font-weight: 500; color: var(--mim-faint); }
.mimeble-loop-cat.is-pusta { visibility: hidden; }
.woocommerce ul.products li.product a:hover .woocommerce-loop-product__title {
  box-shadow: none; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px;
}
@media (min-width: 782px) {
  .woocommerce ul.products li.product .woocommerce-loop-product__title { min-height: calc(2em * 1.32); }
}
/* kafel kategorii: podkreślenie pod samą nazwą, nie pod całym wierszem */
.mim-tile:hover .mim-tile__name { box-shadow: none; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }

/* paginacja: bieżąca strona zieloną kreską, bo podkreślenie znaczy „link" */
.woocommerce nav.woocommerce-pagination ul li span.current { box-shadow: inset 2px 0 0 var(--mim-green); }

/* komunikaty: bez błękitu, tła i zaokrągleń; czerwień tylko przy błędzie */
.wc-block-components-notice-banner,
.woocommerce .woocommerce-info, .woocommerce .woocommerce-message, .woocommerce .woocommerce-error,
.woocommerce-info, .woocommerce-message, .woocommerce-error {
  background: #fff !important; color: var(--mim-ink) !important; border: 1px solid var(--mim-line) !important;
  border-radius: 0 !important; box-shadow: none !important; font-size: .875rem;
}
.wc-block-components-notice-banner > svg { background: none !important; fill: var(--mim-ink) !important; }
.woocommerce-info::before, .woocommerce-message::before { color: var(--mim-ink) !important; }
.wc-block-components-notice-banner.is-error, .woocommerce-error { box-shadow: inset 2px 0 0 #a6323a !important; }
.wc-block-components-notice-banner.is-error > svg, .woocommerce-error::before { fill: #a6323a !important; color: #a6323a !important; }
.wc-block-components-notice-banner a, .woocommerce-info a, .woocommerce-message a {
  color: var(--mim-ink) !important; text-decoration: underline; text-underline-offset: 3px;
}
.wc-block-components-notice-banner .button, .woocommerce-message .button {
  background: transparent !important; color: var(--mim-ink) !important; box-shadow: inset 0 0 0 1px var(--mim-line) !important; text-decoration: none;
}

/* formularze: logowanie, rejestracja, kupon, kasa */
.woocommerce form.login, .woocommerce form.register, .woocommerce form.checkout_coupon,
.woocommerce form.lost_reset_password, .woocommerce form.woocommerce-ResetPassword {
  border: 1px solid var(--mim-line) !important; border-radius: 0 !important; padding: 28px !important;
}
.woocommerce form .form-row .required, .woocommerce .required { color: var(--mim-muted) !important; text-decoration: none; }
.woocommerce form .form-row .input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select,
.woocommerce-page form .form-row .input-text, .woocommerce-page form .form-row textarea {
  border: 1px solid var(--mim-line) !important; border-radius: 0 !important; background: #fff; color: var(--mim-ink); box-shadow: none;
}
.woocommerce form .form-row .input-text:focus, .woocommerce form .form-row textarea:focus, .woocommerce form .form-row select:focus {
  border-color: var(--mim-ink) !important; outline: none;
}
.woocommerce input[type="checkbox"], .woocommerce input[type="radio"] { accent-color: var(--mim-ink); }
.woocommerce-privacy-policy-text { color: var(--mim-muted); font-size: .8125rem; }

/* koszyk: jeden zielony przycisk (Przejdź do płatności), reszta z konturem */
.woocommerce a.remove { color: var(--mim-faint) !important; font-weight: 300; }
.woocommerce a.remove:hover { color: var(--mim-ink) !important; background: transparent !important; }
/* „Usuń” zamiast gołego „×” (24.09.2026) zamienia tekst w ciasny okrągły przycisk WooCommerce
   (domyślnie 1.618em kółko) — bez zdjęcia tych wymiarów „Usuń” się łamie. Dotyczy koszyka na
   KAŻDEJ szerokości ekranu; telefon dostaje dodatkowo własny układ karty w bloku @media niżej. */
.woocommerce-cart-form__contents td.product-remove a.remove {
  display: inline-block !important; width: auto !important; height: auto !important;
  border-radius: 0 !important; line-height: normal !important; padding: 3px 0 !important;
  font-size: .8125rem !important; font-weight: 500 !important; text-decoration: underline;
  text-underline-offset: 3px;
}
.woocommerce table.cart td.actions button.button[name="apply_coupon"],
.woocommerce table.cart td.actions button.button[name="update_cart"],
.woocommerce form.checkout_coupon button.button[name="apply_coupon"] {
  background: transparent !important; color: var(--mim-ink) !important; box-shadow: inset 0 0 0 1px var(--mim-line) !important;
}
.woocommerce table.cart td.actions button.button[name="apply_coupon"]:hover,
.woocommerce table.cart td.actions button.button[name="update_cart"]:hover:not(:disabled),
.woocommerce form.checkout_coupon button.button[name="apply_coupon"]:hover {
  background: transparent !important; box-shadow: inset 0 0 0 1px var(--mim-ink) !important;
}
.woocommerce table.shop_table { border-radius: 0 !important; border-color: var(--mim-line) !important; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td,
.woocommerce .cart-collaterals .cart_totals table th, .woocommerce .cart-collaterals .cart_totals table td { border-color: var(--mim-line) !important; }
.woocommerce .quantity .qty { border: 1px solid var(--mim-line); border-radius: 0; }
.woocommerce .cart-collaterals .cart_totals > h2, .woocommerce-checkout #order_review_heading,
.woocommerce-checkout .woocommerce-billing-fields > h3, .woocommerce-checkout .woocommerce-additional-fields > h3 {
  font-weight: 300; letter-spacing: -.015em;
}

/* kasa: płatności bez szarego pudełka, opis metody na tle pomocniczym */
.woocommerce-checkout #payment, .woocommerce-checkout #payment ul.payment_methods {
  background: #fff !important; border-radius: 0 !important; border-color: var(--mim-line) !important;
}
.woocommerce-checkout #payment div.payment_box {
  background: var(--mim-wash) !important; color: var(--mim-muted) !important; border-radius: 0 !important;
}
.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--mim-wash) !important; }

/* nagłówek kasy: logo, obietnica, powrót do koszyka — bez menu, żeby nic nie odciągało od zamówienia */
.mim-kasa-hdr { border-bottom: 1px solid var(--mim-line); padding-block: 18px; }
.mim-kasa-hdr__row { gap: 24px; }
.mim-kasa-hdr .mimeble-logo { position: relative; padding-left: 14px; margin: 0; }
.mim-kasa-hdr .mimeble-logo::before { content: ""; position: absolute; left: 0; top: 4px; bottom: 4px; width: 2px; background: var(--mim-green); }
.mim-kasa-hdr__obietnica { margin: 0 auto 0 0 !important; font-size: .78rem; color: var(--mim-muted); }
.mim-kasa-hdr__wroc { margin: 0; font-size: .875rem; }
.mim-kasa-hdr__wroc a { color: var(--mim-ink); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 781px) { .mim-kasa-hdr__obietnica { display: none; } }

/* strona 404 */
.mimeble-404 .mimeble-404__tytul { font-size: clamp(2rem, 4vw, 2.8rem); margin: 0 0 .8rem; }
.mimeble-404 .mimeble-404__tekst { color: var(--mim-muted); max-width: 56ch; margin: 0 0 1.6rem; }
.mimeble-404 .mimeble-404__szukaj { max-width: 520px; margin: 0 0 3.5rem; }

/* stopka: nagłówki kolumn jak podpisy osi, nie pogrubione wersaliki */
.mimeble-footer h3, .mimeble-footer h3 strong {
  font-size: .72rem !important; font-weight: 500 !important; letter-spacing: .1em; text-transform: uppercase; color: var(--mim-faint);
}


/* ── 2026-09-16, rozbudowane 24.09.2026: koszyk na telefonie wygląda jak reszta sklepu ──────────
   Właściciel: „popraw widok koszyka w wersji mobilnej, aby bardziej pasował wizualnie do sklepu”.
   Do wczoraj: WooCommerce poniżej 769 px zamieniał tabelę w osobne wiersze „Produkt: …”, „Cena: …”
   itd. — samym tekstem, BEZ ZDJĘCIA (własny arkusz WooCommerce chowa kolumnę zdjęcia na wąskim
   ekranie). Teraz każdy produkt to jedna karta: zdjęcie po lewej jak w `.mim-lrow` (ulubione,
   porównanie), nazwa i „✕” obok niego, a cena/ilość/kwota pod spodem, wyrównane pod nazwą —
   ten sam układ, którym sklep pokazuje produkty wszędzie indziej. */
@media (max-width: 768px) {
  .woocommerce table.shop_table_responsive tr td::before,
  .woocommerce-page table.shop_table_responsive tr td::before {
    content: attr(data-title); font-weight: 500; font-size: .7rem; letter-spacing: .1em; text-transform: uppercase;
    color: var(--mim-faint); line-height: 1.9;
  }
  .woocommerce table.shop_table_responsive tr:nth-child(2n) td,
  .woocommerce-page table.shop_table_responsive tr:nth-child(2n) td { background-color: transparent; }

  /* Karta produktu (rozbudowane 24.09.2026, trzecia poprawka: „wyśrodkuj zdjęcie, nazwę zaraz
     obok, na końcu przycisk Usuń zamiast krzyżyka, cenę/ilość/kwotę ładnie wyrównaj"). Zdjęcie
     wyśrodkowane w pionie na całej wysokości karty (`align-self:center`, trzy wiersze: nazwa,
     cena·ilość·kwota, Usuń). Cena/ilość/kwota w JEDNYM rzędzie — kwota dostaje więcej miejsca
     (`1.3fr`), bo to zwykle najdłuższa liczba w wierszu, i jest wyrównana do prawej jak na
     paragonie. „Usuń” jako właściwy przycisk (tekst „Usuń” zamiast „×” — filtr w mimeble-core.php),
     w tym samym stylu co „Wyczyść wszystko” w ulubionych/porównaniu, na końcu karty, do prawej.
     Dotyczy TYLKO koszyka (`.woocommerce-cart-form__contents`) — inne odpowiedzialne tabele
     (historia zamówień na koncie, podsumowanie w kasie) zostają jak były. */
  .woocommerce-cart-form__contents tbody tr.cart_item {
    display: grid; grid-template-columns: 64px 1fr 1fr 1.3fr; column-gap: 12px; row-gap: 8px;
    padding: 18px 0; border-bottom: 1px solid var(--mim-line-2); align-items: start;
  }
  .woocommerce-cart-form__contents tbody tr.cart_item > td { border-bottom: 0 !important; padding: 0 !important; }
  /* `min-width:0` i `width:64px` są konieczne: siatka domyślnie nie kurczy komórki poniżej
     jej „naturalnej” szerokości (klasyczna pułapka CSS Grid), a `<td>` bez tego rozciągał się
     na 120 px mimo toru 64 px — „✕” i nazwa wjeżdżały na zdjęcie (24.09.2026, właściciel:
     „elementy nachodzą na siebie”). `text-align:left` gasi regułę WooCommerce, która wypychała
     zdjęcie (element inline) do prawej krawędzi tej zbyt szerokiej komórki. */
  .woocommerce-cart-form__contents td.product-thumbnail {
    display: block !important; grid-column: 1; grid-row: 1 / span 3; align-self: center;
    width: 64px !important; min-width: 0 !important; overflow: hidden; text-align: left !important;
  }
  .woocommerce-cart-form__contents td.product-thumbnail img {
    width: 64px !important; height: 64px !important; object-fit: contain; background: #fff;
  }
  .woocommerce-cart-form__contents td.product-name {
    grid-column: 2 / span 3; grid-row: 1; padding-top: 2px !important;
  }
  .woocommerce table.shop_table_responsive tr td.product-name::before { content: none !important; }
  .woocommerce-cart-form__contents td.product-name a { color: var(--mim-ink); text-decoration: none; font-size: .9375rem; line-height: 1.3; }
  /* CENA, ILOŚĆ, KWOTA: jeden rząd, mała etykieta NAD wartością (pseudo-element liczy się jako
     element flex, więc `display:flex;flex-direction:column` ustawia go nad treścią bez sztuczek
     z `float`); KWOTA pogrubiona i do prawej — to jest liczba, na którą klient patrzy. */
  .woocommerce-cart-form__contents td.product-price,
  .woocommerce-cart-form__contents td.product-quantity,
  .woocommerce-cart-form__contents td.product-subtotal {
    grid-row: 2; display: flex; flex-direction: column; gap: 4px;
  }
  .woocommerce-cart-form__contents td.product-price { grid-column: 2; }
  .woocommerce-cart-form__contents td.product-quantity { grid-column: 3; }
  .woocommerce-cart-form__contents td.product-subtotal { grid-column: 4; align-items: flex-end; }
  .woocommerce-cart-form__contents td.product-price::before,
  .woocommerce-cart-form__contents td.product-quantity::before,
  .woocommerce-cart-form__contents td.product-subtotal::before {
    float: none; font-size: .6875rem;
  }
  .woocommerce-cart-form__contents td.product-price bdi,
  .woocommerce-cart-form__contents td.product-subtotal bdi { white-space: nowrap; }
  .woocommerce-cart-form__contents td.product-subtotal { font-weight: 700; font-size: 1rem; }
  .woocommerce-cart-form__contents td.product-quantity .quantity input.qty {
    width: 100%; max-width: 56px; padding: .4rem .3rem; border: 1px solid var(--mim-line);
    border-radius: 0; font-size: .9375rem; text-align: center;
  }
  /* „Usuń” — prawdziwy przycisk (tekst z filtra `woocommerce_cart_item_remove_link`), na końcu
     karty, do prawej; ten sam styl co „Wyczyść wszystko” w arkuszach ulubionych/porównania. */
  .woocommerce-cart-form__contents td.product-remove {
    grid-column: 2 / span 3; grid-row: 3; text-align: right !important; margin-top: 2px;
  }
  .woocommerce table.shop_table_responsive tr td.product-remove::before { content: none !important; }
  .woocommerce-cart-form__contents td.product-remove a.remove {
    display: inline-flex !important; width: auto !important; height: auto !important;
    margin: 0 !important; padding: 4px 0; color: var(--mim-muted) !important;
    background: transparent !important; font-size: .8125rem !important; font-weight: 500;
    text-decoration: underline; text-underline-offset: 3px;
  }

  /* Kupon (24.09.2026, druga poprawka: „po naciśnięciu przycisku kupon niech się pojawi pole").
     Pole jest schowane, dopóki klient nie kliknie „Kupon” w dolnym pasku (nav.js dopisuje klasę
     na `body`) — inaczej byłoby drugim, niepotrzebnym formularzem widocznym od razu, mimo że
     realne pole jest to samo, tylko przełącza się jego widoczność. */
  .woocommerce table.cart td.actions .coupon { display: none; float: none; padding: 0 0 8px; }
  body.mim-kupon-otwarty .woocommerce table.cart td.actions .coupon {
    display: flex; flex-direction: column; gap: 8px;
  }
  .woocommerce table.cart td.actions .coupon .input-text,
  .woocommerce table.cart td.actions .coupon .button { width: 100% !important; float: none !important; margin: 0 !important; }
  .woocommerce table.cart td.actions { padding: 1.2rem 0 !important; }
  /* „Zaktualizuj koszyk” w tabeli i „Przejdź do płatności” w podsumowaniu mają teraz odpowiedniki
     w dolnym pasku (24.09.2026: „niech znikną przyciski (…) ze strony, jeśli są już w belce, aby
     się nie powtarzały") — prawdziwy przycisk w tabeli ZOSTAJE w kodzie (dolny pasek go klika),
     tylko znika z widoku. */
  .woocommerce table.cart td.actions > button[name="update_cart"] { display: none; }
  .woocommerce .cart-collaterals .wc-proceed-to-checkout { display: none; }
  .mim-koszyk-udostepnij-wrap { display: none; }

  /* „Podsumowanie koszyka” jako czytelna karta (24.09.2026, właściciel: „to podsumowanie też tak
     jakoś ładnie popraw wizualnie") — zamiast gołej tabeli: etykieta po lewej, kwota do prawej w
     jednym wierszu (th zostaje widoczne, WooCommerce domyślnie chowa je dopiero w kolejnym
     breakpoincie), cienkie linie MIĘDZY wierszami zamiast ramki wokół całości, a „Razem" wyraźnie
     większe i oddzielone grubszą kreską — to jest liczba, którą klient ma zapamiętać. Nagłówek
     (rozmiar/waga/odstęp) celowo NIE jest tu dotykany — ma wyglądać tak samo jak w kasie i na
     koncie („4. jeden język nagłówków" niżej w tym pliku, reguła ustalona wcześniej). */
  .woocommerce .cart-collaterals .cart_totals {
    background: var(--mim-wash, #F7F7F5); padding: 18px 18px 20px; margin-top: 1.5rem;
  }
  .woocommerce .cart-collaterals .cart_totals table.shop_table { width: 100%; }
  .woocommerce .cart-collaterals .cart_totals table.shop_table tr {
    display: flex !important; align-items: baseline; justify-content: space-between;
    padding: 10px 0; border-bottom: 1px solid var(--mim-line-2);
  }
  .woocommerce .cart-collaterals .cart_totals table.shop_table tr:first-child { padding-top: 0; }
  .woocommerce .cart-collaterals .cart_totals table.shop_table th,
  .woocommerce .cart-collaterals .cart_totals table.shop_table td {
    display: block !important; padding: 0 !important; border: 0 !important; width: auto !important;
    text-align: left !important; background: transparent !important;
  }
  .woocommerce .cart-collaterals .cart_totals table.shop_table th {
    font-weight: 400; color: var(--mim-muted); font-size: .875rem;
  }
  .woocommerce .cart-collaterals .cart_totals table.shop_table td { text-align: right !important; }
  .woocommerce .cart-collaterals .cart_totals table.shop_table td::before { content: none !important; }
  .woocommerce .cart-collaterals .cart_totals table.shop_table tr.order-total {
    border-bottom: 0; border-top: 2px solid var(--mim-ink); margin-top: 4px; padding-top: 14px;
  }
  .woocommerce .cart-collaterals .cart_totals table.shop_table tr.order-total th {
    font-weight: 700; color: var(--mim-ink); font-size: .9375rem;
  }
  .woocommerce .cart-collaterals .cart_totals table.shop_table tr.order-total td { font-size: 1.25rem; font-weight: 700; }
}

/* ── 2026-09-16: jedna kreska przy zaznaczeniu ─────────────────────────────────
   Właściciel: „jedna kreska jest z boku, a druga pod spodem, źle to wygląda — zrób spójnie".
   Zasada od teraz bez wyjątków: to, co wybrane, ma TYLKO zieloną kreskę z boku. Nic pod spodem —
   ani linii pod wierszem, ani podkreślenia po najechaniu. Podkreślenie zostaje wyłącznie dla
   niewybranych linków po najechaniu. */

/* lista podkategorii (strona kategorii, panel menu, szuflada telefonu): bez zielonej kreski wzdłuż
   całej listy — nie była znakiem wyboru — i bez linii pod wierszami */
.mim-subs { border-left: 0; padding-left: 0; }
.mim-sub, .mim-dsub .mim-sub { border-bottom: 0; }

/* wybrana pozycja nie dostaje podkreślenia po najechaniu ani przy otwartym panelu */
.mim-nav__btn.is-active:hover,
.mim-nav__item.is-open > .mim-nav__btn.is-active { box-shadow: none !important; }
.mim-sub.is-active:hover .mim-sub__label,
.mim-rail__opt.is-active:hover .mim-rail__name { box-shadow: none; }

/* arkusze telefonu: wiersze bez linii pod spodem, wybór niesie kreska z boku */
.mim-sheet__opt { border-bottom: 0; }

/* ── 2026-09-16: warianty i wyrównanie znaków ──────────────────────────────────
   Właściciel: przy wariantach dalej kreska pod spodem, kafelki różnej wielkości, zamiast nazwy produktu
   sama cecha; kreska przy kategorii w menu stoi wyżej niż tekst. */

/* menu: zapas, gdyby <br> z wpautop wrócił (PHP już go nie tworzy) */
.mim-nav__btn br, .mim-panel br { display: none; }

/* warianty: styl z inc/ure-variants.php rysował linię pod wybranym i szarą po najechaniu — zostaje sama kreska z boku */
.ure-variants .ure-variants__item > a,
.ure-variants .ure-variants__item > span { border-bottom: 0 !important; }
.ure-variants .ure-variants__item.is-out .ure-variants__label { text-decoration: none; opacity: 1; }
.ure-variants .ure-variants__item > a:hover .ure-variants__label { color: var(--mim-ink); }
/* cecha zawsze na dwa wiersze wysokości — kafelki równe, dłuższa cecha kończy się wielokropkiem (pełna w podpowiedzi) */
.ure-variants .ure-variants__label {
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
  max-width: none; min-height: calc(2em * 1.3); line-height: 1.3; font-size: .6875rem;
  color: var(--mim-muted); text-align: left; overflow-wrap: anywhere;
}
.ure-variants .ure-variants__img.is-pusty { display: block; background: var(--mim-wash); }

@media (min-width: 782px) {
  /* kafelek 76 × 76 + dwa wiersze cechy; zdjęcia stoją w linii z ceną i wymiarami, kreska w odstępie po lewej */
  .woocommerce div.product .summary .ure-variants__list {
    display: grid; grid-template-columns: repeat(auto-fill, 84px); gap: 18px 10px; margin-left: -8px;
  }
  .woocommerce div.product .summary .ure-variants__item { padding-left: 8px; }
  .woocommerce div.product .summary .ure-variants__item > a,
  .woocommerce div.product .summary .ure-variants__item > span {
    display: flex; flex-direction: column; align-items: stretch; gap: 7px;
    width: 76px; padding: 0; font-size: 1rem; text-align: left;
  }
  .woocommerce div.product .summary .ure-variants__img { width: 76px; height: 76px; object-fit: contain; display: block; }
  .woocommerce div.product .summary .ure-variants__item.is-current::before { top: 0; bottom: auto; height: 76px; }
}
@media (max-width: 781px) {
  .mim-sheet--tresc .ure-variants__item > a,
  .mim-sheet--tresc .ure-variants__item > span { width: auto; text-align: left; align-items: stretch; }
  .mim-sheet--tresc .ure-variants .ure-variants__label { font-size: .75rem; }
}

/* galeria: aktywna miniatura tylko z kreską z boku — zielona linia pod zdjęciem była drugim znakiem.
   Kreska z boku działa teraz od 782 px (wcześniej tylko od 1025 px, niżej była sama linia pod spodem). */
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active { box-shadow: none; }
@media (min-width: 782px) {
  .woocommerce div.product div.images .flex-control-thumbs li { padding-left: 8px; position: relative; }
  .woocommerce div.product div.images .flex-control-thumbs li:has(img.flex-active)::before {
    content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 2px; background: var(--mim-green);
  }
}

/* ── 2026-09-16: każda kropka w kolorze logo ──────────────────────────────────────────────────
   Właściciel: „wszystkie kropki mają mieć kolor zielony jak w logo". Kolor kropki to zieleń wprost
   z pliku logo (#599E33 — „mi" i kropka nad „i"), nie jaśniejszy --mim-green kresek i przycisku.
   Obejmuje: znak „·" między pozycjami (pasek obietnic, okruszki, podkategorie, wymiary, nr kat.
   i EAN, cecha wariantu, stopka, kasa, arkusz dostawy), kropkę po nagłówku sekcji, kropki
   dostępności, kropki galerii i znacznik ulubionych na dolnym pasku.
   Trzy stany dostępności nadal mają trzy znaki — teraz kształtem, nie kolorem:
   pełna = jest, połówka = na zamówienie, sama obwódka = chwilowo niedostępny. */
:root { --mim-kropka: #599e33; }
.mimeble-promise__row p:not(:last-child)::after,
.mimeble-bc-sep, .mim-rest__sep, .mimeble-dims__sep, .mim-kropka,
.mimeble-section-title::after { color: var(--mim-kropka); }

.mimeble-stock::before,
.mimeble-stock.is-dostepny::before,
.woocommerce div.product .stock::before,
.woocommerce div.product .stock.mim-stock-dostepny::before {
  background: var(--mim-kropka); box-shadow: none;
}
.mimeble-stock.is-na-zamowienie::before,
.woocommerce div.product .stock.mim-stock-na-zamowienie::before {
  background: linear-gradient(90deg, var(--mim-kropka) 50%, transparent 50%);
  box-shadow: inset 0 0 0 1.5px var(--mim-kropka);
}
.mimeble-stock.is-out::before,
.mimeble-stock.is-niedostepny::before,
.woocommerce div.product .stock.out-of-stock::before,
.woocommerce div.product .stock.mim-stock-niedostepny::before {
  background: transparent; box-shadow: inset 0 0 0 1.5px var(--mim-kropka);
}

@media (max-width: 781px) {
  .mim-kropki i { background: transparent; box-shadow: inset 0 0 0 1px var(--mim-kropka); }
  .mim-kropki i.is-on { background: var(--mim-kropka); box-shadow: none; }
  .mim-bn__dot { background: var(--mim-kropka); }
}

/* ── 2026-09-16: logo „mimeble.pl" ────────────────────────────────────────────────────────────
   Plik logo ma ogonek „p" pod linią pisma, więc napis stoi w płótnie 19 px (z 250) wyżej niż w starym
   „mimeble". translateY oddaje te 7,6 % — litery stoją tam, gdzie stały, a pudełko obrazka i kreska
   obok się nie zmieniają. Napis jest o ¼ dłuższy, więc na telefonie kolumna logo rośnie z 76 do 88 px
   (litery ~9 % niższe niż dotąd; przy 76 px byłyby o 21 % niższe). */
.mimeble-logo img { transform: translateY(7.6%); }
@media (max-width: 781px) {
  .mimeble-header .mimeble-header__row.is-layout-flex { grid-template-columns: 88px minmax(0, 1fr) auto; }
}

/* ── 2026-09-16: strona główna — wpisywanie logo, hero, kreska rysuje pokój (inc/pion-hero.php) ───────────
   Makieta właściciela „Animowane logo – pięć wariantów jednej kreski"; wybrane trzy warianty. Kursorem jest
   zawsze zielona kreska Pionu (--mim-green), zielone „mi" we frazach ma kolor logo (--mim-kropka).
   Banery Comfino zniknęły ze strony głównej (wzorzec home-banners zostaje w motywie, nigdzie nie wstawiony). */

/* 1. wpisywanie logo — klasę na <html> stawia skrypt w <head>, litery odsłania skrypt w stopce */
html.mim-logo-pisze .mimeble-header .mimeble-logo img { clip-path: inset(0 100% 0 0); }
html.mim-logo-pisze .mimeble-header .mimeble-logo::before { visibility: hidden; }
.mim-logo-kursor {
  position: absolute; top: 50%; transform: translateY(-50%); width: 2px;
  background: var(--mim-green); pointer-events: none;
}

/* 2. hero „Twoje miejsce" — jedna scena jak na filmie właściciela (mimeble-animacja-twoje-miejsce.mp4):
   kursor przy logo → zdanie → frazy → powrót do logo → kursor rośnie w lewą ścianę → pokój → meble.
   Lewa ściana to SAM kursor (x 0–3 px pudełka pokoju); ścieżka SVG zaczyna się w jego dolnym rogu i wraca do
   jego górnego końca, więc nic nie odstaje. Meble i ściany rysuje skrypt w inc/pion-hero.php (zależą od
   szerokości tekstu); bez JS zostaje logo z kreską, zdanie i przyciski. */
.mim-sr {
  position: absolute !important; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
}
.mim-hero { margin: 4px 0 48px; }
.mim-hero__pokoj { position: relative; padding: 34px 32px 38px 0; }
/* wpautop zostawia w pokoju pusty <p> przed logo (15 px marginesu) */
.mim-hero__pokoj > p:empty { display: none; }
.mim-hero__rys { position: absolute; left: 0; top: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.mim-hero__logo { display: flex; align-items: center; gap: 12px; position: relative; }
/* bez JS (albo przed startem skryptu) gniazdo samo jest kreską; gdy skrypt ruszy, kreską jest kursor */
.mim-hero__gniazdo { flex: none; width: 3px; height: 56px; background: var(--mim-green); }
.mim-hero.is-js .mim-hero__gniazdo { background: transparent; }
/* ten sam obraz co w nagłówku: napis stoi w płótnie wyżej przez ogonek „p" — patrz „logo mimeble.pl" */
.mim-hero__img { display: block; height: 64px !important; width: auto !important; max-width: 100%; transform: translateY(7.6%); }
/* tekst i przyciski zaczynają się tam, gdzie litera „m" w logo (3 px kreski + 12 px przerwy + 9 px pola w pliku) */
.mim-hero__zdanie {
  position: relative; margin: 22px 0 0; padding-left: 24px; font-size: clamp(1.6rem, 3vw, 2.4rem); line-height: 1.22;
  font-weight: 300; letter-spacing: -.015em; color: var(--mim-ink);
}
.mim-hero__stale, .mim-hero__fraza { white-space: nowrap; }
.mim-hero__fraza { font-weight: 500; }
.mim-hero__mi { color: var(--mim-kropka); }
html.mim-hero-gra .mim-hero__stale, html.mim-hero-gra .mim-hero__fraza { visibility: hidden; }
.mim-hero__cta { position: relative; display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; padding-left: 24px; }
.mim-hero__cta .wp-block-button__link { text-decoration: none; }
.mim-hero__kursor {
  position: absolute; left: 0; top: 0; z-index: 1; width: 3px; background: var(--mim-green);
  pointer-events: none; will-change: transform;
}
.mim-hero__kursor:not(.is-gotowy) { visibility: hidden; }
.mim-hero__kursor.is-mruga { animation: mim-mrug 1.06s steps(1, end) infinite; }
.mim-hero__kursor.is-jedzie { transition: transform .46s cubic-bezier(.4, 0, .2, 1), height .46s cubic-bezier(.4, 0, .2, 1); }
.mim-hero__kursor.is-rosnie { transition: transform .6s cubic-bezier(.4, 0, .2, 1), height .6s cubic-bezier(.4, 0, .2, 1); }
@keyframes mim-mrug { 0% { opacity: 1; } 50% { opacity: 0; } 100% { opacity: 1; } }
.mim-hero__sciana { fill: none; stroke: var(--mim-green); stroke-width: 3; stroke-linecap: square; stroke-linejoin: miter; }
.mim-hero__mebel { fill: #eef5e9; stroke: var(--mim-kropka); stroke-width: 1.6; }
.mim-hero__dywan { fill: #f7faf4; stroke: var(--mim-kropka); stroke-width: 1.2; stroke-dasharray: 6 5; }
.mim-hero__cienka { fill: none; stroke: var(--mim-kropka); stroke-width: 1.4; }
.mim-hero__gruba { fill: none; stroke: var(--mim-kropka); stroke-width: 3; }
.mim-hero__okno { fill: #fff; stroke: var(--mim-green); stroke-width: 1.4; }
.mim-hero__lampa { fill: #fff; stroke: var(--mim-kropka); stroke-width: 1.4; }
.mim-hero__g { transition: opacity .4s ease, transform .4s ease; }
.mim-hero__g.is-ukryty { opacity: 0; transform: translateY(6px); }

/* 3. kreska rysuje pokój */
.mim-plansekcja {
  display: grid; grid-template-columns: minmax(0, 440px) minmax(0, 1fr); align-items: center; gap: 32px 64px;
  margin: 56px 0 0; padding-top: 48px; border-top: 1px solid var(--mim-line);
}
.mim-plansekcja .mimeble-section-title { margin: 0 0 .8rem; }
.mim-plansekcja__tekst p { color: var(--mim-muted); max-width: 42ch; margin: 0 0 1.4rem; }
.mim-plansekcja__tekst .wp-block-button__link { text-decoration: none; display: inline-block; }
.mim-plan { display: block; width: 100%; height: auto; }
.mim-plan__kursor { fill: var(--mim-green); }
.mim-plan__pokoj {
  fill: none; stroke: var(--mim-green); stroke-width: 2.6; stroke-linejoin: round; stroke-linecap: round;
  stroke-dasharray: 836; stroke-dashoffset: 836; opacity: 0;           /* 836 = długość obrysu */
  animation: mim-pokoj 7s ease-in-out infinite;
}
/* meble jako obrys bez wypełnienia — Pion nie ma zielonych tintów */
.mim-plan__m {
  fill: #fff; stroke: var(--mim-green); stroke-width: 1.6; opacity: 0;
  animation: mim-meble 7s ease-out infinite;
}
.mim-plan__m2 { animation-delay: .35s; }
.mim-plan__m3 { animation-delay: .7s; }
.mim-plansekcja.is-poza .mim-plan__pokoj,
.mim-plansekcja.is-poza .mim-plan__m { animation-play-state: paused; }
@keyframes mim-pokoj {
  0%, 12% { stroke-dashoffset: 836; opacity: 1; }
  46% { stroke-dashoffset: 0; opacity: 1; }
  84% { stroke-dashoffset: 0; opacity: 1; }
  94%, 100% { stroke-dashoffset: 0; opacity: 0; }
}
@keyframes mim-meble {
  0%, 48% { opacity: 0; transform: translateY(6px); }
  56% { opacity: 1; transform: none; }
  84% { opacity: 1; transform: none; }
  94%, 100% { opacity: 0; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  .mim-hero__kursor.is-mruga { animation: none; }
  .mim-hero__g { transition: none; }
  .mim-plan__pokoj { animation: none; stroke-dashoffset: 0; opacity: 1; }
  .mim-plan__m { animation: none; opacity: 1; transform: none; }
}
@media (max-width: 1024px) {
  .mim-plansekcja { grid-template-columns: minmax(0, 1fr); }
  .mim-plansekcja__rys { max-width: 440px; }
}
/* telefon: strona główna jest kanałem produktów, jak dotąd bez banerów */
@media (max-width: 781px) {
  body.home .mim-hero, body.home .mim-plansekcja { display: none !important; }
}

/* ── 2026-09-16: kursor w logo mruga cały czas ────────────────────────────────────────────────
   Właściciel: „a kursor w logo może cały czas mrugać?" — wariant „Mruganie" z makiety. Kreska przy logo
   w nagłówku mruga na każdej podstronie i szerokości, 530 ms widać / 530 ms nie (rytm systemowego kursora).
   Animowana tylko przezroczystość, więc nic obok się nie przesuwa. Podczas wpisywania logo na stronie
   głównej kreskę zastępuje nieruchomy `.mim-logo-kursor`, po wpisaniu wraca ta mrugająca.
   Nagłówek kasy (`.mim-kasa-hdr`) celowo nie mruga — tam nic nie ma odciągać od zamówienia. */
.mimeble-header .mimeble-logo::before { animation: mim-mrug 1.06s steps(1, end) infinite; }
@media (prefers-reduced-motion: reduce) {
  .mimeble-header .mimeble-logo::before { animation: none; }
}

/* ── 2026-09-16: kursor w wyszukiwarce w zieleni kreski przy logo ─────────────────────────────
   Po kliknięciu w pole wyszukiwania miga ta sama zielona kreska, co przy logo — domknięcie metafory
   „kursor = kreska" z animowanego logo. Obejmuje każde pole wyszukiwania (nagłówek, telefon, szuflada). */
.wp-block-search__input, input[type="search"] { caret-color: var(--mim-green); }


/* ── 2026-09-17: telefon — zakładki planera pod nagłówkiem ────────────────────────────────────
   Na stronach, które dociągają style bloków dopiero w treści (np. /planer/), WordPress drukuje global-styles
   PO arkuszu motywu, a ich `.wp-site-blocks { padding-top: var(--wp--style--root--padding-top) }` zerował
   podkładkę pod stały nagłówek. Zakładki planera (Kształt / Obiekty / Meble) stały pod nagłówkiem, a po
   przewinięciu przyklejały się do góry ekranu — też pod nim. Wyższa specyficzność wygrywa niezależnie od kolejności. */
@media (max-width: 781px) {
  body .wp-site-blocks { padding-top: var(--mim-hdr, 152px); }
  body #mimeble-planer .bar { top: var(--mim-hdr, 82px); }
}


/* ── 2026-09-17: banery mikup.pl i Jeszcze Się Przyda nad stopką (parts/footer.html) ─────────────
   Pliki banerów leżą obok banera mimeble w /baner/ (ta sama rodzina: SVG + JS, logo w pliku). Każdy baner sam
   dobiera układ do proporcji ramki: szeroki 1000×450 albo mały 600×500. Dwa obok siebie w szerokim układzie
   mieszczą się czytelnie dopiero od ~1280 px okna; węższy komputer — dwa obok siebie w małym; telefon — jeden pod drugim. */
.mim-partnerzy { box-sizing: border-box; max-width: calc(1280px + 2rem); margin: 64px auto 0; padding-inline: 1rem; }
.mim-partnerzy__tytul {
  margin: 0 0 14px; font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--mim-muted);
}
.mim-partnerzy__rzad { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.mim-partnerzy__baner { display: block; width: 100%; aspect-ratio: 1000 / 450; border: 0; background: #fff; }
@media (max-width: 1279px) {
  .mim-partnerzy__baner { aspect-ratio: 6 / 5; }
}
@media (max-width: 781px) {
  .mim-partnerzy { margin-top: 40px; }
  .mim-partnerzy__rzad { grid-template-columns: minmax(0, 1fr); gap: 16px; }
}


/* ── 2026-09-17: miniatury w kanale na telefonie (strona główna i listy) ─────────────────────
   1. [mimeble_polecane] przechodzi przez wpautop: w kaflu stały puste <p> i <p> wokół ceny. W kolumnie
      flex marginesy się nie zapadają, więc każdy dokładał po 28 px — zdjęcie kurczyło się do ~104 px.
   2. Ramka zdjęcia w kanale nie ma 12:11, tylko tyle, ile zostaje z połowy ekranu (zwykle ok. 3:2), więc
      kadrowanie (cover) ucinało meblom nogi i wieńce. W kanale zdjęcie zawsze wpisane w ramkę.
   3. Kafel bez wiersza wymiarów rezerwuje jego wysokość, żeby zdjęcia w rzędzie miały równy dół.
   4. Nad kanałem na stronie głównej było 64 px pustego (margines + odstęp + margines listy). */
@media (max-width: 781px) {
  body.mim-feed ul.products li.product p:empty { display: none; }
  body.mim-feed ul.products li.product a p:not([class]) { margin: 0 0 2px; }
  body.mim-feed ul.products li.product a.woocommerce-LoopProduct-link img {
    flex: 1 1 0; height: 0; min-height: 0; aspect-ratio: auto; object-fit: contain;
  }
  body.mim-feed ul.products li.product:not(:has(.mim-loop-dims)) .mimeble-stock { margin-bottom: 14px; }
  body.home.mim-feed .mimeble-main { margin-top: 0; padding-top: 6px; }
  body.home.mim-feed .mim-polecane { margin-top: 0; }
}


/* ══ 2026-09-18: audyt wizualny — strony treści, koszyk, kasa, 404, ulubione ═══════════════════════════
   Przegląd wszystkich podstron (komputer i telefon) pokazał pięć rozjazdów ze sklepem:
   1. formularz kontaktowy (Contact Form 7) był surowy — Arial, systemowe pola i szary „Wyślij";
   2. na stronach treści (Kontakt, Dostawa, Regulamin, Płatności, Opinie…) wiersz tekstu miał całe 1280 px,
      bo `contentSize` z theme.json to szerokość siatki produktów, nie szerokość czytelnego akapitu;
   3. w koszyku zostały kolory WooCommerce (#767676 przy VAT) i ikona z firmowego fontu WooCommerce
      przy „Oblicz koszty wysyłki";
   4. nagłówki sekcji koszyka, kasy i konta były mniejsze i bez kropki marki, którą ma karta produktu,
      a „Kupuję i płacę" był mały i przyklejony do prawej, choć „Przejdź do płatności" jest na całą szerokość;
   5. tekst 404 i lista ulubionych wyśrodkowywały się przez układ bloków, choć tytuł strony stoi przy lewej. */

/* — 1. strony treści: czytelna kolumna i rytm nagłówków (nie dotyczy sklepu, koszyka, kasy, konta i planera) — */
body.page:not(.woocommerce-page):not(.page-template-page-no-title) .entry-content > p,
body.page:not(.woocommerce-page):not(.page-template-page-no-title) .entry-content > ul,
body.page:not(.woocommerce-page):not(.page-template-page-no-title) .entry-content > ol,
body.page:not(.woocommerce-page):not(.page-template-page-no-title) .entry-content > h2,
body.page:not(.woocommerce-page):not(.page-template-page-no-title) .entry-content > h3,
body.page:not(.woocommerce-page):not(.page-template-page-no-title) .entry-content > h4,
body.page:not(.woocommerce-page):not(.page-template-page-no-title) .entry-content > blockquote,
body.page:not(.woocommerce-page):not(.page-template-page-no-title) .entry-content > .wpcf7 {
  /* sama szerokość nie wystarczy: układ bloków WordPressa dokłada „margin-left/right: auto !important",
     czyli wyśrodkowałby kolumnę względem tytułu strony stojącego przy lewej krawędzi — stąd !important */
  max-width: 68ch; margin-inline: 0 auto !important;
}
body.page:not(.woocommerce-page) .entry-content > p { line-height: 1.7; margin-block: 0 1rem; }
body.page:not(.woocommerce-page) .entry-content > ul,
body.page:not(.woocommerce-page) .entry-content > ol { line-height: 1.7; padding-left: 1.15rem; margin-block: 0 1.2rem; }
body.page:not(.woocommerce-page) .entry-content > li { margin-bottom: .3rem; }
body.page:not(.woocommerce-page) .entry-content > h2 {
  font-size: clamp(1.3rem, 2.2vw, 1.6rem); font-weight: 300; letter-spacing: -.015em; margin-block: 2.6rem .7rem;
}
body.page:not(.woocommerce-page) .entry-content > h2::after { content: "."; color: var(--mim-green); }
body.page:not(.woocommerce-page) .entry-content > h3 { font-size: 1.0625rem; font-weight: 600; margin-block: 1.9rem .4rem; }
body.page:not(.woocommerce-page) .entry-content > figure,
body.page:not(.woocommerce-page) .entry-content > p > img { max-width: min(100%, 460px); height: auto; }
body.page:not(.woocommerce-page) .entry-content a:not(.wp-element-button) { text-decoration: underline; text-underline-offset: 3px; }

/* — 2. formularz kontaktowy (Contact Form 7) w stylu pól sklepu — */
.wpcf7 { margin-top: 1.4rem; }
.wpcf7 form > p { margin: 0 0 1rem; }
.wpcf7 label { display: block; font-size: .8125rem; color: var(--mim-muted); }
.wpcf7 .wpcf7-form-control-wrap { display: block; margin-top: .3rem; }
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"], .wpcf7 input[type="url"],
.wpcf7 input[type="number"], .wpcf7 input[type="date"], .wpcf7 select, .wpcf7 textarea {
  width: 100%; max-width: none; box-sizing: border-box; font: inherit; font-size: .9375rem; color: var(--mim-ink);
  background: #fff; border: 1px solid var(--mim-line); border-radius: 0; padding: .7rem .85rem; box-shadow: none;
  -webkit-appearance: none; appearance: none;
}
.wpcf7 select {
  padding-right: 2.2rem; background-repeat: no-repeat; background-position: right .8rem center; background-size: 11px 7px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11 7'%3E%3Cpath d='M1 1l4.5 4.5L10 1' fill='none' stroke='%236b6b6b' stroke-width='1.4'/%3E%3C/svg%3E");
}
.wpcf7 textarea { min-height: 170px; resize: vertical; line-height: 1.6; }
.wpcf7 input:focus, .wpcf7 select:focus, .wpcf7 textarea:focus { border-color: var(--mim-ink); outline: none; }
.wpcf7 input::placeholder, .wpcf7 textarea::placeholder { color: var(--mim-faint); }
.wpcf7 .wpcf7-acceptance { display: block; margin: 1.1rem 0 0; }
.wpcf7 .wpcf7-acceptance .wpcf7-list-item { margin: 0; }
.wpcf7 .wpcf7-acceptance label { display: flex; align-items: flex-start; gap: .6rem; font-size: .8125rem; color: var(--mim-muted); line-height: 1.5; }
.wpcf7 input[type="checkbox"], .wpcf7 input[type="radio"] { width: 17px; height: 17px; margin: 1px 0 0; accent-color: var(--mim-ink); flex: 0 0 auto; }
.wpcf7 input[type="submit"], .wpcf7 button[type="submit"] {
  -webkit-appearance: none; appearance: none; cursor: pointer; font: inherit; font-size: .9375rem; font-weight: 600;
  color: #fff; background: var(--mim-green); border: 0; border-radius: 6px; height: 50px; padding: 0 1.8rem; margin-top: 1.3rem;
}
.wpcf7 input[type="submit"]:hover:not(:disabled), .wpcf7 button[type="submit"]:hover:not(:disabled) { background: var(--mim-green-dk); }
.wpcf7 input[type="submit"]:disabled, .wpcf7 button[type="submit"]:disabled { opacity: .45; cursor: not-allowed; }
.wpcf7 .wpcf7-not-valid-tip { font-size: .8125rem; color: #a6323a; margin-top: .3rem; }
.wpcf7 .wpcf7-not-valid { border-color: #a6323a !important; }
.wpcf7 .wpcf7-response-output {
  margin: 1.4rem 0 0 !important; padding: .9rem 1rem !important; border: 1px solid var(--mim-line) !important;
  border-radius: 0; font-size: .875rem; color: var(--mim-ink);
}
.wpcf7 form.sent .wpcf7-response-output { box-shadow: inset 2px 0 0 var(--mim-green); }
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output { box-shadow: inset 2px 0 0 #a6323a; }

/* — 3. koszyk: kolory i ikony z WooCommerce — */
.woocommerce small.includes_tax, .woocommerce small.includes_tax .amount,
.woocommerce .woocommerce-shipping-destination, .woocommerce .cart-collaterals .shipping p { color: var(--mim-muted) !important; }
.woocommerce a.button.wc-forward:not(.checkout-button):not(.alt) { color: var(--mim-ink) !important; }
/* ikona z firmowego fontu WooCommerce nie należy do zestawu sklepu — zostaje sam podkreślony odnośnik */
.woocommerce .shipping-calculator-button::after { content: "" !important; display: none !important; }
.woocommerce .shipping-calculator-button {
  color: var(--mim-ink) !important; text-decoration: underline; text-underline-offset: 3px;
}

/* — 4. jeden język nagłówków i przycisków w koszyku, kasie i koncie — */
.woocommerce .cart-collaterals .cart_totals > h2, .woocommerce-checkout #order_review_heading,
.woocommerce-checkout .woocommerce-billing-fields > h3, .woocommerce-checkout .woocommerce-additional-fields > h3,
.woocommerce-account .woocommerce > h2, .woocommerce-account .u-columns h2, .woocommerce-account form.login h2,
.woocommerce-account form.register h2 {
  font-size: clamp(1.2rem, 1.8vw, 1.4rem) !important; font-weight: 300; letter-spacing: -.015em; margin: 0 0 1rem;
}
.woocommerce .cart-collaterals .cart_totals > h2::after, .woocommerce-checkout #order_review_heading::after,
.woocommerce-checkout .woocommerce-billing-fields > h3::after, .woocommerce-checkout .woocommerce-additional-fields > h3::after,
.woocommerce-account .u-columns h2::after { content: "."; color: var(--mim-green); }
/* główne przyciski zakupu wszędzie tak samo jak „Dodaj do koszyka" na karcie produktu */
.woocommerce a.checkout-button, .woocommerce-checkout #place_order,
.woocommerce-account form.login button.button, .woocommerce-account form.register button.button {
  border-radius: 0 !important; font-weight: 600 !important;
}
.woocommerce-checkout #place_order { width: 100%; height: 52px; font-size: 1rem; }
.woocommerce-checkout .form-row.place-order { padding-top: 1.2rem !important; }
/* na kasie nic nie odciąga od zamówienia — banery innych sklepów zostają na pozostałych stronach */
body.woocommerce-checkout:not(.woocommerce-cart) .mim-partnerzy { display: none !important; }

/* — 5. wyrównanie do lewej: tekst 404 i lista ulubionych (układ bloków dawał im automatyczne marginesy) — */
.mimeble-404 .mimeble-404__tekst, .mimeble-404 .mimeble-404__szukaj {
  /* lewa krawędź kolumny treści (1280 px), w której stoją nagłówek i kafle – margin-left: 0 dawał krawędź ekranu */
  margin-left: max(0px, calc((100% - var(--wp--style--global--content-size, 1280px)) / 2)) !important; margin-right: auto !important;
}
.mim-ulubione-strona { margin-left: 0; margin-right: auto; }


/* ══ 2026-09-18: opinie na karcie produktu ═════════════════════════════════════════════════════════
   Prośba właściciela: opinie mają wyglądać jak reszta sklepu, formularz ma się chować pod przyciskiem,
   a dodane opinie stać pod parametrami. Formularz owija <details class="mim-opinie__nowa"> z inc/pion.php
   (działa bez JS), a niżej: lista jak wiersze parametrów, pola jak w kasie, przycisk jak „Dodaj do koszyka".
   Na szerokim ekranie sekcja opinii przenosi się do prawej kolumny pod „Parametry" i „Bezpieczeństwo",
   a na telefonie ma własny arkusz — czwarty przycisk paska treści, zaraz po „Parametry". */

.woocommerce-Reviews { max-width: 74ch; }
.woocommerce-Reviews .woocommerce-noreviews { color: var(--mim-muted); font-size: .9375rem; margin: 0 0 1.1rem; }
.woocommerce-Reviews .commentlist { list-style: none; margin: 0 0 1.4rem; padding: 0; }
.woocommerce-Reviews .commentlist > li { border-top: 1px solid var(--mim-line); padding: 1rem 0; margin: 0; }
.woocommerce-Reviews .commentlist > li:first-child { border-top: 0; padding-top: 0; }
.woocommerce-Reviews .commentlist .comment_container { display: block; }
.woocommerce-Reviews .commentlist img.avatar { display: none !important; }      /* sklep nie pokazuje awatarów */
.woocommerce-Reviews .commentlist .comment-text {
  margin: 0 !important; padding: 0 !important; border: 0 !important; border-radius: 0 !important;
}
.woocommerce-Reviews .commentlist .meta { font-size: .8125rem; color: var(--mim-faint); margin: .3rem 0 .55rem; }
.woocommerce-Reviews .commentlist .meta strong { font-size: .9375rem; font-weight: 600; color: var(--mim-ink); }
.woocommerce-Reviews .commentlist .description { font-size: .9375rem; line-height: 1.6; }
.woocommerce-Reviews .commentlist .description > p:last-child { margin-bottom: 0; }
.woocommerce-Reviews .star-rating { float: none; margin: 0; color: var(--mim-green); }
.woocommerce-Reviews .woocommerce-review__verified { font-size: .75rem; color: var(--mim-green-dk); }
.woocommerce-Reviews #review_form_wrapper, .woocommerce-Reviews [id$="review_form_wrapper"] { margin-top: 1.2rem; }

/* przycisk „Napisz opinię" = zamknięte <details> */
.mim-opinie__nowa > summary {
  display: inline-flex; align-items: center; gap: .55rem; cursor: pointer; list-style: none;
  height: 44px; padding: 0 1.2rem; border: 1px solid var(--mim-ink); border-radius: 6px; background: #fff;
  font-size: .875rem; font-weight: 600; color: var(--mim-ink); -webkit-user-select: none; user-select: none;
}
.mim-opinie__nowa > summary::-webkit-details-marker { display: none; }
.mim-opinie__nowa > summary::marker { content: ""; }
.mim-opinie__nowa > summary::after { content: "+"; font-size: 1.05rem; font-weight: 400; color: var(--mim-muted); line-height: 1; }
.mim-opinie__nowa[open] > summary::after { content: "\2212"; }
.mim-opinie__nowa > summary:hover { background: var(--mim-wash); }
.mim-opinie__nowa > summary:focus-visible { outline: 2px solid var(--mim-green); outline-offset: 2px; }
.mim-opinie__nowa[open] > summary { margin-bottom: 1.3rem; }

/* formularz opinii w stylu pól kasy */
.woocommerce-Reviews .comment-reply-title {
  display: block; font-size: .78rem; font-weight: 500; letter-spacing: .1em; text-transform: uppercase;
  color: var(--mim-faint); margin: 0 0 .9rem;
}
.woocommerce-Reviews .comment-reply-title small { display: none; }
.woocommerce-Reviews .comment-notes { font-size: .8125rem; color: var(--mim-faint); margin: 0 0 1.1rem; }
.woocommerce-Reviews .comment-form p { margin: 0 0 1rem; }
.woocommerce-Reviews .comment-form label { display: block; font-size: .8125rem; color: var(--mim-muted); margin-bottom: .3rem; }
.woocommerce-Reviews .comment-form input[type="text"], .woocommerce-Reviews .comment-form input[type="email"],
.woocommerce-Reviews .comment-form select, .woocommerce-Reviews .comment-form textarea,
.woocommerce #review_form #respond input[type="text"], .woocommerce #review_form #respond textarea {
  width: 100%; max-width: none; box-sizing: border-box; font: inherit; font-size: .9375rem; color: var(--mim-ink);
  background: #fff; border: 1px solid var(--mim-line); border-radius: 0; padding: .7rem .85rem; box-shadow: none;
  -webkit-appearance: none; appearance: none;
}
.woocommerce-Reviews .comment-form select {
  padding-right: 2.2rem; background-repeat: no-repeat; background-position: right .8rem center; background-size: 11px 7px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 11 7'%3E%3Cpath d='M1 1l4.5 4.5L10 1' fill='none' stroke='%236b6b6b' stroke-width='1.4'/%3E%3C/svg%3E");
}
.woocommerce-Reviews .comment-form textarea { min-height: 130px; resize: vertical; line-height: 1.6; }
.woocommerce-Reviews .comment-form input:focus, .woocommerce-Reviews .comment-form select:focus,
.woocommerce-Reviews .comment-form textarea:focus { border-color: var(--mim-ink); outline: none; }
.woocommerce-Reviews .comment-form-rating { margin-bottom: 1.1rem; }
.woocommerce-Reviews p.stars { margin: .15rem 0 0; }
.woocommerce-Reviews p.stars a { font-size: 1.15rem; }
/* numer zamówienia: pole jak reszta, pod nim drobne wyjaśnienie, po co go zbieramy */
.woocommerce-Reviews .comment-form-zamowienie { margin-bottom: 1rem; }
.woocommerce-Reviews .mim-opinie__opc { color: var(--mim-faint); }
.woocommerce-Reviews .mim-opinie__pod {
  display: block; margin-top: .4rem; font-size: .75rem; line-height: 1.5; color: var(--mim-faint);
}
.woocommerce-Reviews .comment-form-cookies-consent {
  display: flex; align-items: flex-start; gap: .6rem; font-size: .8125rem; color: var(--mim-muted);
}
.woocommerce-Reviews .comment-form-cookies-consent input {
  width: 17px; height: 17px; margin: 1px 0 0; flex: 0 0 auto; accent-color: var(--mim-ink);
}
.woocommerce-Reviews .comment-form-cookies-consent label { margin: 0; font-size: .8125rem; }
.woocommerce-Reviews .form-submit { margin: 1.3rem 0 0 !important; }
.woocommerce-Reviews .form-submit input[type="submit"] {
  -webkit-appearance: none; appearance: none; cursor: pointer; font: inherit; font-size: .9375rem; font-weight: 600;
  color: #fff; background: var(--mim-green); border: 0; border-radius: 6px; height: 48px; padding: 0 1.7rem; width: auto;
}
.woocommerce-Reviews .form-submit input[type="submit"]:hover { background: var(--mim-green-dk); }
.woocommerce-Reviews .required { color: var(--mim-faint); text-decoration: none; }

/* szeroki ekran: opinie pod parametrami, w prawej kolumnie (dotąd stały pod opisem, na dole strony).
   Opis spina wszystkie wiersze, a ostatni wiersz bierze całą nadwyżkę wysokości (1fr) — bez tego przeglądarka
   rozdziela nadwyżkę po równo między wiersze i opinie odjeżdżały o pół ekranu pod parametry. */
@media (min-width: 1025px) {
  .woocommerce-tabs:has(#tab-description):has(#tab-additional_information) { grid-template-rows: auto auto 1fr; }
  .woocommerce-tabs:has(#tab-description):has(#tab-additional_information) > #tab-description { grid-row: 1 / -1; }
  .woocommerce-tabs:has(#tab-description):has(#tab-additional_information) > #tab-reviews {
    grid-column: 2; grid-row: 3; align-self: start; max-width: none; margin-top: 2.2rem;
  }
  .woocommerce div.product .woocommerce-tabs #tab-reviews .woocommerce-Reviews { max-width: none; }
}
/* kropka marki tuż przy nazwie: szablon opinii drukuje tytuł ze spacjami wokół */
.woocommerce #reviews #comments h2.woocommerce-Reviews-title::after { margin-left: -.28em; }

/* telefon: opinie mają własny arkusz (przycisk „Opinie" zaraz po „Parametry”) */
@media (max-width: 781px) {
  .mim-sheet--tresc .woocommerce-Reviews-title { display: none; }     /* tytuł arkusza mówi już „Opinie" */
  .mim-sheet--tresc .woocommerce-Reviews { max-width: none; }
  .mim-sheet--tresc .mim-opinie__nowa > summary { width: 100%; justify-content: space-between; }
  .mim-sheet--tresc .woocommerce-Reviews .form-submit input[type="submit"] { width: 100%; }
}

/* znaczek zweryfikowanej opinii (2026-09-18): zielony haczyk w obwódce, ta sama zieleń co stan „Dostępny" */
.mim-opinia__znak {
  display: inline-flex; align-items: center; gap: .3rem; margin: 0 .45rem 0 .1rem; padding: .1rem .45rem .12rem;
  border: 1px solid var(--mim-green); border-radius: 999px; color: var(--mim-green-dk);
  font-size: .6875rem; font-weight: 600; letter-spacing: .01em; white-space: nowrap; vertical-align: .05em;
}
.mim-opinia__znak svg { flex: 0 0 auto; }
/* opinia napisana w rankingu mikup.pl, przyniesiona tutaj przez panel — mówimy to wprost, drobnym pismem */
.mim-opinia__zrodlo { font-size: .6875rem; color: var(--mim-faint); margin: 0 .45rem 0 .1rem; }
.mim-opinia__zrodlo a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.mim-opinia__zrodlo a:hover { color: var(--mim-ink); }
.woocommerce-Reviews .commentlist .meta .woocommerce-review__published-date { white-space: nowrap; }

/* ══ 2026-09-18: ocena z rankingu mikup.pl — pod opiniami sklepu ═══════════════════════════════════
   Blok na końcu sekcji „Opinie": kreska nad nim, tekst po lewej, przycisk po prawej. Przycisk drugorzędny
   (szare tło, cienka ramka), żeby czarny „Napisz opinię" nad nim był pierwszym wyborem. Bez gwiazdek —
   to ocena z innej witryny, nie druga ocena sklepu. */
.mim-mikup {
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .9rem 1.4rem;
  margin: 1.6rem 0 0; padding: 1.15rem 0 0; border-top: 1px solid var(--mim-line);
}
.mim-mikup__tekst { flex: 1 1 15rem; min-width: 0; }
.mim-mikup__tytul { margin: 0; font-size: .9375rem; font-weight: 600; color: var(--mim-ink); line-height: 1.35; }
.mim-mikup--ocena .mim-mikup__tytul {
  font-size: .78rem; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; color: var(--mim-faint);
}
.mim-mikup__opis { margin: .3rem 0 0; font-size: .8125rem; line-height: 1.5; color: var(--mim-muted); }
.mim-mikup__ocena { margin: .15rem 0 0; font-size: .9375rem; color: var(--mim-muted); }
.mim-mikup__ocena strong { font-size: 1.625rem; font-weight: 300; letter-spacing: -.01em; color: var(--mim-ink); }
.mim-mikup__glosy::before { content: "\00B7"; margin: 0 .5rem; color: var(--mim-faint); }
.mim-mikup__przycisk {
  flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; gap: .45rem;
  height: 44px; padding: 0 1.2rem; border: 1px solid var(--mim-line); border-radius: 6px; background: var(--mim-wash);
  color: var(--mim-ink); font-size: .875rem; font-weight: 600; text-decoration: none; white-space: nowrap;
}
.mim-mikup__przycisk span { color: var(--mim-muted); font-weight: 400; }
.mim-mikup__przycisk:hover { border-color: var(--mim-ink); background: #fff; }
.mim-mikup__przycisk:focus-visible { outline: 2px solid var(--mim-green); outline-offset: 2px; }
@media (max-width: 781px) {
  .mim-mikup__przycisk { width: 100%; }
}

/* ══ 2026-09-18: „Do pobrania" w Parametrach — instrukcja montażu i rysunek z wymiarami ═════════════
   Lista na kreskach jak wiersze parametrów; typ pliku w małej obwódce, rozmiar szarym, nazwa podkreśla się
   dopiero po najechaniu (podkreślenie = link). Bez zieleni — to informacja, nie stan. */
.mim-dok { margin: 1.5rem 0 0; }
.mim-dok__tytul {
  font-size: .78rem; font-weight: 500; letter-spacing: .1em; text-transform: uppercase;
  color: var(--mim-faint); margin: 0 0 .45rem;
}
.mim-dok__lista { list-style: none; margin: 0; padding: 0; }
.mim-dok__lista li { margin: 0; border-top: 1px solid var(--mim-line); }
.mim-dok__lista li:last-child { border-bottom: 1px solid var(--mim-line); }
.mim-dok__lista a {
  display: flex; align-items: center; gap: .75rem; padding: .72rem 0;
  color: var(--mim-ink); text-decoration: none; font-size: .9375rem; line-height: 1.35;
}
.mim-dok__typ {
  flex: 0 0 auto; min-width: 2.7em; text-align: center; font-size: .625rem; font-weight: 700; letter-spacing: .06em;
  color: var(--mim-muted); border: 1px solid var(--mim-line); border-radius: 3px; padding: .18rem .3rem;
}
.mim-dok__nazwa { flex: 1 1 auto; min-width: 0; }
.mim-dok__info { flex: 0 0 auto; font-size: .8125rem; color: var(--mim-faint); white-space: nowrap; }
.mim-dok__info::after { content: "\2197"; margin-left: .5rem; color: var(--mim-muted); }
.mim-dok__lista a:hover .mim-dok__nazwa, .mim-dok__lista a:focus-visible .mim-dok__nazwa {
  text-decoration: underline; text-underline-offset: 3px;
}
.mim-dok__lista a:focus-visible { outline: 2px solid var(--mim-green); outline-offset: 2px; }
.mim-sheet--tresc .mim-dok { margin-top: 1.2rem; }
/* opis produktu ma wcięte listy (ul li) — tutaj lista ma równać do lewej krawędzi tabeli parametrów */
.woocommerce div.product .mim-dok__lista, .woocommerce div.product .mim-dok__lista li { margin-left: 0 !important; padding-left: 0 !important; list-style: none; }

/* ── Telefon: rysujemy tylko to, co widać ─────────────────────────────────────
   22.09.2026, właściciel: „wersja mobilna strasznie się zacina”. Kanał listy dokleja kolejne
   strony i nic z niej nie zdejmuje — po kilku przewinięciach w Salonie wisi ponad sto kafli.
   Zmierzone na liście ze 112 meblami: przeliczenie stylów całej strony 18 ms bez tej reguły
   i 8 ms z nią (mocny komputer; telefon jest kilka razy wolniejszy). Kafle mają na telefonie
   równe 290 px, więc podana wysokość zastępcza nie przesuwa siatki, a `auto` i tak zapamiętuje
   prawdziwą po pierwszym narysowaniu. */
@media (max-width: 781px) {
  .woocommerce ul.products > li.product {
    content-visibility: auto;
    contain-intrinsic-size: auto 290px;
  }
}

/* ── Kategorie w menu: pionowa lista jak na m.mikup.pl (22.09.2026) ──────────
   Właściciel: „w menu kategorie mają wyglądać i działać tak jak na m.mikup.pl". Tam jest przycisk
   „Kategorie ▾", skrót „Wszystkie" i lista: nagłówek działu, pod nim wiersze z małą miniaturą.
   Zakładki działów (pierwsze podejście z 22.09) zastąpione — przy siedmiu działach i tak trzeba
   było przewijać je w bok, a nazwa podkategorii ginęła pod kaflem. */
@media (max-width: 781px) {
  .mim-kat-tgl {
    appearance: none; width: 100%; background: none; border: 0; cursor: pointer;
    display: flex; align-items: center; justify-content: space-between; gap: 8px;
    padding: 12px 16px; font: inherit; font-size: .78rem; font-weight: 600;
    letter-spacing: .12em; text-transform: uppercase; color: var(--mim-muted);
    border-bottom: 1px solid var(--mim-line);
  }
  .mim-kat-tgl__x { transition: transform .15s ease; }
  .mim-kat-tgl[aria-expanded="false"] .mim-kat-tgl__x { transform: rotate(-90deg); }
  .mim-kat-tgl[aria-expanded="false"] + .mim-kat-lista { display: none; }
  .mim-kat-all {
    display: block; padding: 11px 16px; font-size: .875rem; font-weight: 600;
    color: var(--mim-ink); text-decoration: none; background: var(--mim-wash);
  }
  .mim-kat-grupa { padding: 2px 0 6px; }
  .mim-kat-grupa__t {
    display: block; padding: 12px 16px 4px; font-size: .72rem; letter-spacing: .1em;
    text-transform: uppercase; color: var(--mim-faint); text-decoration: none;
  }
  .mim-kat-grupa.is-here .mim-kat-grupa__t { color: var(--mim-ink); }
  .mim-kat-row {
    display: flex; align-items: center; gap: 12px; padding: 7px 16px;
    color: var(--mim-ink); text-decoration: none; font-size: .9375rem;
  }
  .mim-kat-row__img {
    flex: 0 0 40px; width: 40px; height: 40px; background: #fff; overflow: hidden;
    display: block; border: 1px solid var(--mim-line-2);
  }
  .mim-kat-row__img img { width: 100%; height: 100%; object-fit: contain; display: block; }
  .mim-kat-row.is-active { font-weight: 600; box-shadow: inset 2px 0 0 var(--mim-green); }
  /* właściciel 22.09: na telefonie przy kategoriach nie pokazujemy liczby mebli */
  .mim-kafel__x, .mim-tile__count { display: none; }
}

/* ── Telefon: JEDEN mebel na ekran (22.09.2026) ──────────────────────────────
   Właściciel: „wersję mobilną zrób tak, że wyświetla się tylko jeden produkt, tak samo jak na
   mikup i na jsp". Sprawdzone u wzorców: m.mikup.pl ma `.feed` z `scroll-snap-type: y mandatory`
   i slajdami na pełny ekran (752 px), jsp.mikup.pl tak samo (`.jsp-feed-slide`, 684 px,
   `scroll-snap-stop: always`). Czyli zatrzask nie jest problemem — problemem była nasza siatka
   DWÓCH kolumn zatrzaskiwana co cztery kafle: palec przesuwał pół ekranu i wpadał w przyciąganie.
   Teraz jest jak u nich: jedna kolumna, jeden mebel na ekran, twardy zatrzask. */
@media (max-width: 781px) {
  body.mim-feed { overflow: hidden; height: 100dvh; }
  body.mim-feed ul.products {
    display: grid; grid-template-columns: 1fr; gap: 0;
    overflow-y: auto; overscroll-behavior: contain;
    scroll-snap-type: y mandatory; -webkit-overflow-scrolling: touch;
    /* Dokładnie tyle, ile widać pod paskiem u góry. Dawne „- 64px" było miejscem na dolną
       nawigację, której na liście już nie ma — przez to slajd był niższy niż kanał i następny
       mebel wystawał zza dołu (22.09.2026, właściciel: „drugi produkt wystaje"). */
    height: calc(100dvh - var(--mim-hdr, 110px) - var(--mim-nad, 0px));
    grid-auto-rows: 100%;
  }
  body.mim-feed ul.products li.product {
    height: 100%; padding: 0 16px 10px; margin: 0;
    scroll-snap-align: start; scroll-snap-stop: always;
    content-visibility: auto; contain-intrinsic-size: auto 100%;
  }
  /* zdjęcie bierze całą wolną wysokość slajdu, opis mebla zostaje pod spodem */
  body.mim-feed ul.products li.product a.woocommerce-LoopProduct-link { gap: 6px; }
  body.mim-feed ul.products li.product a img { flex: 1; min-height: 0; object-fit: contain; }
  body.mim-feed ul.products li.product .woocommerce-loop-product__title { font-size: 1rem; }
  body.mim-feed ul.products li.product .price { font-size: 1.125rem; }
  /* Karta w kategorii ma wyglądać DOKŁADNIE tak jak na stronie głównej (22.09.2026, właściciel).
     Na stronie głównej kanał zaczyna się tuż pod paskiem, a w kategorii stały nad nim okruszki
     i nagłówek (86 px) — slajd był o tyle niższy, a zdjęcie mniejsze. Nazwa kategorii zostaje
     w kodzie dla czytników i wyszukiwarek, znika tylko z ekranu; gdzie jesteśmy, widać po
     zielonej kresce w arkuszu „Menu”. */
  /* `!important`, bo odstęp u góry przychodzi ze stylu w kodzie bloku (atrybut szablonu:
     style="padding-top:var(--wp--preset--spacing--30)"), a stylu w kodzie nie przebije żaden selektor. */
  body.mim-feed .mimeble-main.mimeble-archive { margin-top: 0; padding-top: 0 !important; }
  body.mim-feed .mimeble-main .woocommerce-breadcrumb { display: none; }
  body.mim-feed .mimeble-main .woocommerce-products-header {
    position: absolute; width: 1px; height: 1px; margin: -1px;
    padding: 0; border: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap;
  }
}

/* Kategorie wewnątrz arkusza „Menu" (22.09.2026) — ta sama treść co w szufladzie, więc tylko
   odstępy i podpis sekcji; kafle i zakładki mają swoje style wyżej. */
@media (max-width: 781px) {
  .mim-mkat { margin: 0 0 6px; }
  .mim-mkat__lab {
    margin: 0; padding: 10px 16px 2px; font-size: .72rem; letter-spacing: .12em;
    text-transform: uppercase; color: var(--mim-faint); font-weight: 500;
  }
  .mim-mkat .mim-dkafle { padding-bottom: 10px; }
}

/* Przycisk sekcji, której widoczny mebel nie ma — zgaszony, ale zostaje na miejscu, żeby belka
   nie przeskakiwała przy każdym meblu (22.09.2026). */
@media (max-width: 781px) {
  .mim-bn.is-off { opacity: .35; }
  .mim-pusto { margin: 0; padding: 18px 16px; color: var(--mim-faint); font-size: .875rem; }
}

/* ── Slajd mebla na telefonie: układ jak na m.mikup.pl (22.09.2026) ──────────
   U wzorca każdy slajd ma pod zdjęciem tytuł, duży przycisk akcji i DWA rzędy przycisków:
   `slide-actions` (Opis / Parametry / Oceny / Opinie / Porównaj) oraz `slide-menu-row`
   (Menu / Ulubione / Porównywarka). U nas to samo, tylko dobrane do sklepu: Opis · Parametry ·
   Warianty · Seria · Opinie, a niżej Menu · Filtr · Ulubione · Koszyk. Dolnych pasków na liście
   już nie ma — wszystko jest przy meblu, który klient ma przed oczami. */
@media (max-width: 781px) {
  .mim-slajd__kropki { display: flex; gap: 5px; justify-content: center; padding: 6px 0 0; }
  .mim-kropka { width: 6px; height: 6px; border-radius: 50%; background: var(--mim-line); }
  .mim-kropka.is-active { background: var(--mim-ink); }

  .mim-slajd__akcje { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 4px; margin-top: 8px; }
  /* 23.09.2026, właściciel: „wyrównaj przyciski” — oba rzędy mają PIĘĆ kolumn, więc przyciski
     stoją w jednej linii jeden pod drugim (wcześniej rząd treści miał pustą piątą kolumnę
     po przeniesieniu wariantów na zdjęcie, a rząd menu — cztery). */
  .mim-slajd__menu { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 4px; margin-top: 4px; }
  .mim-sa, .mim-sm {
    appearance: none; border: 0; cursor: pointer; background: var(--mim-wash); color: var(--mim-ink);
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
    padding: 7px 2px; font: inherit; font-size: .625rem; line-height: 1.1; text-align: center;
    text-decoration: none; min-height: 46px;
  }
  .mim-sa svg, .mim-sm svg { width: 17px; height: 17px; }
  .mim-sa.is-off { opacity: .35; }
  /* Zielona ikona = na tej liście coś jest (właściciel 23.09/24.09.2026): ulubione, porównanie,
     koszyk (Store API w nav.js) i seria (policzona od razu po stronie serwera — seria mebla się
     nie zmienia w trakcie odwiedzin). Jedna reguła dla obu rzędów przycisków; zielony jest sam
     rysunek, nie całe tło przycisku. */
  .mim-sa.is-on .mim-i, .mim-sa.is-on svg, .mim-sm.is-on .mim-i, .mim-sm.is-on svg { color: var(--mim-green); }
  .mim-sm--fav.is-on { box-shadow: inset 2px 0 0 var(--mim-green); }
  /* zdjęcie oddaje wysokość przyciskom, ale zostaje największym elementem slajdu */
  body.mim-feed ul.products li.product a img { min-height: 38vh; }
}
@media (min-width: 782px) {
  .mim-slajd__akcje, .mim-slajd__menu, .mim-slajd__kropki { display: none; }
}

/* Serce i „udostępnij" na zdjęciu mebla (jak `.slide-fav-add-btn` / `.slide-share-btn` u wzorca). */
@media (max-width: 781px) {
  body.mim-feed ul.products li.product { position: relative; }
  .mim-slajd__nad {
    position: absolute; top: 8px; right: 8px; z-index: 2;
    display: flex; flex-direction: column; gap: 8px;
  }
  /* Dolny pas zdjęcia: warianty po lewej, „udostępnij" po prawej (22.09.2026, prośba właściciela).
     Pas leży NA zdjęciu, nad podpisem mebla — dlatego `pointer-events` tylko na przyciskach,
     żeby dotknięcie samego zdjęcia dalej otwierało galerię. */
  .mim-slajd__pod {
    position: absolute; left: 12px; right: 12px; z-index: 2;
    /* Dół zdjęcia mierzy skrypt (zmienna `--mim-foto-dol`), bo zdjęcie rośnie i maleje razem
       ze slajdem, a przyciski stoją POZA linkiem produktu (przycisk w środku <a> byłby błędnym
       HTML-em). Bez pomiaru zostaje bezpieczne 52% wysokości kafla. */
    top: calc(var(--mim-foto-dol, 52%) - 46px);
    display: flex; align-items: center; justify-content: space-between; gap: 8px;
    pointer-events: none;
  }
  .mim-slajd__pod > * { pointer-events: auto; }
  .mim-slajd__war {
    appearance: none; border: 0; cursor: pointer; display: inline-flex; align-items: center; gap: 6px;
    background: rgba(255, 255, 255, .94); color: var(--mim-ink); padding: 8px 12px;
    font: inherit; font-size: .8125rem; font-weight: 600; box-shadow: 0 1px 4px rgba(0, 0, 0, .12);
  }
  .mim-slajd__war .mim-i { width: 16px; height: 16px; }
  .mim-slajd__serce, .mim-slajd__udostepnij, .mim-slajd__cmp {
    appearance: none; border: 0; cursor: pointer; width: 38px; height: 38px; border-radius: 50%;
    background: rgba(255, 255, 255, .92); color: var(--mim-ink);
    display: flex; align-items: center; justify-content: center; box-shadow: 0 1px 4px rgba(0, 0, 0, .12);
  }
  .mim-slajd__serce svg, .mim-slajd__udostepnij svg, .mim-slajd__cmp svg { width: 18px; height: 18px; }
  .mim-slajd__serce.is-on, .mim-slajd__cmp.is-on { color: var(--mim-green); }
  .mim-slajd__cmp.is-on { box-shadow: 0 1px 4px rgba(0, 0, 0, .12), inset 0 0 0 2px var(--mim-green); }
  .mim-share-info {
    position: absolute; right: 46px; top: 50%; transform: translateY(-50%);
    background: var(--mim-ink); color: #fff; font-size: .6875rem; padding: 3px 7px; white-space: nowrap;
  }
}
/* Na komputerze warstwa telefonu znika w całości: serce i porównanie nad zdjęciem ORAZ pas
   z wariantami i udostępnianiem pod nim. Pas został kiedyś bez tej reguły i na komputerze
   dokładał kaflom wiersz przycisków (zgłoszone 23.09.2026: popraw wyświetlanie na komputerze). */
@media (min-width: 782px) {
  .mim-slajd__nad, .mim-slajd__pod { display: none; }
}

/* ── Arkusze: nagłówek zostaje na ekranie, treść się przewija (22.09.2026) ───
   Właściciel: „w menu popraw kategorie, bo nie mieszczą się na ekranie". Arkusz „Menu" urósł
   do 2248 px przy ekranie 812 px i wyjechał górą poza widok — nagłówka i „Kategorie ▾" w ogóle
   nie było widać. Teraz każdy arkusz jest kolumną: nagłówek i „Zamknij" stoją, środek się przewija. */
@media (max-width: 781px) {
  .mim-sheet { display: flex; flex-direction: column; max-height: 88dvh; }
  .mim-sheet__hd { flex: 0 0 auto; }
  .mim-sheet .mim-zam { flex: 0 0 auto; }
  .mim-sheet__tresc { flex: 1 1 auto; min-height: 0; overflow-y: auto; -webkit-overflow-scrolling: touch; }
  .mim-sheet--tresc .mim-sheet__tresc { max-height: none; }

  /* duży przycisk „Do koszyka" w slajdzie — odpowiednik `.slide-offers-btn` u wzorca */
  .mim-slajd__cta { margin-top: 10px; }
  /* Kierunek Pion chowa przyciski w kaflach siatki (reguła wyżej: `li.product .button`),
     ale w slajdzie na telefonie przycisk do koszyka ma być — stąd jawne przywrócenie. */
  /* Kolor zostaje sklepowy (zielony przycisk główny, reguła `.woocommerce a.button` wyżej ma
     `!important`) — tutaj tylko układ: pełna szerokość slajdu i wysokość pod kciuk. */
  .woocommerce ul.products li.product .mim-slajd__cta .button,
  .mim-slajd__cta .button, .mim-slajd__cta a.button {
    display: block; width: 100%; text-align: center; padding: 13px 14px; line-height: 1.2;
    text-decoration: none;
  }
  .woocommerce ul.products li.product .mim-slajd__cta .added_to_cart,
  .mim-slajd__cta .added_to_cart { display: none; }
  .mim-slajd__cta .button.loading { opacity: .7; }
  .mim-slajd__cta .button.added::after { content: " ✓"; }
}
@media (min-width: 782px) { .mim-slajd__cta { display: none; } }

/* Slajdy kanału kart: to, co poza ekranem, przeglądarka może pominąć (22.09.2026).
   Karta produktu ma ~2500 węzłów i blisko 180 zdjęć (galeria, propozycje, seria), a kanał trzyma
   do trzech takich slajdów — stąd „karta produktu się tnie" przy przesuwaniu. Slajd ma dokładnie
   wysokość kanału, więc podana wysokość zastępcza nie zmienia przewijania. */
@media (max-width: 781px) {
  .mim-kanal > .mim-slajd { content-visibility: auto; contain-intrinsic-size: auto 100%; }
}

/* Ikony ze wspólnego zestawu (`<use>`): rozmiar jak dawne inline'owe SVG. */
.mim-i { width: 20px; height: 20px; display: block; }
@media (max-width: 781px) { .mim-sa .mim-i, .mim-sm .mim-i { width: 17px; height: 17px; } }

/* ── Strona główna działa jak kategorie (23.09.2026) ──────────────
   Właściciel: „strona główna ma działać tak jak kategorie”. Dotychczas przewijała się CAŁA STRONA
   (zatrzask na `html`), bo pod meblami były jeszcze inne sekcje. Teraz jest tak jak na liście:
   strona stoi (`body.mim-feed`), przewija się wyłącznie kanał `ul.products`, a wszystkie wspólne
   reguły kanału (wysokość ekranu, twardy zatrzask, `content-visibility`) działają bez wyjątków.
   Zostaje tylko zdjęcie odstępu u góry — tak samo jak w kategorii, `!important`, bo przychodzi
   ze stylu w kodzie bloku. Hero, kafle działów i stopka są na telefonie ukryte (reguły wyżej);
   prowadzą do nich arkusz „Menu” i przyciski przy każdym meblu. */
@media (max-width: 781px) {
  body.home.mim-feed .mimeble-main { margin-top: 0; padding-top: 0 !important; }
  body.home.mim-feed .mim-polecane { margin-top: 0; }
}

/* ── Pełnoekranowe zdjęcie mebla z kanału (22.09.2026) ───────────────────────
   Właściciel: „produkty mają jakby dwie karty: jedną na stronie głównej, drugą jak się kliknie".
   U wzorca (m.mikup.pl) kliknięcie w zdjęcie otwiera galerię, a nie drugą kartę — slajd JEST kartą.
   Tak samo tutaj: na telefonie dotknięcie zdjęcia otwiera zdjęcia na pełnym ekranie. */
.mim-foto-pelny {
  position: fixed; inset: 0; z-index: 100050; background: #fff;
  display: flex; flex-direction: column;
}
.mim-foto-pelny[hidden] { display: none; }
.mim-foto-pelny__x {
  position: absolute; top: 10px; right: 10px; z-index: 2; width: 40px; height: 40px;
  border: 0; border-radius: 50%; background: rgba(255,255,255,.92); color: var(--mim-ink);
  font-size: 1.25rem; line-height: 1; cursor: pointer;
}
.mim-foto-pelny__tor {
  flex: 1; min-height: 0; display: flex; overflow-x: auto; scroll-snap-type: x mandatory;
  scrollbar-width: none; -webkit-overflow-scrolling: touch;
}
.mim-foto-pelny__tor::-webkit-scrollbar { display: none; }
.mim-foto-pelny__tor img {
  flex: 0 0 100%; width: 100%; height: 100%; object-fit: contain; scroll-snap-align: center;
}
.mim-foto-pelny__kropki { display: flex; gap: 6px; justify-content: center; padding: 12px 0 18px; }
.mim-foto-pelny__kropki span { width: 7px; height: 7px; border-radius: 50%; background: var(--mim-line); }
.mim-foto-pelny__kropki span.is-active { background: var(--mim-ink); }

/* Zaznaczanie kilku kategorii w menu (22.09.2026) — plusik przy wierszu i pasek u dołu listy. */
@media (max-width: 781px) {
  .mim-kat-para { display: flex; align-items: center; }
  .mim-kat-para .mim-kat-row { flex: 1; min-width: 0; }
  .mim-kat-para.is-wybrana { background: var(--mim-wash); }
  .mim-kat-zazn {
    appearance: none; border: 1px solid var(--mim-line); background: #fff; color: var(--mim-muted);
    width: 34px; height: 34px; margin-right: 16px; cursor: pointer; font-size: 1rem; line-height: 1;
    flex: 0 0 34px;
  }
  .mim-kat-zazn[aria-pressed="true"] { border-color: var(--mim-green); color: var(--mim-green); font-weight: 700; }
  .mim-kat-wybor {
    position: sticky; bottom: 0; display: flex; gap: 8px; padding: 10px 16px;
    background: #fff; border-top: 1px solid var(--mim-line);
  }
  .mim-kat-wybor[hidden] { display: none; }
  .mim-kat-pokaz {
    flex: 1; appearance: none; border: 0; cursor: pointer; background: var(--mim-green); color: #fff;
    padding: 12px 14px; font: inherit; font-weight: 600;
  }
  .mim-kat-czysc {
    appearance: none; border: 1px solid var(--mim-line); background: #fff; color: var(--mim-muted);
    padding: 12px 14px; font: inherit; cursor: pointer;
  }
}

/* ── Porównywarka na pełnym ekranie (23.09.2026) ────────────────────
   Właściciel: „porównywarkę zrób na wzór tej z m.mikup.pl”. Tam (mobile/app.js, `openCompareView`)
   jest: pasek panelu z listą i przyciskiem „Porównaj (N)”, a po nim pełny ekran — przyklejony
   nagłówek z kolumnami (cena, zdjęcie, nazwa, „Usuń”) i pod nim sekcje zwijane przyciskiem,
   w których parametry stoją wierszami: etykieta nad wartościami, żeby nie rozjeżdżały się między
   kolumnami. Tapnięcie wiersza go podświetla (telefon nie ma najechania myszką). Wygląd jest
   nasz: Manrope, hairline zamiast ramek, zielona kreska jako jedyny znak zaznaczenia. */
.mim-cmpf {
  position: fixed; inset: 0; z-index: 100060; background: #fff; color: var(--mim-ink);
  display: flex; flex-direction: column; font-family: var(--mim-font);
}
.mim-cmpf__gora {
  flex: 0 0 auto; display: flex; align-items: center; justify-content: space-between;
  padding: 12px 16px; border-bottom: 1px solid var(--mim-line); font-weight: 700;
}
.mim-cmpf__x {
  appearance: none; border: 0; background: none; cursor: pointer; font-size: 1.25rem; line-height: 1;
  padding: 6px 8px; color: var(--mim-ink);
}
.mim-cmpf__srodek { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; }
.mim-cmpf__hd {
  flex: 0 0 auto; display: grid; gap: 8px; padding: 10px 12px;
  border-bottom: 1px solid var(--mim-line); background: #fff;
}
.mim-cmpf__k { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.mim-cmpf__cena { font-weight: 700; font-size: .8125rem; }
.mim-cmpf__foto { display: block; }
.mim-cmpf__foto img { width: 100%; aspect-ratio: 1 / 1; object-fit: contain; background: #fff; }
.mim-cmpf__n {
  margin: 0; font-size: .75rem; line-height: 1.25; color: var(--mim-ink);
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.mim-cmpf__usun {
  appearance: none; border: 0; background: none; cursor: pointer; color: var(--mim-faint);
  font: inherit; font-size: .6875rem; padding: 2px 0; text-align: left;
}
.mim-cmpf__tresc { flex: 1 1 auto; min-height: 0; overflow-y: auto; -webkit-overflow-scrolling: touch; }

.mim-cmps { border-bottom: 1px solid var(--mim-line-2); }
.mim-cmps__t {
  appearance: none; border: 0; background: none; cursor: pointer; width: 100%;
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 14px 16px; font: inherit; font-weight: 600; color: var(--mim-ink); text-align: left;
}
.mim-cmps__v { color: var(--mim-faint); font-size: .75rem; }
.mim-cmps__b { display: none; padding: 0 0 14px; }
.mim-cmps.is-open .mim-cmps__b { display: block; }

/* Wiersz parametru: nazwa na środku nad wartościami, a co drugi wiersz na lekko szarym tle —
   przy dwóch kolumnach oko łatwiej trzyma się jednego wiersza (właściciel 23.09.2026).
   Paski idą przez całą szerokość ekranu, dlatego odstęp boczny siedzi w wierszu, nie w sekcji. */
.mim-cmpw { padding: 8px 16px; cursor: pointer; }
.mim-cmpw:nth-child(even) { background: var(--mim-wash); }
.mim-cmpw.is-tap { box-shadow: inset 2px 0 0 var(--mim-green), inset 0 0 0 1px var(--mim-line); }
/* Wiersz, w którym meble się różnią — tam właśnie patrzy klient, więc etykieta jest mocniejsza. */
.mim-cmpw--rozne .mim-cmpw__e { color: var(--mim-ink); }
.mim-cmpw__e { margin: 0 0 4px; font-size: .6875rem; letter-spacing: .04em; text-transform: uppercase;
  color: var(--mim-muted); text-align: center; }
.mim-cmpw__v { display: grid; gap: 8px; font-size: .8125rem; }
.mim-cmpw__v > div { min-width: 0; overflow-wrap: anywhere; }
.mim-cmpw__v .mim-brak { color: var(--mim-faint); }
/* Dwa meble stoją twarzą w twarz: pierwszy wyrównany do lewej, drugi do prawej, a nazwa parametru
   pośrodku między nimi (właściciel 23.09.2026). To samo robi nagłówek z ceną, nazwą i „Usuń",
   żeby kolumna trzymała się jednej strony od góry do dołu. */
.mim-cmpw__v > div:last-child:not(:first-child),
.mim-cmpf__k:last-child:not(:first-child),
.mim-cmpf__k:last-child:not(:first-child) .mim-cmpf__usun { text-align: right; }

.mim-cmpk { display: grid; gap: 10px; padding: 0 16px; }
.mim-cmpk__c { min-width: 0; font-size: .8125rem; line-height: 1.45; overflow-wrap: anywhere; }
.mim-cmpk__c img { max-width: 100%; height: auto; }
.mim-cmpk__c table { width: 100%; font-size: .75rem; }
/* 13.10.2026: na komputerze porównywarka też działa – układ okna w bloku „porównywarka i panel Udostępnij” niżej */

/* — udostępnianie koszyka (24.09.2026) — przycisk stoi nad kuponem, „skopiowane” pokazuje się
   nad nim (ten sam mechanizm co przy udostępnianiu pojedynczego mebla). */
.mim-koszyk-udostepnij-wrap { margin: 4px 0 18px; }
.mim-koszyk-udostepnij { position: relative; }
.mim-koszyk-wspolny.woocommerce-info { display: block; }
.mim-koszyk-wspolny .button { margin-left: 10px; }
@media (max-width: 768px) {
  .mim-koszyk-udostepnij-wrap .button { width: 100%; }
  .mim-koszyk-wspolny .button { display: block; width: 100%; margin: 10px 0 0; }
}

/* ── 2026-09-30: konto klienta w Pionie ───────────────────────────────────────
   Właściciel: „zróbmy wygląd strony konta klienta tak, aby pasowała wizualnie do reszty".
   Zasady jak w reszcie sklepu: bez ramek i zaokrągleń (hairline zamiast pudełek), jeden zielony
   przycisk na ekran, zielona kreska z boku jako jedyny znak „tu jesteś", podkreślenie tylko dla
   linków. Wszystko zawężone do .woocommerce-account — ogólna reguła formularzy (ramka 28 px)
   zostaje dla kuponu w kasie. */

/* logowanie kodem z maila (szablon woocommerce/myaccount/form-login.php, 30.09.2026) —
   zastąpiło formularze login/hasło i rejestracji WooCommerce; pierwsze logowanie kodem samo zakłada konto */
.woocommerce-account .mim-log {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 980px; margin-top: .5rem;
}
.woocommerce-account .mim-log--kod, .woocommerce-account .mim-log--link { grid-template-columns: minmax(0, 460px); }
.woocommerce-account .mim-log--email .mim-log__glowna { padding-right: 64px; }
.woocommerce-account .mim-log__korzysci { padding-left: 64px; border-left: 1px solid var(--mim-line); }
.woocommerce-account .mim-log__tytul {
  font-family: var(--mim-font); font-size: clamp(1.2rem, 1.8vw, 1.4rem); font-weight: 300; letter-spacing: -.015em; margin: 0 0 .6rem;
}
.woocommerce-account .mim-log__tytul::after { content: "."; color: var(--mim-green); }
.woocommerce-account .mim-log__opis { margin: 0 0 1.3rem; max-width: 46ch; font-size: .9375rem; line-height: 1.55; color: var(--mim-muted); }
.woocommerce-account .mim-log__opis strong { color: var(--mim-ink); font-weight: 600; }
.woocommerce-account .mim-log__form { display: flex; flex-direction: column; gap: 8px; margin: 0; }
.woocommerce-account .mim-log__etykieta { margin-top: 4px; font-size: .8rem; color: var(--mim-soft); }
.woocommerce-account .mim-log__pole {
  width: 100%; box-sizing: border-box; padding: .8rem .9rem; border: 1px solid var(--mim-line); border-radius: 0;
  background: #fff; color: var(--mim-ink); font: inherit; font-size: 1rem;
}
.woocommerce-account .mim-log__pole:focus { border-color: var(--mim-ink); outline: none; }
.woocommerce-account .mim-log__kod { font-size: 1.6rem; font-weight: 600; letter-spacing: .3em; text-align: center; }
.woocommerce-account .mim-log__wybor {
  display: flex; align-items: center; gap: 8px; margin: 6px 0 2px; font-size: .875rem; color: var(--mim-ink); cursor: pointer;
}
.woocommerce-account .mim-log__wybor input { width: 16px; height: 16px; margin: 0; accent-color: var(--mim-ink); }
.woocommerce .mim-log button.button.mim-log__przycisk {
  width: 100%; margin: 8px 0 0; padding: 1rem 1.9rem; border-radius: 0 !important; font-weight: 600 !important;
}
/* drugi przycisk na ekranie (hasłem) z konturem — zielony zostaje tylko przy „Wyślij kod" */
.woocommerce .mim-log button.button.mim-log__przycisk--drugi {
  background: transparent !important; color: var(--mim-ink) !important; box-shadow: inset 0 0 0 1px var(--mim-ink) !important;
}
.woocommerce .mim-log button.button.mim-log__przycisk--drugi:hover { background: var(--mim-wash) !important; }
.woocommerce-account .mim-log__uwaga { margin: 6px 0 0; font-size: .8125rem; line-height: 1.5; color: var(--mim-muted); }
.woocommerce-account .mim-log .woocommerce-privacy-policy-text p { margin: 2px 0 0; font-size: .8125rem; line-height: 1.5; color: var(--mim-muted); }
.woocommerce-account .mim-log a { color: var(--mim-ink); text-decoration: underline; text-underline-offset: 3px; }
.woocommerce-account .mim-log__haslo { margin-top: 28px; padding-top: 18px; border-top: 1px solid var(--mim-line); }
.woocommerce-account .mim-log__haslo summary {
  cursor: pointer; list-style: none; font-size: .9375rem; color: var(--mim-ink); text-decoration: underline; text-underline-offset: 3px;
}
.woocommerce-account .mim-log__haslo summary::-webkit-details-marker { display: none; }
.woocommerce-account .mim-log__haslo[open] summary { margin-bottom: 14px; }
.woocommerce-account .mim-log form.login { border: 0 !important; padding: 0 !important; margin: 0 !important; }
.woocommerce-account .mim-log__zapomniane { align-self: flex-start; margin-top: 6px; font-size: .875rem; }
.woocommerce-account .mim-log a.mim-log__wstecz { display: inline-block; margin-bottom: 14px; font-size: .875rem; color: var(--mim-muted); text-decoration: none; }
.woocommerce-account .mim-log a.mim-log__wstecz:hover { color: var(--mim-ink); }
.woocommerce-account .mim-log__ponownie {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px; margin: 18px 0 0; font-size: .875rem; color: var(--mim-muted);
}
.woocommerce-account .mim-log__link {
  padding: 0; border: 0; background: none; font: inherit; color: var(--mim-ink); text-decoration: underline; text-underline-offset: 3px; cursor: pointer;
}
.woocommerce-account .mim-log__korzysci ul { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--mim-line); }
.woocommerce-account .mim-log__korzysci li {
  display: flex; flex-direction: column; gap: 3px; padding: 14px 0; border-bottom: 1px solid var(--mim-line-2);
}
.woocommerce-account .mim-log__korzysci li strong { font-size: .9375rem; font-weight: 600; color: var(--mim-ink); }
.woocommerce-account .mim-log__korzysci li span { font-size: .875rem; line-height: 1.5; color: var(--mim-muted); }

/* „zapomniane hasło" i ustawianie nowego hasła */
.woocommerce-account form.lost_reset_password, .woocommerce-account form.woocommerce-ResetPassword {
  border: 0 !important; padding: 0 !important; margin: 0 !important; max-width: 460px;
}
/* WooCommerce daje wierszom formularza 3 px wcięcia — pola odstawały od nagłówka i linków */
.woocommerce-account .woocommerce form .form-row { padding-left: 0; padding-right: 0; }
/* pole oznaczone jako pierwsze z pary (47 %) — samo w wierszu, na całą szerokość */
.woocommerce-account form.lost_reset_password .form-row-first, .woocommerce-account form.lost_reset_password .form-row-last,
.woocommerce-account form.woocommerce-ResetPassword .form-row-first, .woocommerce-account form.woocommerce-ResetPassword .form-row-last {
  float: none; width: 100%;
}
.woocommerce-account form.lost_reset_password button.button, .woocommerce-account form.woocommerce-ResetPassword button.button {
  float: none; width: 100%; margin: 0; padding: 1rem 1.9rem; border-radius: 0 !important; font-weight: 600 !important;
}

/* po zalogowaniu: menu z lewej, treść z prawej */
.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation) {
  display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 0 64px; align-items: start;
}
.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation)::before,
.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation)::after { content: none; }
.woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation) > * { grid-column: 1 / -1; }
.woocommerce-account .woocommerce-MyAccount-navigation { grid-column: 1 !important; float: none; width: auto; }
.woocommerce-account .woocommerce-MyAccount-content { grid-column: 2 !important; float: none; width: auto; min-width: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation ul { border-top: 1px solid var(--mim-line); }
.woocommerce-account .woocommerce-MyAccount-navigation ul li { margin: 0; padding: 0; }
/* WooCommerce (woocommerce-blocktheme.css) podkreśla aktywną zakładkę — w Pionie znakiem „tu jesteś"
   jest tylko zielona kreska z boku (właściciel 30.09: „kreska wystarczy"), więc bez podkreślenia w żadnym stanie */
.woocommerce-account .woocommerce-MyAccount-navigation a,
.woocommerce-account .woocommerce-MyAccount-navigation a:hover,
.woocommerce-account .woocommerce-MyAccount-navigation a:focus,
.woocommerce-account .woocommerce-MyAccount-navigation a:active { text-decoration: none !important; }
.woocommerce-account .woocommerce-MyAccount-navigation a:focus-visible { outline: 2px solid var(--mim-green); outline-offset: -2px; }
.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
  padding: .8rem 0 .8rem 14px; border-bottom: 1px solid var(--mim-line-2); color: var(--mim-muted); text-decoration: none;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover { color: var(--mim-ink); }
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a {
  color: var(--mim-ink); font-weight: 600; box-shadow: inset 2px 0 0 var(--mim-green);
}
.woocommerce-account .woocommerce-MyAccount-navigation-link--customer-logout a { color: var(--mim-faint); }

.woocommerce-account .woocommerce-MyAccount-content { font-size: 1rem; line-height: 1.6; color: var(--mim-ink); }
.woocommerce-account .woocommerce-MyAccount-content > p { max-width: 62ch; }
.woocommerce-account .woocommerce-MyAccount-content a:not(.button) { color: var(--mim-ink); text-decoration: underline; text-underline-offset: 3px; }
.woocommerce-account .woocommerce-MyAccount-content mark { background: none; color: inherit; font-weight: 600; }
.woocommerce-account .woocommerce-MyAccount-content h2, .woocommerce-account .woocommerce-MyAccount-content h3,
.woocommerce-account .woocommerce-MyAccount-content legend {
  font-family: var(--mim-font); font-size: 1.2rem; font-weight: 300; letter-spacing: -.015em; margin: 0 0 .8rem;
}

/* zamówienia: tabela jak koszyk, akcje jako przyciski z konturem */
.woocommerce-account .woocommerce-orders-table td, .woocommerce-account .woocommerce-orders-table th { vertical-align: middle; }
.woocommerce-account .woocommerce-MyAccount-content table a.button,
.woocommerce-account .woocommerce-MyAccount-content .order-again a.button {
  background: transparent !important; color: var(--mim-ink) !important; box-shadow: inset 0 0 0 1px var(--mim-line) !important;
  padding: .55rem 1rem; font-size: .8125rem; margin: 0 6px 6px 0; white-space: nowrap;
}
.woocommerce-account .woocommerce-MyAccount-content table a.button:hover,
.woocommerce-account .woocommerce-MyAccount-content .order-again a.button:hover {
  background: transparent !important; box-shadow: inset 0 0 0 1px var(--mim-ink) !important;
}

/* adresy */
.woocommerce-account .woocommerce-Addresses {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; margin-top: 1.5rem;
}
.woocommerce-account .woocommerce-Addresses::before, .woocommerce-account .woocommerce-Addresses::after { content: none; }
.woocommerce-account .woocommerce-Addresses .woocommerce-Address {
  float: none; width: auto; max-width: none; margin: 0; border-top: 1px solid var(--mim-line); padding-top: 18px;
}
.woocommerce-account .woocommerce-Address-title { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.woocommerce-account .woocommerce-Address-title h2 { margin: 0 !important; }
.woocommerce-account .woocommerce-Address-title .edit { float: none; font-size: .875rem; white-space: nowrap; }
.woocommerce-account .woocommerce-MyAccount-content address {
  font-style: normal; line-height: 1.7; color: var(--mim-ink); border: 0; border-radius: 0; padding: 0;
}

/* formularze edycji: szczegóły konta, adres */
.woocommerce-account .woocommerce-EditAccountForm fieldset {
  border: 0; border-top: 1px solid var(--mim-line); margin: 28px 0 0; padding: 22px 0 0; min-width: 0;
}
.woocommerce-account .woocommerce-EditAccountForm legend { float: left; width: 100%; padding: 0; }
.woocommerce-account .woocommerce-EditAccountForm fieldset > legend + * { clear: both; }
.woocommerce-account .woocommerce-MyAccount-content form em,
.woocommerce-account .woocommerce-MyAccount-content form .description { display: block; margin-top: 4px; font-size: .8125rem; font-style: normal; color: var(--mim-muted); }
.woocommerce-account .woocommerce-MyAccount-content form button.button {
  border-radius: 0 !important; font-weight: 600 !important; margin-top: 8px;
}

/* szczegóły zamówienia */
.woocommerce-account .woocommerce-customer-details .woocommerce-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
.woocommerce-account .woocommerce-customer-details .woocommerce-columns::before,
.woocommerce-account .woocommerce-customer-details .woocommerce-columns::after { content: none; }
.woocommerce-account .woocommerce-customer-details .woocommerce-column { float: none; width: auto; max-width: none; }

@media (max-width: 781px) {
  .woocommerce-account .mim-log { grid-template-columns: minmax(0, 1fr); }
  .woocommerce-account .mim-log--email .mim-log__glowna { padding-right: 0; }
  .woocommerce-account .mim-log__korzysci {
    padding-left: 0; border-left: 0; border-top: 1px solid var(--mim-line); margin-top: 36px; padding-top: 28px;
  }
  .woocommerce-account .mim-log__korzysci ul { border-top: 0; }
  .woocommerce-account .woocommerce:has(> .woocommerce-MyAccount-navigation) { grid-template-columns: minmax(0, 1fr); }
  .woocommerce-account .woocommerce-MyAccount-navigation, .woocommerce-account .woocommerce-MyAccount-content { grid-column: 1 !important; }
  /* menu konta na telefonie: jeden przewijany rząd zamiast listy na pół ekranu */
  .woocommerce-account .woocommerce-MyAccount-navigation { margin-bottom: 24px; }
  .woocommerce-account .woocommerce-MyAccount-navigation ul {
    display: flex; gap: 20px; overflow-x: auto; scrollbar-width: none; border-top: 0; border-bottom: 1px solid var(--mim-line);
  }
  .woocommerce-account .woocommerce-MyAccount-navigation ul::-webkit-scrollbar { display: none; }
  .woocommerce-account .woocommerce-MyAccount-navigation ul li { flex: none; }
  .woocommerce-account .woocommerce-MyAccount-navigation ul li a { padding: .75rem 0 .75rem 10px; border-bottom: 0; white-space: nowrap; }
  .woocommerce-account .woocommerce-Addresses,
  .woocommerce-account .woocommerce-customer-details .woocommerce-columns { grid-template-columns: minmax(0, 1fr); gap: 24px; }
}

/* ── 2026-09-30: zakładki konta jak w JSP (inc/konto/*, woocommerce/myaccount/*) ──────────────
   Właściciel: „dodaj zakładki takie jak są w JSP, czyli klient ma dostęp do pełnych informacji
   o swoich zamówieniach i koncie". Zasady Pionu: sekcje oddziela kreska u góry (bez kart), zielona
   kreska = „tu jesteś / to teraz", zielony tylko przycisk główny. Wszystko pod prefiksem .mim-k. */
.woocommerce-account .mim-k { display: flex; flex-direction: column; gap: 36px; }
.woocommerce-account .mim-k__hd h1 {
  font-family: var(--mim-font); font-size: clamp(1.5rem, 2.4vw, 1.9rem); font-weight: 300; letter-spacing: -.02em; line-height: 1.2; margin: 0;
}
.woocommerce-account .mim-k__hd h1::after { content: "."; color: var(--mim-green); }
.woocommerce-account .mim-k__hd p { margin: .5rem 0 0; max-width: 62ch; color: var(--mim-muted); font-size: .9375rem; line-height: 1.55; }
.woocommerce-account .mim-k-sekcja { border-top: 1px solid var(--mim-line); padding-top: 20px; min-width: 0; }
.woocommerce-account .mim-k-sekcja > p:last-child { margin-bottom: 0; }
.woocommerce-account .mim-k-sekcja__hd { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: .8rem; }
.woocommerce-account .mim-k-sekcja__hd h2 { margin: 0 !important; }
.woocommerce-account .mim-k-dwie { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px 48px; }
.woocommerce-account .mim-k-drobny { font-size: .8125rem; line-height: 1.5; color: var(--mim-muted); }
.woocommerce-account .mim-k .mim-k-link,
.woocommerce-account .mim-k a.mim-k-link {
  display: inline-flex; align-items: center; gap: 6px; color: var(--mim-ink); font-size: .9375rem;
  text-decoration: underline; text-underline-offset: 3px;
}
.woocommerce-account .mim-k-ikona { flex: none; }
.woocommerce-account .mim-k-akcje { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 22px; margin: 0; }
.woocommerce .mim-k a.button, .woocommerce .mim-k button.button { border-radius: 6px; font-weight: 600; }
.woocommerce .mim-k a.button.mim-k-maly, .woocommerce .mim-k button.button.mim-k-maly { padding: .55rem 1rem; font-size: .8125rem; }
.woocommerce-account .mim-k-pusto {
  display: flex; flex-direction: column; align-items: flex-start; gap: 14px; border-top: 1px solid var(--mim-line); padding-top: 20px;
}
.woocommerce-account .mim-k-pusto p { margin: 0; color: var(--mim-muted); }

/* znacznik stanu: kwadracik + wersaliki (pełny = jest, pusty = czeka na Ciebie, zielony = gotowe) */
.woocommerce-account .mim-k-stan {
  display: inline-flex; align-items: center; gap: 7px; white-space: nowrap;
  font-size: .6875rem; font-weight: 600; letter-spacing: .07em; text-transform: uppercase; color: var(--mim-ink);
}
.woocommerce-account .mim-k-stan::before { content: ""; width: 7px; height: 7px; background: var(--mim-ink); flex: none; }
.woocommerce-account .mim-k-stan--ok::before { background: var(--mim-green); }
.woocommerce-account .mim-k-stan--uwaga::before { background: transparent; box-shadow: inset 0 0 0 1.5px var(--mim-ink); }
.woocommerce-account .mim-k-stan--szara { color: var(--mim-faint); }
.woocommerce-account .mim-k-stan--szara::before { background: var(--mim-faint); }

/* etapy zamówienia: kreska nad każdym krokiem – czarna = było, zielona = teraz, jasna = będzie */
.woocommerce-account .mim-k-etapy {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; list-style: none; margin: 0; padding: 0;
}
.woocommerce-account .mim-k-etapy__krok { display: flex; flex-direction: column; gap: 3px; border-top: 2px solid var(--mim-line); padding-top: 10px; margin: 0; }
.woocommerce-account .mim-k-etapy__nazwa { font-size: .875rem; font-weight: 500; color: var(--mim-ink); }
.woocommerce-account .mim-k-etapy__kiedy { font-size: .75rem; line-height: 1.4; color: var(--mim-muted); }
.woocommerce-account .mim-k-etapy__krok--bylo { border-top-color: var(--mim-ink); }
.woocommerce-account .mim-k-etapy__krok--teraz { border-top-color: var(--mim-green); }
.woocommerce-account .mim-k-etapy__krok--teraz .mim-k-etapy__nazwa { font-weight: 700; }
.woocommerce-account .mim-k-etapy__krok--bedzie .mim-k-etapy__nazwa { color: var(--mim-faint); }

/* miniatury mebli (zdjęcia z linków hurtowni) */
.woocommerce-account .mim-k-miniatury { display: flex; gap: 6px; flex: none; }
.woocommerce-account .mim-k-foto { display: block; flex: none; }
.woocommerce-account .mim-k-foto img {
  display: block; width: 56px !important; height: 56px !important; max-width: none; object-fit: contain; background: #fff;
  box-shadow: inset 0 0 0 1px var(--mim-line-2);
}

/* kokpit */
.woocommerce-account .mim-k-paczka { display: flex; flex-direction: column; gap: 22px; }
.woocommerce-account .mim-k-paczka__gora { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 18px; align-items: center; }
.woocommerce-account .mim-k-paczka__co, .woocommerce-account .mim-k-paczka__gdzie { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.woocommerce-account .mim-k-paczka__co strong { font-size: 1.15rem; font-weight: 600; }
.woocommerce-account .mim-k-paczka__gdzie { text-align: right; }
.woocommerce-account .mim-k-ulub-mini { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.woocommerce-account .mim-k .mim-k-ulub-mini a { display: flex; flex-direction: column; gap: 6px; min-width: 0; color: var(--mim-ink); text-decoration: none; }
.woocommerce-account .mim-k-ulub-mini .mim-k-foto img { width: 100% !important; height: auto !important; aspect-ratio: 1; }
.woocommerce-account .mim-k-ulub-mini strong { font-size: .8125rem; font-weight: 600; }
.woocommerce-account .mim-k-pol-kafel__liczba { display: flex; align-items: baseline; gap: 12px; margin: 0 0 6px; }
.woocommerce-account .mim-k-pol-kafel__liczba strong { font-size: 2.4rem; font-weight: 300; line-height: 1; }
.woocommerce-account .mim-k-pol-kafel__liczba span { font-size: .875rem; color: var(--mim-muted); }
.woocommerce-account .mim-k a.mim-k-lista {
  display: grid; grid-template-columns: 84px minmax(0, 1fr) auto auto; gap: 16px; align-items: center;
  padding: 13px 0; border-bottom: 1px solid var(--mim-line-2); color: var(--mim-ink); text-decoration: none;
}
.woocommerce-account .mim-k a.mim-k-lista:hover .mim-k-lista__opis { text-decoration: underline; text-underline-offset: 3px; }
.woocommerce-account .mim-k-lista__nr { font-size: .875rem; font-weight: 600; font-variant-numeric: tabular-nums; }
.woocommerce-account .mim-k-lista__opis { font-size: .9375rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.woocommerce-account .mim-k-lista__kwota { font-weight: 600; font-variant-numeric: tabular-nums; text-align: right; min-width: 90px; }

/* zamówienia */
.woocommerce-account .mim-k-zamowienia { border-top: 1px solid var(--mim-line); }
.woocommerce-account .mim-k-zamowienie {
  display: grid; grid-template-columns: 184px minmax(0, 1fr) auto auto auto; gap: 20px; align-items: center;
  padding: 18px 0; border-bottom: 1px solid var(--mim-line-2);
}
.woocommerce-account .mim-k-zamowienie__co { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.woocommerce-account .mim-k a.mim-k-zamowienie__nr { color: var(--mim-ink); font-weight: 600; text-decoration: none; }
.woocommerce-account .mim-k a.mim-k-zamowienie__nr:hover { text-decoration: underline; text-underline-offset: 3px; }
.woocommerce-account .mim-k-zamowienie__kwota { font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
.woocommerce-account .mim-k-zamowienie__akcje { display: flex; align-items: center; gap: 16px; justify-content: flex-end; }
.woocommerce-account .mim-k-strony { display: flex; gap: 12px; }

/* szczegóły zamówienia */
.woocommerce-account .mim-k a.mim-k-wstecz {
  display: inline-flex; align-items: center; gap: 6px; margin-bottom: -18px; font-size: .875rem; color: var(--mim-muted); text-decoration: none;
}
.woocommerce-account .mim-k a.mim-k-wstecz:hover { color: var(--mim-ink); }
.woocommerce-account .mim-k-szczegoly__hd { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.woocommerce-account .mim-k-szczegoly__hd .mim-k-stan { margin-top: .6rem; }
.woocommerce-account .mim-k-przesylka { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; padding: 4px 0 12px; }
.woocommerce-account .mim-k-przesylka__nr { font-weight: 600; letter-spacing: .04em; font-variant-numeric: tabular-nums; }
.woocommerce-account .mim-k-przesylka__akcje { display: flex; gap: 8px; }
.woocommerce-account .mim-k-notatki ol { list-style: none; margin: 0; padding: 0; }
.woocommerce-account .mim-k-notatki li { padding: 10px 0 10px 14px; box-shadow: inset 2px 0 0 var(--mim-line); margin-bottom: 10px; }
.woocommerce-account .mim-k-notatki li p { margin: 4px 0 0; }
.woocommerce-account .mim-k-szczegoly__tabela > *:first-child { margin-top: 0; }

/* formularze konta (Adresy i dane, Zwroty, Kontakt) */
.woocommerce-account .mim-k-form { display: flex; flex-direction: column; gap: 14px; margin: 0; }
.woocommerce-account .mim-k-form > p { margin: 0; }
.woocommerce-account .mim-k-siatka { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 24px; }
.woocommerce-account .mim-k-pole { display: flex; flex-direction: column; gap: 6px; margin: 0; min-width: 0; }
.woocommerce-account .mim-k-pole label { font-size: .8rem; color: var(--mim-soft); }
.woocommerce-account .mim-k input[type=text], .woocommerce-account .mim-k input[type=email], .woocommerce-account .mim-k input[type=tel],
.woocommerce-account .mim-k input[type=password], .woocommerce-account .mim-k input:not([type]), .woocommerce-account .mim-k select,
.woocommerce-account .mim-k textarea {
  width: 100%; box-sizing: border-box; padding: .75rem .85rem; border: 1px solid var(--mim-line); border-radius: 0;
  background: #fff; color: var(--mim-ink); font: inherit; font-size: .9375rem; line-height: 1.4;
}
.woocommerce-account .mim-k input:focus, .woocommerce-account .mim-k select:focus, .woocommerce-account .mim-k textarea:focus { border-color: var(--mim-ink); outline: none; }
.woocommerce-account .mim-k input[readonly] { background: var(--mim-wash); color: var(--mim-muted); }
.woocommerce-account .mim-k textarea { resize: vertical; min-height: 5.5em; }
.woocommerce-account .mim-k-adres { display: flex; flex-direction: column; font-style: normal; line-height: 1.6; margin: 0 0 12px; }
.woocommerce-account .mim-k-prywatnosc { display: flex; flex-wrap: wrap; gap: 8px 28px; margin: 0 0 10px; }
.woocommerce-account .mim-k-link-przycisk {
  padding: 0; border: 0; background: none; font: inherit; font-size: .9375rem; color: var(--mim-ink); cursor: pointer;
  text-decoration: underline; text-underline-offset: 3px;
}
.woocommerce-account .mim-k-link-przycisk--usun { color: var(--mim-muted); }
.woocommerce-account .mim-k-wiersz {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--mim-line-2);
}
.woocommerce-account .mim-k-wiersz > span:first-child { display: flex; flex-direction: column; min-width: 0; }
.woocommerce-account .mim-k-kroki { margin: 0 0 12px; padding-left: 1.15em; font-size: .9rem; line-height: 1.55; }
.woocommerce-account .mim-k-kroki li { margin: 0 0 8px; }
.woocommerce-account .mim-k-kropka { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--mim-green); margin-left: 6px; flex: none; }

/* zwroty */
.woocommerce-account .mim-k-zwroty { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 36px 56px; align-items: start; }
.woocommerce-account .mim-k-zwroty__bok { display: flex; flex-direction: column; gap: 32px; }
.woocommerce-account .mim-k-zwrot { border-top: 1px solid var(--mim-line); padding-top: 20px; }
.woocommerce-account .mim-k-zwrot fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.woocommerce-account .mim-k .mim-k-zwrot legend {
  float: none; width: auto; padding: 0; margin: 0 0 6px; font-family: var(--mim-font); font-size: .8rem; font-weight: 400; letter-spacing: 0; color: var(--mim-soft);
}
.woocommerce-account .mim-k-zwrot__rzecz {
  display: grid; grid-template-columns: auto auto minmax(0, 1fr); gap: 12px; align-items: center;
  padding: 10px 0; border-bottom: 1px solid var(--mim-line-2); cursor: pointer;
}
.woocommerce-account .mim-k-zwrot__rzecz > span:last-child { display: flex; flex-direction: column; min-width: 0; }
.woocommerce-account .mim-k-zwrot__rzecz strong { font-weight: 500; }
.woocommerce-account .mim-k-zwrot input[type=checkbox], .woocommerce-account .mim-k-zwrot input[type=radio] {
  width: 16px; height: 16px; margin: 0; accent-color: var(--mim-ink); flex: none;
}
.woocommerce-account .mim-k-wybor { display: flex; align-items: flex-start; gap: 10px; padding: 5px 0; font-size: .9375rem; cursor: pointer; }
.woocommerce-account .mim-k-wybor input { margin-top: 4px !important; }

/* kontakt */
.woocommerce-account .mim-k-kontakt { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 32px 44px; align-items: start; }
.woocommerce-account .mim-k-kontakt__lista { display: flex; flex-direction: column; }
.woocommerce-account .mim-k-kontakt__lista .button { text-align: center; margin-bottom: 14px; }
.woocommerce-account .mim-k a.mim-k-kontakt__watek {
  display: flex; flex-direction: column; gap: 2px; padding: 11px 0 11px 14px; border-bottom: 1px solid var(--mim-line-2);
  color: var(--mim-muted); text-decoration: none;
}
.woocommerce-account .mim-k a.mim-k-kontakt__watek:hover { color: var(--mim-ink); }
.woocommerce-account .mim-k a.mim-k-kontakt__watek.is-active { color: var(--mim-ink); box-shadow: inset 2px 0 0 var(--mim-green); }
.woocommerce-account .mim-k-kontakt__temat { display: flex; align-items: center; font-size: .9375rem; font-weight: 500; color: var(--mim-ink); }
.woocommerce-account .mim-k-kontakt__rozmowa { border-top: 1px solid var(--mim-line); padding-top: 18px; min-width: 0; }
.woocommerce-account .mim-k-kontakt__naglowek { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 16px; padding-bottom: 12px; }
.woocommerce-account .mim-k-kontakt__wiadomosci { display: flex; flex-direction: column; gap: 12px; max-height: 60vh; overflow-y: auto; padding: 6px 0 16px; }
.woocommerce-account .mim-k-dymek {
  display: flex; flex-direction: column; gap: 4px; max-width: 80%; padding: 11px 15px; background: var(--mim-wash); align-self: flex-start;
}
.woocommerce-account .mim-k-dymek--sklep { box-shadow: inset 2px 0 0 var(--mim-green); }
.woocommerce-account .mim-k-dymek--ja { align-self: flex-end; background: var(--mim-ink); color: #fff; }
.woocommerce-account .mim-k-dymek--ja .mim-k-drobny { color: var(--mim-faint); }
.woocommerce-account .mim-k-dymek__kto { font-size: .6875rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.woocommerce-account .mim-k-dymek__tresc { font-size: .9375rem; line-height: 1.5; overflow-wrap: anywhere; }
.woocommerce-account .mim-k a.mim-k-dymek__zal { display: inline-flex; align-items: center; gap: 6px; color: inherit; font-size: .875rem; }
.woocommerce-account .mim-k-kontakt__odpowiedz {
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; align-items: end; border-top: 1px solid var(--mim-line); padding-top: 14px; margin: 0;
}
.woocommerce-account .mim-k-kontakt__odpowiedz textarea { min-height: 3.2em; }
.woocommerce-account .mim-k-kontakt__stopka { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.woocommerce-account .mim-k-plik { position: relative; display: inline-flex; align-items: center; gap: 8px; color: var(--mim-muted); font-size: .875rem; cursor: pointer; }
.woocommerce-account .mim-k-plik--ikona { padding: 10px; }
.woocommerce-account .mim-k-plik:hover, .woocommerce-account .mim-k-plik.is-on { color: var(--mim-ink); }
.woocommerce-account .mim-k-plik.is-on .mim-k-ikona { color: var(--mim-green); }
.woocommerce-account .mim-k-plik input { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; }
.woocommerce-account .mim-k-plik:focus-within { outline: 2px solid var(--mim-green); outline-offset: 2px; }

/* ulubione w koncie – ta sama lista co strona /ulubione/ */
.woocommerce-account .mim-k-ulubione { max-width: none; margin: 0; }
.woocommerce-account .mim-k-ulubione .mim-ulubione-strona__hd { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }

/* polecaj */
.woocommerce-account .mim-k-pol__gora { display: flex; align-items: center; gap: 32px; }
.woocommerce-account .mim-k-pol__procent { display: flex; flex-direction: column; gap: 2px; flex: none; }
.woocommerce-account .mim-k-pol__procent strong { font-size: 3rem; font-weight: 300; line-height: 1; letter-spacing: -.02em; }
.woocommerce-account .mim-k-pol__opis { display: flex; flex-direction: column; gap: 4px; font-size: .9375rem; }
.woocommerce-account .mim-k-pol__opis span { color: var(--mim-muted); }
.woocommerce-account .mim-k-pol__drabina {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(52px, 1fr)); gap: 4px; list-style: none; margin: 22px 0 10px; padding: 0;
}
.woocommerce-account .mim-k-pol__drabina li { display: flex; flex-direction: column; border-top: 2px solid var(--mim-line); padding-top: 6px; margin: 0; }
.woocommerce-account .mim-k-pol__drabina li.is-jest { border-top-color: var(--mim-ink); }
.woocommerce-account .mim-k-pol__drabina li.is-czeka { border-top-style: dashed; border-top-color: var(--mim-ink); }
.woocommerce-account .mim-k-pol__drabina b { font-size: .8125rem; }
.woocommerce-account .mim-k-pol__drabina small { font-size: .6875rem; color: var(--mim-muted); }
.woocommerce-account .mim-k-pol__link { display: flex; gap: 10px; }
.woocommerce-account .mim-k-pol__link input { flex: 1; min-width: 0; }
.woocommerce-account .mim-k-pol__udostepnij { display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 14px 0 8px; }
.woocommerce-account .mim-k-pol__udostepnij a { color: var(--mim-ink); text-underline-offset: 3px; }
.woocommerce-account .mim-k-pol__tabela { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 8px 20px; font-size: .9375rem; }
.woocommerce-account .mim-k-pol__tabela > :nth-child(3n+2), .woocommerce-account .mim-k-pol__tabela > :nth-child(3n) { text-align: right; font-variant-numeric: tabular-nums; }

/* menu konta: kto jest zalogowany, ikony, liczniki */
.woocommerce-account .mim-k-menu__kto { display: flex; flex-direction: column; gap: 2px; padding: 0 0 16px 14px; min-width: 0; }
.woocommerce-account .mim-k-menu__kto strong { font-size: .9375rem; font-weight: 600; color: var(--mim-ink); }
.woocommerce-account .mim-k-menu__kto span { font-size: .8rem; color: var(--mim-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.woocommerce-account .woocommerce-MyAccount-navigation.mim-k-menu ul li a { display: flex; align-items: center; gap: 10px; }
.woocommerce-account .mim-k-menu .mim-k-ikona { color: var(--mim-faint); }
.woocommerce-account .mim-k-menu li.is-active .mim-k-ikona, .woocommerce-account .mim-k-menu a:hover .mim-k-ikona { color: var(--mim-ink); }
.woocommerce-account .mim-k-menu__licznik {
  display: inline-grid; place-items: center; min-width: 18px; height: 18px; padding: 0 4px; margin-left: auto; margin-right: 10px;
  background: var(--mim-ink); color: #fff; font-size: .6875rem; font-weight: 700; font-variant-numeric: tabular-nums;
}
.woocommerce-account .mim-k-menu__dopisek { margin-left: auto; margin-right: 10px; font-size: .75rem; color: var(--mim-muted); }
.woocommerce-account .mim-k-menu .mim-k-kropka { margin-left: auto; margin-right: 12px; }

@media (max-width: 1100px) {
  .woocommerce-account .mim-k-zamowienie { grid-template-columns: auto minmax(0, 1fr) auto; }
  .woocommerce-account .mim-k-zamowienie .mim-k-miniatury { grid-row: span 2; }
  .woocommerce-account .mim-k-zamowienie__kwota { text-align: right; }
  .woocommerce-account .mim-k-zamowienie .mim-k-stan { grid-column: 2; }
  .woocommerce-account .mim-k-zamowienie__akcje { grid-column: 3; }
  .woocommerce-account .mim-k-zamowienie .mim-k-miniatury .mim-k-foto:nth-child(n+2) { display: none; }
  .woocommerce-account .mim-k-zwroty, .woocommerce-account .mim-k-kontakt { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 781px) {
  .woocommerce-account .mim-k { gap: 28px; }
  .woocommerce-account .mim-k-dwie, .woocommerce-account .mim-k-siatka { grid-template-columns: minmax(0, 1fr); }
  .woocommerce-account .mim-k-menu__kto, .woocommerce-account .mim-k-menu .mim-k-ikona { display: none; }
  .woocommerce-account .mim-k-menu__licznik, .woocommerce-account .mim-k-menu__dopisek, .woocommerce-account .mim-k-menu .mim-k-kropka { margin-left: 2px; margin-right: 0; }
  .woocommerce-account .mim-k-etapy { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .woocommerce-account .mim-k-etapy__krok { flex-direction: row; justify-content: space-between; gap: 12px; border-top: 0; border-left: 2px solid var(--mim-line); padding: 6px 0 6px 12px; }
  .woocommerce-account .mim-k-etapy__krok--bylo { border-left-color: var(--mim-ink); }
  .woocommerce-account .mim-k-etapy__krok--teraz { border-left-color: var(--mim-green); }
  .woocommerce-account .mim-k-etapy__kiedy { text-align: right; }
  .woocommerce-account .mim-k-paczka__gora { grid-template-columns: auto minmax(0, 1fr); }
  .woocommerce-account .mim-k-paczka__gdzie { grid-column: 1 / -1; text-align: left; flex-direction: row; gap: 8px; align-items: baseline; }
  .woocommerce-account .mim-k-ulub-mini { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .woocommerce-account .mim-k a.mim-k-lista { grid-template-columns: minmax(0, 1fr) auto; gap: 4px 12px; }
  .woocommerce-account .mim-k-lista__opis { grid-column: 1 / -1; grid-row: 2; }
  .woocommerce-account .mim-k-lista .mim-k-stan { grid-row: 3; }
  .woocommerce-account .mim-k-lista__kwota { grid-row: 3; min-width: 0; }
  .woocommerce-account .mim-k-zamowienie { grid-template-columns: auto minmax(0, 1fr); gap: 8px 14px; }
  .woocommerce-account .mim-k-zamowienie .mim-k-miniatury { grid-row: span 3; align-self: start; }
  .woocommerce-account .mim-k-zamowienie .mim-k-stan, .woocommerce-account .mim-k-zamowienie__kwota,
  .woocommerce-account .mim-k-zamowienie__akcje { grid-column: 2; text-align: left; justify-content: flex-start; }
  .woocommerce-account .mim-k-szczegoly__hd { flex-direction: column; gap: 8px; }
  .woocommerce-account .mim-k-szczegoly__hd .mim-k-stan { margin-top: 0; }
  .woocommerce-account .mim-k-pol__gora { flex-direction: column; align-items: flex-start; gap: 12px; }
  .woocommerce-account .mim-k-pol__link { flex-direction: column; }
  .woocommerce-account .mim-k-dymek { max-width: 92%; }
  .woocommerce-account .mim-k-kontakt__wiadomosci { max-height: none; }
}

/* ── 2026-09-30: telefon – konto jak w JSP ─────────────────────────────────────────────
   Właściciel: „wersję mobilną zrób też tak jak na JSP". Do 781 px menu konta znika z góry strony;
   dolny pasek sklepu po zalogowaniu ma Menu · Zamówienia · Kokpit · Polecaj/Ulubione · Więcej,
   a „Więcej" otwiera arkusz #mim-sheet-konto z resztą zakładek (inc/konto/konto.php). */
@media (max-width: 781px) {
  body.mim-konto-zalogowany .woocommerce-MyAccount-navigation.mim-k-menu { display: none; }
  .mim-bn__licznik {
    position: absolute; top: -6px; right: -11px; min-width: 16px; height: 16px; padding: 0 4px; box-sizing: border-box;
    background: var(--mim-ink); color: #fff; font-style: normal; font-size: .625rem; font-weight: 700; line-height: 16px;
    text-align: center; font-variant-numeric: tabular-nums;
  }
  .mim-k-arkusz__kto { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
  .mim-k-arkusz__kto strong { font-size: .9375rem; font-weight: 600; color: var(--mim-ink); }
  .mim-k-arkusz__kto small { font-size: .8rem; font-weight: 400; color: var(--mim-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .mim-sheet--konto .mim-mrow.is-on { font-weight: 600; padding-left: 12px; box-shadow: inset 2px 0 0 var(--mim-green); }
  .mim-sheet--konto .mim-mrow.is-on svg { color: var(--mim-ink); }
  .mim-sheet--konto .mim-mrow--wyloguj { color: var(--mim-muted); }
}

/* ── 2026-10-13: Ulubione · Porównaj · Udostępnij pod koszykiem na komputerze ─────────────────
   Właściciel: „popraw wygląd przycisku ulubionych, dodawania do ulubionych i udostępniania w wersji
   komputerowej, tak aby pasował do stylu strony” → wybrany rząd pod koszykiem. Pion: bez kółek i cieni,
   kreska nad rzędem, zielona kreska z boku = „tu jest” (W ulubionych / W porównaniu). Kółka na zdjęciu
   zostają tylko na telefonie. Rząd drukuje inc/pion-mobile.php (woocommerce_single_product_summary, 31). */
.mim-akcje-kom { display: none; }
@media (min-width: 782px) {
  .woocommerce div.product .mim-foto-akcje { display: none; }
  .mim-akcje-kom {
    display: flex; flex-wrap: wrap; align-items: center; gap: 6px 28px;
    margin: 18px 0 4px; padding-top: 14px; border-top: 1px solid var(--mim-line);
  }
  .mim-akcja {
    position: relative; appearance: none; background: none; border: 0; border-radius: 0; margin: 0;
    display: inline-flex; align-items: center; gap: 8px; padding: 6px 0; cursor: pointer;
    font-family: var(--mim-font); font-size: .875rem; font-weight: 500; line-height: 1.2; color: var(--mim-muted);
    transition: color .15s ease;
  }
  .mim-akcja svg { width: 18px; height: 18px; flex: none; }
  .mim-akcja:hover, .mim-akcja:focus-visible { color: var(--mim-ink); }
  .mim-akcja:focus-visible { outline: 2px solid var(--mim-green); outline-offset: 3px; }
  .mim-akcja__t--tak { display: none; }
  .mim-akcja.is-on { color: var(--mim-ink); font-weight: 600; padding-left: 10px; box-shadow: inset 2px 0 0 var(--mim-green); }
  .mim-akcja.is-on .mim-akcja__t--nie { display: none; }
  .mim-akcja.is-on .mim-akcja__t--tak { display: inline; }
  .mim-akcja--serce.is-on svg path { fill: currentColor; }
  /* „skopiowane” po kliknięciu Udostępnij (gdy przeglądarka nie ma okna udostępniania) */
  .mim-akcja .mim-share-info { font-size: .75rem; font-weight: 500; color: var(--mim-green-dk); }
}

/* ── 2026-10-13 (2): porównywarka i panel „Udostępnij” na komputerze ───────────────────────────
   Właściciel: „przydałby się gdzieś przycisk porównywarki, aby porównać produkty dodane do porównania.
   Przycisk udostępnij niech wyświetla z boku wysuwane menu z różnymi opcjami udostępnienia”.
   - nagłówek: kółko z ikoną porównania obok serca, zielona liczba mebli (jak licznik koszyka);
   - rząd pod koszykiem: „Porównaj (2) →”, gdy na liście są dwa meble;
   - porównywarka (nav.js, .mim-cmpf) na komputerze jako okno na środku ekranu na przyciemnionym tle;
   - Udostępnij: panel wysuwany z prawej (nav.js, window.mimPanelUdostepnij). */
.mimeble-compare-link { margin: 0; }
@media (max-width: 781px) { .mimeble-header__tools .mimeble-compare-link { display: none; } }
@media (min-width: 782px) {
  .mimeble-header .mimeble-compare-link button {
    appearance: none; cursor: pointer; position: relative; width: 44px; height: 44px; padding: 0; margin: 0;
    display: flex; align-items: center; justify-content: center;
    border: 1px solid var(--mim-line); border-radius: 999px; background: #fff; color: var(--mim-ink);
    transition: border-color .15s ease;
  }
  .mimeble-header .mimeble-compare-link button:hover { border-color: var(--mim-ink); }
  .mimeble-header .mimeble-compare-link button:focus-visible { outline: 2px solid var(--mim-green); outline-offset: 2px; }
  .mimeble-header .mimeble-compare-link svg { width: 20px; height: 20px; }
  .mimeble-compare-link i {
    position: absolute; top: -5px; right: -5px; min-width: 18px; height: 18px; padding: 0 5px; box-sizing: border-box;
    border-radius: 999px; background: var(--mim-green); color: #fff; font-style: normal;
    font: 700 .6875rem/18px var(--mim-font); text-align: center; font-variant-numeric: tabular-nums;
  }
  .mimeble-compare-link i:empty { display: none; }

  /* „Porównaj (2) →” w rzędzie pod koszykiem: ciemny tekst, bez kreski (to akcja, nie stan) */
  .mim-akcja--teraz { color: var(--mim-ink); font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }
  .mim-akcja--teraz[hidden] { display: none; }

  /* porównywarka: okno na środku, tło przyciemnione; treść jak na telefonie, tylko szerzej i większe zdjęcia */
  .mim-cmpf {
    display: flex; inset: 4vh 0 auto; margin: 0 auto; width: min(1040px, calc(100vw - 64px)); height: 92vh;
    box-shadow: 0 0 0 100vmax rgba(17, 17, 17, .45), 0 18px 48px rgba(17, 17, 17, .25);
  }
  .mim-cmpf__gora { padding: 16px 24px; font-size: 1.05rem; }
  .mim-cmpf__hd { gap: 32px; padding: 18px 24px; }
  .mim-cmpf__foto img { max-height: 260px; }
  .mim-cmpf__cena { font-size: 1rem; }
  .mim-cmpf__n { font-size: .9375rem; }
  .mim-cmpf__usun { font-size: .8125rem; }
  .mim-cmpf__usun:hover { color: var(--mim-ink); text-decoration: underline; }
  .mim-cmps__t { padding: 16px 24px; }
  .mim-cmpw { padding: 10px 24px; }
  .mim-cmpw:hover { box-shadow: inset 2px 0 0 var(--mim-green); }
  .mim-cmpw__e { font-size: .75rem; }
  .mim-cmpw__v { font-size: .9375rem; gap: 32px; }
  .mim-cmpk { gap: 32px; padding: 0 24px; }
  .mim-cmpk__c { font-size: .875rem; }

  /* panel „Udostępnij” z prawej */
  .mim-udost-tlo {
    position: fixed; inset: 0; z-index: 100070; background: rgba(17, 17, 17, .4);
    opacity: 0; visibility: hidden; transition: opacity .2s ease, visibility .2s;
  }
  .mim-udost-tlo.is-open { opacity: 1; visibility: visible; }
  .mim-udost {
    position: fixed; top: 0; right: 0; bottom: 0; z-index: 100071; width: 360px; max-width: 92vw; box-sizing: border-box;
    display: flex; flex-direction: column; gap: 14px; padding: 0 0 24px; overflow-y: auto;
    background: #fff; color: var(--mim-ink); font-family: var(--mim-font);
    box-shadow: -12px 0 32px rgba(17, 17, 17, .18); transform: translateX(100%); transition: transform .24s ease;
  }
  .mim-udost.is-open { transform: none; }
  .mim-udost__gora {
    display: flex; align-items: center; justify-content: space-between; padding: 16px 24px;
    border-bottom: 1px solid var(--mim-line); font-weight: 700;
  }
  .mim-udost__x { appearance: none; border: 0; background: none; cursor: pointer; font-size: 1.15rem; line-height: 1; padding: 6px 8px; color: var(--mim-ink); }
  .mim-udost__co { margin: 0; padding: 0 24px; font-size: .875rem; line-height: 1.4; color: var(--mim-muted); }
  .mim-udost__pole {
    margin: 0 24px; padding: .65rem .75rem; border: 1px solid var(--mim-line); border-radius: 0; background: var(--mim-wash);
    font: inherit; font-size: .8125rem; color: var(--mim-muted); min-width: 0;
  }
  .mim-udost__lista { display: flex; flex-direction: column; border-top: 1px solid var(--mim-line); margin-top: 4px; }
  .mim-udost__o {
    appearance: none; background: none; border: 0; border-bottom: 1px solid var(--mim-line-2); border-radius: 0; margin: 0;
    display: flex; align-items: center; gap: 14px; min-height: 52px; padding: 0 24px; cursor: pointer; text-align: left;
    font: inherit; font-size: .9375rem; color: var(--mim-ink); text-decoration: none !important;
  }
  .mim-udost__o svg { color: var(--mim-muted); flex: none; }
  .mim-udost__o:hover, .mim-udost__o:focus-visible { background: var(--mim-wash); box-shadow: inset 2px 0 0 var(--mim-green); outline: none; }
  .mim-udost__o:hover svg { color: var(--mim-ink); }
  .mim-udost__o.is-on span { color: var(--mim-green-dk); font-weight: 600; }
}
/* podpowiedź „dodaj drugi mebel” (porównywarka z mniej niż dwoma meblami) */
.mim-podpowiedz {
  position: fixed; left: 50%; bottom: 32px; transform: translateX(-50%); z-index: 100080; max-width: calc(100vw - 32px);
  padding: 12px 18px; background: var(--mim-ink); color: #fff; font: 500 .875rem/1.4 var(--mim-font);
  box-shadow: 0 8px 24px rgba(17, 17, 17, .25);
}
@media (prefers-reduced-motion: reduce) { .mim-udost, .mim-udost-tlo { transition: none; } }

/* ── 2026-10-13 (3): zielone ikony zamiast liczb + koszyk z boku ───────────────────────────────
   Właściciel: „przyciski mają zmieniać kolor na zielony, gdy są aktywne; zamiast liczby przy ikonach ma być
   zmiana koloru ikony na zielony, ma to dotyczyć również koszyka. Zrób możliwość, aby koszyk był cały czas
   wyświetlany…”. Stan list to klasy na <html> ustawiane przez nav.js: mim-ma-ulub, mim-ma-por, mim-ma-kosz. */

/* bez liczb: licznik koszyka WooCommerce, liczba porównania, kropka koszyka i liczby w Menu telefonu */
.mimeble-header .wc-block-mini-cart__badge,
.mimeble-compare-link i,
.mim-bn--koszyk .mim-bn__dot,
.mim-mrow__n { display: none !important; }

/* nagłówek: zielona ikona, gdy na liście / w koszyku coś jest (obwódka kółka bez zmian) */
html.mim-ma-ulub .mimeble-header .mimeble-wishlist-link a,
html.mim-ma-por .mimeble-header .mimeble-compare-link button,
html.mim-ma-kosz .mimeble-header .wc-block-mini-cart__button { color: var(--mim-green) !important; }

/* telefon: koszyk w dolnym pasku i wiersze Ulubione/Porównanie w Menu */
html.mim-ma-kosz .mim-bn--koszyk { color: var(--mim-green); }
.mim-mrow.is-on svg { color: var(--mim-green); }

/* rząd pod koszykiem: aktywny przycisk po prostu zielony (zamiast czarnego tekstu z kreską) */
@media (min-width: 782px) {
  .mim-akcja.is-on { color: var(--mim-green-dk); font-weight: 600; padding-left: 0; box-shadow: none; }
  .mim-akcja.is-on:hover { color: var(--mim-green-dk); }
}

/* koszyk z boku (od 1024 px): strona robi miejsce, panel stoi przy prawej krawędzi */
.mim-kosz { display: none; }
@media (min-width: 1024px) {
  /* !important: skrypty (blokada przewijania szuflady WooCommerce / banera zgód) wpisują body style="padding-right:0" */
  html.mim-kosz-otw body { padding-right: 380px !important; }
}
/* 13.10.2026 (7): wygląd panelu od 782 px – na 782–1023 px to nakładka nad stroną (.mim-kosz--nakladka) */
@media (min-width: 782px) {
  .mim-kosz {
    position: fixed; top: 0; right: 0; bottom: 0; width: 380px; z-index: 99990; box-sizing: border-box;
    display: none; flex-direction: column; background: #fff; color: var(--mim-ink); font-family: var(--mim-font);
    border-left: 1px solid var(--mim-line); box-shadow: -8px 0 24px rgba(17, 17, 17, .06);
  }
  html.mim-kosz-otw .mim-kosz.is-open { display: flex; }
  .mim-kosz.is-pracuje .mim-kosz__lista { opacity: .55; pointer-events: none; }
  .mim-kosz__gora {
    flex: 0 0 auto; display: flex; align-items: center; justify-content: space-between;
    padding: 18px 22px; border-bottom: 1px solid var(--mim-line);
  }
  .mim-kosz__t { font-size: 1.05rem; font-weight: 700; }
  .mim-kosz__x { appearance: none; border: 0; background: none; cursor: pointer; font-size: 1.1rem; line-height: 1; padding: 6px 8px; color: var(--mim-ink); }
  .mim-kosz__x:focus-visible { outline: 2px solid var(--mim-green); outline-offset: 2px; }
  .mim-kosz__lista { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 4px 22px; transition: opacity .15s ease; }
  .mim-kosz__p {
    display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 14px; align-items: start;
    padding: 14px 0; border-bottom: 1px solid var(--mim-line-2);
  }
  .mim-kosz__foto { display: block; width: 72px; height: 72px; background: #fff; box-shadow: inset 0 0 0 1px var(--mim-line-2); }
  .mim-kosz__foto img { display: block; width: 100%; height: 100%; object-fit: contain; }
  .mim-kosz__opis { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
  .mim-kosz__n {
    color: var(--mim-ink); text-decoration: none; font-size: .875rem; line-height: 1.3;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
  }
  .mim-kosz__n:hover { text-decoration: underline; text-underline-offset: 3px; }
  .mim-kosz__cena { font-weight: 700; font-size: .875rem; font-variant-numeric: tabular-nums; }
  .mim-kosz__ile { display: flex; align-items: center; gap: 8px; margin-top: 2px; }
  .mim-kosz__ile button[data-ile] {
    appearance: none; width: 28px; height: 28px; padding: 0; border: 1px solid var(--mim-line); border-radius: 0;
    background: #fff; color: var(--mim-ink); cursor: pointer; font: inherit; font-size: 1rem; line-height: 1;
  }
  .mim-kosz__ile button[data-ile]:hover:not([disabled]) { border-color: var(--mim-ink); }
  .mim-kosz__ile button[disabled] { opacity: .35; cursor: default; }
  .mim-kosz__ile span { min-width: 18px; text-align: center; font-size: .875rem; font-variant-numeric: tabular-nums; }
  .mim-kosz__usun {
    appearance: none; margin-left: auto; padding: 0; border: 0; background: none; cursor: pointer;
    font: inherit; font-size: .75rem; color: var(--mim-muted); text-decoration: underline; text-underline-offset: 3px;
  }
  .mim-kosz__usun:hover { color: var(--mim-ink); }
  .mim-kosz__pusty { padding: 28px 0; }
  .mim-kosz__pusty p { margin: 0 0 6px; }
  .mim-kosz__drobny { margin: 0; font-size: .75rem; color: var(--mim-muted); }
  .mim-kosz__dol { flex: 0 0 auto; display: flex; flex-direction: column; gap: 10px; padding: 16px 22px 20px; border-top: 1px solid var(--mim-line); }
  .mim-kosz__dol:empty { display: none; }
  .mim-kosz__suma { display: flex; justify-content: space-between; align-items: baseline; font-size: .9375rem; }
  .mim-kosz__suma strong { font-size: 1.15rem; font-variant-numeric: tabular-nums; }
  .mim-kosz__kasa {
    display: block; text-align: center; padding: .95rem 1rem; border-radius: 6px; background: var(--mim-green); color: #fff !important;
    font-weight: 600; text-decoration: none !important; transition: background .15s ease;
  }
  .mim-kosz__kasa:hover { background: var(--mim-green-dk); }
  .mim-kosz__link { text-align: center; font-size: .875rem; color: var(--mim-ink); text-underline-offset: 3px; }
}
/* nagłówek przy zwężonej stronie (panel koszyka otwarty) i na węższych ekranach: logo i narzędzia mają tyle
   miejsca, ile potrzebują, szukajka bierze resztę – inaczej kolumna narzędzi (Planer + 4 kółka) wchodziła na szukajkę */
@media (min-width: 782px) and (max-width: 1279px) {
  .mimeble-header .mimeble-header__row.is-layout-flex { grid-template-columns: auto minmax(0, 1fr) auto; column-gap: 24px; }
}
@media (min-width: 1024px) {
  html.mim-kosz-otw .mimeble-header .mimeble-header__row.is-layout-flex { grid-template-columns: auto minmax(0, 1fr) auto; column-gap: 24px; }
}

/* ── 2026-10-13 (4): porównanie trzech mebli na komputerze ───────────────────────────────────
   Przy dwóch kolumnach meble stoją „twarzą w twarz” (lewa do lewej, prawa do prawej, 23.09). Przy trzech środkowa
   kolumna jest wyśrodkowana – nagłówek (cena, nazwa, „Usuń”) i wartości parametrów. */
.mim-cmpw__v > div:nth-child(2):not(:last-child),
.mim-cmpf__k:nth-child(2):not(:last-child),
.mim-cmpf__k:nth-child(2):not(:last-child) .mim-cmpf__usun { text-align: center; }

/* ── 2026-10-13 (5): „Pasuje do Twojego koszyka” ─────────────────────────────────────────────
   Właściciel: „w koszyku umieść propozycje produktów pasujące do tych z koszyka”. Dobór: inc/pion-propozycje.php
   (łączy się z meblem z koszyka → ta sama seria → to samo pomieszczenie w tym samym kolorze). Strona koszyka:
   rząd kafli pod tabelą i podsumowaniem; panel koszyka z boku (komputer): do czterech pod meblami. */
.mim-prop { clear: both; margin: 48px 0 8px; padding-top: 24px; border-top: 1px solid var(--mim-line); }
.mim-prop__t { font-family: var(--mim-font); font-size: 1.35rem; font-weight: 300; letter-spacing: -.015em; margin: 0 0 18px; }
.mim-prop__t::after { content: "."; color: var(--mim-green); }
.mim-prop__lista { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px 24px; }
.mim-prop__el { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.mim-prop__cena { margin-bottom: 6px; }   /* przycisk z margin-top:auto wyrównuje się do dołu kafla */
.mim-prop__foto { display: block; aspect-ratio: 1 / 1; background: #fff; }
.mim-prop__foto img { display: block; width: 100%; height: 100%; object-fit: contain; }
.mim-prop__powod { font-size: .6875rem; letter-spacing: .06em; text-transform: uppercase; color: var(--mim-faint); }
.woocommerce .mim-prop a.mim-prop__n {
  color: var(--mim-ink); text-decoration: none; font-size: .9375rem; line-height: 1.3;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.woocommerce .mim-prop a.mim-prop__n:hover { text-decoration: underline; text-underline-offset: 3px; }
.mim-prop__cena { font-weight: 700; font-variant-numeric: tabular-nums; }
.mim-prop__cena del { font-weight: 400; color: var(--mim-faint); margin-right: 6px; }
.mim-prop__cena ins { text-decoration: none; }
.woocommerce .mim-prop a.mim-prop__dodaj {
  align-self: flex-start; margin-top: auto; padding: .55rem 1rem; border: 1px solid var(--mim-line); border-radius: 6px;
  color: var(--mim-ink); background: #fff; font-size: .8125rem; font-weight: 600; text-decoration: none; transition: border-color .15s ease;
}
.woocommerce .mim-prop a.mim-prop__dodaj:hover { border-color: var(--mim-ink); }
@media (max-width: 1023px) and (min-width: 782px) { .mim-prop__lista { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 781px) {
  .mim-prop { margin-top: 32px; }
  .mim-prop__lista {
    grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 46%; gap: 14px;
    overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: 4px;
  }
  .mim-prop__lista::-webkit-scrollbar { display: none; }
  .mim-prop__el { scroll-snap-align: start; }
}

/* panel koszyka z boku: propozycje pod meblami */
@media (min-width: 782px) {
  .mim-kosz__prop:empty { display: none; }
  .mim-kosz__prop { margin-top: 18px; padding-top: 4px; }
  .mim-kosz__prop-t { margin: 0 0 2px; font-size: .6875rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--mim-muted); }
  .mim-kosz__pp {
    display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 12px; align-items: start;
    padding: 12px 0; border-bottom: 1px solid var(--mim-line-2);
  }
  .mim-kosz__pp .mim-kosz__foto { width: 56px; height: 56px; }
  .mim-kosz__powod { font-size: .625rem; letter-spacing: .06em; text-transform: uppercase; color: var(--mim-faint); }
  .mim-kosz__pp .mim-kosz__n { font-size: .8125rem; }
  .mim-kosz__pp .mim-kosz__cena { font-size: .8125rem; }
  .mim-kosz__dodaj {
    appearance: none; align-self: flex-start; margin-top: 2px; padding: .35rem .7rem; border: 1px solid var(--mim-line); border-radius: 6px;
    background: #fff; color: var(--mim-ink); cursor: pointer; font: inherit; font-size: .75rem; font-weight: 600;
  }
  .mim-kosz__dodaj:hover { border-color: var(--mim-ink); }
}

/* ── 2026-10-13 (6): propozycje w koszyku na telefonie ──────────────────────────────────────
   Właściciel: „popraw sugestie w wersji mobilnej”. Zamiast karuzeli dużych kafli (widać było dwa, trzeci ledwo
   wystawał) – zwarta lista jak w panelu koszyka na komputerze: małe zdjęcie, podpis, nazwa, cena, „+ Dodaj”
   z prawej. Cztery na wierzchu, reszta pod „Pokaż więcej propozycji”. */
.mim-prop__dodaj-k, .mim-prop__wiecej { display: none; }
@media (max-width: 781px) {
  .mim-prop { margin-top: 28px; padding-top: 20px; }
  .mim-prop__t { font-size: 1.2rem; margin-bottom: 4px; }
  .mim-prop__lista {
    display: flex; flex-direction: column; gap: 0; overflow: visible; scroll-snap-type: none;
    grid-auto-flow: initial; grid-auto-columns: initial; padding: 0;
  }
  .mim-prop__el {
    display: grid; grid-template-columns: 76px minmax(0, 1fr) auto; grid-template-rows: min-content min-content min-content;
    align-content: center; min-height: 0; height: auto;
    column-gap: 14px; row-gap: 2px; align-items: start; padding: 12px 0; border-bottom: 1px solid var(--mim-line-2);
  }
  .mim-prop__foto { grid-column: 1; grid-row: 1 / span 3; width: 76px; height: 76px; aspect-ratio: auto; box-shadow: inset 0 0 0 1px var(--mim-line-2); }
  .mim-prop__powod { grid-column: 2; grid-row: 1; font-size: .625rem; }
  .woocommerce .mim-prop a.mim-prop__n { grid-column: 2; grid-row: 2; font-size: .875rem; }
  .mim-prop__cena { grid-column: 2; grid-row: 3; margin: 2px 0 0; font-size: .875rem; }
  .woocommerce .mim-prop a.mim-prop__dodaj {
    grid-column: 3; grid-row: 1 / span 3; align-self: center; margin: 0; padding: .55rem .8rem; white-space: nowrap;
  }
  .mim-prop__dodaj-d { display: none; }
  .mim-prop__dodaj-k { display: inline; }
  .mim-prop__el:nth-child(n+5) { display: none; }
  .mim-prop.is-wiecej .mim-prop__el:nth-child(n+5) { display: grid; }
  .mim-prop__wiecej {
    display: block; width: 100%; margin: 12px 0 0; padding: .8rem 1rem; appearance: none; cursor: pointer;
    border: 1px solid var(--mim-line); border-radius: 6px; background: #fff; color: var(--mim-ink);
    font: inherit; font-size: .875rem; font-weight: 600;
  }
}

/* ── 2026-10-13 (7): panel koszyka jako nakładka (782–1023 px) i arkusz od dołu (telefon) ──────────
   Właściciel: „dodaj też propozycje w panelu koszyka” (wysuwany koszyk na węższym ekranie i telefon). Ten sam panel
   co przypięty od 1024 px (nav.js), z tymi samymi propozycjami; tutaj nad stroną, na przyciemnionym tle. */
.mim-kosz-tlo {
  position: fixed; inset: 0; z-index: 100072; background: rgba(17, 17, 17, .4);
  opacity: 0; visibility: hidden; transition: opacity .2s ease, visibility .2s;
}
.mim-kosz-tlo.is-open { opacity: 1; visibility: visible; }
.mim-kosz.mim-kosz--nakladka.is-open, .mim-kosz.mim-kosz--arkusz.is-open { display: flex; z-index: 100073; }
@media (min-width: 782px) {
  .mim-kosz.mim-kosz--nakladka { max-width: 92vw; box-shadow: -12px 0 32px rgba(17, 17, 17, .18); }
}
@media (max-width: 781px) {
  .mim-kosz.mim-kosz--arkusz {
    position: fixed; left: 0; right: 0; bottom: 0; top: auto; max-height: 88vh; width: auto; box-sizing: border-box;
    flex-direction: column; background: #fff; color: var(--mim-ink); font-family: var(--mim-font);
    border-top: 1px solid var(--mim-line); box-shadow: 0 -12px 32px rgba(17, 17, 17, .18);
    padding-bottom: env(safe-area-inset-bottom); animation: mim-wsuw .22s ease;
  }
  .mim-kosz--arkusz .mim-kosz__gora { flex: 0 0 auto; display: flex; align-items: center; justify-content: space-between; padding: 14px 16px; border-bottom: 1px solid var(--mim-line); }
  .mim-kosz--arkusz .mim-kosz__t { font-size: 1rem; font-weight: 700; }
  .mim-kosz--arkusz .mim-kosz__x { appearance: none; border: 0; background: none; font-size: 1.1rem; padding: 6px 8px; color: var(--mim-ink); }
  .mim-kosz--arkusz .mim-kosz__lista { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 0 16px; }
  .mim-kosz--arkusz .mim-kosz__p, .mim-kosz--arkusz .mim-kosz__pp {
    display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 12px; align-items: start; padding: 12px 0; border-bottom: 1px solid var(--mim-line-2);
  }
  .mim-kosz--arkusz .mim-kosz__foto { display: block; width: 64px; height: 64px; box-shadow: inset 0 0 0 1px var(--mim-line-2); }
  .mim-kosz--arkusz .mim-kosz__pp .mim-kosz__foto { width: 56px; height: 56px; }
  .mim-kosz--arkusz .mim-kosz__foto img { display: block; width: 100%; height: 100%; object-fit: contain; }
  .mim-kosz--arkusz .mim-kosz__opis { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
  .mim-kosz--arkusz .mim-kosz__n { color: var(--mim-ink); text-decoration: none; font-size: .875rem; line-height: 1.3;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  .mim-kosz--arkusz .mim-kosz__cena { font-weight: 700; font-size: .875rem; }
  .mim-kosz--arkusz .mim-kosz__ile { display: flex; align-items: center; gap: 10px; margin-top: 2px; }
  .mim-kosz--arkusz .mim-kosz__ile button[data-ile] { width: 34px; height: 34px; border: 1px solid var(--mim-line); background: #fff; color: var(--mim-ink); font-size: 1.05rem; }
  .mim-kosz--arkusz .mim-kosz__ile button[disabled] { opacity: .35; }
  .mim-kosz--arkusz .mim-kosz__usun { margin-left: auto; border: 0; background: none; font: inherit; font-size: .75rem; color: var(--mim-muted); text-decoration: underline; }
  .mim-kosz--arkusz .mim-kosz__prop { margin-top: 14px; }
  .mim-kosz--arkusz .mim-kosz__prop:empty { display: none; }
  .mim-kosz--arkusz .mim-kosz__prop-t { margin: 0; font-size: .6875rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--mim-muted); }
  .mim-kosz--arkusz .mim-kosz__powod { font-size: .625rem; letter-spacing: .06em; text-transform: uppercase; color: var(--mim-faint); }
  .mim-kosz--arkusz .mim-kosz__dodaj { align-self: flex-start; margin-top: 2px; padding: .45rem .8rem; border: 1px solid var(--mim-line); border-radius: 6px; background: #fff; color: var(--mim-ink); font: inherit; font-size: .8125rem; font-weight: 600; }
  .mim-kosz--arkusz .mim-kosz__pusty { padding: 20px 0; }
  .mim-kosz--arkusz .mim-kosz__pusty p { margin: 0 0 6px; }
  .mim-kosz--arkusz .mim-kosz__drobny { margin: 0; font-size: .75rem; color: var(--mim-muted); }
  .mim-kosz--arkusz .mim-kosz__dol { flex: 0 0 auto; display: flex; flex-direction: column; gap: 8px; padding: 12px 16px 14px; border-top: 1px solid var(--mim-line); }
  .mim-kosz--arkusz .mim-kosz__dol:empty { display: none; }
  .mim-kosz--arkusz .mim-kosz__suma { display: flex; justify-content: space-between; align-items: baseline; }
  .mim-kosz--arkusz .mim-kosz__suma strong { font-size: 1.1rem; }
  .mim-kosz--arkusz .mim-kosz__kasa { display: block; text-align: center; padding: .9rem 1rem; border-radius: 6px; background: var(--mim-green); color: #fff !important; font-weight: 600; text-decoration: none !important; }
  .mim-kosz--arkusz .mim-kosz__link { text-align: center; font-size: .875rem; color: var(--mim-ink); }
  .mim-kosz--arkusz.is-pracuje .mim-kosz__lista { opacity: .55; pointer-events: none; }
}
@media (prefers-reduced-motion: reduce) { .mim-kosz.mim-kosz--arkusz { animation: none; } .mim-kosz-tlo { transition: none; } }

/* ── 2026-10-13 (8): propozycje jako miniatury, wyraźnie oddzielone od koszyka ────────────────────────
   Właściciel: „propozycje produktów wyraźnie oddzielone od produktów dodanych do koszyka… mniejsze albo same
   miniatury”. W panelu koszyka (bok / nakładka / arkusz) i na stronie koszyka: szary pas (#F7F7F5) z małym
   nagłówkiem, rząd kwadratowych miniatur na białym, pod nimi cena, „+” w kółku na rogu zdjęcia (zielone po
   najechaniu). Nazwa w podpowiedzi i dla czytników ekranu – bez wierszy podobnych do pozycji koszyka. */
.mim-kosz .mim-kosz__prop { margin: 18px -22px 0; padding: 14px 22px 16px; background: #f7f7f5; border-top: 1px solid var(--mim-line); }
.mim-kosz.mim-kosz--arkusz .mim-kosz__prop { margin: 14px -16px 0; padding: 12px 16px 14px; }
.mim-kosz .mim-kosz__prop:empty { display: none; }
.mim-kosz .mim-kosz__prop-t { margin: 0 0 10px; }
.mim-kosz__pts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.mim-kosz__pt { position: relative; display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.mim-kosz__ptf { display: block; aspect-ratio: 1 / 1; background: #fff; box-shadow: inset 0 0 0 1px var(--mim-line-2); }
.mim-kosz__ptf img { display: block; width: 100%; height: 100%; object-fit: contain; padding: 4px; box-sizing: border-box; }
.mim-kosz__ptc { font-size: .75rem; font-weight: 700; color: var(--mim-ink); font-variant-numeric: tabular-nums; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mim-kosz__ptd {
  position: absolute; top: 4px; right: 4px; width: 26px; height: 26px; padding: 0; border: 1px solid var(--mim-line); border-radius: 50%;
  background: #fff; color: var(--mim-ink); font: 500 1.05rem/1 var(--mim-font); cursor: pointer; display: flex; align-items: center; justify-content: center;
  box-shadow: 0 1px 3px rgba(17, 17, 17, .08); transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.mim-kosz__ptd:hover, .mim-kosz__ptd:focus-visible { background: var(--mim-green); border-color: var(--mim-green); color: #fff; outline: none; }

.mim-propm { clear: both; margin: 40px 0 8px; padding: 18px 20px 20px; background: #f7f7f5; border-top: 1px solid var(--mim-line); }
.mim-propm__t {
  margin: 0 0 14px; font-family: var(--mim-font); font-size: .75rem !important; font-weight: 700 !important; letter-spacing: .08em;
  text-transform: uppercase; color: var(--mim-muted);
}
.mim-propm__lista { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 14px; }
.mim-propm__el { position: relative; display: flex; flex-direction: column; gap: 6px; min-width: 0; margin: 0; }
.woocommerce .mim-propm a { text-decoration: none; }
.mim-propm__foto { display: block; aspect-ratio: 1 / 1; background: #fff; box-shadow: inset 0 0 0 1px var(--mim-line-2); }
.mim-propm__foto img { display: block; width: 100%; height: 100%; object-fit: contain; padding: 6px; box-sizing: border-box; }
.mim-propm__cena { font-size: .8125rem; font-weight: 700; color: var(--mim-ink); font-variant-numeric: tabular-nums; }
.mim-propm__cena del { font-weight: 400; color: var(--mim-faint); margin-right: 4px; }
.mim-propm__cena ins { text-decoration: none; }
.woocommerce .mim-propm a.mim-propm__dodaj {
  position: absolute; top: 6px; right: 6px; width: 30px; height: 30px; border: 1px solid var(--mim-line); border-radius: 50%;
  background: #fff; color: var(--mim-ink); font: 500 1.15rem/1 var(--mim-font); display: flex; align-items: center; justify-content: center;
  box-shadow: 0 1px 3px rgba(17, 17, 17, .08); transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.woocommerce .mim-propm a.mim-propm__dodaj:hover, .woocommerce .mim-propm a.mim-propm__dodaj:focus-visible {
  background: var(--mim-green); border-color: var(--mim-green); color: #fff; outline: none;
}
@media (max-width: 1023px) { .mim-propm__lista { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 781px) {
  .mim-propm { margin: 28px 0 8px; padding: 14px 14px 16px; }
  .mim-propm__t { margin-bottom: 10px; }
  .mim-propm__lista { gap: 10px; }
  .mim-propm__cena { font-size: .75rem; }
  .mim-propm__cena del { display: none; }
  .woocommerce .mim-propm a.mim-propm__dodaj { top: 4px; right: 4px; width: 28px; height: 28px; }
}

/* ── 2026-10-13 (9): strona główna – przełącznik Polecane / Nowości / Promocje / Losowe i „Pokaż więcej” ─────────
   Komputer: rząd przycisków nad listą (aktywny: czarna ramka + zielona kreska z lewej – znak stanu Pionu),
   pod listą „Pokaż więcej mebli”. Telefon: pigułka „Polecane ▾” w lewym górnym rogu kanału (tam nie ma
   przycisków slajdu), lista trybów rozwija się pod nią; dalsze meble dociągają się same. */
.mim-gl-dalej[hidden], .mim-gl-wiecej-w[hidden] { display: none !important; }
.mim-gl-tryby { position: relative; }
.mim-gl-tryby__tgl { display: none; }
/* 13.10.2026 (właściciel: „zmień trochę wizualnie, aby pasowało do strony. Dodaj tylko zieloną kreskę bez
   zaokrągleń”): bez ramek, teł i zaokrągleń – jak menu kategorii w nagłówku; wybrany tryb ma tylko zieloną
   pionową kreskę 2 px z lewej (znak stanu Pionu) i czarny, pogrubiony napis */
.mim-gl-tryby__lista { display: flex; flex-wrap: wrap; gap: 4px 18px; margin: 0 0 22px; }
.mim-gl-tryb {
  appearance: none; padding: .3rem 0 .3rem 0; border: 0; border-radius: 0; background: none;
  color: var(--mim-muted); font: inherit; font-family: var(--mim-font); font-size: .9375rem; font-weight: 500; cursor: pointer;
  transition: color .15s ease;
}
.mim-gl-tryb:hover { color: var(--mim-ink); }
.mim-gl-tryb:focus-visible { outline: 2px solid var(--mim-green); outline-offset: 2px; }
.mim-gl-tryb.is-on { color: var(--mim-ink); font-weight: 700; padding-left: 10px; box-shadow: inset 2px 0 0 var(--mim-green); }
.mim-polecane.is-laduje ul.products { opacity: .45; transition: opacity .15s ease; }
.mim-gl-wiecej-w { margin: 32px 0 8px; text-align: center; }
.mim-gl-wiecej {
  appearance: none; padding: .85rem 1.6rem; border: 1px solid var(--mim-ink); border-radius: 6px; background: #fff; color: var(--mim-ink);
  font: inherit; font-family: var(--mim-font); font-size: .9375rem; font-weight: 600; cursor: pointer; transition: background .15s ease, color .15s ease;
}
.mim-gl-wiecej:hover { background: var(--mim-ink); color: #fff; }
.mim-gl-wiecej[disabled] { opacity: .6; cursor: default; }
@media (max-width: 781px) {
  .mim-gl-wiecej-w { display: none !important; }      /* telefon dociąga sam przy przewijaniu */
  .mim-gl-tryby { position: fixed; top: calc(var(--mim-hdr, 82px) + 12px); left: 12px; z-index: 99970; }
  .mim-gl-tryby__tgl {
    display: inline-flex; align-items: center; gap: 8px; height: 34px; padding: 0 12px 0 10px; border: 0; border-radius: 0;
    background: rgba(255, 255, 255, .94); color: var(--mim-ink); font: 700 .8125rem/1 var(--mim-font);
    box-shadow: inset 2px 0 0 var(--mim-green), 0 1px 6px rgba(17, 17, 17, .08); cursor: pointer;
  }
  .mim-gl-tryby__lista {
    display: none; position: absolute; top: 40px; left: 0; min-width: 170px; margin: 0; padding: 6px 0; flex-direction: column; gap: 0;
    background: #fff; border: 1px solid var(--mim-line); border-radius: 0; box-shadow: 0 10px 28px rgba(17, 17, 17, .12);
  }
  .mim-gl-tryby.is-open .mim-gl-tryby__lista { display: flex; }
  .mim-gl-tryb { padding: .7rem 1rem; text-align: left; font-size: .9375rem; }
  .mim-gl-tryb.is-on { padding-left: 1rem; }
  body.mim-sheet-open .mim-gl-tryby, html.mim-kosz-otw .mim-gl-tryby, html.mk-asy-otw .mim-gl-tryby { visibility: hidden; }
}

/* ── 2026-10-13 (10): same ikony zamiast kółek; kolor = stan, kreska = „tu jesteś” ─────────────────────
   Właściciel (po podglądzie kwadratów): „tam gdzie się da zamiast kwadratu dać same ikony (chyba że będą niewidoczne
   na zdjęciu); jeśli coś jest dodane do koszyka, porównywarki czy ulubionych, to zmienia się tylko kolor, a jak jest
   aktywna dana strona, to wtedy przy ikonie pokazuje się kreska”.
   1) Nagłówek: Planer, konto, ulubione, porównanie, koszyk – bez ramki, tła i zaokrągleń (pole klikalne zostaje).
   2) Przyciski NA ZDJĘCIACH zostają z białym tłem (inaczej giną na zdjęciu), ale kwadratowe.
   3) Stan list (ulubione/porównanie/koszyk) = tylko zielona ikona; kreska tylko przy stronie, na której klient jest
      (klasy body `mim-tu-*` z inc/pion-mobile.php; przy otwartym panelu koszyka z boku – koszyk). */
.mimeble-header .mimeble-planer-link a,
.mimeble-header .mimeble-wishlist-link a,
.mimeble-header .wp-block-woocommerce-customer-account a,
.mimeble-header .wc-block-mini-cart__button,
.mimeble-header .mimeble-compare-link button {
  border-color: transparent !important; background: transparent !important; border-radius: 0 !important;
  box-shadow: none !important; position: relative;
}
.mimeble-header .mimeble-planer-link a:hover,
.mimeble-header .mimeble-wishlist-link a:hover,
.mimeble-header .wp-block-woocommerce-customer-account a:hover,
.mimeble-header .wc-block-mini-cart__button:hover,
.mimeble-header .mimeble-compare-link button:hover { color: var(--mim-green-dk) !important; }
@media (min-width: 782px) {
  .mimeble-header .mimeble-planer-link a { padding: 0 8px 0 14px; }
  .mimeble-header .mimeble-header__tools.is-layout-flex { gap: 4px; }
}
@media (max-width: 781px) {
  .mimeble-header .mimeble-planer-link a { padding: 0 6px 0 12px; }
}
/* „tu jesteś”: zielona kreska 2 px przy ikonie – ten sam znak co aktywna kategoria w menu */
body.mim-tu-planer .mimeble-header .mimeble-planer-link a::before,
body.mim-tu-konto .mimeble-header .wp-block-woocommerce-customer-account a::before,
body.mim-tu-ulubione .mimeble-header .mimeble-wishlist-link a::before,
body.mim-tu-koszyk .mimeble-header .wc-block-mini-cart__button::before,
html.mim-kosz-otw .mimeble-header .wc-block-mini-cart__button::before {
  content: ""; position: absolute; left: 3px; top: 50%; width: 2px; height: 20px; margin-top: -10px; background: var(--mim-green);
}
body.mim-tu-konto .mim-bn[href*="moje-konto"]::before {
  content: ""; position: absolute; left: 6px; top: 10px; bottom: 10px; width: 2px; background: var(--mim-green);
}

/* na zdjęciach: kwadratowe, stan tylko kolorem */
.mim-slajd__serce, .mim-slajd__udostepnij, .mim-slajd__cmp, .mim-fbtn2, .mim-gal__pow, .mim-gal__strz,
.mim-foto-pelny__x, .mim-foto-pelny button, .mim-kosz__ptd, .woocommerce .mim-propm a.mim-propm__dodaj {
  border-radius: 0 !important;
}
.mim-fbtn2.is-on { box-shadow: none !important; color: var(--mim-green) !important; }
body .mk-asy-fab.mk-asy-tab { border-radius: 0; }

/* ── 2026-10-13 (11): jak najmniej zaokrągleń; zaznaczenie = pionowa zielona kreska ────────────────────────
   Właściciel: „pole wyszukiwania i ikony w planerze też zrób kwadratowe. Ogólnie jak najmniej ma być zaokrągleń.
   W planerze też jak coś jest wybrane, to kreska ma być pionowa, a nie pozioma”.
   1) Zaokrąglenia zdjęte WSZĘDZIE (sklep, planer, czat, baner zgód, przyciski, pola, karty, arkusze) jedną regułą;
      okrągłe zostają tylko kropki-wskaźniki (stan „Dostępny”, kropki zdjęć, kropka koszyka, pisanie w czacie)
      i pola typu radio – to znaki, nie przyciski.
   2) Zaznaczenie: zamiast kreski u dołu – pionowa zielona kreska 2 px przy napisie (zakładki planera, zakładki
      karty produktu, bieżąca strona paginacji, wybrane opcje i kształty w planerze). Podkreślenie po najechaniu
      zostaje – w Pionie podkreślenie znaczy „link”. */
html body *, html body *::before, html body *::after { border-radius: 0 !important; }
html body .mim-sl__in::-webkit-slider-thumb { border-radius: 0 !important; }
html body .mim-sl__in::-moz-range-thumb { border-radius: 0 !important; }
html body :is(.mimeble-stock, .stock, .mk-asy-h small)::before,
html body :is(.mim-bn__dot, .mim-kropki i, .mim-kropka, .mim-foto-pelny__kropki span, .mim-k-kropka, .mk-asy-typing span,
              .mim-rail__check.is-radio, input[type="radio"]),
html body label.mim-rail__opt.is-active .mim-rail__check.is-radio::after { border-radius: 50% !important; }

/* zaznaczenie w sklepie */
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { box-shadow: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a::before,
html body #mimeble-planer .steps button.on::before,
html body #mimeble-planer .pk-s.on::before {
  content: ""; display: inline-block; width: 2px; height: 1em; margin-right: 8px; vertical-align: -.12em; background: var(--mim-green, #72bb53);
}
.woocommerce nav.woocommerce-pagination ul li span.current { box-shadow: inset 2px 0 0 var(--mim-green); }
.mimeble-nav__menu .current-menu-item > .wp-block-navigation-item__content,
.mimeble-nav__menu .current-menu-ancestor > .wp-block-navigation-item__content { box-shadow: inset 2px 0 0 var(--mim-green); padding-left: 10px; }
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active { box-shadow: inset 2px 0 0 var(--mim-green); }

/* planer: zakładki (Kształt · Obiekty · Meble, telefon) i wybrane opcje – pionowa kreska zamiast dolnej */
html body #mimeble-planer .steps button.on,
html body #mimeble-planer .steps.tabs button.on,
html body #mimeble-planer .pk-s.on { box-shadow: none !important; }
html body #mimeble-planer .opt.on,
html body #mimeble-planer .shape.on { box-shadow: inset 2px 0 0 var(--green, #72bb53) !important; }
/* reguły z własnym !important i wyższym priorytetem: lupa w wyszukiwarce i duży przycisk na telefonie */
html body .mimeble-header .mimeble-search .wp-block-search__button,
html body .mimeble-search .wp-block-search__button,
html body .mimeble-header .mimeble-search .wp-block-search__inside-wrapper { border-radius: 0 !important; }
html body .woocommerce div.product form.cart .button,
html body .woocommerce div.product .mimeble-notify { border-radius: 0 !important; }

/* ── 2026-10-14: kasa w układzie jeszczesieprzyda.pl (karty + przyklejone podsumowanie; skład w nav.js) ──────────
   Komputer: z lewej karty „Dane i adres dostawy”, „Informacje dodatkowe”, „Płatność” (metody, zgoda, „Kupuję i płacę”),
   z prawej przyklejone „Podsumowanie zamówienia”. Telefon: karty jedna pod drugą – dane, uwagi, podsumowanie, płatność.
   Metody płatności jak w JSP: wiersze bez kółek radio; wybrana – w języku mimeble: zielona pionowa kreska, tło
   pomocnicze i pogrubiona nazwa (zasady: skill mimeble-styl-ui). */
form.mim-kasa #customer_details[hidden] { display: none !important; }
.mim-kasa__karta { background: #fff; border: 1px solid var(--mim-line); padding: 22px 24px; margin: 0 0 18px; box-sizing: border-box; }
form.mim-kasa .mim-kasa__karta.col-1, form.mim-kasa .mim-kasa__karta.col-2 { float: none; width: auto; max-width: none; }
.mim-kasa__tytul, form.mim-kasa #order_review_heading {
  font-family: var(--mim-font); font-size: clamp(1.2rem, 1.8vw, 1.4rem) !important; font-weight: 300; letter-spacing: -.015em; margin: 0 0 1rem;
}
.mim-kasa__tytul::after { content: "."; color: var(--mim-green); }
form.mim-kasa .mim-kasa__podsum table.shop_table { border: 0 !important; margin: 0; }
form.mim-kasa .mim-kasa__podsum table.shop_table th, form.mim-kasa .mim-kasa__podsum table.shop_table td { padding-left: 0; padding-right: 0; }
form.mim-kasa .mim-kasa__uwagi .woocommerce-additional-fields > h3 { margin-top: 0; }
form.mim-kasa .mim-kasa__platnosc #order_review { margin: 0; }

/* metody płatności */
form.mim-kasa #payment { background: none !important; border: 0 !important; }
form.mim-kasa #payment ul.payment_methods { margin: 0 !important; padding: 0 !important; border: 0 !important; }
form.mim-kasa #payment ul.payment_methods li.wc_payment_method {
  position: relative; list-style: none; margin: 0; padding: 14px 16px 14px 18px; border: 1px solid var(--mim-line); border-top-width: 0;
  cursor: pointer; line-height: 1.4;
}
form.mim-kasa #payment ul.payment_methods li.wc_payment_method:first-child { border-top-width: 1px; }
form.mim-kasa #payment li.wc_payment_method > input.input-radio {
  position: absolute; left: 0; top: 0; width: 1px; height: 1px; margin: 0; opacity: 0;
}
form.mim-kasa #payment li.wc_payment_method > label { cursor: pointer; font-weight: 500; color: var(--mim-ink); }
form.mim-kasa #payment li.wc_payment_method > label img { max-height: 22px; width: auto; vertical-align: middle; margin-left: 6px; }
form.mim-kasa #payment li.wc_payment_method:has(> input:checked) { background: var(--mim-wash); box-shadow: inset 2px 0 0 var(--mim-green); }
form.mim-kasa #payment li.wc_payment_method:has(> input:checked) > label { font-weight: 700; }
form.mim-kasa #payment li.wc_payment_method:has(> input:focus-visible) { outline: 2px solid var(--mim-green); outline-offset: -2px; }
form.mim-kasa #payment div.payment_box {
  background: none !important; margin: 8px 0 0 !important; padding: 0 !important; font-size: .8125rem; color: var(--mim-muted) !important;
}
form.mim-kasa #payment div.payment_box::before { display: none !important; }
form.mim-kasa #payment .form-row.place-order { padding: 1.2rem 0 0 !important; margin: 0; }

/* układ (14.10, druga wersja): karty to bezpośrednie dzieci formularza – przyciski Stripe zostają w miejscu
   w DOM, a do karty „Płatność” przestawia je `order` (nav.js, blok „Kasa w układzie jeszczesieprzyda.pl”) */
form.mim-kasa .mim-kasa__dane { order: 1; }
form.mim-kasa .mim-kasa__uwagi { order: 2; }
form.mim-kasa .mim-kasa__plat-gora { order: 4; }
form.mim-kasa > #wc-stripe-express-checkout-element { order: 5; }
form.mim-kasa .mim-kasa__platnosc { order: 6; }
form.mim-kasa .mim-kasa__plat-gora {
  background: #fff; border: 1px solid var(--mim-line); border-bottom: 0; padding: 22px 24px 0; margin: 0; box-sizing: border-box;
}
form.mim-kasa > #wc-stripe-express-checkout-element {
  background: #fff; border-left: 1px solid var(--mim-line); border-right: 1px solid var(--mim-line); padding: 0 24px 14px; margin: 0; box-sizing: border-box;
}
form.mim-kasa .mim-kasa__platnosc { border-top: 0; padding-top: 0; }
form.mim-kasa .mim-kasa__plat-gora.bez-ekspres .mim-kasa__ekspres-t { display: none; }
@media (min-width: 782px) {
  form.mim-kasa { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 380px); column-gap: 40px; align-items: start; }
  form.mim-kasa > * { grid-column: 1; }
  form.mim-kasa > .mim-kasa__prawa { grid-column: 2; grid-row: 1 / span 20; align-self: start; position: sticky; top: 24px; order: 3; }
}
@media (max-width: 781px) {
  form.mim-kasa { display: flex; flex-direction: column; }
  form.mim-kasa > .mim-kasa__prawa { order: 3; }
  .mim-kasa__karta { padding: 18px 16px; }
  form.mim-kasa .mim-kasa__plat-gora { padding: 18px 16px 0; }
  form.mim-kasa > #wc-stripe-express-checkout-element { padding: 0 16px 12px; }
  form.mim-kasa .mim-kasa__platnosc { padding-top: 0; }
}

/* 14.10.2026: szybka płatność Stripe (Apple Pay / Google Pay / Link) w karcie „Płatność”, nad listą metod */
.mim-kasa__ekspres-t { margin: 0 0 8px; font-size: .6875rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--mim-muted); }
form.mim-kasa #wc-stripe-express-checkout-button-separator[hidden] { display: none !important; }
/* wtyczka Stripe nadaje kontenerowi przycisków własne odstępy/tło – boki karty i przylganie muszą wygrać */
form.mim-kasa > #wc-stripe-express-checkout-element {
  margin: 0 !important; background: #fff !important; box-sizing: border-box !important;
  border-left: 1px solid var(--mim-line) !important; border-right: 1px solid var(--mim-line) !important;
  padding: 0 24px 14px !important;
}
@media (max-width: 781px) { form.mim-kasa > #wc-stripe-express-checkout-element { padding: 0 16px 12px !important; } }
form.mim-kasa .mim-kasa__plat-gora .mim-kasa__ekspres-t { margin-bottom: 10px; }

/* ── 2026-10-14: płatności wyglądają jak w JSP ─────────────────────────────────────────────────────────────
   Właściciel (zrzut kasy jeszczesieprzyda.pl): Stripe to jedna pozycja „Stripe” z rzędem logotypów Visa, Mastercard,
   BLIK, Klarna (Optimized Checkout Element – karty, BLIK i Klarna są w środku po wyborze), „Za pobraniem” z ikonką.
   Logotypy to te same oryginalne pliki co w JSP (assets/pay/, skopiowane z motywu storefront-jsp). */
form.mim-kasa #payment li.payment_method_stripe > label::after {
  content: ""; display: block; margin-top: 7px; height: 22px; width: 190px; max-width: 100%;
  background-image: url("../pay/visa.svg"), url("../pay/mastercard.svg"), url("../pay/blik.svg"), url("../pay/klarna.svg");
  background-repeat: no-repeat; background-size: auto 22px, auto 22px, auto 22px, auto 22px;
  background-position: left center, 42px center, 84px center, 140px center;
}
form.mim-kasa #payment li.payment_method_stripe > label img { display: none; }
form.mim-kasa #payment li.payment_method_cod > label img.mim-ikona-pobranie { height: 20px; width: auto; margin-left: 8px; vertical-align: middle; }

