/* ==========================================================================
   IVK Nářadí – hlavní styly
   1. Tokeny        2. Základ        3. Layout        4. Tlačítka a formuláře
   5. Hlavička      6. Navigace      7. Domovská      8. Katalog
   9. Detail        10. Košík        11. Objednávka   12. Účet
   13. Služby       14. Patička      15. Responzivita
   16. Cookies (okno souhlasu – vlastní responzivita je přímo v sekci)
   (Sekce 17 – přechody mezi stránkami přes View Transitions – odstraněna
   20. 10. 2026: na telefonu stránku při načítání zploštila, jinde byla zbytečná.)
   ========================================================================== */

/* 1. TOKENY --------------------------------------------------------------- */
:root {
  --ivk-lime: #BBD02E;
  --ivk-lime-dark: #8a9800;
  --ivk-lime-darker: #6f7a00;
  --ivk-lime-light: #eef2cf;
  --ivk-lime-light-hover: #e6ecbc;
  --ivk-olive: #5c6330;
  --ivk-yellow: #FCD02F;
  --ivk-stock: #8bbd00;
  --ivk-stock-text: #6a9000;

  --ivk-ink: #1a1a1a;
  --ivk-ink-2: #4a4a4a;
  --ivk-muted: #787878;
  --ivk-muted-2: #8a8a8a;
  --ivk-faint: #a5a5a5;
  --ivk-line: #ededed;
  --ivk-line-2: #e2e2e2;
  --ivk-line-3: #f2f2f2;
  --ivk-quiet: #f7f8f0;
  --ivk-bg: #f7f7f5;
  --ivk-white: #fff;

  --ivk-radius: 10px;
  --ivk-radius-lg: 12px;
  --ivk-radius-sm: 6px;
  --ivk-shadow: 0 8px 22px rgba(0,0,0,.08);
  --ivk-shadow-lg: 0 12px 30px rgba(0,0,0,.10);

  /* Lato místo Barlow (20. 10. 2026) – úzký Barlow Semi Condensed byl v nadpisech
     špatně čitelný. Lato 2.0 hostované v šabloně, řezy 400–800 – viz fonts.css. */
  --ivk-font: "Lato", system-ui, -apple-system, "Segoe UI", sans-serif;
  --ivk-font-head: "Lato", system-ui, -apple-system, "Segoe UI", sans-serif;

  --ivk-max: 1360px;
  --ivk-gutter: 24px;
}

/* 2. ZÁKLAD --------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
/* Sloupec přes celou výšku okna: na krátké stránce (prázdný košík) se obsah
   roztáhne a patička zůstane dole, místo aby pod ní zbylo prázdné místo. */
body {
  display: flex; flex-direction: column;
  min-height: calc(100vh - var(--wp-admin--admin-bar--height, 0px));
  margin: 0;
  font-family: var(--ivk-font);
  font-size: 15px;
  color: var(--ivk-ink);
  background: var(--ivk-bg);
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; }
a { color: var(--ivk-ink); text-decoration: none; }
a:hover { color: var(--ivk-lime-dark); }
h1, h2, h3, h4, h5 { font-family: var(--ivk-font-head); font-weight: 800; margin: 0 0 .5em; line-height: 1.1; }
p { margin: 0 0 1em; line-height: 1.6; }
svg { flex-shrink: 0; }
:focus-visible { outline: 2px solid var(--ivk-lime-dark); outline-offset: 2px; }

.screen-reader-text {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.skip-link { position: absolute; left: -9999px; }
.skip-link:focus {
  left: 12px; top: 12px; z-index: 999; background: var(--ivk-white);
  padding: 10px 16px; border-radius: var(--ivk-radius-sm); box-shadow: var(--ivk-shadow);
}

/* 3. LAYOUT --------------------------------------------------------------- */
.ivk-container { max-width: var(--ivk-max); margin: 0 auto; padding: 0 var(--ivk-gutter); }
.ivk-main { flex: 1 0 auto; min-height: 40vh; }
.ivk-stack { display: flex; flex-direction: column; gap: 14px; }
.ivk-card {
  border: 1px solid var(--ivk-line); border-radius: var(--ivk-radius-lg);
  background: var(--ivk-white);
}
.ivk-card--pad { padding: 22px 24px; }
.ivk-card--flush { overflow: hidden; }
.ivk-card__head {
  padding: 16px 20px; border-bottom: 1px solid var(--ivk-line-3); background: #fafafa;
  font-size: 13px; font-weight: 800; letter-spacing: .3px; text-transform: uppercase;
}
.ivk-card__title {
  font-family: var(--ivk-font-head); font-size: 20px; font-weight: 800;
  display: block; margin-bottom: 16px;
}
.ivk-card__head-inline {
  font-size: 13px; font-weight: 800; letter-spacing: .3px; text-transform: uppercase;
  display: block; margin-bottom: 12px;
}
.ivk-panel { background: var(--ivk-lime-light); border-radius: var(--ivk-radius-lg); padding: 20px 22px; }
.ivk-panel__title {
  font-family: var(--ivk-font-head); font-size: 18px; font-weight: 800;
  display: block; margin-bottom: 7px;
}
.ivk-panel > .ivk-panel__title { font-size: 20px; }
.ivk-panel p { font-size: 13.5px; color: var(--ivk-olive); line-height: 1.6; margin: 0 0 14px; }
.ivk-panel a { color: var(--ivk-olive); font-weight: 700; }

.ivk-section-head {
  display: flex; justify-content: space-between; align-items: baseline;
  gap: 16px; flex-wrap: wrap; padding: 44px 0 0;
}
.ivk-section-head h2 { font-size: 28px; margin: 0; line-height: normal; }
.ivk-section-head__note { font-size: 14px; color: var(--ivk-muted-2); }
.ivk-link-more {
  color: var(--ivk-lime-dark); font-weight: 700; font-size: 14px;
  display: inline-flex; align-items: center; gap: 6px; white-space: nowrap;
}
.ivk-link-back {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  font-size: 13.5px; font-weight: 700; color: var(--ivk-lime-dark); padding: 14px 0 2px;
}

/* `.woocommerce .woocommerce-breadcrumb` (0,2,0) nastavuje padding:0 a vlastní
   margin, takže drobečky sedly natěsno pod navigaci. Návrh má 22px nahoře. */
.ivk-breadcrumb,
.woocommerce .woocommerce-breadcrumb,
.woocommerce-page .woocommerce-breadcrumb {
  padding: 22px 0; margin: 0; font-size: 13px; color: var(--ivk-muted-2);
  display: flex; gap: 8px; align-items: center; flex-wrap: wrap;
}
.ivk-breadcrumb a, .woocommerce-breadcrumb a { color: var(--ivk-muted-2); }
.ivk-breadcrumb a:hover, .woocommerce-breadcrumb a:hover { color: var(--ivk-lime-dark); }
.ivk-breadcrumb__current { color: var(--ivk-ink); font-weight: 600; }

.ivk-page-head {
  display: flex; align-items: center; justify-content: space-between;
  gap: 20px; flex-wrap: wrap; padding: 34px 0 6px;
}
/* Odsazení shora je pro stránky bez drobečků (košík, pokladna). Kde drobečky
   jsou, navazuje nadpis rovnou na ně – stejně jako v návrhu. */
.ivk-breadcrumb ~ .ivk-page-head,
.woocommerce-breadcrumb ~ .ivk-page-head { padding-top: 0; }
.ivk-page-head h1 { font-size: 34px; margin: 0 0 8px; line-height: 1.05; }
.ivk-page-head p { font-size: 15px; color: var(--ivk-muted); margin: 0; max-width: 70ch; }
.ivk-page-head__count { font-size: 14px; color: var(--ivk-muted-2); white-space: nowrap; }
.ivk-page-head__count b { color: var(--ivk-ink); }

/* Hlavička výpisu produktů na fotce přes celou šířku stránky (mimo kontejner).
   Fotka je vpravo, levá část je ztmavená, na ní bílý text a limetkový nadpis. */
.ivk-cat-head { position: relative; overflow: hidden; background: var(--ivk-ink); color: var(--ivk-white); }
/* Dvě třídy: `.woocommerce img { height: auto }` (0,1,1) by jinak fotku nechal
   v přirozené výšce a na telefonu by nepokryla celou hlavičku. */
.ivk-cat-head .ivk-cat-head__img {
  position: absolute; inset: 0; width: 100%; height: 100%; max-width: none;
  /* Na plné šířce se fotka ořízne nahoře a dole – výřez je pod středem,
     aby byl vidět spodek nářadí a ponk. */
  object-fit: cover; object-position: 70% 62%;
}
.ivk-cat-head::before {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(90deg,
    color-mix(in srgb, var(--ivk-ink) 92%, transparent) 0%,
    color-mix(in srgb, var(--ivk-ink) 82%, transparent) 35%,
    color-mix(in srgb, var(--ivk-ink) 40%, transparent) 58%,
    transparent 75%);
}
.ivk-cat-head .ivk-container { position: relative; z-index: 2; }
.ivk-cat-head__inner {
  max-width: 620px; min-height: 300px; padding: 4px 0 40px;
  display: flex; flex-direction: column; justify-content: center;
}
.ivk-cat-head .ivk-page-head { display: block; padding: 0; }
.ivk-cat-head .ivk-page-head h1 { color: var(--ivk-white); }
.ivk-cat-head .ivk-page-head h1 em { font-style: normal; color: var(--ivk-lime); }
.ivk-cat-head .ivk-page-head p { color: color-mix(in srgb, var(--ivk-white) 82%, transparent); }
/* Drobečky jsou jinde šedé na světlém – na tmavé fotce je zesvětlíme. */
.ivk-cat-head .ivk-breadcrumb,
.ivk-cat-head .ivk-breadcrumb a { color: color-mix(in srgb, var(--ivk-white) 65%, transparent); }
.ivk-cat-head .ivk-breadcrumb a:hover { color: var(--ivk-lime); }
.ivk-cat-head .ivk-breadcrumb__current { color: var(--ivk-white); }

/* 4. TLAČÍTKA A FORMULÁŘE ------------------------------------------------- */
.ivk-btn,
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .wp-block-button__link {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  background: var(--ivk-lime); color: var(--ivk-white); border: none;
  font-family: var(--ivk-font); font-weight: 700; font-size: 15px; line-height: normal;
  padding: 13px 22px; border-radius: var(--ivk-radius-sm); cursor: pointer; text-align: center;
  transition: background .15s, box-shadow .15s;
}
.ivk-btn:hover,
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce #respond input#submit:hover {
  background: #adc228; color: var(--ivk-white);
}
.ivk-btn--lg { font-size: 16px; padding: 16px 30px; }
.ivk-btn--block { width: 100%; }
.ivk-btn--outline {
  background: transparent; color: var(--ivk-ink); border: 1.5px solid var(--ivk-ink);
}
.ivk-btn--outline:hover { background: var(--ivk-ink); color: var(--ivk-white); }
.ivk-btn--ghost {
  background: var(--ivk-white); color: var(--ivk-ink); border: 1px solid var(--ivk-line-2);
  font-weight: 700;
}
.ivk-btn--ghost:hover { background: #fafbf3; border-color: var(--ivk-lime); color: var(--ivk-ink); }
.ivk-btn--icon {
  width: 38px; height: 38px; padding: 0; border-radius: var(--ivk-radius-sm); flex-shrink: 0;
}
.ivk-btn[disabled], .ivk-btn.loading { opacity: .6; pointer-events: none; }

input[type=text], input[type=email], input[type=tel], input[type=password], input[type=number],
input[type=search], input[type=url], select, textarea,
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea,
.select2-container--default .select2-selection--single {
  width: 100%; border: 1px solid var(--ivk-line-2); border-radius: 7px;
  padding: 12px 13px; font-family: var(--ivk-font); font-size: 14.5px; color: var(--ivk-ink);
  background: var(--ivk-white); line-height: 1.3;
}
textarea { min-height: 92px; resize: vertical; }
input:focus, select:focus, textarea:focus { border-color: var(--ivk-lime); outline: none; }
input[type=checkbox], input[type=radio] { width: 16px; height: 16px; accent-color: var(--ivk-lime-dark); flex-shrink: 0; }
.ivk-field { display: flex; flex-direction: column; gap: 6px; }
.ivk-field > span, .ivk-label {
  font-size: 12.5px; font-weight: 700; color: #6b6b6b; letter-spacing: .2px;
}
.ivk-check { display: flex; align-items: center; gap: 10px; font-size: 14px; cursor: pointer; }
.ivk-check--top { align-items: flex-start; }

/* Volby (doprava / platba) */
.ivk-choices { display: flex; flex-direction: column; gap: 10px; list-style: none; margin: 0; padding: 0; }
.ivk-choice {
  display: flex; align-items: center; gap: 12px; border: 1px solid var(--ivk-line-2);
  border-radius: 10px; padding: 13px 15px; cursor: pointer; margin: 0;
  transition: border-color .15s, background .15s;
}
.ivk-choice:hover { border-color: var(--ivk-lime); background: #fafbf3; }
.ivk-choice--active { border-color: var(--ivk-lime); background: #fafbf3; }
.ivk-choice__body { flex: 1; line-height: 1.35; min-width: 0; }
.ivk-choice__body b { font-size: 14.5px; display: block; }
.ivk-choice__body span { font-size: 12.5px; color: var(--ivk-muted-2); }
.ivk-choice__price { font-size: 14.5px; font-weight: 700; color: var(--ivk-lime-dark); white-space: nowrap; }

/* Množství */
.ivk-qty, .woocommerce .quantity {
  display: inline-flex; align-items: center; border: 1px solid #ddd;
  border-radius: 8px; background: var(--ivk-white); overflow: hidden;
}
.ivk-qty__btn {
  width: 44px; height: 52px; border: none; background: transparent;
  font-size: 22px; line-height: 1; cursor: pointer; color: #666;
}
.ivk-qty__btn:hover { color: var(--ivk-ink); background: #f7f7f5; }
.ivk-qty input[type=number], .woocommerce .quantity input.qty {
  width: 46px; border: none; text-align: center; font-weight: 700; font-size: 17px;
  padding: 0; background: transparent; -moz-appearance: textfield;
}
.ivk-qty input::-webkit-outer-spin-button, .ivk-qty input::-webkit-inner-spin-button {
  -webkit-appearance: none; margin: 0;
}
.ivk-qty--sm .ivk-qty__btn { width: 30px; height: 38px; font-size: 18px; }
.ivk-qty--sm input[type=number] { width: 34px; font-size: 14.5px; }

/* Stav skladu */
.ivk-stock {
  font-size: 12.5px; font-weight: 700; color: var(--ivk-stock-text);
  display: inline-flex; align-items: center; gap: 6px;
}
.ivk-stock::before {
  content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--ivk-stock);
}
.ivk-stock--out { color: var(--ivk-faint); }
.ivk-stock--out::before { background: #d2d2d2; }

/* Štítek slevy */
/* Oblíbené (inc/wishlist.php) – srdíčko v pravém horním rohu karty, sleva vlevo. */
.ivk-fav {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  border: 1px solid var(--ivk-line-2); background: var(--ivk-white); color: var(--ivk-muted-2);
  cursor: pointer; padding: 0; font: inherit; transition: color .15s, border-color .15s, background .15s;
}
.ivk-fav:hover { color: #d64545; border-color: #f0c9c9; }
.ivk-fav[aria-pressed="true"] { color: #d64545; border-color: #f0c9c9; background: #fdf3f3; }
.ivk-fav[aria-pressed="true"] svg path { fill: currentColor; }
.ivk-fav:focus-visible { outline: 2px solid var(--ivk-lime-dark); outline-offset: 2px; }
.ivk-fav--card {
  position: absolute; top: 12px; right: 12px; z-index: 3; width: 36px; height: 36px; border-radius: 50%;
  box-shadow: 0 2px 8px rgba(0,0,0,.06);
}
.ivk-fav--detail { flex: 0 0 54px; width: 54px; align-self: stretch; border-radius: 8px; }
.ivk-fav--pop svg { animation: ivk-fav-pop .32s cubic-bezier(.3,1.6,.5,1); }
@keyframes ivk-fav-pop { 40% { transform: scale(1.3); } }
@media (prefers-reduced-motion: reduce) { .ivk-fav--pop svg { animation: none; } }
.ivk-cart-count[hidden], .ivk-fav-badge[hidden] { display: none; } /* bublina má display: flex, který by atribut hidden přebil – u Oblíbených svítila 0 */
.ivk-wishlist { padding: 8px 0 64px; }
/* Výpis je uvnitř obsahu stránky (.ivk-entry__content) – jeho typografie
   (odsazení seznamů, mezery u li, řádkování 1.75, 16px písmo) by karty rozhodila. */
.ivk-entry__content .ivk-wishlist { font-size: 15px; line-height: normal; color: var(--ivk-ink); }
.ivk-entry__content .ivk-wishlist ul.products { margin: 0; padding: 0; list-style: none; }
.ivk-entry__content .ivk-wishlist li.product { margin: 0; }
.ivk-wishlist__state { color: var(--ivk-muted-2); }
.ivk-wishlist__empty {
  display: flex; flex-direction: column; align-items: center; gap: 10px; text-align: center;
  padding: 48px 20px; border: 1px dashed var(--ivk-line-2); border-radius: var(--ivk-radius-lg); background: var(--ivk-white);
}
.ivk-wishlist__empty[hidden] { display: none; }
.ivk-wishlist__empty svg { color: #d64545; }
.ivk-wishlist__empty b { font-family: var(--ivk-font-head); font-size: 22px; }
.ivk-wishlist__empty p { margin: 0 0 8px; color: var(--ivk-muted); max-width: 380px; }
.ivk-mobile-nav__fav {
  display: flex; align-items: center; gap: 10px; padding: 14px var(--ivk-gutter);
  border-bottom: 1px solid var(--ivk-line-3); font-weight: 700; font-size: 15px;
}
.ivk-mobile-nav__fav svg { color: #d64545; }
.ivk-mobile-nav__fav-count {
  margin-left: auto; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 11px;
  background: var(--ivk-yellow); color: var(--ivk-ink); font-size: 12px; font-weight: 800; /* jako počítadlo košíku */
  display: inline-flex; align-items: center; justify-content: center;
}
.ivk-mobile-nav__fav-count[hidden] { display: none; }
/* Kód produktu v kartě (content-product.php) – vlastní řádek nad fotkou,
   vedle srdíčka oblíbených (to je absolutně vpravo nahoře, proto odsazení
   zprava). Pevná výška drží zarovnání i u produktu bez kódu. */
.ivk-product__sku {
  display: block; min-height: 1.3em; margin: 0 44px 8px 0;
  font-size: 12px; line-height: 1.3; color: var(--ivk-muted-2);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
/* Štítek slevy v kartě do rohu fotky, pod řádek s kódem. */
.ivk-product > .ivk-badge { top: 42px; left: 16px; }
.ivk-badge {
  position: absolute; top: 14px; left: 14px; z-index: 2;
  background: var(--ivk-yellow); color: var(--ivk-ink);
  font-weight: 800; font-size: 12px; padding: 3px 8px; border-radius: 4px;
}

/* 5. HLAVIČKA ------------------------------------------------------------- */
/*
 * Připnutá hlavička: celý <header> je sticky s top = −výška horní lišty,
 * takže lišta s kontakty odroluje a logo/košík + menu zůstanou nahoře.
 * --ivk-utility-h a --ivk-adminbar-h nastavuje initStickyHeader() v theme.js
 * (bez JS: lišta zůstane připnutá taky, nic se nerozbije). Po odrolování
 * dostane hlavička .is-stuck a na počítači se zmenší (sekce Responzivita níž).
 */
.ivk-site-header {
  position: sticky; z-index: 60; background: var(--ivk-white);
  top: calc(var(--ivk-adminbar-h, 0px) - var(--ivk-utility-h, 0px));
  transition: box-shadow .2s ease;
}
.ivk-site-header.is-stuck { box-shadow: 0 6px 20px rgba(0,0,0,.07); }
.ivk-header__inner, .ivk-header__logo img, .ivk-nav__link { transition: padding .2s ease, height .2s ease; }
/* Zmenšení úměrné – logo o pětinu (70 → 56 px), nižší vyhledávání. Menu
   kategorií se zmenšuje jen výškou (bez podtitulků, méně vzduchu) – písmo
   i ikony zůstávají v původní velikosti: tučný Barlow verzálkami ve 13 px
   působil slitě a deformovaně. */
@media (min-width: 901px) {
  .ivk-site-header.is-stuck .ivk-header__inner { padding-top: 12px; padding-bottom: 12px; }
  .ivk-site-header.is-stuck .ivk-header__logo img { height: 56px; }
  .ivk-site-header.is-stuck .ivk-search input[type=search] { padding-top: 11px; padding-bottom: 11px; font-size: 14.5px; }
  .ivk-site-header.is-stuck .ivk-header__action-label > span { display: none; }
  .ivk-site-header.is-stuck .ivk-header__action-label b { font-size: 13.5px; }
  .ivk-site-header.is-stuck .ivk-nav__link { padding-top: 8px; padding-bottom: 8px; }
  /* Podtitulky položek zůstávají i v připnutém menu, jen menší – bez nich
     nebylo jasné, co je „Prodej“ a co „Prodejny“. */
  .ivk-site-header.is-stuck .ivk-nav__label span { font-size: 11px; line-height: 1.3; }
  /* V připnutém menu tlumenější položky – plná 800 černá verzálkami při
     scrollování přebíjela obsah, 600 šedá byla zase moc mdlá. Tučnost 700,
     skoro černá; při najetí černá. Bez verzálek jako v plném menu, 14 px. */
  .ivk-site-header.is-stuck .ivk-nav__label b { font-weight: 700; font-size: 14px; letter-spacing: 0; color: #2e2e2e; }
  .ivk-site-header.is-stuck .ivk-nav__link:hover .ivk-nav__label b { color: var(--ivk-ink); }
  .ivk-site-header.is-stuck .ivk-nav__icon { opacity: .9; }
}
/* Telefon a tablet: připnutá hlavička je jen logo + ikony. Po odrolování
   menší logo a méně vzduchu (~85 → ~58 px), ať zbyde víc obrazovky na obsah.
   Ikony zůstávají 44 px kvůli trefení palcem. */
@media (max-width: 900px) {
  .ivk-site-header.is-stuck .ivk-header__inner { padding-top: 7px; padding-bottom: 7px; }
  .ivk-site-header.is-stuck .ivk-header__logo img { height: 40px; }
  .ivk-site-header.is-stuck .ivk-burger { width: 42px; height: 42px; }
}
@media (prefers-reduced-motion: reduce) {
  .ivk-site-header, .ivk-header__inner, .ivk-header__logo img, .ivk-nav__link { transition: none; }
}
/* Otevřené mobilní menu je uvnitř připnuté hlavičky – delší než obrazovka
   by se jinak nedalo doscrollovat. Přesnou výšku nastaví initMobileNav()
   v theme.js podle skutečné pozice menu; tohle je jen záloha bez JS. */
.ivk-mobile-nav.is-open {
  max-height: calc(100vh - var(--ivk-header-h, 90px)); max-height: calc(100dvh - var(--ivk-header-h, 90px));
  overflow-y: auto; overscroll-behavior: contain;
}

.ivk-utility {
  background: var(--ivk-white); border-bottom: 1px solid #eee;
  font-size: 13px; color: #6b6b6b;
}
.ivk-utility__inner {
  display: flex; justify-content: space-between; align-items: center;
  gap: 16px; flex-wrap: wrap; padding: 10px var(--ivk-gutter);
}
.ivk-utility__contacts { display: flex; align-items: center; gap: 26px; flex-wrap: wrap; font-size: 14px; }
.ivk-utility__contacts a, .ivk-utility__contacts span {
  display: flex; align-items: center; gap: 7px; color: #b5b5b5;
}
.ivk-utility__menu { display: flex; align-items: center; gap: 26px; font-weight: 600; list-style: none; margin: 0; padding: 0; }
.ivk-utility__menu a { color: var(--ivk-ink); }
.ivk-utility__menu a:hover { color: var(--ivk-lime-dark); }

.ivk-header { background: var(--ivk-white); border-bottom: 1px solid #f0f0f0; }
.ivk-header__inner { display: flex; align-items: center; gap: 32px; padding: 22px var(--ivk-gutter) 26px; }
.ivk-header__logo { flex-shrink: 0; display: block; line-height: 1; }
.ivk-header__logo img { height: 70px; width: auto; display: block; }
.ivk-header__logo-text {
  font-family: var(--ivk-font-head); font-weight: 800; font-size: 38px;
  color: var(--ivk-lime-dark); font-style: italic;
}
.ivk-header__search { flex: 1; margin: 0 48px; }
.ivk-header__actions { display: flex; align-items: center; gap: 32px; flex-shrink: 0; }
.ivk-header__action { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.ivk-header__action-label { line-height: 1.25; white-space: nowrap; }
.ivk-header__action-label b { display: block; font-weight: 700; font-size: 15px; }
/* Jen přímý potomek – jinak by se blokem staly i vnořené spany ceny z WooCommerce
   (.woocommerce-Price-amount a symbol měny) a částka by se zalomila pod sebe. */
.ivk-header__action-label > span { display: block; font-size: 12px; color: var(--ivk-muted-2); }
.ivk-header__action-label .woocommerce-Price-amount { display: inline; white-space: nowrap; }
.ivk-header__cart-icon, .ivk-header__fav-icon { position: relative; display: block; }
.ivk-cart-count, .ivk-fav-badge {
  position: absolute; top: -6px; right: -8px; background: var(--ivk-yellow); color: var(--ivk-ink);
  font-size: 11px; font-weight: 800; width: 19px; height: 19px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
}

/* Krátké upozornění, že do košíku přibyla položka (spouští theme.js). */
.ivk-header__cart-icon--bump .ivk-cart-count { animation: ivk-cart-pop 640ms cubic-bezier(.22, 1.15, .36, 1); }
.ivk-header__cart-icon--bump svg { animation: ivk-cart-nudge 640ms ease; }

@keyframes ivk-cart-pop {
  0%   { transform: scale(1); }
  25%  { transform: scale(1.5); background: var(--ivk-lime); }
  55%  { transform: scale(.92); }
  100% { transform: scale(1); }
}

@keyframes ivk-cart-nudge {
  0%   { transform: translateY(0) rotate(0); }
  22%  { transform: translateY(-4px) rotate(-8deg); }
  48%  { transform: translateY(0) rotate(6deg); }
  74%  { transform: translateY(-1px) rotate(-3deg); }
  100% { transform: translateY(0) rotate(0); }
}

@media (prefers-reduced-motion: reduce) {
  .ivk-header__cart-icon--bump .ivk-cart-count,
  .ivk-header__cart-icon--bump svg { animation: none; }
}
.ivk-burger {
  display: none; align-items: center; justify-content: center; width: 46px; height: 46px;
  border: 1px solid var(--ivk-line-2); border-radius: 8px; background: var(--ivk-white); cursor: pointer;
}

.ivk-search { display: flex; position: relative; }
.ivk-search input[type=search] {
  flex: 1; border: none; border-radius: 6px 0 0 6px; padding: 14px 18px;
  font-size: 15px; color: #333; background: #f0f0ee;
}
.ivk-search input[type=search]:focus { background: #ebebe8; }
.ivk-search button {
  background: var(--ivk-lime); border: none; border-radius: 0 6px 6px 0; padding: 0 20px;
  cursor: pointer; display: flex; align-items: center; justify-content: center;
}

/* 6. NAVIGACE ------------------------------------------------------------- */
.ivk-nav { background: #f4f4f4; border-bottom: 1px solid #ececec; position: relative; z-index: 30; }
.ivk-nav__inner { display: flex; position: relative; }
.ivk-nav__list { display: flex; list-style: none; margin: 0; padding: 0; position: static; }
.ivk-nav__item { position: static; }
.ivk-nav__link {
  display: flex; align-items: center; gap: 12px; padding: 16px 26px;
  border-right: 1px solid transparent;
}
/* První položka lícuje s levou hranou obsahu (logo, hero) – jako v návrhu. */
.ivk-nav__item:first-child > .ivk-nav__link { padding-left: 8px; }
.ivk-nav__link:hover { background: #fafafa; color: var(--ivk-ink); }
.ivk-nav__item--active > .ivk-nav__link,
.ivk-nav__item--open > .ivk-nav__link {
  background: var(--ivk-white); border-right-color: #ececec;
}
.ivk-nav__label { line-height: 1.2; }
/* Položky menu normálním písmem, ne verzálkami (20. 10. 2026) – stejně jako
   nadpisy v hero; o pixel větší a bez prostrkání, malá písmena jsou opticky menší. */
.ivk-nav__label b {
  display: block; font-weight: 700; font-size: 15px; letter-spacing: 0;
}
.ivk-nav__label span { display: block; font-size: 12px; color: var(--ivk-muted-2); }
.ivk-nav__icon { color: var(--ivk-lime-dark); }
.ivk-nav__caret { margin-left: 4px; color: #b0b0b0; }

.ivk-mega {
  /* Panel se odvozuje od .ivk-nav__inner, což je .ivk-container s bočním
     gutterem. `left/right: 0` ho posadilo na hranu paddingu, tedy o 24 px
     vlevo od první položky. Návrh ho má přesně na hraně obsahu. */
  display: none; position: absolute; left: var(--ivk-gutter); right: var(--ivk-gutter); top: 100%;
  background: var(--ivk-white); border: 1px solid #ececec; border-top: none;
  box-shadow: 0 18px 40px rgba(0,0,0,.10); padding: 28px 32px 26px; z-index: 40;
}
.ivk-nav__item--open .ivk-mega { display: block; }
.ivk-mega__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px; }
.ivk-mega__col { display: flex; flex-direction: column; }
/* 14 px – 16 px bylo laděné na úzký Barlow Semi Condensed, v širším Lato
   verzálkami nadpisy sloupců přebíjely odkazy pod sebou. */
.ivk-mega__title {
  font-family: var(--ivk-font-head); font-size: 14px; font-weight: 800; letter-spacing: .4px;
  color: var(--ivk-ink); display: block; padding-bottom: 9px; margin-bottom: 10px;
  border-bottom: 2px solid var(--ivk-lime); text-transform: uppercase;
}
.ivk-mega__title { display: flex; align-items: center; gap: 8px; }
.ivk-mega__title svg { color: var(--ivk-lime-dark); flex: 0 0 auto; }
.ivk-mega__desc { font-size: 13.5px; color: var(--ivk-muted); line-height: 1.5; }
.ivk-mega__links { display: flex; flex-direction: column; list-style: none; margin: 0; padding: 0; }
.ivk-mega__links a { font-size: 13.5px; color: #4a4a4a; padding: 5px 0; display: block; }
.ivk-mega__links a:hover { color: var(--ivk-lime-dark); }
.ivk-mega__promo {
  margin-top: 22px; background: var(--ivk-lime-light); border-radius: var(--ivk-radius);
  padding: 18px 20px; display: flex; align-items: center; justify-content: space-between;
  gap: 16px; flex-wrap: wrap;
}
.ivk-mega__promo b { font-family: var(--ivk-font-head); font-size: 20px; }
.ivk-mega__promo p { margin: 4px 0 0; font-size: 13.5px; color: var(--ivk-olive); }

/* Mobilní menu */
.ivk-mobile-nav { display: none; background: var(--ivk-white); border-bottom: 1px solid #ececec; }
.ivk-mobile-nav.is-open { display: block; }
.ivk-mobile-nav ul { list-style: none; margin: 0; padding: 0; }
.ivk-mobile-nav li > a {
  display: block; padding: 14px var(--ivk-gutter); border-bottom: 1px solid var(--ivk-line-3);
  font-weight: 700; font-size: 15px;
}
.ivk-mobile-nav .sub-menu a { padding-left: calc(var(--ivk-gutter) + 18px); font-weight: 500; font-size: 14px; color: #4a4a4a; }
/* Kategorie pod „Prodejem“ (ivk_mobile_nav_categories) – odkaz vlevo, šipka
   vpravo jako samostatné tlačítko: klepnutí na název otevře kategorii,
   na šipku rozbalí podkategorie. Mřížka drží šipku stejně vysokou jako řádek. */
.ivk-mobile-nav li.ivk-mnav-parent { display: grid; grid-template-columns: 1fr 52px; }
.ivk-mobile-nav li.ivk-mnav-parent > a { grid-column: 1; }
.ivk-mobile-nav li.ivk-mnav-parent > ul { grid-column: 1 / -1; }
.ivk-mnav__toggle {
  grid-column: 2; display: flex; align-items: center; justify-content: center;
  border: 0; border-bottom: 1px solid var(--ivk-line-3); border-left: 1px solid var(--ivk-line-3);
  background: none; color: var(--ivk-lime-dark); padding: 0; cursor: pointer;
}
.ivk-mnav__toggle svg { transition: transform .15s; }
.ivk-mnav__toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
@media (prefers-reduced-motion: reduce) { .ivk-mnav__toggle svg { transition: none; } }
.ivk-mobile-nav .ivk-mnav a { padding-left: calc(var(--ivk-gutter) + 14px); font-weight: 600; font-size: 14.5px; }
.ivk-mobile-nav .ivk-mnav__sub { background: var(--ivk-bg); }
.ivk-mobile-nav .ivk-mnav__sub a { padding: 12px var(--ivk-gutter) 12px calc(var(--ivk-gutter) + 28px); font-weight: 500; font-size: 14px; color: var(--ivk-ink-2); }
/* Vyhledávání v menu jen na telefonu – na tabletu je pořád v hlavičce. */
.ivk-mobile-nav__search { display: none; padding: 14px var(--ivk-gutter); border-bottom: 1px solid var(--ivk-line-3); }

/* 7. DOMOVSKÁ ------------------------------------------------------------- */
/* Tmavý banner: fotka přes celou šířku a text rovnou na ní, bez přechodu.
   Počítá s fotkou, která má vlevo tmavou plochu – u světlé by bílý text zanikl. */
.ivk-hero { background: var(--ivk-ink); color: var(--ivk-white); position: relative; overflow: hidden; }
.ivk-hero__media { position: absolute; inset: 0; }
/* Na širokém monitoru je hero poměrem širší než fotka a ta se ořízne nahoře
   a dole. Výřez je proto mírně pod středem – dole bývá motiv a spodní okraj
   navíc překrývá pruh výhod. */
.ivk-hero__media picture { display: block; width: 100%; height: 100%; }
.ivk-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: center 58%; display: block; }
.ivk-hero__inner {
  position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 40px;
  align-items: center; padding: 64px var(--ivk-gutter) 72px;
}
/* Od ~1700 px šířky hero mírně roste, ať fotka nemusí tolik ořezávat. */
.ivk-hero__spacer { height: clamp(460px, 27vw, 490px); pointer-events: none; }
/* Velké nadpisy normálním písmem, ne verzálkami – tučné Lato verzálkami
   (dříve laděné na úzký Barlow Semi Condensed) působilo jako hutný blok.
   Záporné prostrkání v em, aby sedělo i na menších velikostech v Responzivitě. */
.ivk-hero h1 { font-size: 52px; line-height: 1.04; margin: 0 0 22px; letter-spacing: -.025em; }
.ivk-hero h1 em { font-style: normal; color: var(--ivk-lime); }
.ivk-hero p {
  font-size: 19px; color: color-mix(in srgb, var(--ivk-white) 82%, transparent);
  line-height: 1.5; margin: 0 0 34px; max-width: 440px;
}
.ivk-hero__actions { display: flex; gap: 16px; flex-wrap: wrap; }
/* Obrysové tlačítko je jinde tmavé – na fotce ho přebarvíme na bílé. */
.ivk-hero .ivk-btn--outline,
.ivk-cta .ivk-btn--outline,
.ivk-promo--dark .ivk-btn--outline { color: var(--ivk-white); border-color: var(--ivk-white); }
.ivk-hero .ivk-btn--outline:hover,
.ivk-cta .ivk-btn--outline:hover,
.ivk-promo--dark .ivk-btn--outline:hover { background: var(--ivk-white); color: var(--ivk-ink); }

.ivk-trust { margin-top: -36px; position: relative; z-index: 2; }
.ivk-trust__inner {
  background: var(--ivk-white); border: 1px solid #e6e6e2; border-radius: var(--ivk-radius-lg);
  padding: 24px 30px; display: grid; grid-template-columns: repeat(5, 1fr); gap: 20px;
  box-shadow: 0 6px 20px rgba(0,0,0,.05);
}
.ivk-trust__item { display: flex; align-items: center; gap: 12px; }
.ivk-trust__item svg { color: var(--ivk-lime); }
/* Bez verzálek jako hlavní menu – o pixel větší, malá písmena jsou opticky menší. */
.ivk-trust__item b { font-size: 14.5px; display: block; color: var(--ivk-ink); line-height: 1.25; }
/* Jen podtitulek (sourozenec nadpisu) – původní `.ivk-trust__item span` trefilo
   i obalový span, ze kterého pak <b> dědilo šedou. */
.ivk-trust__item b + span { display: block; font-size: 12px; color: var(--ivk-muted-2); line-height: 1.25; }

/* Oblíbené kategorie – tři karty s fotkou přes celou plochu. Spodek fotky je
   ztmavený do tmavé, aby bílý nadpis a popis byly čitelné na jakémkoli snímku. */
.ivk-cats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; padding: 24px 0 8px; }
.ivk-cat {
  position: relative; overflow: hidden; display: flex; align-items: flex-end; gap: 16px;
  min-height: 300px; padding: 24px; border-radius: var(--ivk-radius-lg);
  background: var(--ivk-ink); color: var(--ivk-white);
}
.ivk-cat::before {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(0deg,
    color-mix(in srgb, var(--ivk-ink) 88%, transparent) 0%,
    color-mix(in srgb, var(--ivk-ink) 45%, transparent) 45%,
    transparent 75%);
}
.ivk-cat__img {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  transition: transform .4s ease;
}
.ivk-cat:hover { color: var(--ivk-white); }
.ivk-cat:hover .ivk-cat__img { transform: scale(1.04); }
.ivk-cat__body { position: relative; z-index: 2; flex: 1; min-width: 0; }
.ivk-cat__title {
  display: block; margin-bottom: 6px;
  font-family: var(--ivk-font-head); font-weight: 800; font-size: 22px; line-height: 1.1;
}
.ivk-cat__text {
  display: block; font-size: 14.5px; line-height: 1.45;
  color: color-mix(in srgb, var(--ivk-white) 85%, transparent);
}
.ivk-cat__go {
  position: relative; z-index: 2; flex: none;
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; border-radius: var(--ivk-radius);
  background: var(--ivk-lime); color: var(--ivk-ink); transition: background-color .15s;
}
.ivk-cat:hover .ivk-cat__go { background: var(--ivk-white); }
@media (prefers-reduced-motion: reduce) {
  .ivk-cat__img { transition: none; }
  .ivk-cat:hover .ivk-cat__img { transform: none; }
}

.ivk-home-deals__grid { padding: 22px 0 8px; }

/* Nejprodávanější – běžné karty produktů. */
/* Kompaktní karty – úvodní stránka a související/doporučené produkty
   (.ivk-related na detailu a v košíku): bez krátkého popisu pod názvem
   (useknutý začátek věty v malé kartě nic neříkal) a název vždy na jeden
   řádek, delší se zkrátí třemi tečkami – celý je v atributu title.
   V katalogu zůstávají dva řádky názvu i popisek. */
.ivk-bestsellers .ivk-product__sub,
.ivk-related .ivk-product__sub { display: none; }
.home .ivk-product__title,
.ivk-related .ivk-product__title { -webkit-line-clamp: 1; line-clamp: 1; min-height: 1.3em; overflow-wrap: anywhere; }
.ivk-bestsellers__grid { padding: 22px 0 8px; }
.ivk-bestsellers ul.products { --ivk-cols: 4; }
/* Tečky carouselu – na desktopu je všech pět karet vidět, tečky nejsou potřeba. */
.ivk-bestsellers__dots { display: none; justify-content: center; gap: 8px; padding-top: 16px; }
.ivk-bestsellers__dots button {
  width: 9px; height: 9px; padding: 0; border: 0; border-radius: 5px; cursor: pointer;
  background: var(--ivk-line-2); transition: width .2s, background-color .2s;
}
.ivk-bestsellers__dots button[aria-current="true"] { width: 24px; background: var(--ivk-lime); }

/* CTA přes celou šířku stránky, mezi pruhem výhod a patičkou. Fotka od kraje
   ke kraji, text vlevo na její tmavé části – bez přechodu, stejně jako hero. */
.ivk-cta {
  position: relative; overflow: hidden;
  background: var(--ivk-ink); color: var(--ivk-white);
}
.ivk-cta__img {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; object-position: 70% 35%;
}
.ivk-cta__inner { position: relative; padding-top: 84px; padding-bottom: 84px; }
.ivk-cta__eyebrow {
  display: inline-block; margin-bottom: 18px; padding: 6px 11px; border-radius: var(--ivk-radius-sm);
  background: var(--ivk-lime); color: var(--ivk-ink);
  font-size: 12.5px; font-weight: 800; letter-spacing: .4px; text-transform: uppercase;
}
.ivk-cta h2 { max-width: 560px; font-size: 42px; line-height: 1.04; letter-spacing: -.025em; margin: 0 0 18px; }
.ivk-cta h2 em { display: block; font-style: normal; color: var(--ivk-lime); }
.ivk-cta p {
  max-width: 460px; margin: 0 0 30px; font-size: 17px;
  color: color-mix(in srgb, var(--ivk-white) 82%, transparent);
}
.ivk-cta__actions { display: flex; flex-wrap: wrap; gap: 14px; }
.ivk-promos { display: grid; gap: 20px; padding: 44px 0 8px; }
/* Velká půjčovna vlevo přes dvě řádky, vpravo nad sebou poradenství a servis. */
.ivk-promos { grid-template-columns: 1.3fr 1fr; grid-template-rows: auto auto; }
.ivk-promo {
  position: relative; border-radius: var(--ivk-radius-lg); overflow: hidden;
  min-height: 210px; color: var(--ivk-ink);
}
.ivk-promo__body { position: relative; z-index: 1; padding: 24px 30px; }
.ivk-promo__img { display: block; width: 100%; height: 100%; object-fit: cover; }
/* Bez verzálek a o stupeň slabší – velkými písmeny a nejtučnějším řezem
   s těsným prokladem nadpisy působily křiklavě. */
.ivk-promo h3 { font-size: 21px; font-weight: 700; line-height: 1.2; letter-spacing: -.2px; margin: 0 0 8px; }
.ivk-promo h3 em { font-style: normal; color: var(--ivk-lime); }
/* Jen ve velké kartě jde zvýraznění na vlastní řádek, v malých by osiřelo. */
.ivk-promo--main h3 em { display: block; }
.ivk-promo p { font-size: 15px; line-height: 1.5; margin: 0 0 16px; }

/* Tmavé bloky: fotka pod celým blokem, text vlevo na ztmavené části. Fotky mají
   vlevo světlejší místa (obloha, stěna s nářadím), bílý text by se na nich ztratil. */
/* Text svisle na střed – nahoře by pod tlačítkem zůstávalo prázdné místo. */
.ivk-promo--dark { display: flex; align-items: center; background: var(--ivk-ink); color: var(--ivk-white); }
.ivk-promo--dark .ivk-promo__img { position: absolute; inset: 0; object-position: 80% 50%; }
.ivk-promo--dark::before {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(90deg,
    color-mix(in srgb, var(--ivk-ink) 88%, transparent) 0%,
    color-mix(in srgb, var(--ivk-ink) 62%, transparent) 38%,
    transparent 68%);
}
.ivk-promo--dark .ivk-promo__body { max-width: 62%; }
.ivk-promo--dark p { color: color-mix(in srgb, var(--ivk-white) 82%, transparent); }

.ivk-promo--main { grid-row: span 2; min-height: 400px; }
.ivk-promo--main .ivk-promo__img { object-position: 100% 50%; }
.ivk-promo--main .ivk-promo__body { max-width: 460px; padding: 36px 40px; }
.ivk-promo--main h3 { font-size: 28px; line-height: 1.15; margin-bottom: 22px; }

/* Poradenství: prodavač s vrtačkou je na fotce vpravo, zákazník zády vlevo pod textem. */
.ivk-promo--advice .ivk-promo__img { object-position: 75% 35%; }

.ivk-promo__eyebrow {
  display: inline-block; margin-bottom: 16px; padding: 6px 11px; border-radius: var(--ivk-radius-sm);
  background: var(--ivk-lime); color: var(--ivk-ink);
  font-size: 12.5px; font-weight: 800; letter-spacing: .4px; text-transform: uppercase;
}
.ivk-promo__list { display: flex; flex-direction: column; gap: 10px; margin: 0 0 26px; padding: 0; list-style: none; }
.ivk-promo__list li { display: flex; align-items: center; gap: 10px; font-size: 15px; font-weight: 500; }
.ivk-promo__tick {
  display: inline-flex; align-items: center; justify-content: center; flex: none;
  width: 20px; height: 20px; border-radius: 50%; background: var(--ivk-lime); color: var(--ivk-ink);
}

.ivk-stores { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; padding: 22px 0 0; }
.ivk-store {
  border: 1px solid var(--ivk-line); border-radius: 14px; overflow: hidden;
  background: var(--ivk-white); display: flex; flex-direction: column; transition: box-shadow .15s, border-color .15s;
}
.ivk-store:hover { box-shadow: var(--ivk-shadow-lg); border-color: #e2e2e2; }
.ivk-store__media { position: relative; height: 172px; background: #ececec; }
.ivk-store__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ivk-store__town {
  position: absolute; top: 12px; left: 12px; background: var(--ivk-lime-dark); color: var(--ivk-white);
  font-weight: 800; font-size: 11.5px; letter-spacing: .4px; padding: 5px 11px; border-radius: 20px;
  box-shadow: 0 2px 8px rgba(0,0,0,.2); text-transform: uppercase;
}
.ivk-store__body { padding: 18px 20px 20px; display: flex; flex-direction: column; flex: 1; }
.ivk-store__body h3 { font-family: var(--ivk-font); font-size: 19px; font-weight: 800; margin: 0 0 4px; line-height: 1.2; }
.ivk-store__body h3 a { color: inherit; }
.ivk-store:hover .ivk-store__body h3 a { color: var(--ivk-lime-dark); }
.ivk-store__address { font-size: 13.5px; line-height: 1.55; color: #666; margin: 0 0 14px; }
.ivk-store__meta { display: flex; flex-direction: column; gap: 8px; font-size: 13.5px; color: #3a3a3a; margin-bottom: 16px; }
.ivk-store__meta span { display: flex; align-items: flex-start; gap: 9px; line-height: 1.5; }
.ivk-store__meta a { color: inherit; }
.ivk-store__meta svg { color: var(--ivk-lime-dark); margin-top: 2px; }
.ivk-store__links { margin-top: auto; display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.ivk-store__link { color: var(--ivk-lime-dark); font-weight: 700; font-size: 13px; display: inline-flex; align-items: center; gap: 6px; }
.ivk-store__link--sub { color: var(--ivk-muted-2); }
.ivk-store__link--sub:hover { color: var(--ivk-ink); }
.ivk-store__link--sub svg { color: var(--ivk-muted-2); }

.ivk-news { display: grid; grid-template-columns: 1.55fr 1fr; gap: 32px; align-items: start; padding: 22px 0 0; }
.ivk-news__list { display: flex; flex-direction: column; border-top: 1px solid #e8e8e4; }
.ivk-news__item {
  display: grid; grid-template-columns: 38px 132px 1fr 18px; gap: 18px; align-items: center;
  padding: 18px 6px; border-bottom: 1px solid #e8e8e4;
}
.ivk-news__item:hover { background: #f2f3ea; }
.ivk-news__num { font-family: var(--ivk-font-head); font-size: 30px; font-weight: 800; color: #d6ddb0; line-height: .9; }
.ivk-news__thumb { width: 132px; height: 84px; position: relative; border-radius: 8px; overflow: hidden; background: #ececec; }
.ivk-news__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ivk-news__tag { color: var(--ivk-lime-dark); font-weight: 800; font-size: 11.5px; letter-spacing: .6px; text-transform: uppercase; }
.ivk-news__item h3 { font-family: var(--ivk-font); font-size: 17px; font-weight: 700; margin: 5px 0 6px; line-height: 1.25; }
.ivk-news__excerpt { font-size: 13px; color: var(--ivk-muted); line-height: 1.5; display: block; }
.ivk-news__arrow { color: #c2c9a0; }
.ivk-news__aside { display: flex; flex-direction: column; gap: 14px; }
.ivk-help__contacts { display: flex; flex-direction: column; gap: 7px; font-size: 14px; font-weight: 700; }
.ivk-help__contacts a, .ivk-help__contacts span { display: flex; align-items: center; gap: 9px; color: var(--ivk-olive); }
.ivk-newsletter p { font-size: 13px; color: var(--ivk-muted); line-height: 1.55; margin: 0 0 14px; }
.ivk-newsletter form { display: flex; gap: 8px; }
.ivk-newsletter input { flex: 1; min-width: 0; padding: 10px 12px; font-size: 14px; }
.ivk-newsletter button { padding: 0 18px; font-size: 14px; font-weight: 800; color: #000; }

.ivk-brands {
  border: 1px solid #e8e8e4; border-radius: var(--ivk-radius-lg); background: #e8e8e4;
  display: grid; grid-template-columns: repeat(7, 1fr); gap: 1px; overflow: hidden;
  margin: 34px 0 56px;
}
.ivk-brand {
  background: var(--ivk-white); height: 76px; display: flex; align-items: center;
  justify-content: center; padding: 14px;
}
.ivk-brand:hover { background: #fafbf3; }
.ivk-brand img {
  max-height: 26px; max-width: 100%; width: auto; object-fit: contain;
  filter: grayscale(1); opacity: .6; transition: filter .15s, opacity .15s;
}
.ivk-brand:hover img { filter: grayscale(0); opacity: 1; }
.ivk-brand--more {
  background: var(--ivk-lime-light); flex-direction: column; gap: 3px; text-align: center;
}
.ivk-brand--more:hover { background: var(--ivk-lime-light-hover); }
.ivk-brand--more b { font-family: var(--ivk-font-head); font-weight: 800; font-size: 18px; color: var(--ivk-olive); line-height: 1; }
.ivk-brand--more span { font-size: 11.5px; font-weight: 700; color: var(--ivk-lime-dark); letter-spacing: .3px; }

/* 8. KATALOG -------------------------------------------------------------- */
/* Nadpis kategorie a popis pod ním jsou hutný blok – bez vzduchu nad štítky
   splývaly s textem v jednu masu. */
.ivk-chips { display: flex; gap: 12px; flex-wrap: wrap; padding: 32px 0 8px; margin: 0; list-style: none; }
/* Řádek nad výpisem kategorie: podkategorie vlevo, počet produktů vpravo. Odsazení
   nese řádek, ne chipsy – bez podkategorií v něm zůstane jen počet. */
.ivk-cat-bar { display: flex; align-items: center; gap: 16px 24px; padding: 32px 0 8px; }
.ivk-cat-bar .ivk-chips { padding: 0; flex: 1; }
.ivk-chip {
  border: 1px solid #e4e4e0; background: var(--ivk-white); border-radius: 22px;
  padding: 9px 18px; font-size: 13.5px; font-weight: 600; display: inline-block;
}
.ivk-chip:hover, .ivk-chip--active { border-color: var(--ivk-lime); background: #fafbf3; color: var(--ivk-ink); }
.ivk-chip--active { font-weight: 700; }

.ivk-shop { display: grid; grid-template-columns: 262px 1fr; gap: 32px; align-items: start; padding: 22px 0 144px; }
.ivk-no-filters .ivk-shop { grid-template-columns: 1fr; }
.ivk-filters-toggle { display: none; }
.ivk-shop__sidebar { display: flex; flex-direction: column; gap: 14px; }
.ivk-shop__main, .ivk-detail__main { min-width: 0; }
.ivk-shop__toolbar {
  display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap;
  border: 1px solid var(--ivk-line); border-radius: var(--ivk-radius); background: var(--ivk-white);
  padding: 12px 16px; margin-bottom: 18px;
}
.ivk-sort { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.ivk-sort__label { font-size: 13px; color: var(--ivk-muted-2); }
.ivk-sort a {
  font-size: 13.5px; font-weight: 600; padding: 6px 12px; border-radius: var(--ivk-radius-sm); background: #f5f6ef;
}
.ivk-sort__picker { display: none; }
/* Šipka v chipsech je jen pro mřížku na telefonu. */
.ivk-chip svg { display: none; }
.ivk-sort a:hover { background: var(--ivk-lime-light); color: var(--ivk-ink); }
.ivk-sort a.is-active { background: var(--ivk-lime-light); color: var(--ivk-olive); font-weight: 800; }

/* Widgety filtrů */
.ivk-shop__sidebar .widget {
  border: 1px solid var(--ivk-line); border-radius: var(--ivk-radius-lg);
  background: var(--ivk-white); padding: 18px 20px;
}
.ivk-shop__sidebar .widget-title, .ivk-shop__sidebar .widgettitle {
  font-family: var(--ivk-font); font-size: 13px; font-weight: 800; letter-spacing: .4px;
  display: block; margin: 0 0 12px; text-transform: uppercase;
}
.ivk-shop__sidebar .widget ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.ivk-shop__sidebar .widget li { font-size: 14px; }
.ivk-shop__sidebar .widget li a { display: inline-flex; gap: 8px; }
.ivk-shop__sidebar .widget .count { font-size: 12.5px; color: var(--ivk-faint); }
.ivk-shop__sidebar .widget li.chosen a { color: var(--ivk-lime-dark); font-weight: 700; }
.ivk-shop__sidebar .widget li.chosen a::before { content: none; }
/* Filtr značek – zaškrtávací políčka, jde vybrat víc značek (widgets.php).
   Políčko je kreslené, položka je odkaz; vybraná značka zůstává textem tmavá
   (ne limetková jako jinde), výběr nese zaškrtnuté políčko. Pozor:
   .ivk-check už je popisek nativního checkboxu (Jen skladem, přihlášení). */
.ivk-shop__sidebar .ivk-brands-filter li a { align-items: center; gap: 9px; }
.ivk-shop__sidebar .ivk-brands-filter li.chosen a { color: var(--ivk-ink); font-weight: 600; }
.ivk-brand-check {
  flex: 0 0 auto; width: 16px; height: 16px; border: 1.5px solid #c9c9c4; border-radius: 4px;
  background: var(--ivk-white); position: relative; transition: border-color .15s, background-color .15s;
}
.ivk-brands-filter a:hover .ivk-brand-check { border-color: var(--ivk-lime-dark); }
.ivk-brands-filter li.chosen .ivk-brand-check { background: var(--ivk-lime); border-color: var(--ivk-lime); }
.ivk-brands-filter li.chosen .ivk-brand-check::after {
  content: ""; position: absolute; left: 4.5px; top: 1px; width: 4px; height: 8px;
  border: solid var(--ivk-ink); border-width: 0 2px 2px 0; transform: rotate(45deg);
}
@media (prefers-reduced-motion: reduce) { .ivk-brand-check { transition: none; } }
.woocommerce .widget_price_filter .price_slider_wrapper .ui-widget-content { background: #ececec; border-radius: 2px; height: 4px; }
.woocommerce .widget_price_filter .ui-slider .ui-slider-range { background: var(--ivk-lime); }
.woocommerce .widget_price_filter .ui-slider .ui-slider-handle {
  background: var(--ivk-white); border: 2px solid var(--ivk-lime-dark); width: 14px; height: 14px; top: -5px;
}
.woocommerce .widget_price_filter .price_slider_amount .button { font-size: 13px; padding: 9px 16px; }
/* Rozsah cen se v širším Lato nevešel vedle tlačítka a lámal se uprostřed čísla
   („117 / 990 Kč“). Popisek drží pohromadě – když se nevejde, spadne celý pod tlačítko. */
.woocommerce .widget_price_filter .price_slider_amount { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 10px; }
.woocommerce .widget_price_filter .price_slider_amount .button { float: none; }
.woocommerce .widget_price_filter .price_slider_amount .price_label { white-space: nowrap; }
.woocommerce .widget_price_filter .price_slider_amount .clear { display: none; }

/* Mřížka produktů.
   Kotvou je třída .ivk na <body> (přidává ji ivk_body_class), ne .woocommerce –
   ta na úvodní stránce chybí a mřížka by se rozpadla na svislý seznam.
   Počty sloupců jsou v :where(), aby měly stejnou specificitu jako základní
   pravidlo a breakpointy v sekci 14 je dokázaly přebít. */
.ivk ul.products, .ivk-grid {
  display: grid; grid-template-columns: repeat(var(--ivk-cols, 3), 1fr); gap: 16px;
  list-style: none; margin: 0; padding: 0;
}
.ivk ul.products:where(.columns-1) { --ivk-cols: 1; }
.ivk ul.products:where(.columns-2) { --ivk-cols: 2; }
.ivk ul.products:where(.columns-3) { --ivk-cols: 3; }
.ivk ul.products:where(.columns-4) { --ivk-cols: 4; }
.ivk ul.products:where(.columns-5) { --ivk-cols: 5; }
.ivk ul.products::before, .ivk ul.products::after,
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
/* .woocommerce … drží specificitu nad float-layoutem z woocommerce-layout.css */
.woocommerce ul.products li.product,
/* min-width: 0 – položka mřížky se jinak roztáhne na šířku nejdelšího
   nezalomitelného textu (popisek s nowrap) a sloupce 1fr pak nejsou stejně
   široké a mřížka přeteče kontejner. */
.ivk ul.products li.product, .ivk-product {
  min-width: 0;
  border: 1px solid var(--ivk-line); border-radius: var(--ivk-radius); padding: 16px;
  background: var(--ivk-white); position: relative; display: flex; flex-direction: column;
  width: auto; float: none; margin: 0; transition: box-shadow .15s;
}
.woocommerce ul.products li.product:hover,
.ivk ul.products li.product:hover, .ivk-product:hover { box-shadow: var(--ivk-shadow); }

/* Přebití výchozího float-layoutu WooCommerce (woocommerce-layout.css / woocommerce.css).
   Jeho selektory typu `.woocommerce ul.products.columns-3 li.product` (0,4,2) a
   `.woocommerce ul.products li.product img` (0,3,3) mají vyšší specificitu než
   pravidla výše, jinak by kartám vnutil procentní šířky, floaty a margin pod obrázkem. */
.ivk.woocommerce ul.products[class*="columns-"] li.product {
  width: auto; float: none; clear: none; margin: 0;
}
.ivk.woocommerce ul.products li.product .ivk-product__media img {
  width: 100%; height: 100%; margin: 0;
}
/* 170 px – nad fotkou je řádek s kódem produktu; 190 px s ním dělalo kartu
   zbytečně vysokou. Dřív 210 px (bez kódu). */
.ivk-product__media { display: block; height: 170px; position: relative; margin: 0 0 12px; }
.ivk-product__media img { width: 100%; height: 100%; object-fit: contain; display: block; margin: 0; }
/* Pevné výšky značky (1 řádek), názvu (2 řádky) a popisku (1 řádek) – jinak
   karta bez značky nebo s jednořádkovým názvem posunula všechno pod sebou
   a v řádku mřížky nic nesedělo na stejné úrovni. */
.ivk-product__brand {
  display: block; min-height: 1.3em; line-height: 1.3;
  font-size: 11.5px; font-weight: 800; color: var(--ivk-faint); letter-spacing: .4px; text-transform: uppercase;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
/* Dlouhé názvy (typicky sety) roztahovaly celý řádek mřížky. Ořez řešíme v CSS,
   ne v PHP – plný název tak zůstává v HTML pro vyhledávače i čtečky a délka se
   přizpůsobí šířce sloupce. Prefixovaná varianta kvůli starším WebKitům. */
.ivk-product__title {
  font-weight: 700; font-size: 15px; margin: 3px 0 2px; line-height: 1.3; min-height: 2.6em;
  display: -webkit-box; -webkit-box-orient: vertical;
  -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden;
}
.ivk-product__title:hover, .ivk-product__title:focus { color: inherit; } /* bez zeleného hoveru – reaguje celá karta (stín) */
.ivk-product__sub {
  color: var(--ivk-muted-2); font-size: 13px; display: block; margin: 0 0 10px;
  min-height: 1.4em; line-height: 1.4; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.ivk-product__stock { margin-bottom: 12px; }
.ivk-product__foot { margin-top: auto; display: flex; justify-content: space-between; align-items: flex-end; gap: 10px; }
.ivk-product__price { line-height: 1.1; }
.ivk-product__price b, .ivk-product__price .amount { color: var(--ivk-lime-dark); font-size: 20px; font-weight: 800; }
.ivk-product__price del { display: block; color: #b5b5b5; font-size: 13px; }
.ivk-product__price del .amount { color: #b5b5b5; font-size: 13px; font-weight: 400; }
.ivk-product__price ins { text-decoration: none; }
/* „/ KS s DPH“ v řádku za cenou – pod ní zbytečně natahovalo patičku karty
   o řádek. Tmavá jako text, ne světle šedá – patří k ceně a světlá zanikala. */
.ivk-product__price-note { display: inline-block; margin-left: 4px; color: var(--ivk-ink-2); font-size: 13px; white-space: nowrap; }
/* Ikonové tlačítko „do košíku“ na kartě produktu.
   Selektor musí přebít .woocommerce ul.products li.product .button z woocommerce.css,
   jinak zůstane display:inline-block a vlastní padding – ikona pak není vycentrovaná. */
.ivk-product__cart .button,
.woocommerce ul.products li.product .ivk-product__cart .button {
  width: 38px; height: 38px; min-width: 38px; flex: 0 0 auto;
  padding: 0; margin: 0; border-radius: var(--ivk-radius-sm);
  font-size: 0; line-height: 0; gap: 0;
  display: inline-flex; align-items: center; justify-content: center;
}
.ivk-product__cart .button .ivk-icon { display: block; flex: 0 0 auto; }
.ivk-product__cart .button::before,
.ivk-product__cart .button::after { content: none; }

/* Po vložení do košíku připojí WooCommerce vedle tlačítka odkaz „Zobrazit košík“.
   V úzké kartě z něj byl prázdný limetkový čtverec (popisek je skrytý přes
   font-size: 0) a tlačítko kvůli němu uskočilo doleva. Potvrzením je počet
   kusů v hlavičce, který se aktualizuje fragmentem. */
.ivk-product__cart .added_to_cart,
.woocommerce ul.products li.product .ivk-product__cart .added_to_cart { display: none; }
.ivk-product__cart .button.added,
.woocommerce ul.products li.product .ivk-product__cart .button.added { background: var(--ivk-lime-dark); }

/* Potvrzení po vložení do košíku (footer.php + theme.js). */
.ivk-noscroll { overflow: hidden; }
.ivk-added { position: fixed; inset: 0; z-index: 200; display: flex; align-items: center; justify-content: center; padding: 20px; }
.ivk-added[hidden] { display: none; }
.ivk-added__overlay {
  position: absolute; inset: 0; background: rgba(26,26,26,.45);
  opacity: 0; transition: opacity .18s ease;
}
.ivk-added__box {
  position: relative; width: 100%; max-width: 680px; background: var(--ivk-white);
  border-radius: var(--ivk-radius-lg); padding: 30px 32px 28px;
  box-shadow: 0 24px 60px rgba(0,0,0,.22);
  /* S tipy je obsah na nízkém telefonu vyšší než obrazovka – jinak se nelze doscrollovat k tlačítkům. */
  max-height: calc(100vh - 40px); max-height: calc(100dvh - 40px); overflow-y: auto;
  opacity: 0; transform: translateY(12px) scale(.97);
  transition: opacity .2s ease, transform .22s cubic-bezier(.2,.8,.3,1);
}
/* Třídu přidává theme.js až v dalším snímku, aby přechod měl z čeho vyjít. */
.ivk-added--open .ivk-added__overlay { opacity: 1; }
.ivk-added--open .ivk-added__box { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .ivk-added__overlay, .ivk-added__box { transition: none; }
  .ivk-added__box { transform: none; }
}
.ivk-added__close {
  position: absolute; top: 14px; right: 14px; width: 34px; height: 34px;
  border: none; background: none; cursor: pointer; color: var(--ivk-muted-2);
  display: flex; align-items: center; justify-content: center; border-radius: 8px; padding: 0;
}
.ivk-added__close:hover { background: var(--ivk-line-3); color: var(--ivk-ink); }
/* theme.js po otevření přesune focus na křížek (přístupnost) – rámeček ale
   jen při ovládání klávesnicí, po klepnutí na „Do košíku“ působil jako chyba. */
.ivk-added__close:focus:not(:focus-visible) { outline: none; }
.ivk-added__box:focus { outline: none; }
.ivk-added__title {
  display: flex; align-items: center; gap: 9px; font-family: var(--ivk-font-head);
  font-size: 21px; font-weight: 800; color: var(--ivk-ink); margin-bottom: 22px;
}
.ivk-added__title svg { color: var(--ivk-lime-dark); }
.ivk-added__body { display: flex; align-items: center; gap: 16px; margin-bottom: 26px; }
.ivk-added__media {
  flex: 0 0 84px; width: 84px; height: 84px; border: 1px solid var(--ivk-line);
  border-radius: 10px; background: var(--ivk-white); display: flex;
  align-items: center; justify-content: center; overflow: hidden;
}
.ivk-added__media img { width: 100%; height: 100%; object-fit: contain; display: block; }
.ivk-added__text { min-width: 0; display: flex; flex-direction: column; gap: 7px; }
.ivk-added__name {
  font-size: 16px; font-weight: 600; line-height: 1.4; color: var(--ivk-ink); min-width: 0; overflow-wrap: anywhere;
  display: -webkit-box; -webkit-box-orient: vertical;
  -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden;
}
.ivk-added__price { font-size: 18px; font-weight: 800; line-height: 1.3; color: var(--ivk-lime-dark); }
.ivk-added__price del { font-weight: 600; font-size: 14px; color: var(--ivk-muted-2); margin-left: 7px; }
.ivk-added__price ins { text-decoration: none; }

.ivk-added__tips { border-top: 1px solid var(--ivk-line); padding-top: 22px; margin-bottom: 26px; }
/* Nadpis doporučení jako skutečný nadpis sekce (stejné písmo jako „Přidáno
   do košíku“) – malé verzálky ve 13 px v okně zanikaly. */
.ivk-added__tips-head {
  display: block; margin-bottom: 14px; font-family: var(--ivk-font-head);
  font-size: 18px; font-weight: 800; line-height: 1.2; color: var(--ivk-ink);
}
.ivk-added__tiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.ivk-added__tile {
  border: 1px solid var(--ivk-line); border-radius: var(--ivk-radius); padding: 12px 14px 14px;
  display: flex; flex-direction: column; gap: 8px; color: inherit; min-width: 0;
}
.ivk-added__tile:hover { border-color: var(--ivk-lime); background: #fafbf3; }
.ivk-added__tile-media { height: 84px; display: flex; align-items: center; justify-content: center; }
.ivk-added__tile-media img { max-width: 100%; max-height: 100%; object-fit: contain; display: block; }
/* Názvy doporučení obyčejným řezem – tučné 14 px v úzké dlaždici bylo
   husté a nečitelné a přetahovalo se s cenou. */
.ivk-added__tile-name {
  font-size: 13.5px; font-weight: 500; line-height: 1.4; color: var(--ivk-ink-2);
  display: -webkit-box; -webkit-box-orient: vertical;
  -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden;
}
.ivk-added__tile-price { font-size: 14.5px; font-weight: 800; line-height: 1.3; color: var(--ivk-lime-dark); margin-top: auto; }
.ivk-added__tile-price del { display: none; }
.ivk-added__tile-price ins { text-decoration: none; }

.ivk-added__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.ivk-added__actions .ivk-btn { width: 100%; }

/* „Načíst další produkty“ (initLoadMore v theme.js) – tlačítko uprostřed,
   vpravo vedle něj nenápadné stránkování: menší, bez rámečků, tlumené. Bez JS
   zůstává původní výrazné stránkování níž. */
.ivk-loadmore { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 16px; padding: 34px 0 0; }
.ivk-loadmore__btn { grid-column: 2; min-width: 240px; }
.ivk-loadmore__btn[disabled] { opacity: .7; cursor: progress; }
.woocommerce .ivk-loadmore nav.woocommerce-pagination { grid-column: 3; justify-self: end; padding: 0; }
.woocommerce .ivk-loadmore nav.woocommerce-pagination ul { gap: 2px; }
.woocommerce .ivk-loadmore nav.woocommerce-pagination ul li a,
.woocommerce .ivk-loadmore nav.woocommerce-pagination ul li span {
  width: 30px; height: 30px; border: 0; border-radius: var(--ivk-radius-sm); background: none;
  font-size: 13px; font-weight: 500; color: var(--ivk-muted-2);
}
.woocommerce .ivk-loadmore nav.woocommerce-pagination ul li a:hover { background: var(--ivk-line-3); color: var(--ivk-ink); }
.woocommerce .ivk-loadmore nav.woocommerce-pagination ul li span.current {
  background: var(--ivk-line-3); color: var(--ivk-ink); font-weight: 700; border: 0;
}
@media (max-width: 640px) {
  /* Na telefonu tlačítko přes celou šířku a stránkování pod ním na střed. */
  .ivk-loadmore { grid-template-columns: 1fr; gap: 12px; }
  .ivk-loadmore__btn { grid-column: 1; width: 100%; min-width: 0; }
  .woocommerce .ivk-loadmore nav.woocommerce-pagination { grid-column: 1; justify-self: center; }
}

/* Stránkování */
.woocommerce nav.woocommerce-pagination { padding: 34px 0 0; }
.woocommerce nav.woocommerce-pagination ul {
  display: flex; align-items: center; justify-content: center; gap: 8px; border: none; margin: 0;
}
.woocommerce nav.woocommerce-pagination ul li { border: none; margin: 0; overflow: visible; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  width: 38px; height: 38px; border: 1px solid #e4e4e0; border-radius: 8px;
  display: flex; align-items: center; justify-content: center; background: var(--ivk-white);
  font-weight: 700; font-size: 14px; padding: 0;
}
.woocommerce nav.woocommerce-pagination ul li a:hover { border-color: var(--ivk-lime); background: var(--ivk-white); }
.woocommerce nav.woocommerce-pagination ul li span.current {
  background: var(--ivk-lime); color: var(--ivk-white); border-color: var(--ivk-lime); font-weight: 800;
}

/* 9. DETAIL PRODUKTU ------------------------------------------------------ */
/* Drobečky jako šedý pruh přes celou šířku okna, navazující na menu (stejná
   barva, oddělený jen vlasovou linkou) – působí jako druhý řádek menu (vzor
   boukal.cz). Bílý pruh dělal mezi šedým menu a šedou stránkou třetí vrstvu.
   Drobečky jsou uvnitř .ivk-container, takže podklad přes celou šířku dělají
   stíny s obřím roztažením oříznuté clip-path jen do stran (bez 100vw – to by
   s posuvníkem přeteklo). Druhý a třetí stín jsou linky dole a nahoře.
   Jen CSS: oddělovač i domeček jsou masky, HTML ani filtr drobečků se nemění
   (katalog a stránky zůstávají beze změny). Selektor (0,2,0) jako u WooCommerce,
   vyhrává pořadím. Text „Domů“ zůstává v DOM kvůli čtečkám, jen má nulovou velikost. */
.single-product .woocommerce-breadcrumb {
  margin: 0 0 26px; padding: 9px 0; gap: 4px;
  background: #f4f4f4;
  box-shadow: 0 0 0 100vmax #f4f4f4, 0 1px 0 100vmax var(--ivk-line-2), 0 -1px 0 100vmax #e9e9e9;
  clip-path: inset(-1px -100vmax);
  font-size: 13px; color: var(--ivk-ink);
  /* Jeden řádek: dlouhý název produktu se zkrátí třemi tečkami, kategorie ne. */
  flex-wrap: nowrap; white-space: nowrap; overflow: hidden;
}
.single-product .woocommerce-breadcrumb > * { flex: 0 0 auto; }
.single-product .woocommerce-breadcrumb .ivk-crumb:last-child { flex: 0 1 auto; min-width: 0; max-width: 45ch; overflow: hidden; text-overflow: ellipsis; }
.single-product .woocommerce-breadcrumb a { color: var(--ivk-muted); font-weight: 500; }
.single-product .woocommerce-breadcrumb a:hover { color: var(--ivk-lime-dark); }
.single-product .woocommerce-breadcrumb [aria-hidden],
.single-product .woocommerce-breadcrumb .ivk-crumb:first-child a { display: inline-flex; align-items: center; font-size: 0; }
.single-product .woocommerce-breadcrumb [aria-hidden]::before,
.single-product .woocommerce-breadcrumb .ivk-crumb:first-child a::before {
  content: ""; width: 16px; height: 16px; background: currentColor;
  -webkit-mask: var(--ivk-crumb-icon) center / contain no-repeat; mask: var(--ivk-crumb-icon) center / contain no-repeat;
}
.single-product .woocommerce-breadcrumb [aria-hidden] {
  color: var(--ivk-faint); padding: 0 2px;
  --ivk-crumb-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6l6 6-6 6'/%3E%3C/svg%3E");
}
.single-product .woocommerce-breadcrumb .ivk-crumb:first-child a {
  padding: 2px; margin: -2px 0;
  --ivk-crumb-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 11l8-7 8 7'/%3E%3Cpath d='M6 9.5V20h12V9.5'/%3E%3Cpath d='M10 20v-6h4v6'/%3E%3C/svg%3E");
}
.single-product .woocommerce-breadcrumb .ivk-crumb:first-child a::before { width: 18px; height: 18px; }
.ivk-single { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 45px; padding: 8px 0 20px; }
.ivk-gallery { position: relative; }
.ivk-badge--single { top: 16px; left: 16px; font-size: 13px; padding: 4px 10px; }
.woocommerce div.product .ivk-gallery div.images,
.woocommerce div.product .ivk-gallery .woocommerce-product-gallery {
  width: auto; float: none; margin: 0; opacity: 1 !important;
  display: flex; flex-direction: row-reverse; align-items: flex-start; gap: 16px;
}
/*
 * Rámeček patří vnějšímu boxu: po inicializaci slideru je to .flex-viewport,
 * před ní (nebo bez slideru) samotný wrapper. Wrapper ani viewport NESMÍ být
 * flex kontejner – wrapper je pás slidů, kterému FlexSlider nastavuje šířku
 * inline a posouvá ho; jako flex položky se všechny fotky zmáčkly vedle sebe.
 */
.woocommerce div.product .ivk-gallery .flex-viewport,
.woocommerce div.product .ivk-gallery .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper {
  flex: 1; min-width: 0; border: 1px solid var(--ivk-line); border-radius: var(--ivk-radius-lg);
  background: var(--ivk-white); overflow: hidden; min-height: 512px;
}
.woocommerce div.product .ivk-gallery .woocommerce-product-gallery__image { width: 100%; }
/* Fotku centruje odkaz uvnitř slidu – <li> má display nastavený inline od FlexSlideru. */
.woocommerce div.product .ivk-gallery .woocommerce-product-gallery__image > a {
  display: flex; align-items: center; justify-content: center; min-height: 512px;
}
.woocommerce div.product .ivk-gallery .woocommerce-product-gallery__image img {
  width: 100%; max-height: 512px; object-fit: contain; display: block;
}
/* Fotka se zvětší až kliknutím (lightbox), kurzor to naznačí. */
.woocommerce div.product .ivk-gallery .woocommerce-product-gallery__image a { cursor: zoom-in; }
.woocommerce div.product div.images .flex-control-thumbs {
  flex: 0 0 74px; display: flex; flex-direction: column; gap: 12px; margin: 0; padding: 0;
}
.woocommerce div.product div.images .flex-control-thumbs li {
  width: 74px; height: 74px; float: none; margin: 0; list-style: none;
}
.woocommerce div.product div.images .flex-control-thumbs li img {
  width: 74px; height: 74px; object-fit: contain; border: 1px solid #e6e6e6;
  border-radius: 8px; opacity: 1; background: var(--ivk-white); padding: 4px;
}
.woocommerce div.product div.images .flex-control-thumbs li img.flex-active { border-color: var(--ivk-lime); }
/* Náhledů ukazujeme pět; na pátém sedí „+N“ a otevírá lightbox (theme.js). */
.woocommerce div.product div.images .flex-control-thumbs li:nth-child(n+6) { display: none; }
.woocommerce div.product div.images .flex-control-thumbs li.ivk-thumb--more { position: relative; cursor: pointer; }
.ivk-thumb-more {
  position: absolute; inset: 0; border-radius: 8px; background: rgba(26,26,26,.58); color: var(--ivk-white);
  font-weight: 800; font-size: 15px; display: flex; align-items: center; justify-content: center;
  pointer-events: none;
}
/* WooCommerce má `div.product div.summary { float:right; width:48% }` (0,3,2);
   reset musí mít vyšší specificitu, jinak je pravý sloupec jen 48 % šířky. */
.woocommerce div.product div.summary.ivk-summary { float: none; width: auto; margin: 0; }
.ivk-summary__brand { color: var(--ivk-lime-dark); font-weight: 800; font-size: 13px; letter-spacing: .5px; text-transform: uppercase; }
/* Nadpis má stažené řádkování (1.05), takže 8px pod ním opticky splývalo
   s řádkem dostupnosti – 16px dá nadpisu vzduch, aniž by summary narostlo. */
.woocommerce div.product .ivk-summary h1.product_title { font-size: 28px; margin: 6px 0 14px; line-height: 1.1; }
.ivk-summary__sku { color: var(--ivk-muted-2); font-size: 14px; margin: 0 0 18px; }
.ivk-summary__avail { display: flex; align-items: center; gap: 14px; margin-bottom: 22px; flex-wrap: wrap; }
.ivk-summary__avail .ivk-stock { font-size: 14px; }
.ivk-summary__avail .ivk-stock::before { width: 8px; height: 8px; }
.ivk-summary__avail-note { color: var(--ivk-muted-2); font-size: 14px; }
/* Cena a nákup bez rámečku – přímo na stránce jako zbytek obsahu, od
   dostupnosti a od klíčových parametrů je oddělují jen tenké linky (stejné
   jako řádky parametrů). Karta i béžový podklad působily jako cizí prvek. */
.ivk-pricebox {
  background: none; border: 0; border-top: 1px solid var(--ivk-line); border-bottom: 1px solid var(--ivk-line);
  border-radius: 0; padding: 22px 0 24px; margin-bottom: 26px;
}
.woocommerce div.product .ivk-pricebox p.price, .woocommerce div.product .ivk-pricebox span.price {
  display: flex; align-items: flex-end; gap: 14px; margin: 0 0 6px; color: var(--ivk-lime-dark);
  font-family: var(--ivk-font-head); font-size: 38px; font-weight: 700; line-height: 1;
}
/* WooCommerce vypisuje <del> před <ins>; návrh má aktuální cenu vlevo. */
.woocommerce div.product .ivk-pricebox p.price ins { text-decoration: none; font-weight: 700; order: -1; }
.woocommerce div.product .ivk-pricebox p.price del {
  color: #b5b5b5; font-size: 19px; font-family: var(--ivk-font); font-weight: 400;
  opacity: 1; padding-bottom: 8px;
}
/* Cena stejně jako v kartách: „6 990 Kč / KS s DPH“ v jednom řádku a pod
   ním menší řádek s cenou bez DPH. (Tři řádky pod sebou nechávaly prázdné
   místo, dvě poznámky vedle ceny byly nesrozumitelné.) Cena i poznámka jsou
   inline na účaří – u dlouhé ceny se slevou se poznámka zalomí pod ni. */
.woocommerce div.product .ivk-pricebox p.price { display: inline-flex; vertical-align: baseline; margin: 0 8px 0 0; }
.ivk-pricebox__note { display: inline-block; vertical-align: baseline; font-size: 15px; color: var(--ivk-ink-2); margin: 0; }
/* Cena bez DPH – menší, šedá a netučná, ať nekonkuruje ceně s DPH. */
.ivk-pricebox__excl { font-size: 14px; color: var(--ivk-muted-2); margin: 6px 0 0; }
.ivk-pricebox__excl .amount { font-weight: 400; color: inherit; }
.woocommerce div.product .ivk-pricebox form.cart { margin-top: 20px; }
.woocommerce div.product form.cart { display: flex; gap: 14px; align-items: stretch; margin: 0; }
/* WooCommerce dává formuláři clearfix (::before/::after s display: table).
   Ve flexboxu se z nich staly prázdné položky a s gapem odsunuly množství
   o 14 px doprava – řádek s tlačítky pak nelícoval s cenou. */
.woocommerce div.product form.cart::before,
.woocommerce div.product form.cart::after { content: none; }
.woocommerce div.product form.cart .button {
  flex: 1; font-size: 16px; font-weight: 800; border-radius: 8px; padding: 16px 24px;
  background: var(--ivk-lime); color: var(--ivk-white);
}
.woocommerce div.product form.cart .button:hover { background: #adc228; color: var(--ivk-white); }
.woocommerce div.product form.cart div.quantity { float: none; margin: 0; }
.woocommerce div.product form.cart .variations { margin-bottom: 12px; }

/*
 * Po AJAX přidání dolepí WooCommerce k tlačítku fajfku a odkaz „Zobrazit košík".
 * Na detailu to za nás říká modál, tlačítko tedy necháváme v původním stavu.
 */
.woocommerce div.product form.cart .added_to_cart { display: none; }
.woocommerce div.product form.cart .button.added::after { content: none; }
.ivk-keyparams { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 24px; margin-top: 4px; }
.ivk-keyparams__row {
  display: flex; justify-content: space-between; gap: 12px;
  border-bottom: 1px solid #f0f0f0; padding: 7px 0; font-size: 14px;
}
.ivk-keyparams__row span { color: var(--ivk-muted-2); }
.ivk-summary h3 { font-family: var(--ivk-font); font-size: 16px; font-weight: 800; margin: 0 0 14px; }

.ivk-detail { display: grid; grid-template-columns: 1fr 340px; gap: 40px; align-items: start; padding: 36px 0 8px; border-top: 1px solid #f0f0f0; margin-top: 24px; }
.ivk-detail h2 { font-size: 24px; margin: 0 0 18px; }
.ivk-detail__desc { color: #3f3f3f; font-size: 16px; line-height: 1.75; }
.ivk-specs { border: 1px solid var(--ivk-line); border-radius: var(--ivk-radius); overflow: hidden; }
.ivk-specs__row { display: flex; font-size: 15px; }
.ivk-specs__row:hover { background: #fafbf4; }
.ivk-specs__row > span:first-child {
  flex: 0 0 45%; padding: 13px 20px; color: #6b6b6b; border-bottom: 1px solid var(--ivk-line-3); background: #fafafa;
}
.ivk-specs__row > span:last-child { flex: 1; padding: 13px 20px; font-weight: 600; border-bottom: 1px solid var(--ivk-line-3); }

/* Sekce v levém sloupci detailu odděluje vlasová linka – stejně jako recenze. */
.ivk-detail__block + .ivk-detail__block {
  margin-top: 32px; padding-top: 26px; border-top: 1px solid var(--ivk-line);
}

/* Recenze – WooCommerce je lepí rovnou pod specifikace, potřebují oddělit. */
.woocommerce #reviews {
  margin-top: 32px; padding-top: 26px; border-top: 1px solid var(--ivk-line);
}
.woocommerce #reviews .woocommerce-Reviews-title { font-size: 24px; margin: 0 0 16px; }
.woocommerce #reviews .woocommerce-noreviews { color: var(--ivk-muted); margin: 0; }
.woocommerce #reviews #review_form_wrapper { margin-top: 28px; }
.woocommerce #reviews .comment-reply-title {
  display: block; font-size: 16px; font-weight: 700; color: var(--ivk-ink); margin-bottom: 18px;
}
.woocommerce #reviews .comment-form { display: flex; flex-direction: column; gap: 16px; margin: 0; }
/* WooCommerce dává odstavcům ve formuláři `#review_form #respond p { margin-bottom: 10px }`
   – dvě ID, proto stejně dlouhý selektor. Jinak se jeho okraj sčítá s gapem. */
.woocommerce #review_form #respond .comment-form > p { margin: 0; }
.woocommerce #reviews .comment-form label {
  display: block; font-size: 13.5px; font-weight: 700; margin-bottom: 8px;
}
.woocommerce #reviews .comment-form .required { color: var(--ivk-lime-dark); }
/* Pole jako inline-block nechávají pod sebou mezeru po účaří písma. */
.woocommerce #reviews .comment-form textarea,
.woocommerce #reviews .comment-form input[type="text"],
.woocommerce #reviews .comment-form input[type="email"] { display: block; }
.woocommerce #reviews .comment-form-comment textarea {
  width: 100%; min-height: 120px; border: 1px solid var(--ivk-line-2); border-radius: 8px;
  padding: 13px 14px; font: inherit; font-size: 15px; resize: vertical;
}
.woocommerce #reviews .comment-form-comment textarea:focus { border-color: var(--ivk-lime); outline: none; }
/* Souhlas s cookies: zaškrtávátko a popisek na jednom řádku, ne pod sebou. */
.woocommerce #reviews .comment-form-cookies-consent { display: flex; align-items: center; gap: 10px; }
.woocommerce #reviews .comment-form-cookies-consent input { margin: 0; flex: none; }
.woocommerce #reviews .comment-form-cookies-consent label { margin: 0; font-weight: 400; }

/* Hvězdičky hodnocení – zelené včetně stavu při najetí a po výběru. */
.woocommerce #review_form #respond p.stars { margin: 0; line-height: 1; }
.woocommerce #reviews p.stars a { color: var(--ivk-lime); font-size: 20px; }
.woocommerce #reviews p.stars:hover a,
.woocommerce #reviews p.stars.selected a { color: var(--ivk-lime-dark); }
.woocommerce .star-rating { color: var(--ivk-lime); }

.ivk-detail__aside { position: sticky; top: 20px; display: flex; flex-direction: column; gap: 16px; }
.ivk-availability__row {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 14px 20px; border-bottom: 1px solid #f4f4f4;
}
.ivk-availability__row b { font-size: 14px; display: block; }
.ivk-availability__row span.ivk-availability__town { font-size: 12.5px; color: var(--ivk-muted-2); }
.ivk-availability__cta { display: flex; align-items: center; justify-content: center; gap: 7px; padding: 14px; font-size: 13px; font-weight: 700; color: var(--ivk-lime-dark); }
.ivk-downloads { display: flex; flex-direction: column; gap: 2px; }
.ivk-downloads a { display: flex; align-items: center; gap: 11px; padding: 9px 0; font-size: 14px; }
.ivk-downloads a:hover { color: var(--ivk-lime-dark); }
.ivk-downloads svg { color: var(--ivk-lime-dark); }
.ivk-downloads__name { flex: 1; }
.ivk-downloads__size { font-size: 12px; color: var(--ivk-faint); }
.ivk-related { padding: 40px 0 64px; }
.ivk-related h2 { font-size: 24px; margin: 0 0 24px; }
.ivk-related .ivk-product__media { height: 160px; }

/* 10. KOŠÍK --------------------------------------------------------------- */
.ivk-steps { display: flex; align-items: center; gap: 0; padding: 26px 0 4px; flex-wrap: wrap; }
.ivk-step { display: flex; align-items: center; gap: 10px; }
.ivk-step__link { display: flex; align-items: center; gap: 10px; }
.ivk-step__num {
  width: 26px; height: 26px; border-radius: 50%; background: #ececec; color: var(--ivk-faint);
  font-weight: 800; font-size: 13px; display: flex; align-items: center; justify-content: center;
}
.ivk-step__label { font-size: 14px; color: var(--ivk-faint); }
.ivk-step--active .ivk-step__num { background: var(--ivk-lime); color: var(--ivk-white); }
.ivk-step--active .ivk-step__label { color: var(--ivk-ink); font-weight: 700; }
.ivk-step--done .ivk-step__num {
  background: var(--ivk-lime-light); color: var(--ivk-olive); font-size: 0; position: relative;
}
/* Fajfka kreslená rámečkem – znak ✓ Barlow neobsahuje a nahrazoval ho
   náhradní glyf, který vypadal jako poškozená trojka. */
.ivk-step--done .ivk-step__num::after {
  content: ""; position: absolute; top: 50%; left: 50%;
  width: 5px; height: 9px; margin: -6px 0 0 -3px;
  border: solid currentColor; border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.ivk-step--done .ivk-step__num svg { display: none; }
.ivk-step--done .ivk-step__label { color: var(--ivk-olive); font-weight: 600; }
/* Hotový krok s vlastním panelem se dá prokliknout zpět (viz theme.js). */
.ivk-step--link { cursor: pointer; }
.ivk-step--link:hover .ivk-step__label { color: var(--ivk-lime-dark); }
.ivk-step--link:focus-visible { outline: 2px solid var(--ivk-lime-dark); outline-offset: 3px; border-radius: 6px; }
.ivk-step__sep { width: 34px; height: 1px; background: var(--ivk-line-2); display: block; margin: 0 12px; }
.ivk-step:last-child .ivk-step__sep { display: none; }

.ivk-checkout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 24px; align-items: start; padding: 22px 0 64px; }
/* Bez `position: sticky` – lepivý souhrn se při scrollování odlepoval
   od karet vlevo a horní hrany si přestaly odpovídat. */
.ivk-checkout__aside { display: flex; flex-direction: column; gap: 14px; }

.ivk-cart-line {
  display: grid; grid-template-columns: 72px minmax(0, 1fr) auto 112px 28px;
  gap: 12px 20px; align-items: center; padding: 16px 18px; border-bottom: 1px solid var(--ivk-line-3);
}
.ivk-cart-line:last-of-type { border-bottom: none; }
.ivk-cart-line__thumb { width: 72px; height: 64px; position: relative; border: 1px solid #f0f0f0; border-radius: 8px; overflow: hidden; }
.ivk-cart-line__thumb img { width: 100%; height: 100%; object-fit: contain; display: block; }
.ivk-cart-line__brand { font-size: 11.5px; font-weight: 800; color: var(--ivk-faint); letter-spacing: .4px; text-transform: uppercase; }
/* Název nejvýš na dva řádky a na počítači v rozumné šířce – dlouhé názvy
   setů se táhly až k počítadlu kusů (na mobilu na čtyři řádky). Celý je
   v atributu title a v detailu produktu. */
.ivk-cart-line__name {
  font-weight: 700; font-size: 15px; margin: 3px 0 5px; line-height: 1.35; max-width: 34em;
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden;
}
.ivk-cart-line__meta { font-size: 13px; color: var(--ivk-muted-2); display: block; margin-bottom: 7px; }
.ivk-cart-line__total { text-align: right; }
.ivk-cart-line__total b { font-size: 16px; font-weight: 800; color: var(--ivk-ink); display: block; white-space: nowrap; }
/* Jen přímý potomek – cena v <b> je od WooCommerce taky ve <span>u a dřív
   tím zmalátněla na drobné šedé písmo. */
.ivk-cart-line__total > span { font-size: 12px; color: var(--ivk-faint); white-space: nowrap; }
.ivk-cart-line__remove {
  width: 28px; height: 28px; border: none; background: transparent; cursor: pointer;
  display: flex; align-items: center; justify-content: center; padding: 0; color: #c4c4c4;
}
.ivk-cart-line__remove:hover { color: #d64545; }
.ivk-cart-foot {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  flex-wrap: wrap; padding: 16px 18px; background: #fafafa; border-top: 1px solid var(--ivk-line-3);
}
.ivk-cart-foot__subtotal { font-size: 14px; color: var(--ivk-muted-2); }
.ivk-cart-foot__subtotal b { color: var(--ivk-ink); font-size: 16px; margin-left: 6px; }

.ivk-summary-card__rows { display: flex; flex-direction: column; gap: 11px; font-size: 14.5px; }
.ivk-summary-card__rows > span { display: flex; justify-content: space-between; gap: 10px; }
.ivk-summary-card__rows > span > span:first-child { color: var(--ivk-muted); }
.ivk-summary-card__rows > span > b { white-space: nowrap; }
.ivk-summary-card__free { color: var(--ivk-lime-dark); }
.ivk-summary-card__shipping { display: flex; justify-content: space-between; gap: 10px; }
.ivk-summary-card__shipping > span:first-child { color: var(--ivk-muted); }
.ivk-summary-card__rows .ivk-choice { align-items: flex-start; }
.ivk-summary-card__rows .ivk-choice__body { flex: 1 1 auto; min-width: 0; }
.ivk-summary-card__rows .ivk-choice__body b { white-space: normal; overflow-wrap: anywhere; }
.ivk-summary-card__rows .ivk-shipping__label { display: none; }

/* Karta „Způsob doručení“ – první v panelu kroku 3, bez horního odsazení,
   aby lícovala se souhrnem v pravém sloupci. */
.ivk-delivery .ivk-shipping__label,
.ivk-delivery .woocommerce-shipping-destination { display: none; }
.ivk-delivery .ivk-choice__body b { overflow-wrap: anywhere; }
.ivk-summary-card__total {
  border-top: 1px solid #f0f0f0; margin-top: 16px; padding-top: 16px;
  display: flex; justify-content: space-between; align-items: flex-end; gap: 10px;
}
.ivk-summary-card__total-label { line-height: 1.2; }
.ivk-summary-card__total-label b { font-size: 15px; display: block; }
.ivk-summary-card__total-label span { font-size: 12.5px; color: var(--ivk-faint); }
.ivk-summary-card__total-value {
  font-family: var(--ivk-font-head); font-size: 28px; font-weight: 800;
  color: var(--ivk-lime-dark); line-height: 1; white-space: nowrap;
}
/* WooCommerce lepí za částku <small class="includes_tax"> s rozpisem DPH;
   návrh má tenhle údaj jako samostatný popisek vlevo. */
.ivk-summary-card__total-value .includes_tax { display: none; }
.ivk-summary-card__total-label b,
.ivk-summary-card__total-label span { white-space: nowrap; }
.ivk-summary-card .ivk-btn { margin-top: 18px; }
.ivk-mini-line {
  display: grid; grid-template-columns: 1fr auto; gap: 12px; align-items: center;
  padding: 10px 0; border-bottom: 1px solid #f4f4f4; font-size: 13.5px;
}
.ivk-mini-line span { color: var(--ivk-muted); }

/* 11. OBJEDNÁVKA (checkout / poděkování) ---------------------------------- */
.woocommerce form.checkout { display: contents; }
.ivk-checkout__col { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.woocommerce-billing-fields h3, .woocommerce-shipping-fields h3,
.woocommerce-additional-fields h3, .woocommerce-checkout .ivk-checkout__col h3 {
  font-family: var(--ivk-font-head); font-size: 20px; font-weight: 800; margin: 0 0 16px;
}
.woocommerce form .form-row { padding: 0; margin: 0 0 14px; }
.woocommerce form .form-row label { font-size: 12.5px; font-weight: 700; color: #6b6b6b; letter-spacing: .2px; margin-bottom: 6px; display: block; }
.woocommerce form .form-row .required { color: #d64545; }
.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper,
.woocommerce-additional-fields__field-wrapper,
.woocommerce-address-fields__field-wrapper { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; }
.woocommerce form .form-row-wide, .woocommerce form .form-row.notes { grid-column: 1 / -1; }
/* WooCommerce dává řádkům `float:left; width:47%`. Float uvnitř gridu nic nedělá,
   ale šířka ano – pole pak zabíralo jen 47 % svého sloupce a mezi „Křestní jméno“
   a „Příjmení“ zela díra. Šířku řídí mřížka. */
.woocommerce form .form-row-first,
.woocommerce form .form-row-last,
.woocommerce form .form-row-wide { float: none; width: auto; }
.woocommerce-input-wrapper { display: block; }
#ship-to-different-address { font-size: 15px; }
#ship-to-different-address label { display: flex; align-items: center; gap: 10px; font-weight: 700; font-size: 14px; }
.woocommerce-checkout #payment { background: transparent; border-radius: 0; }
.woocommerce-checkout #payment ul.payment_methods { padding: 0; border: none; list-style: none; display: flex; flex-direction: column; gap: 10px; }
.woocommerce-checkout #payment ul.payment_methods li {
  border: 1px solid var(--ivk-line-2); border-radius: 10px; padding: 13px 15px; background: var(--ivk-white);
}
.woocommerce-checkout #payment ul.payment_methods li input[type=radio] { margin-right: 10px; }
.woocommerce-checkout #payment ul.payment_methods li label { display: inline-flex; align-items: center; gap: 10px; font-size: 14.5px; font-weight: 700; }
.woocommerce-checkout #payment div.payment_box {
  background: var(--ivk-quiet); font-size: 13px; color: var(--ivk-muted); margin: 10px 0 0; border-radius: 8px;
}
.woocommerce-checkout #payment div.payment_box::before { display: none; }
.woocommerce-checkout #payment div.form-row { padding: 0; margin: 0; }

/* Pokladna ve dvou krocích (viz form-checkout.php a theme.js). */
/* Panel přebírá rozestupy sloupce – karty uvnitř by jinak byly nalepené,
   protože gap z .ivk-checkout__col působí až mezi panely. */
.ivk-pane { display: flex; flex-direction: column; gap: 14px; }
.ivk-pane[hidden] { display: none; }
.ivk-wizard__nav { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin-top: 18px; }
.ivk-wizard__nav [data-ivk-next] { margin-left: auto; }
.ivk-wizard__nav button.ivk-link-back { border: none; background: none; cursor: pointer; font: inherit; padding: 0; }
.ivk-wizard__nav [hidden] { display: none; }
.woocommerce form .form-row.woocommerce-invalid input.input-text,
.woocommerce form .form-row.woocommerce-invalid select,
.woocommerce form .form-row.woocommerce-invalid textarea { border-color: #d64545; background: #fffafa; }
.woocommerce form .form-row.woocommerce-invalid label { color: #d64545; }
/* Blok dopravy sem přesouvá JS – nadpis má karta, vnitřní popisek je navíc. */
.ivk-delivery .ivk-slot .ivk-shipping__label,
.ivk-delivery .ivk-slot .woocommerce-shipping-destination { display: none; }
/* Platební box má vlastní kartu (.ivk-paymentbox), vnitřní rámeček by dělal
   rámeček v rámečku. Musí přebít `.woocommerce-checkout #payment` (1,1,0). */
.woocommerce-checkout .ivk-paymentbox #payment {
  background: none; border: none; border-radius: 0; padding: 0;
}
.woocommerce-checkout #payment .place-order { padding: 0; }
.woocommerce-terms-and-conditions-wrapper { font-size: 13px; color: #6b6b6b; line-height: 1.5; }
.woocommerce-terms-and-conditions-wrapper a { color: var(--ivk-lime-dark); font-weight: 700; }
.ivk-review-table { width: 100%; border-collapse: collapse; }
.ivk-review-table th { text-align: left; font-weight: 700; }

.ivk-thankyou {
  background: var(--ivk-lime-light); border-radius: 14px; padding: 44px 44px 40px;
  display: flex; gap: 26px; align-items: flex-start; margin-bottom: 16px;
}
.ivk-thankyou__icon {
  width: 58px; height: 58px; border-radius: 50%; background: var(--ivk-lime);
  display: flex; align-items: center; justify-content: center; flex-shrink: 0; color: var(--ivk-white);
}
.ivk-thankyou h2 { font-size: 26px; margin: 0 0 10px; line-height: 1.1; }
.ivk-thankyou p { font-size: 16.5px; color: #3f4600; line-height: 1.6; margin: 0; max-width: 58ch; }
/* Částka byla dřív drobný řádek pod odstavcem – dostává vlastní patu bloku,
   aby nekonkurovala nadpisu, ale nezanikla. */
.ivk-thankyou__total {
  display: block; margin-top: 20px; padding-top: 16px;
  border-top: 1px solid rgba(90, 106, 0, .18);
  font-size: 13px; font-weight: 700; letter-spacing: .4px; text-transform: uppercase;
  color: var(--ivk-olive);
}
.ivk-thankyou__total b {
  display: block; margin-top: 4px; font-family: var(--ivk-font-head);
  font-size: 30px; font-weight: 800; letter-spacing: normal; text-transform: none;
  color: var(--ivk-lime-dark); line-height: 1;
}

/* Adresy pod objednávkou – karty ve stejném stylu jako zbytek stránky.
   Kartou je samotný <address>: bez doručovací adresy WooCommerce obal
   .woocommerce-column vůbec nevykreslí, takže se na něj nedá spolehnout.
   Selektory musí přebít vlastní styl WooCommerce (0,2,1). */
/* Odstupy mezi kartou se zbožím, tabulkou objednávky a adresami.
   Ve výchozím stavu bylo nad nadpisem 14 px a nad adresami 74 px. */
.woocommerce .woocommerce-order-details { margin-top: 22px; margin-bottom: 18px; }
.woocommerce .woocommerce-customer-details { margin-top: 0; }
.woocommerce .woocommerce-customer-details .woocommerce-columns--addresses {
  display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 0;
}
/* WooCommerce má na .col2-set clearfix přes ::before/::after. V gridu se z nich
   stanou plnohodnotné položky – zabraly první a poslední buňku a adresy se
   rozhodily do dvou řádků na přeskáčku. */
.woocommerce .woocommerce-customer-details .woocommerce-columns--addresses::before,
.woocommerce .woocommerce-customer-details .woocommerce-columns--addresses::after {
  content: none;
}
.woocommerce .woocommerce-customer-details .woocommerce-column {
  margin: 0; width: auto; float: none;
}
.woocommerce .woocommerce-customer-details .woocommerce-column__title {
  font-family: var(--ivk-font); font-size: 13px; font-weight: 800;
  letter-spacing: .3px; text-transform: uppercase; color: var(--ivk-muted-2);
  margin: 0 0 10px;
}
.woocommerce .woocommerce-customer-details address {
  border: 1px solid var(--ivk-line); border-radius: var(--ivk-radius-lg);
  background: var(--ivk-white); padding: 20px 22px; width: auto;
  font-style: normal; font-size: 14.5px; line-height: 1.75; color: var(--ivk-ink);
}
.woocommerce .woocommerce-customer-details address p {
  display: flex; align-items: center; gap: 9px;
  margin: 12px 0 0; padding-top: 12px; border-top: 1px solid var(--ivk-line-3);
  font-size: 14px; color: var(--ivk-muted); line-height: 1.4;
}
.woocommerce .woocommerce-customer-details address p + p { border-top: none; padding-top: 0; margin-top: 6px; }
.woocommerce .woocommerce-customer-details address p::before { color: var(--ivk-lime-dark); }
.ivk-next { display: grid; grid-template-columns: 34px 1fr; gap: 14px; align-items: start; padding: 12px 0; border-bottom: 1px solid #f4f4f4; }
.ivk-next:last-child { border-bottom: none; }
.ivk-next__num { font-family: var(--ivk-font-head); font-size: 24px; font-weight: 800; color: #d6ddb0; line-height: 1; }
.ivk-next b { font-size: 15px; display: block; margin-bottom: 3px; }
.ivk-next span { font-size: 13.5px; color: var(--ivk-muted); line-height: 1.55; }
.ivk-order-line {
  display: grid; grid-template-columns: 64px 1fr auto; gap: 16px; align-items: center;
  padding: 14px 20px; border-bottom: 1px solid #f4f4f4;
}
.ivk-order-line__thumb { width: 64px; height: 56px; position: relative; border: 1px solid #f0f0f0; border-radius: 6px; overflow: hidden; }
.ivk-order-line__thumb img { width: 100%; height: 100%; object-fit: contain; display: block; }
.ivk-order-line b { font-size: 14.5px; display: block; line-height: 1.3; }
.ivk-order-line span { font-size: 12.5px; color: var(--ivk-muted-2); }

/* Woo hlášky */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-notice {
  border: 1px solid var(--ivk-line); background: var(--ivk-white);
  border-radius: var(--ivk-radius); padding: 16px 20px;
  margin: 0 0 18px; list-style: none; font-size: 14.5px;
  display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap;
}
.woocommerce-message, .woocommerce-notice { border-color: #d8e39b; background: #f7faec; }
.woocommerce-info { border-color: var(--ivk-line-2); background: #f7f7f5; }
.woocommerce-error { border-color: #e9b8b8; background: #fdf4f4; }

/*
 * WooCommerce po přidání hlášky nastaví boxu tabindex="-1" a zaostří ho, aby
 * na něj skočil odečítač obrazovky. Prohlížeč k tomu ale přimaluje náš zelený
 * focus rámeček a kolem hlášky jsou pak dva pruhy. Klávesnicí se sem stejně
 * nedá dostat, takže tady rámeček nechceme.
 */
.woocommerce-message:focus, .woocommerce-info:focus,
.woocommerce-error:focus, .woocommerce-notice:focus,
.woocommerce-notices-wrapper:focus { outline: none; }
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { display: none; }
.woocommerce-message .button, .woocommerce-info .button { font-size: 13.5px; padding: 11px 18px; }

/* 12. ÚČET / PŘIHLÁŠENÍ --------------------------------------------------- */
.ivk-login { display: flex; justify-content: center; padding: 26px 0 72px; }
.ivk-login__box {
  width: 100%; max-width: 940px; border: 1px solid #e8e8e4; border-radius: 16px; overflow: hidden;
  background: var(--ivk-white); display: grid; grid-template-columns: minmax(0, 320px) minmax(0, 1fr);
}
.ivk-login__perks { border-right: 1px solid var(--ivk-line); padding: 38px 32px 34px; display: flex; flex-direction: column; }
.ivk-login__perks b { font-family: var(--ivk-font-head); font-size: 24px; font-weight: 800; display: block; line-height: 1.15; margin-bottom: 10px; }
.ivk-login__perks p { font-size: 13.5px; color: var(--ivk-muted); line-height: 1.6; margin: 0 0 26px; }
.ivk-login__perks ul { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.ivk-login__perks li { display: flex; align-items: flex-start; gap: 10px; font-size: 13.5px; color: var(--ivk-ink-2); line-height: 1.5; }
.ivk-login__perks svg { color: var(--ivk-lime-dark); margin-top: 2px; }
.ivk-login__form { padding: 38px 40px 34px; }
.ivk-login__form h1 { font-size: 28px; margin: 0 0 6px; line-height: 1.05; }
.ivk-login__intro { font-size: 14px; color: var(--ivk-muted); line-height: 1.6; margin: 0 0 24px; }
.ivk-login__intro a, .ivk-login__note a { color: var(--ivk-lime-dark); font-weight: 700; }
.ivk-login__row { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; padding: 16px 0 20px; }
.ivk-login__sep { display: flex; align-items: center; gap: 13px; padding: 22px 0 18px; width: 100%; }
.ivk-login__sep span:first-child, .ivk-login__sep span:last-child { flex: 1; height: 1px; background: var(--ivk-line); display: block; }
.ivk-login__sep-text { font-size: 11.5px; color: var(--ivk-faint); font-weight: 700; letter-spacing: .4px; }
.ivk-login__note { font-size: 12.5px; color: var(--ivk-faint); line-height: 1.6; margin: 22px 0 0; }

/* Formulář podle návrhu (ivk.loit.cz → Přihlášení). Rozměry jsou změřené,
   barvy už odpovídají proměnným tématu. Zúženo na .ivk-login, ať to
   neovlivní pokladnu, která má popisky v běžné velikosti. */
.ivk-login .ivk-login__form .form-row label {
  font-size: 12px; font-weight: 700; letter-spacing: .3px;
  text-transform: uppercase; color: #6b6b6b; margin-bottom: 7px;
}
/* Musí přebít základní styl polí `.woocommerce form .form-row input.input-text`
   z oddílu 4, který má specificitu (0,3,2). */
.ivk-login .ivk-login__form .form-row input.input-text {
  border-radius: 8px; padding: 13px 14px; font-size: 15px; border-color: var(--ivk-line-2);
}
.ivk-login .ivk-login__form .ivk-btn {
  border-radius: 8px; font-size: 15.5px; font-weight: 800; padding: 15px 22px;
}
/* WooCommerce rozvrhuje účet plovoucími sloupci:
   .woocommerce-MyAccount-navigation{float:left;width:30%} a -content{float:right;width:68%}.
   Uvnitř mřížky šablony z toho byla navigace široká ~58 px, takže podbarvení
   aktivní položky bylo užší než její text. Rozvržení řídí .ivk-account. */
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content { float: none; width: auto; }
/* Přehled adres v účtu – vlastní šablona woocommerce/myaccount/my-address.php,
   takže nemusíme přebíjet plovoucí mřížku col2-set z WooCommerce. */
.ivk-addresses__note { font-size: 14px; color: var(--ivk-muted); margin: 0 0 18px; }
.ivk-addresses { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.ivk-address {
  border: 1px solid var(--ivk-line); border-radius: var(--ivk-radius-lg);
  background: var(--ivk-white); padding: 20px 22px; min-width: 0;
}
.ivk-address__head {
  display: flex; align-items: baseline; justify-content: space-between; gap: 14px;
  margin: 0 0 12px; padding-bottom: 12px; border-bottom: 1px solid var(--ivk-line-3);
}
.ivk-address__head h2 {
  font-family: var(--ivk-font); font-size: 13px; font-weight: 800;
  letter-spacing: .3px; text-transform: uppercase; color: var(--ivk-muted-2);
  margin: 0; min-width: 0; overflow-wrap: anywhere;
}
.ivk-address__edit { font-size: 13px; font-weight: 700; color: var(--ivk-lime-dark); white-space: nowrap; flex-shrink: 0; }
.ivk-address__edit:hover { color: var(--ivk-olive); }
.ivk-address address {
  border: none; padding: 0; font-style: normal; font-size: 14.5px;
  line-height: 1.75; color: var(--ivk-ink); overflow-wrap: anywhere;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.woocommerce-account .woocommerce-MyAccount-navigation li a { display: block; padding: 10px 14px; border-radius: 8px; font-weight: 600; font-size: 14.5px; }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { background: var(--ivk-lime-light); color: var(--ivk-olive); font-weight: 800; }
.ivk-account { display: grid; grid-template-columns: 240px 1fr; gap: 32px; align-items: start; padding: 22px 0 64px; }

/* 13. SLUŽBY (rozcestník + detail služby) --------------------------------- */
/* Popisek nad nadpisem – drží službu v kontextu rozcestníku. */
.ivk-page-head__kicker {
  display: inline-flex; align-items: center; gap: 7px; margin-bottom: 10px;
  font-size: 12.5px; font-weight: 800; letter-spacing: .5px; text-transform: uppercase;
  color: var(--ivk-lime-dark);
}

.ivk-services { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; padding: 6px 0 8px; }
.ivk-service {
  display: flex; flex-direction: column; gap: 12px; padding: 26px 26px 24px;
  border: 1px solid var(--ivk-line); border-radius: var(--ivk-radius-lg);
  background: var(--ivk-white); color: inherit;
  transition: box-shadow .15s, border-color .15s, transform .15s;
}
.ivk-service:hover {
  box-shadow: var(--ivk-shadow-lg); border-color: #e0e0e0; color: var(--ivk-ink); transform: translateY(-2px);
}
@media (prefers-reduced-motion: reduce) {
  .ivk-service { transition: none; }
  .ivk-service:hover { transform: none; }
}
.ivk-service__icon {
  width: 52px; height: 52px; border-radius: 14px; background: var(--ivk-lime-light);
  display: flex; align-items: center; justify-content: center; color: var(--ivk-lime-dark);
}
.ivk-service__name { font-family: var(--ivk-font-head); font-size: 20px; font-weight: 800; line-height: 1.2; }
.ivk-service__text { font-size: 14.5px; line-height: 1.6; color: var(--ivk-muted); }
/* Odkaz drží u spodní hrany, aby karty s různě dlouhým popisem měly řádek zarovnaný. */
.ivk-service__more {
  margin-top: auto; padding-top: 4px; display: inline-flex; align-items: center; gap: 7px;
  font-size: 14px; font-weight: 800; color: var(--ivk-lime-dark);
}
.ivk-service:hover .ivk-service__more { color: var(--ivk-lime-darker); }

.ivk-services--compact { grid-template-columns: repeat(2, 1fr); padding-top: 22px; }
.ivk-services--compact .ivk-service { padding: 22px; }
.ivk-services--compact .ivk-service__name { font-size: 19px; }

.ivk-services-stores, .ivk-services-more { padding: 30px 0 64px; }
.ivk-services-stores .ivk-stores { padding-top: 22px; }
a.ivk-section-head__note:hover { color: var(--ivk-lime-dark); }

/* Postranní karta se sběrnými místy. */
.ivk-side-card {
  border: 1px solid var(--ivk-line); border-radius: var(--ivk-radius-lg);
  background: var(--ivk-white); padding: 20px 22px;
}
.ivk-side-card__title {
  font-family: var(--ivk-font-head); font-size: 18px; font-weight: 800;
  display: block; margin-bottom: 14px;
}
.ivk-side-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 13px; }
.ivk-side-list li { display: flex; gap: 10px; font-size: 14px; line-height: 1.4; }
.ivk-side-list svg { color: var(--ivk-lime-dark); flex: 0 0 auto; margin-top: 1px; }
.ivk-side-list a { font-weight: 700; }
.ivk-side-list em { display: block; font-style: normal; font-size: 12.5px; color: var(--ivk-muted-2); margin-top: 2px; }

/* Text služby: odrážky s fajfkou a výčet značek jako štítky. Platí jen uvnitř
   stránek se šablonou služeb, články si nechávají klasické odrážky. */
.ivk-entry--page { padding-top: 4px; }
.ivk-entry--page .ivk-entry__content ul:not(.ivk-taglist) { list-style: none; padding-left: 0; }
.ivk-entry--page .ivk-entry__content ul:not(.ivk-taglist) li {
  position: relative; padding-left: 32px; margin-bottom: 11px;
}
.ivk-entry--page .ivk-entry__content ul:not(.ivk-taglist) li::before {
  content: ""; position: absolute; left: 0; top: .28em; width: 21px; height: 21px;
  border-radius: 50%; background: var(--ivk-lime-light) center no-repeat;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='13' viewBox='0 0 24 24' fill='none' stroke='%238a9800' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E");
}
.ivk-taglist { list-style: none; margin: 0 0 20px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.ivk-taglist li {
  padding: 7px 14px; border-radius: 999px; background: var(--ivk-quiet);
  border: 1px solid var(--ivk-line); font-size: 13.5px; font-weight: 700; line-height: 1.2;
}

/* 14. PATIČKA ------------------------------------------------------------- */
.ivk-benefits { background: var(--ivk-lime); }
.ivk-benefits__inner { display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; padding: 20px var(--ivk-gutter); }
.ivk-benefits__item { display: flex; align-items: center; gap: 12px; }
/* Položky jsou odkazy (benefits.php) – barvy textu zůstávají, při najetí
   se jen podtrhne nadpis, ať pruh zůstane klidný. */
a.ivk-benefits__item, a.ivk-benefits__item:hover { color: inherit; }
a.ivk-benefits__item:hover b { text-decoration: underline; text-underline-offset: 3px; }
.ivk-benefits__item b { font-size: 14px; color: var(--ivk-ink); line-height: 1.25; }
.ivk-benefits__item b + span { display: block; font-size: 12.5px; color: #3f4600; line-height: 1.25; }

.ivk-footer { background: #1c1c1c; color: #c9c9c9; }
.ivk-footer__inner { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 32px; padding: 48px var(--ivk-gutter) 32px; }
.ivk-footer__brand { display: inline-block; margin-bottom: 18px; }
.ivk-footer__brand img { display: block; width: 130px; height: auto; }
.ivk-footer p { font-size: 14px; line-height: 1.65; color: #9a9a9a; margin: 0; max-width: 280px; }
.ivk-footer h2, .ivk-footer h5 { color: var(--ivk-white); font-family: var(--ivk-font); font-size: 14px; font-weight: 800; letter-spacing: .5px; margin: 0 0 14px; text-transform: uppercase; line-height: normal; }
.ivk-footer ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 9px; font-size: 14px; }
.ivk-footer a { color: #b5b5b5; }
.ivk-footer a:hover { color: var(--ivk-lime); }
.ivk-footer__contacts { display: flex; flex-direction: column; gap: 9px; font-size: 14px; color: #b5b5b5; }
.ivk-footer__bottom { border-top: 1px solid #333; }
.ivk-footer__bottom-inner {
  padding: 18px var(--ivk-gutter); font-size: 13px; color: #7a7a7a;
  display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px;
}
.ivk-footer__bottom a { color: #7a7a7a; }
/* Copyright a vedle něj ikonka, která otevře poznámku o AI fotkách. */
.ivk-footer__meta { display: flex; align-items: center; gap: 10px; }
.ivk-ai-badge {
  display: inline-flex; align-items: center; justify-content: center;
  width: 22px; height: 22px; padding: 0; border-radius: 50%; cursor: pointer;
  background: transparent; border: 1px solid #444; color: #7a7a7a;
  transition: color .15s, border-color .15s;
}
.ivk-ai-badge:hover, .ivk-ai-badge:focus-visible { color: var(--ivk-lime); border-color: var(--ivk-lime); }
/* Okénko s poznámkou. Popover prohlížeč sám vystředí a zavře klávesou Esc
   nebo kliknutím mimo; tady jen vzhled. */
.ivk-ai-note {
  width: min(380px, calc(100% - 32px)); padding: 22px 48px 22px 22px; margin: auto;
  border: 0; border-radius: var(--ivk-radius-lg); box-shadow: var(--ivk-shadow-lg);
  background: var(--ivk-white); color: var(--ivk-ink);
}
.ivk-ai-note[popover]:popover-open { display: flex; align-items: flex-start; gap: 12px; }
.ivk-ai-note::backdrop { background: color-mix(in srgb, var(--ivk-ink) 35%, transparent); }
/* `.ivk-footer p` barví odstavce patičky šedě – okénko je uvnitř patičky,
   proto stejně silný selektor. */
.ivk-footer .ivk-ai-note p { margin: 0; max-width: none; font-size: 14.5px; line-height: 1.5; color: var(--ivk-ink); }
.ivk-ai-note__icon { color: var(--ivk-lime-dark); flex: none; margin-top: 1px; }
.ivk-ai-note__close {
  position: absolute; top: 10px; right: 10px; display: inline-flex; padding: 6px;
  border: 0; background: transparent; color: var(--ivk-muted); cursor: pointer; border-radius: var(--ivk-radius-sm);
}
.ivk-ai-note__close:hover { color: var(--ivk-ink); background: var(--ivk-line-3); }
/* `.ivk-footer ul` staví sloupce odkazů pod sebe – právní odkazy ve spodní
   liště musí směr vrátit na řádek, jinak ho zdědí a zalomí se. */
.ivk-footer ul.ivk-footer__legal {
  display: flex; flex-direction: row; flex-wrap: wrap; gap: 20px;
  list-style: none; margin: 0; padding: 0; font-size: 13px;
}

/* Obsahové stránky a blog */
.ivk-entry { padding: 8px 0 64px; }
.ivk-entry__layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 40px; align-items: start; }
.ivk-entry__content { font-size: 16px; line-height: 1.75; color: #3f3f3f; }
.ivk-entry__content > *:first-child { margin-top: 0; }
.ivk-entry__content p { margin: 0 0 20px; }
/* Úvodní odstavec dělá perex – dá textu pod fotkou vzduch a hierarchii. */
.ivk-entry__content > p:first-child { font-size: 17.5px; line-height: 1.7; color: #333; margin-bottom: 24px; }
.ivk-entry__content h2 { font-size: 24px; margin: 38px 0 14px; }
.ivk-entry__content h3 { font-size: 19px; margin: 30px 0 12px; }
.ivk-entry__content ul, .ivk-entry__content ol { margin: 0 0 20px; padding-left: 22px; }
.ivk-entry__content li { margin-bottom: 7px; }
.ivk-entry__content img { border-radius: var(--ivk-radius); margin: 8px 0 12px; }
.ivk-entry__content > *:last-child { margin-bottom: 0; }
/* Tabulky v textu stránek (např. zásady zpracování údajů). Buňky nesou
   odstavce, proto se jim musí srazit spodní mezera. */
.ivk-entry__content table {
  width: 100%; border-collapse: collapse; margin: 0 0 24px;
  font-size: 14px; line-height: 1.55;
}
.ivk-entry__content th, .ivk-entry__content td {
  border: 1px solid var(--ivk-line-2); padding: 11px 13px;
  text-align: left; vertical-align: top;
}
.ivk-entry__content th { background: var(--ivk-quiet); font-weight: 800; }
.ivk-entry__content td p, .ivk-entry__content th p { margin: 0 0 8px; }
.ivk-entry__content td p:last-child, .ivk-entry__content th p:last-child { margin-bottom: 0; }
.ivk-entry__meta { font-size: 13px; color: var(--ivk-muted-2); margin-bottom: 18px; display: flex; gap: 12px; flex-wrap: wrap; }
.ivk-entry__media { border-radius: var(--ivk-radius-lg); overflow: hidden; margin-bottom: 30px; }
.ivk-entry__media img { width: 100%; height: auto; display: block; }

/* Detail prodejny – ostatní pobočky v postranním sloupci. */
.ivk-storelist__item {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 14px 20px; border-bottom: 1px solid var(--ivk-line-3); color: inherit;
}
.ivk-storelist__item:last-child { border-bottom: none; }
.ivk-storelist__item:hover { background: #fafbf3; }
.ivk-storelist__text { min-width: 0; }
.ivk-storelist__name { font-size: 14px; display: block; line-height: 1.3; }
.ivk-storelist__note { font-size: 12.5px; color: var(--ivk-muted-2); display: block; line-height: 1.45; }
.ivk-storelist__item svg { color: var(--ivk-lime-dark); flex: 0 0 auto; }
.ivk-posts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; padding: 22px 0 64px; }
.ivk-post { border: 1px solid var(--ivk-line); border-radius: var(--ivk-radius-lg); background: var(--ivk-white); overflow: hidden; display: flex; flex-direction: column; }
.ivk-post:hover { box-shadow: var(--ivk-shadow); }
.ivk-post__media { height: 180px; background: #ececec; }
.ivk-post__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ivk-post__body { padding: 18px 20px 22px; display: flex; flex-direction: column; flex: 1; }
.ivk-post__body h2 { font-family: var(--ivk-font); font-size: 18px; font-weight: 700; margin: 6px 0 8px; line-height: 1.3; }
.ivk-post__body p { font-size: 13.5px; color: var(--ivk-muted); margin: 0 0 14px; }
.ivk-post__body .ivk-link-more { margin-top: auto; }
.ivk-pagination-simple { display: flex; justify-content: center; gap: 8px; padding: 0 0 64px; }
.ivk-pagination-simple .page-numbers {
  width: 38px; height: 38px; border: 1px solid #e4e4e0; border-radius: 8px; background: var(--ivk-white);
  display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 14px;
}
.ivk-pagination-simple .page-numbers.current { background: var(--ivk-lime); color: var(--ivk-white); border-color: var(--ivk-lime); }
.ivk-404 { text-align: center; padding: 80px 0 100px; }
.ivk-404 h1 { font-size: 46px; margin-bottom: 10px; }

/* Doplňky ----------------------------------------------------------------- */
.ivk-cart-foot__actions { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.ivk-coupon { display: flex; gap: 8px; }
.ivk-coupon-card .ivk-coupon input { width: auto; flex: 1; min-width: 0; }
.ivk-coupon__msg { margin: 10px 0 0; font-size: 13px; color: var(--ivk-lime-dark); }
.ivk-coupon__msg.is-error { color: #d64545; }
.ivk-coupon__msg[hidden] { display: none; }
.ivk-coupon input { width: 170px; padding: 10px 12px; font-size: 14px; }
.ivk-coupon .ivk-btn, .ivk-cart-foot .ivk-btn { padding: 11px 16px; font-size: 13.5px; }

.wc-proceed-to-checkout { display: block; }
.woocommerce .wc-proceed-to-checkout a.checkout-button {
  width: 100%; margin: 18px 0 0; padding: 16px; font-size: 16px; font-weight: 800;
  background: var(--ivk-lime); color: var(--ivk-white); border-radius: 8px;
}
.woocommerce .wc-proceed-to-checkout a.checkout-button:hover { background: #adc228; color: var(--ivk-white); }
.woocommerce-checkout #payment {
  border: 1px solid var(--ivk-line); border-radius: var(--ivk-radius-lg);
  background: var(--ivk-white); padding: 22px 24px;
}
.woocommerce-checkout #payment .place-order { margin-top: 16px; }
.woocommerce-checkout #payment .place-order .button,
.woocommerce-checkout #payment .place-order #place_order {
  width: 100%; padding: 16px; font-size: 16px; font-weight: 800; border-radius: 8px;
  background: var(--ivk-lime); color: var(--ivk-white);
}
.woocommerce-checkout #payment .place-order #place_order:hover { background: #adc228; color: var(--ivk-white); }
.ivk-shipping { display: block; }
.ivk-shipping__label {
  font-size: 12.5px; font-weight: 700; color: #6b6b6b; letter-spacing: .2px;
  display: block; margin: 4px 0 8px; text-transform: uppercase;
}
.ivk-shipping__note, .woocommerce-shipping-destination {
  font-size: 12.5px; color: var(--ivk-muted-2); margin: 8px 0 0; line-height: 1.5;
}
.ivk-summary-card__items { margin-bottom: 16px; }
.ivk-summary-card__items .ivk-mini-line:last-child { border-bottom: none; }
.ivk-store__media--small { height: 120px; border-radius: 8px; overflow: hidden; margin-bottom: 14px; }
.ivk-store__phone { display: flex; align-items: center; gap: 9px; font-size: 14px; font-weight: 700; margin-top: 12px; }
.ivk-404__search { max-width: 520px; margin: 24px auto 28px; }
.ivk-account__nav { align-self: start; }
.ivk-comments { margin-top: 44px; }
.ivk-comments__list { list-style: none; margin: 0 0 24px; padding: 0; }
.ivk-comments__list .comment-body { border-bottom: 1px solid var(--ivk-line-3); padding: 16px 0; }
.ivk-comments__list .children { list-style: none; padding-left: 24px; }
.ivk-woo > .woocommerce-notices-wrapper { display: block; }
.woocommerce-account .ivk-account .woocommerce-MyAccount-content { min-width: 0; }
.woocommerce table.shop_table {
  border: 1px solid var(--ivk-line); border-radius: var(--ivk-radius-lg);
  border-collapse: separate; background: var(--ivk-white); font-size: 14.5px;
}
.woocommerce table.shop_table th { font-weight: 800; font-size: 13px; letter-spacing: .3px; }
.woocommerce form.login, .woocommerce form.checkout_coupon, .woocommerce form.register {
  border: 1px solid var(--ivk-line); border-radius: var(--ivk-radius-lg); padding: 20px 22px;
}
.ivk-login__form form.login, .ivk-login__form form.register { border: none; padding: 0; }

/* 15. RESPONZIVITA -------------------------------------------------------- */
@media (max-width: 1200px) {
  .ivk-brands { grid-template-columns: repeat(5, 1fr); }
  .ivk-trust__inner { grid-template-columns: repeat(3, 1fr); }
  .ivk-benefits__inner { grid-template-columns: repeat(3, 1fr); }
  .ivk ul.products, .ivk-grid { --ivk-cols: 2; }
  .ivk-header__search { margin: 0 20px; }
  /* Čtyři karty se do užší šířky nevejdou (a 3 + 1 by nechalo osiřelou čtyřku) –
     z mřížky je carousel: vidět je --ivk-per karet, zbytek se přepíná sám
     (initBestsellers v theme.js) nebo tažením prstem. Posuvník je skrytý, místo
     něj slouží tečky. */
  .ivk-bestsellers ul.products {
    --ivk-per: 3;
    grid-template-columns: none; grid-auto-flow: column;
    grid-auto-columns: calc((100% - 16px * (var(--ivk-per) - 1)) / var(--ivk-per));
    overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain;
    scrollbar-width: none;
  }
  .ivk-bestsellers ul.products::-webkit-scrollbar { display: none; }
  .ivk-bestsellers li.product { scroll-snap-align: start; }
  .ivk-bestsellers__dots { display: flex; }
}

@media (max-width: 1024px) {
  .ivk-hero h1 { font-size: 42px; }
  /* Užší výřez fotky už pod textem nemá tmavou plochu, ale ruku a kladivo –
     fotku proto celou ztlumíme, aby bílý text zůstal čitelný. */
  .ivk-hero__media img { object-position: 35% 30%; filter: brightness(.5); }
  .ivk-cta__img { object-position: 45% 35%; filter: brightness(.5); }
  .ivk-cta h2 { font-size: 34px; }
  .ivk-hero__inner { grid-template-columns: 1fr; padding-top: 76px; padding-bottom: 88px; }
  .ivk-hero__spacer { display: none; }
  .ivk-single { grid-template-columns: 1fr; gap: 28px; }
  .ivk-detail { grid-template-columns: 1fr; }
  .ivk-detail__aside { position: static; }
  .ivk-shop { grid-template-columns: 1fr; }
  .ivk-shop__sidebar { display: none; }
  .ivk-shop__sidebar.is-open { display: flex; }
  .ivk-no-filters .ivk-filters-toggle { display: none; }
  .ivk-filters-toggle { display: inline-flex; }
  .ivk-checkout, .ivk-entry__layout { grid-template-columns: 1fr; }
  .ivk-checkout__aside { position: static; }
  .ivk-news { grid-template-columns: 1fr; }
  .ivk-account { grid-template-columns: 1fr; }
  .ivk-addresses { grid-template-columns: 1fr; }
  .woocommerce-address-fields__field-wrapper { grid-template-columns: 1fr; }
  .ivk-login__box { grid-template-columns: 1fr; }
  .ivk-login__perks { border-right: none; border-bottom: 1px solid var(--ivk-line); }
  .ivk-posts { grid-template-columns: repeat(2, 1fr); }
  .ivk-stores { grid-template-columns: 1fr 1fr; }
  .ivk-services { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 900px) {
  /* Text je přes celou šířku – fotku ztmavíme rovnoměrně. */
  .ivk-cat-head::before { background: color-mix(in srgb, var(--ivk-ink) 78%, transparent); }
  .ivk-cat-head__inner { max-width: none; min-height: 0; padding: 0 0 28px; }
  .ivk-cats { grid-template-columns: 1fr; }
  .ivk-cat { min-height: 220px; }
  .ivk-bestsellers ul.products { --ivk-per: 2; }
  .ivk-nav { display: none; }
  .ivk-burger { display: flex; }
  .ivk-header__inner { flex-wrap: wrap; gap: 16px; padding: 16px var(--ivk-gutter); }
  .ivk-header__search { order: 3; flex-basis: 100%; margin: 0; }
  .ivk-header__logo img { height: 52px; }
  .ivk-header__action-label { display: none; }
  /* Oblíbené jsou na užších displejích v menu (nav.php), ne mezi ikonami. */
  .ivk-header__fav { display: none; }
  /* Bez popisků zbydou holé ikony – srovnáme je k pravé hraně a zmenšíme rozestup.
     Rozestupy jsou optické, ne geometrické: ikony sedí uprostřed 44px políček,
     kdežto u hamburgeru je viditelnou hranou rámeček a bublina s počtem kusů
     přesahuje košík doprava. Se stejným gapem tak mezi účtem a košíkem bylo
     ~31px prázdna a mezi košíkem a hamburgerem ~17px. Účet a košík proto
     k sobě, hamburger o kus dál – obě viditelné mezery vyjdou kolem 24px. */
  .ivk-header__actions { margin-left: auto; gap: 0; }
  .ivk-burger { margin-left: 12px; }
  .ivk-header__action { width: 44px; height: 44px; justify-content: center; gap: 0; }
  /* Horní lišta se na mobil nevejde – kontakty se lámaly do dvou řádků.
     Telefony i e-mail zůstávají v patičce a v kartách „Potřebujete poradit?“. */
  .ivk-utility { display: none; }
  .ivk-promos { grid-template-columns: 1fr; }
  .ivk-promo--main { grid-row: auto; min-height: 380px; }
  .ivk-page-head h1, .ivk-hero h1 { font-size: 30px; }
  .ivk-added__tiles { grid-template-columns: 1fr 1fr; }
  .ivk-cart-line { grid-template-columns: 64px 1fr auto; grid-template-areas: "thumb body remove" "thumb qty total"; gap: 10px 16px; padding: 14px; }
  .ivk-cart-line__name { font-size: 14.5px; }
  /* Fotka měla pořád desktopových 72px ve sloupci 64px – přetékala do mezery
     a lepila se na název. Nahoru ji zarovnáme, ať lícuje se značkou a názvem,
     ne s prostředkem dvou řádků. */
  .ivk-cart-line__thumb { grid-area: thumb; width: 64px; height: 64px; align-self: start; }
  /* Koš sdílí sloupec s cenou pod ním, která je širší – bez justify-self
     by zůstal u levé hrany sloupce místo v rohu karty. */
  .ivk-cart-line__remove { align-self: start; justify-self: end; margin: -4px -4px 0 0; }
  .ivk-cart-line__body { grid-area: body; }
  .ivk-cart-line__qty { grid-area: qty; }
  .ivk-cart-line__total { grid-area: total; }
  .ivk-cart-line__remove { grid-area: remove; }
  .woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper { grid-template-columns: 1fr; }
  .ivk-thankyou { flex-direction: column; padding: 28px; }
  .woocommerce-customer-details .woocommerce-columns--addresses { grid-template-columns: 1fr; }
  .ivk-footer__inner { grid-template-columns: 1fr 1fr; }
}

/*
 * Kroky objednávky na úzkém displeji: čtyři popisky vedle sebe se nevejdou a
 * lámaly se i s propojovacími čárami. Každý krok je proto sloupec – kolečko
 * a pod ním jeho název, aby zákazník viděl, kam pokračuje. Dřív tu byl jen
 * popisek aktuálního kroku a o dalších nebylo nic vidět. Spojovací čára vede
 * absolutně od kolečka k dalšímu kolečku, nezávisle na délce popisků.
 */
@media (max-width: 760px) {
  .ivk-steps { flex-wrap: nowrap; align-items: flex-start; padding: 22px 0 6px; }
  .ivk-step, .ivk-step:last-child { flex: 1 1 0; min-width: 0; position: relative; flex-direction: column; gap: 6px; }
  .ivk-step__link { flex-direction: column; gap: 6px; }
  .ivk-step__num { position: relative; z-index: 1; }
  .ivk-step__label { font-size: 12px; line-height: 1.25; text-align: center; padding: 0 2px; }
  .ivk-step__sep {
    position: absolute; top: 13px; left: calc(50% + 21px); right: calc(-50% + 21px);
    width: auto; margin: 0;
  }
}

@media (max-width: 640px) {
  .ivk-cat-bar { flex-direction: column; align-items: flex-start; gap: 12px; padding-top: 20px; }
  /* Kategorie na obchodě i podkategorie na stránce kategorie: chipsy se na
     telefonu vešly jen po jednom na řádek a zabraly půl obrazovky. Dvousloupcová
     mřížka ukáže všechny naráz a dlaždice zůstanou pohodlně velké na palec. */
  .ivk-cat-bar .ivk-chips { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; width: 100%; }
  .ivk-cat-bar .ivk-chip {
    display: flex; align-items: center; justify-content: space-between; gap: 6px;
    min-height: 46px; padding: 8px 10px 8px 12px;
    border-radius: var(--ivk-radius-sm); font-size: 13px; line-height: 1.25;
  }
  .ivk-cat-bar .ivk-chip svg { display: block; flex: 0 0 auto; color: var(--ivk-lime-dark); }
  /* Lišta nad výpisem: řazení a Filtry jako dvě stejná tlačítka vedle sebe.
     „Jen skladem“ na telefonu nenabízíme – samostatný řádek s ním lištu
     zbytečně natahoval. */
  .ivk-shop__toolbar {
    display: grid; grid-template-columns: 1fr 1fr; grid-template-areas: "sort filters";
    gap: 10px; padding: 12px;
  }
  .ivk-sort { grid-area: sort; display: block; min-width: 0; }
  .ivk-sort a, .ivk-sort__label { display: none; }
  .ivk-shop__toolbar .ivk-filters-toggle { grid-area: filters; width: 100%; height: 44px; padding: 0 12px; gap: 8px; font-size: 14px; }
  .ivk-shop__toolbar .ivk-check { display: none; }
  .ivk-sort__picker {
    position: relative; display: flex; align-items: center; gap: 8px; height: 44px; padding: 0 12px;
    border: 1px solid var(--ivk-line-2); border-radius: var(--ivk-radius-sm); background: var(--ivk-white);
    font-size: 14px; font-weight: 700; color: var(--ivk-ink);
  }
  .ivk-sort__picker:focus-within { border-color: var(--ivk-lime); }
  .ivk-sort__current { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .ivk-sort__caret { color: var(--ivk-muted-2); }
  /* Průhledný select přes celé tlačítko – 16px kvůli přibližování v iOS. */
  .ivk-sort__picker .ivk-sort__select {
    position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; padding: 0;
    opacity: 0; font-size: 16px; cursor: pointer; -webkit-appearance: none; appearance: none;
  }
  .ivk-shop { padding-top: 16px; }
  /* „1 položek“ vedle nadpisu košíku a pokladny je na telefonu zbytečný údaj. */
  .woocommerce-cart .ivk-page-head__count,
  .woocommerce-checkout .ivk-page-head__count { display: none; }
  /* Navigace průvodce pokladnou: odkaz zpět vlevo a tlačítko odsazené vpravo
     se na telefonu zalomily pod sebe každé jinak zarovnané. Hlavní tlačítko
     přes celou šířku nahoru, odkaz zpět vycentrovaný pod ním. */
  .ivk-wizard__nav { flex-direction: column-reverse; align-items: stretch; gap: 16px; }
  .ivk-wizard__nav [data-ivk-next] { margin-left: 0; width: 100%; }
  .ivk-wizard__nav .ivk-link-back { align-self: center; padding: 0; }
  /* Drobečky na telefonu v jednom řádku – dlouhé názvy se zalamovaly a lomítka
     visela na začátku dalšího řádku. Co se nevejde, zkrátí se třemi tečkami. */
  .woocommerce .woocommerce-breadcrumb { flex-wrap: nowrap; overflow: hidden; white-space: nowrap; }
  .woocommerce-breadcrumb .ivk-crumb { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
  .woocommerce-breadcrumb .ivk-crumb:first-child,
  .woocommerce-breadcrumb [aria-hidden] { flex: 0 0 auto; }
  /* Lišta drobečků (sekce 9) na telefonu – menší odsazení, ať nezabírá výšku nad fotkou. */
  .single-product .woocommerce-breadcrumb { margin: 0 0 16px; padding: 9px 0; font-size: 12.5px; }
  /* Na telefonu se vedle kategorií nevešel ani zkrácený název produktu – vše
     se ořezalo na nečitelné kousky. Název je hned pod drobečky jako nadpis,
     tady ho vynecháme i s oddělovačem; kdyby se nevešly ani kategorie,
     zkrátí se třemi tečkami. */
  .single-product .woocommerce-breadcrumb .ivk-crumb:last-child,
  .single-product .woocommerce-breadcrumb [aria-hidden]:nth-last-child(2) { display: none; }
  .single-product .woocommerce-breadcrumb .ivk-crumb:not(:first-child) { flex: 0 1 auto; }
  .ivk-bestsellers ul.products { --ivk-per: 1; }
  :root { --ivk-gutter: 16px; }
  /* Na mobilu by 32px odsazení sebralo z už tak úzké šířky – stáhneme ho zpět. */
  .ivk-added__box { padding: 24px 20px 22px; }
  .ivk-added__title { font-size: 20px; margin-bottom: 18px; padding-right: 36px; }
  .ivk-added__close { top: 10px; right: 10px; }
  /* Dlouhé názvy (traktory, sety) se v 17px lámaly do tří řádků a tlačítka
     vedle sebe do dvou – menší písmo a tlačítka pod sebou, každé na řádek. */
  .ivk-added__body { gap: 14px; margin-bottom: 20px; }
  .ivk-added__media { flex-basis: 68px; width: 68px; height: 68px; }
  .ivk-added__text { gap: 5px; }
  .ivk-added__name { font-size: 15px; line-height: 1.35; }
  .ivk-added__price { font-size: 17px; }
  .ivk-added__actions { grid-template-columns: 1fr; gap: 10px; }
  .ivk-added__actions .ivk-btn { white-space: nowrap; padding: 13px 16px; }
  .ivk-added__actions .ivk-btn:not(.ivk-btn--ghost) { order: -1; }
  .ivk-posts { grid-template-columns: 1fr 1fr; }
  /* Výpis prodejen jede přes stejnou mřížku jako blog, ale karta nese fotku
     a delší popis – ve dvou sloupcích byla rozpláclá. Jedna prodejna na řádek. */
  .post-type-archive-ivk_store .ivk-posts { grid-template-columns: 1fr; }
  /* Karta prodejny nese fotku, adresu i dva odkazy – ve dvou sloupcích je moc úzká. */
  .ivk-stores { grid-template-columns: 1fr; }
  .ivk-services, .ivk-services--compact { grid-template-columns: 1fr; gap: 14px; }
  .ivk-service { padding: 20px; }
  .ivk-service__name { font-size: 20px; }
  .ivk-brands { grid-template-columns: repeat(3, 1fr); }
  .ivk-trust__inner { grid-template-columns: 1fr; }
  /* Výhody v jednom sloupci nechávaly polovinu pruhu prázdnou. Dva sloupce
     a o kousek drobnější písmo udrží každý nadpis na jednom řádku. */
  .ivk-benefits__inner { grid-template-columns: 1fr 1fr; gap: 14px 12px; }
  .ivk-benefits__item { gap: 9px; }
  .ivk-benefits__item svg { width: 26px; height: 26px; flex: 0 0 26px; }
  .ivk-benefits__item b { font-size: 13.5px; }
  .ivk-benefits__item b + span { font-size: 12px; }
  .ivk ul.products, .ivk-grid { --ivk-cols: 1; }
  .ivk-keyparams { grid-template-columns: 1fr; }
  .ivk-news__item { grid-template-columns: 30px 1fr; }
  .ivk-news__thumb, .ivk-news__arrow { display: none; }
  /* Na telefonu se text roztáhne přes celou šířku, tmavé fotky proto ztmavíme
     rovnoměrně. Limetkový blok dá fotku nad text jako pruh. */
  .ivk-promo--dark::before { background: color-mix(in srgb, var(--ivk-ink) 68%, transparent); }
  .ivk-promo--dark .ivk-promo__body { max-width: none; }
  .ivk-promo--main .ivk-promo__body { padding: 28px 22px; }
  .ivk-promo--main h3 { font-size: 27px; }
  .ivk-promo__body { padding: 24px 22px; }
  .ivk-cta__inner { padding-top: 56px; padding-bottom: 56px; }
  .ivk-cta h2 { font-size: 30px; }
  .ivk-cta p { font-size: 15.5px; }
  /* Patička v jednom sloupci byla na telefonu nekonečně dlouhá a vpravo
     prázdná. Nákup a Informace (krátké odkazy) jdou vedle sebe, logo a
     kontakty (telefonní čísla se do půlky nevejdou) přes celou šířku. */
  .ivk-footer__inner { grid-template-columns: 1fr 1fr; gap: 28px 20px; padding-top: 36px; padding-bottom: 28px; }
  .ivk-footer__inner > :first-child,
  .ivk-footer__inner > :last-child { grid-column: 1 / -1; }
  .ivk-footer__brand { margin-bottom: 12px; }
  .ivk-footer__brand img { width: 110px; }
  /* Spodní lišta: copyright a právní odkazy se zalomily pod sebe zarovnané
     vlevo a působily jako zbytek. Na telefonu je vycentrujeme – odkazy
     nahoru, copyright s AI ikonkou jako poslední řádek stránky. */
  .ivk-footer__bottom-inner { flex-direction: column-reverse; align-items: center; gap: 12px; padding-top: 20px; padding-bottom: 22px; text-align: center; }
  .ivk-footer ul.ivk-footer__legal { justify-content: center; gap: 8px 20px; }
  /* Třísloupcová tabulka se na telefon nevejde – radši vodorovný posun
     uvnitř ní než rozbitá šířka stránky. */
  .ivk-entry__content table { display: block; overflow-x: auto; min-width: 0; }
  .ivk-entry__content table tbody { display: table; width: 100%; min-width: 540px; }
  .ivk-hero h1 { font-size: 32px; }
  .ivk-hero p { font-size: 16px; }
  /* Pruh výhod pod bannerem byl na telefonu dlouhý bílý seznam, který jen
     odsouval obsah. Spodní odsazení banneru bylo kvůli jeho překryvu. */
  .ivk-trust { display: none; }
  /* Vyhledávání přes celou šířku dělalo hlavičku o řádek vyšší – na telefonu
     je nahoře v menu pod hamburgerem (template-parts/header/nav.php). */
  .ivk-header__search { display: none; }
  .ivk-mobile-nav__search { display: block; }
  /* Mobilní fotka banneru (hero.php, <picture>) – dílna se servisem je
     komponovaná na střed. */
  .ivk-hero__media img { object-position: 50% 50%; }
  /* Obsah banneru na telefonu na střed: nadpis, text i tlačítka. Mobilní
     fotka (zahrada) je světlejší než tmavé fotky dílny – jemný tmavý přechod
     uprostřed drží text čitelný, okraje fotky zůstávají živé. */
  .ivk-hero__media::after {
    content: ""; position: absolute; inset: 0; pointer-events: none;
    background: radial-gradient(ellipse 85% 55% at 50% 50%, rgba(20,20,20,.55) 0%, rgba(20,20,20,.15) 100%);
  }
  .ivk-hero__inner > div { text-align: center; }
  .ivk-hero p { margin: 0 auto 28px; max-width: 320px; }
  /* Tlačítka vedle sebe a stejně široká; když je jen jedno, zabere celou šířku. */
  .ivk-hero__actions { flex-wrap: nowrap; gap: 10px; }
  .ivk-hero__actions .ivk-btn { flex: 1 1 0; min-width: 0; padding: 14px 8px; font-size: 14.5px; white-space: nowrap; }
  /* Obrysové tlačítko má rámeček 1.5 px – stejně silný průhledný dá oběma stejnou výšku. */
  .ivk-hero__actions .ivk-btn:not(.ivk-btn--outline) { border: 1.5px solid transparent; }
  /* Banner na ~72 % obrazovky – pod ním vykoukne začátek kategorií a láká
     k posunu (celá obrazovka působila moc). Text svisle uprostřed, vlevo.
     svh = výška bez lišty prohlížeče, takže se banner při posunu nezvětšuje;
     vh je pojistka pro starší prohlížeče. */
  .ivk-hero__inner {
    min-height: max(480px, 72vh); min-height: max(480px, 72svh);
    align-content: center; padding-top: 48px; padding-bottom: 48px;
  }
  .woocommerce div.product form.cart { flex-wrap: wrap; gap: 10px; }
  /* S flex: 1 (základ 0) se tlačítko nikdy nezalomilo – jen se smrsklo vedle
     počtu kusů a „Přidat do košíku“ se rozpadlo do tří řádků. Základ 150px
     ho na nejužších telefonech pošle na vlastní řádek přes celou šířku. */
  .woocommerce div.product form.cart .button { flex: 1 1 150px; padding: 14px 12px; font-size: 15px; white-space: nowrap; }
  /* Množství a srdíčko nahoře, „Přidat do košíku“ pod nimi přes celou šířku. */
  .woocommerce div.product form.cart .single_add_to_cart_button { order: 3; flex-basis: 100%; }
  .woocommerce div.product form.cart .ivk-fav--detail { margin-left: auto; }
  .woocommerce div.product form.cart .ivk-qty__btn { width: 38px; }
  .woocommerce div.product form.cart .quantity input.qty { width: 36px; }
  .ivk-pricebox { padding: 18px 0 20px; }
  /* Nadpis 40px a cena 38px zabíraly na malém telefonu skoro půl obrazovky. */
  .woocommerce div.product .ivk-summary h1.product_title { font-size: 28px; margin: 4px 0 12px; line-height: 1.1; }
  /* Cena menší, uspořádání stejné jako na počítači (sekce 9). */
  .woocommerce div.product .ivk-pricebox p.price, .woocommerce div.product .ivk-pricebox span.price { font-size: 28px; gap: 10px; }
  .ivk-pricebox__note { font-size: 14px; }
  .ivk-pricebox__excl { font-size: 13px; }
  .woocommerce div.product .ivk-pricebox form.cart { margin-top: 18px; }
  .woocommerce div.product .ivk-pricebox p.price del { font-size: 16px; padding-bottom: 5px; }
  /* `div.` je nutné – základní pravidlo má selektor `div.images` (0,4,2) a bez něj prohrajeme. */
  .woocommerce div.product .ivk-gallery div.woocommerce-product-gallery { flex-direction: column; } /* náhledy pod fotku */
  .woocommerce div.product div.images .flex-control-thumbs { flex: 0 0 auto; flex-direction: row; gap: 8px; }
  .woocommerce div.product div.images .flex-control-thumbs li,
  .woocommerce div.product div.images .flex-control-thumbs li img { width: 58px; height: 58px; }
  .ivk-thumb-more { font-size: 13px; }
  .woocommerce div.product .ivk-gallery .flex-viewport,
  .woocommerce div.product .ivk-gallery .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper,
  .woocommerce div.product .ivk-gallery .woocommerce-product-gallery__image > a { min-height: 320px; }
  .woocommerce div.product .ivk-gallery .woocommerce-product-gallery__image img { max-height: 320px; }
}


/*
 * Typografická škála na telefonu (20. 10. 2026). Velikosti nadpisů vznikaly
 * po jednom pro úzký Barlow a v širším Lato se na telefonu tloukly: nadpisy
 * sekcí (34 px) byly větší než hlavní nadpis v hero (32 px), karta kategorie
 * 26 px, 404 dokonce 56 px. Tady je jedna škála na jednom místě – hero je
 * největší, pak nadpis stránky, nadpisy sekcí, nadpisy karet. Blok stojí na
 * konci sekce, aby přebil dílčí pravidla výše se stejnou specificitou.
 *
 *   hero 30 · nadpis stránky 28 · CTA 26 · sekce 24 · detail produktu 22
 *   podsekce 20 · karty 19–20 · panely 18 · prodejny 17
 */
@media (max-width: 640px) {
  .ivk-hero h1 { font-size: 30px; line-height: 1.08; }
  .ivk-page-head h1 { font-size: 28px; line-height: 1.1; }
  .ivk-404 h1 { font-size: 32px; }
  .ivk-cta h2 { font-size: 26px; line-height: 1.1; }
  .ivk-section-head h2 { font-size: 24px; line-height: 1.15; }
  .woocommerce div.product .ivk-summary h1.product_title { font-size: 22px; line-height: 1.2; }
  .ivk-detail h2, .ivk-related h2, .ivk-entry__content h2,
  .woocommerce #reviews .woocommerce-Reviews-title { font-size: 20px; }
  .ivk-thankyou h2 { font-size: 24px; }
  .ivk-login__form h1 { font-size: 26px; }
  .ivk-cat__title { font-size: 20px; }
  .ivk-promo--main h3 { font-size: 22px; }
  .ivk-promo h3 { font-size: 19px; }
  .ivk-panel__title, .ivk-panel > .ivk-panel__title { font-size: 18px; }
  .ivk-added__title { font-size: 19px; }
  .ivk-store__body h3 { font-size: 17px; }
}

/* 16. COOKIES ------------------------------------------------------------- */
/*
 * Okno souhlasu (inc/consent.php, assets/js/consent.js). Je modální a bez
 * volby se nezavře – overlay je proto tmavší než u modálu košíku a nad vším
 * ostatním včetně něj. Stránka pod ním se neposouvá.
 */
.ivk-consent-open { overflow: hidden; }
.ivk-consent {
  position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center;
  padding: 20px;
}
.ivk-consent[hidden] { display: none; }
.ivk-consent__overlay {
  position: absolute; inset: 0; background: color-mix(in srgb, var(--ivk-ink) 62%, transparent);
  backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px);
  opacity: 0; transition: opacity .2s ease;
}
.ivk-consent__box {
  position: relative; width: 100%; max-width: 540px; background: var(--ivk-white);
  border-radius: var(--ivk-radius-lg); padding: 30px 32px 24px; overflow: hidden;
  box-shadow: 0 24px 60px rgba(0,0,0,.28);
  max-height: calc(100vh - 40px); max-height: calc(100dvh - 40px); overflow-y: auto;
  opacity: 0; transform: translateY(12px) scale(.97);
  transition: opacity .2s ease, transform .22s cubic-bezier(.2,.8,.3,1);
}
/* Limetkový pruh nahoře – stejný akcent jako hlavička výpisu a promo bloky. */
.ivk-consent__box::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 5px; background: var(--ivk-lime);
}
.ivk-consent__box:focus { outline: none; }
.ivk-consent--open .ivk-consent__overlay { opacity: 1; }
.ivk-consent--open .ivk-consent__box { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .ivk-consent__overlay, .ivk-consent__box { transition: none; }
  .ivk-consent__box { transform: none; }
}
.ivk-consent__head { display: flex; align-items: center; gap: 14px; margin-bottom: 14px; }
.ivk-consent__icon {
  width: 46px; height: 46px; flex: 0 0 46px; border-radius: 50%;
  background: var(--ivk-lime-light); color: var(--ivk-lime-darker);
  display: flex; align-items: center; justify-content: center;
}
.ivk-consent__head h2 { font-size: 23px; margin: 0; line-height: 1.1; }
.ivk-consent__text { font-size: 14.5px; line-height: 1.6; color: var(--ivk-ink-2); margin: 0 0 22px; }
.ivk-consent__text a { color: var(--ivk-lime-dark); font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }
.ivk-consent__text a:hover { color: var(--ivk-lime-darker); }

.ivk-consent__details {
  border: 1px solid var(--ivk-line); border-radius: var(--ivk-radius); margin: 0 0 20px;
}
.ivk-consent__row { display: flex; align-items: center; gap: 16px; padding: 14px 16px; }
.ivk-consent__row + .ivk-consent__row { border-top: 1px solid var(--ivk-line); }
.ivk-consent__row-text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.ivk-consent__row-text b { font-size: 14.5px; }
.ivk-consent__row-text span { font-size: 13px; line-height: 1.45; color: var(--ivk-muted); }
.ivk-consent__always { font-size: 12.5px; font-weight: 700; color: var(--ivk-stock-text); white-space: nowrap; }

/* Přepínač – skutečný checkbox, jen vizuálně schovaný, aby fungovala klávesnice. */
.ivk-switch { position: relative; flex: 0 0 auto; width: 46px; height: 26px; cursor: pointer; }
.ivk-switch input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.ivk-switch__track {
  position: absolute; inset: 0; border-radius: 13px; background: var(--ivk-line-2);
  transition: background .15s ease; pointer-events: none;
}
.ivk-switch__track::after {
  content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%;
  background: var(--ivk-white); box-shadow: 0 1px 3px rgba(0,0,0,.2); transition: transform .15s ease;
}
.ivk-switch input:checked + .ivk-switch__track { background: var(--ivk-lime); }
.ivk-switch input:checked + .ivk-switch__track::after { transform: translateX(20px); }
.ivk-switch input:focus-visible + .ivk-switch__track { outline: 2px solid var(--ivk-lime-dark); outline-offset: 2px; }

/* Odmítnout a Přijmout stejně velké vedle sebe – volba musí být rovnocenná. */
.ivk-consent__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ivk-consent__actions .ivk-btn { width: 100%; padding: 14px 16px; font-size: 15px; }
/* Obrysové tlačítko má rámeček 1.5px – stejně silný průhledný dá souhlasu stejnou výšku. */
.ivk-consent__actions .ivk-btn:not(.ivk-btn--outline) { border: 1.5px solid transparent; }
.ivk-consent__more { display: flex; align-items: center; justify-content: center; gap: 12px; flex-wrap: wrap; margin-top: 14px; }
.ivk-consent__more [hidden] { display: none; }
.ivk-consent__link {
  display: inline-flex; align-items: center; gap: 6px; padding: 6px 4px; border: none; background: none; cursor: pointer;
  font: inherit; font-size: 13.5px; font-weight: 700; color: var(--ivk-lime-dark);
}
.ivk-consent__link:hover { color: var(--ivk-lime-darker); }
.ivk-consent__link svg { transition: transform .15s ease; }
.ivk-consent--details .ivk-consent__link svg { transform: rotate(180deg); }
.ivk-consent__more .ivk-btn--ghost { padding: 10px 18px; font-size: 14px; }

/* „Nastavení cookies“ v patičce vypadá jako ostatní právní odkazy. */
.ivk-consent-open {
  border: none; background: none; padding: 0; cursor: pointer; font: inherit; color: #7a7a7a;
}
.ivk-consent-open:hover { color: var(--ivk-lime); }

@media (max-width: 640px) {
  .ivk-consent { padding: 12px; }
  .ivk-consent__box { padding: 26px 20px 18px; }
  .ivk-consent__head h2 { font-size: 22px; }
  .ivk-consent__icon { width: 40px; height: 40px; flex-basis: 40px; }
  .ivk-consent__text { font-size: 14px; margin-bottom: 18px; }
  .ivk-consent__row { padding: 12px 14px; }
}
@media (max-width: 380px) {
  /* Na nejužších telefonech se „Odmítnout vše“ vedle sebe nevejde – pod sebe,
     souhlas nahoru, ale oba stejně velké. */
  .ivk-consent__actions { grid-template-columns: 1fr; }
  .ivk-consent__actions [data-ivk-consent-action="accept"] { order: -1; }
}
