/* ============================================================
   Originální dárkové koše — hlavní CSS
   Tokeny a rozměry: handoff/CLAUDE.md §2 (závazné)
   ============================================================ */

:root{
  /* barvy */
  --c-ink:#33221C;
  --c-red:#A72A28;
  --c-red-dark:#8C2220;
  --c-amber:#F0A231;
  --c-amber-soft:#F7E9D8;
  --c-bg:#EDE9DF;
  --c-surface:#FFFFFF;
  --c-surface-2:#F5F4F1;
  --c-line:#E8E6E1;
  --c-line-soft:#F0EEE9;
  --c-text:#555555;
  --c-muted:#999999;
  --c-green:#1E7A3C;

  /* stuhy (varianty produktu) */
  --ribbon-gold:#C9A959; --ribbon-bordo:#A72A28;
  --ribbon-green:#3E5C43; --ribbon-cream:#EDE6D6;

  /* písma */
  --font-sans:'Schibsted Grotesk',system-ui,sans-serif;
  --font-mono:'IBM Plex Mono',ui-monospace,monospace;

  /* rádiusy */
  --r-sm:6px; --r-md:8px; --r-pill:100px;

  /* obsahová šířka */
  --w-content:1360px;
  --pad-x:40px;
}

/* ---------- reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--c-bg);font-family:var(--font-sans);color:var(--c-ink);font-size:16px;line-height:1.6}
img{max-width:100%;height:auto;display:block}
a{color:var(--c-red);text-decoration:none}
a:hover{color:var(--c-red-dark)}
button{font:inherit;border:0;background:none;cursor:pointer;padding:0;color:inherit}
input,select,textarea{font:inherit}
h1,h2,h3,h4,p,ul,ol,figure{margin:0}
ul[class],ol[class]{list-style:none;padding:0}

/* Text jen pro čtečky — vizuálně skrytý, ale dostupný. Používají ho nadpisy
   pokladny a účtu, kde design viditelný nadpis nemá. */
.screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ---------- obsahová plocha ---------- */
.site{max-width:var(--w-content);margin:0 auto;background:var(--c-surface);box-shadow:0 2px 14px rgba(30,42,33,.1)}
.section-pad{padding:56px var(--pad-x)}

/* ---------- typografie / mono metadata ---------- */
.mono-label{font:500 12px var(--font-mono);letter-spacing:.1em;text-transform:uppercase}
.mono-label--red{color:var(--c-red)}
.mono-label--muted{color:var(--c-muted)}
.h2-section{font:800 28px var(--font-sans);letter-spacing:-.03em;color:var(--c-ink)}

/* ---------- tlačítka ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:700 15px var(--font-sans);padding:17px 34px;border-radius:var(--r-sm);cursor:pointer;text-align:center;transition:background .15s,color .15s,border-color .15s}
.btn--primary{background:var(--c-red);color:#fff}
.btn--primary:hover{background:var(--c-ink);color:#fff}
.btn--dark{background:var(--c-ink);color:#fff}
.btn--dark:hover{background:var(--c-red);color:#fff}
.btn--outline{border:1.5px solid var(--c-ink);color:var(--c-ink);padding:15px 30px;background:transparent}
.btn--outline:hover{background:var(--c-ink);color:var(--c-amber-soft)}
.btn--amber{background:var(--c-amber);color:var(--c-ink)}
.btn--amber:hover{background:#fff;color:var(--c-ink)}

/* ---------- topbar ---------- */
.topbar{background:var(--c-ink);display:flex;justify-content:space-between;align-items:center;padding:9px var(--pad-x);font:500 11.5px var(--font-mono);letter-spacing:.06em;color:#fff}
.topbar__stars{color:var(--c-amber)}
.topbar .star-svg{display:inline-block;vertical-align:-1px}

/* ---------- header ---------- */
.site-header{display:flex;justify-content:space-between;align-items:center;padding:0 var(--pad-x);height:84px;border-bottom:1px solid var(--c-line);background:var(--c-surface);position:relative;z-index:20}
.site-header__logo img{height:50px;width:auto}

.site-nav{display:flex;align-items:center}
/* Navigace působila drobně a ztracená v bílé ploše — o stupeň větší
   písmo, víc vzduchu v pillu a zřetelnější stav při najetí. */
.site-nav>ul{display:flex;gap:6px;font:700 15.5px var(--font-sans);color:var(--c-ink);align-items:center;list-style:none;margin:0;padding:0}
.site-nav a{position:relative;display:inline-block;color:inherit;padding:11px 20px;border-radius:var(--r-pill);letter-spacing:-.01em;transition:background .14s,color .14s}
.site-nav a:hover{background:var(--c-amber-soft);color:var(--c-red)}
.site-nav .current-menu-item>a,
.site-nav .current-menu-ancestor>a,
body.home .site-nav .menu-item-home>a{background:var(--c-ink);color:#fff}
.site-nav .current-menu-item>a:hover,
.site-nav .current-menu-ancestor>a:hover,
body.home .site-nav .menu-item-home>a:hover{background:var(--c-ink);color:#fff}
.site-nav .menu-item--season>a{color:var(--c-red)}
.site-nav .menu-item--season>a:hover{background:var(--c-amber-soft);color:var(--c-red)}
/* mašle nad aktivní položkou */
.nav-bow{position:absolute;left:50%;top:0;transform:translate(-50%,-62%);z-index:6;filter:drop-shadow(0 1px 2px rgba(0,0,0,.35));pointer-events:none;display:none}
.site-nav .current-menu-item>a .nav-bow,
.site-nav .current-menu-ancestor>a .nav-bow,
body.home .site-nav .menu-item-home>a .nav-bow{display:block}

/* podvolby (dropdown) */
.site-nav .menu-item-has-children{position:relative}
/* Rozbalená nabídka: širší, s výraznějším stínem a špičkou mířící na
   položku — úzký sloupec bez ukotvení působil odděleně od navigace. */
.site-nav .sub-menu{display:none;position:absolute;left:50%;top:calc(100% + 10px);transform:translateX(-50%);
  background:var(--c-surface);border:1px solid var(--c-line);border-radius:12px;
  box-shadow:0 18px 44px rgba(17,17,17,.14),0 2px 6px rgba(17,17,17,.06);
  padding:10px;min-width:236px;z-index:30;flex-direction:column;gap:1px}

/* špička nad nabídkou */
.site-nav .sub-menu::after{content:"";position:absolute;left:50%;top:-6px;width:11px;height:11px;
  margin-left:-5.5px;background:var(--c-surface);border-left:1px solid var(--c-line);
  border-top:1px solid var(--c-line);transform:rotate(45deg);border-radius:2px 0 0 0}

/* Dlouhé seznamy do dvou sloupců — čtrnáct položek pod sebou sahalo
   skoro přes celou výšku okna. Multicolumn (ne grid) proto, že plní
   sloupce shora dolů, takže se seznam čte v pořadí, v jakém je v menu. */
.site-nav .menu-item-has-children.dkk-nav--siroke > .sub-menu{
  display:none;width:434px;columns:2;column-gap:8px;column-rule:1px solid var(--c-line-soft)}
.site-nav .menu-item-has-children.dkk-nav--siroke:hover > .sub-menu,
.site-nav .menu-item-has-children.dkk-nav--siroke:focus-within > .sub-menu{display:block}
.site-nav .dkk-nav--siroke > .sub-menu > li{break-inside:avoid}
.site-nav .menu-item-has-children:hover>.sub-menu,
.site-nav .menu-item-has-children:focus-within>.sub-menu{display:flex}
/* Neviditelný můstek přes mezeru mezi položkou a rozbaleným seznamem —
   bez něj myš cestou dolů opustí hover a nabídka zmizí. */
.site-nav .sub-menu::before{content:"";position:absolute;left:0;right:0;top:-14px;height:14px}
.site-nav .sub-menu a{display:block;font:500 14px var(--font-sans);padding:10px 15px;border-radius:var(--r-sm);white-space:nowrap;transition:background .12s,color .12s}
.site-nav .sub-menu a:hover{background:var(--c-amber-soft);color:var(--c-red)}

.header-tools{display:flex;gap:20px;align-items:center}
.header-tools__search{display:inline-flex;align-items:center}
.btn-cart{background:var(--c-red);color:#fff;font:700 13.5px var(--font-sans);padding:11px 20px;border-radius:var(--r-sm)}
.btn-cart:hover{background:var(--c-ink);color:#fff}

/* ---------- běžící lišta ---------- */
.marquee{background:var(--c-amber);overflow:hidden;padding:11px 0}
.marquee__track{display:flex;width:max-content;animation:dkk-mq var(--marquee-speed,24s) linear infinite;font:500 12.5px var(--font-mono);letter-spacing:.1em;color:var(--c-ink)}
.marquee__track span{white-space:nowrap;padding-right:56px}
@keyframes dkk-mq{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.marquee__track{animation:none}}

/* ---------- karta produktu ---------- */
.product-card{background:var(--c-surface);border:1px solid var(--c-line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;position:relative;transition:box-shadow .15s}
.product-card:hover{box-shadow:0 10px 30px rgba(17,17,17,.08)}
.product-card__media{height:290px;position:relative;background:var(--c-surface-2)}
.product-card__media img{width:100%;height:100%;object-fit:cover}
.product-card__badge{position:absolute;top:10px;left:10px;background:var(--c-amber);color:var(--c-ink);font:500 10.5px var(--font-mono);letter-spacing:.06em;padding:6px 10px;border-radius:4px;pointer-events:none;text-transform:uppercase;z-index:2}
.product-card__body{padding:16px;display:flex;flex-direction:column;gap:6px;flex:1}
.product-card__row{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.product-card__title{font:700 16px var(--font-sans);letter-spacing:-.01em;color:var(--c-ink)}
.product-card__title a{color:inherit}
/* Cena musí jít poznat na první pohled — ve stejné barvě i váze jako název
   splývala s textem. Meruňkový chip ji oddělí, aniž by křičel jako sleva. */
.product-card__price{font:800 15px var(--font-sans);letter-spacing:-.02em;color:var(--c-ink);white-space:nowrap;margin-left:auto;background:var(--c-amber-soft);padding:6px 14px;border-radius:var(--r-pill)}
.product-card__note{font:400 12.5px/1.5 var(--font-sans);color:#777}
.product-card__add{border:1.5px solid var(--c-ink);color:var(--c-ink);font:700 13px var(--font-sans);padding:11px 0;text-align:center;border-radius:var(--r-sm);cursor:pointer;margin-top:auto;transition:background .15s,color .15s,border-color .15s}
.product-card__add:hover{background:var(--c-red);border-color:var(--c-red);color:#fff}
.product-card a.product-card__link-overlay{position:absolute;inset:0;z-index:1}
.product-card__body{position:relative;z-index:2}

.products-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}

/* ---------- sekce hlavičky ---------- */
.section-head{display:flex;justify-content:space-between;align-items:baseline}
.section-head__title{font:800 32px var(--font-sans);letter-spacing:-.03em;color:var(--c-ink)}
.section-head__more{font:500 12px var(--font-mono);color:var(--c-red);cursor:pointer;letter-spacing:.02em}

/* ---------- patička ---------- */
.site-footer{background:var(--c-ink);color:#9A8E88}
.site-footer a{color:#D8D0CB;text-decoration:none}
.site-footer a:hover{color:#fff;text-decoration:underline}

/* sloupce — poslední (kontakt) je širší, ať se adresa nezalamuje */
.site-footer__cols{display:grid;grid-template-columns:1.3fr 1fr 1.2fr 1.15fr;gap:40px;padding:48px var(--pad-x) 36px}
.footer-col{display:flex;flex-direction:column;gap:14px;min-width:0}
.footer-col__title{font:500 10.5px var(--font-mono);letter-spacing:.1em;color:#7A6F6A;text-transform:uppercase}
.footer-col__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.footer-col__list a,.footer-col__list li{font:400 14px/1.45 var(--font-sans);letter-spacing:0}

/* značka */
.footer-col--brand{gap:16px}
.footer-col__logo{width:auto;max-width:200px;height:auto;object-fit:contain}
.footer-col__claim{font:400 13.5px/1.6 var(--font-sans);color:#9A8E88;margin:0;max-width:26ch}

/* kontakt */
.footer-col__strong{font:700 15.5px var(--font-sans);color:#fff !important}
.footer-col__strong:hover{color:var(--c-amber) !important;text-decoration:none}
.footer-col__hours{color:#9A8E88}
.footer-col__firma{font:400 12.5px/1.7 var(--font-sans);color:#8A7E79;font-style:normal;margin-top:2px}
.footer-col__firma-nazev{display:block;color:#B8AEA9;font-weight:500}

/* spodní pruh s právní informací */
.site-footer__bottom{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 28px;
  padding:16px var(--pad-x);border-top:1px solid rgba(255,255,255,.09);
  font:500 11px var(--font-mono);letter-spacing:.06em;color:#7A6F6A}
.site-footer__adr{flex:1;min-width:260px;text-align:right}

/* ---------- homepage ---------- */
.hero{background:var(--c-amber-soft);display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);min-height:600px}
.hero__copy{padding:68px 52px 52px var(--pad-x);display:flex;flex-direction:column;justify-content:center;gap:26px}
.hero__title{font:800 74px/0.99 var(--font-sans);letter-spacing:-.04em;color:var(--c-ink);text-wrap:balance}
.hero__title em{font-style:normal;color:var(--c-red)}
.hero__perex{font:400 16.5px/1.6 var(--font-sans);color:#5A5347;max-width:440px}
.hero__cta{display:flex;gap:12px;align-items:center}
.hero__usps{display:flex;gap:22px;font:400 13px var(--font-sans);color:#5A5347}
.hero__media{position:relative;padding:36px var(--pad-x) 36px 0}
.hero__img{position:relative;height:100%;min-height:520px;border-radius:12px;overflow:hidden;box-shadow:0 20px 50px rgba(90,60,20,.18);background:var(--c-surface-2)}
.hero__img img{width:100%;height:100%;object-fit:cover}
.hero__quote{position:absolute;left:-26px;bottom:60px;background:#fff;border-radius:10px;padding:14px 18px;display:flex;flex-direction:column;gap:3px;box-shadow:0 12px 30px rgba(90,60,20,.16);pointer-events:none}
.hero__quote-stars{color:var(--c-amber);font-size:13px;letter-spacing:2px}
.hero__quote-text{font:500 13.5px var(--font-sans);color:var(--c-ink)}
.hero__quote-meta{font:500 11px var(--font-mono);color:var(--c-muted)}
.hero__flag{position:absolute;right:56px;top:52px;background:var(--c-ink);color:#fff;font:500 11.5px var(--font-mono);letter-spacing:.06em;padding:9px 13px;border-radius:var(--r-pill);pointer-events:none}

.cats{padding:56px var(--pad-x);display:flex;flex-direction:column;gap:24px}
.cats__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.cat-card{border-radius:12px;overflow:hidden;cursor:pointer;display:flex;flex-direction:column;transition:box-shadow .15s;position:relative}
.cat-card:hover{box-shadow:0 12px 30px rgba(90,60,20,.14)}
.cat-card--peach{background:var(--c-amber-soft)}
.cat-card--rose{background:#F1E4E1}
.cat-card--sage{background:#EAEDE4}
.cat-card__media{height:220px;padding:14px 14px 0}
.cat-card__media-in{height:100%;border-radius:8px;overflow:hidden;background:var(--c-surface-2)}
.cat-card__media-in img{width:100%;height:100%;object-fit:cover}
.cat-card__row{display:flex;justify-content:space-between;align-items:center;padding:14px 18px}
.cat-card__name{font:700 16px var(--font-sans);color:var(--c-ink)}
.cat-card__arrow{color:var(--c-red);font-weight:700}
.cat-card a{position:absolute;inset:0}

.best{background:var(--c-surface-2);padding:56px var(--pad-x);display:flex;flex-direction:column;gap:24px}

.season-band{background:var(--c-red);display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:30px;padding:44px var(--pad-x)}
.season-band__label{font:500 11.5px var(--font-mono);letter-spacing:.1em;color:var(--c-amber)}
.season-band__title{font:800 38px/1.1 var(--font-sans);letter-spacing:-.03em;color:#fff}
.season-band__col{display:flex;flex-direction:column;gap:8px}
.season-band .btn{white-space:nowrap}

.b2b{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);border-bottom:1px solid var(--c-line)}
.b2b__copy{padding:60px var(--pad-x);display:flex;flex-direction:column;gap:18px;justify-content:center}
.b2b__title{font:800 40px/1.05 var(--font-sans);letter-spacing:-.03em;color:var(--c-ink)}
.b2b__title em{font-style:normal;color:var(--c-red)}
.b2b__perex{font:400 15.5px/1.6 var(--font-sans);color:var(--c-text);max-width:430px}
.b2b__cta{display:flex;gap:12px;align-items:center}
.b2b__cta .btn{font-size:14.5px;padding:15px 30px}
.b2b__phone{font:700 14.5px var(--font-sans);color:var(--c-ink);padding:15px 4px;border-bottom:2px solid var(--c-red)}
.b2b__media{border-left:1px solid var(--c-line);height:420px;background:var(--c-surface-2)}
.b2b__media img{width:100%;height:100%;object-fit:cover}

/* ---------- obecné stránky (obsah) ---------- */
/* Sloupec textu je kvůli čitelnosti užší než obsahová plocha — musí ale
   zůstat uprostřed, jinak se dlouhé právní texty lepí k levému okraji. */
/* Sloupec textu je kvůli čitelnosti užší než obsahová plocha — musí ale
   zůstat uprostřed, jinak se dlouhé právní texty lepí k levému okraji. */
.page-plain{padding:56px var(--pad-x) 72px;max-width:760px;margin-inline:auto}
.page-plain h1{font:800 44px/1.05 var(--font-sans);letter-spacing:-.035em;margin-bottom:10px}
.page-plain h1+p,.page-plain h1+h2{margin-top:22px}

/* Nadpisy nesou orientaci v dlouhém textu — potřebují vzduch nad sebou
   a znatelně větší stupeň než běžný odstavec. */
.page-plain h2{font:800 26px/1.25 var(--font-sans);letter-spacing:-.03em;color:var(--c-ink);
  margin:44px 0 12px;padding-top:22px;border-top:1px solid var(--c-line)}
.page-plain h2:first-of-type{border-top:0;padding-top:0;margin-top:28px}
.page-plain h3{font:700 18px/1.35 var(--font-sans);letter-spacing:-.015em;color:var(--c-ink);margin:26px 0 8px}
.page-plain h4{font:700 15.5px var(--font-sans);color:var(--c-ink);margin:20px 0 6px}

.page-plain p{font:400 16px/1.7 var(--font-sans);color:var(--c-text);margin-bottom:16px;max-width:66ch}
.page-plain strong{color:var(--c-ink);font-weight:700}
.page-plain a{color:var(--c-red);text-decoration:underline;text-underline-offset:2px}
.page-plain a:hover{color:var(--c-red-dark)}

.page-plain ul,.page-plain ol{color:var(--c-text);margin:0 0 18px;padding-left:22px;
  font:400 16px/1.7 var(--font-sans);max-width:66ch}
.page-plain li+li{margin-top:7px}
.page-plain li::marker{color:var(--c-red)}

.page-plain img{border-radius:var(--r-md);margin:20px 0}
.page-plain table{width:100%;border-collapse:collapse;margin:18px 0;font-size:15px}
.page-plain th{text-align:left;font:600 13px var(--font-sans);color:var(--c-ink);
  background:var(--c-surface-2);padding:10px 12px}
.page-plain td{padding:10px 12px;border-bottom:1px solid var(--c-line-soft);vertical-align:top}
.page-plain blockquote{border-left:3px solid var(--c-amber);margin:20px 0;padding:4px 0 4px 18px;
  font:400 16px/1.65 var(--font-sans);color:var(--c-ink)}
.page-plain hr{border:0;border-top:1px solid var(--c-line);margin:34px 0}

@media (max-width:1024px){
  .page-plain{padding:36px var(--pad-x) 52px}
  .page-plain h1{font-size:32px}
  .page-plain h2{font-size:22px;margin-top:34px}
}

/* ---------- Woo notices ---------- */
.woocommerce-error,.woocommerce-message,.woocommerce-info{list-style:none;margin:0 0 20px;padding:14px 18px;border-radius:var(--r-md);font:500 14px var(--font-sans)}
.woocommerce-error{background:#FBEeee;color:var(--c-red);border:1px solid var(--c-red)}
.woocommerce-error li{position:relative}
.woocommerce-message,.woocommerce-info{background:var(--c-surface-2);color:var(--c-ink);border:1px solid var(--c-line)}
.woocommerce-message a,.woocommerce-info a{font-weight:700}

/* ---------- mobil (viz Shop - Mobil.dc.html) ---------- */
@media (max-width:1024px){
  :root{--pad-x:20px}
  /* patička: čtyři sloupce se na tablet nevejdou, na mobilu jde vše pod sebe */
  .site-footer__cols{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;padding:36px var(--pad-x) 28px}
  .site-footer__bottom{flex-direction:column;align-items:flex-start;line-height:1.7}
  .site-footer__adr{text-align:left}
  .products-grid,.cats__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hero{grid-template-columns:1fr;min-height:0}
  .hero__title{font-size:36px}
  .hero__media{padding:0 20px 28px}
  .hero__img{min-height:320px}
  .hero__quote{left:8px;bottom:20px}
  .hero__flag{right:28px;top:16px}
  .b2b{grid-template-columns:1fr}
  .b2b__media{border-left:0;height:300px}
  .season-band{grid-template-columns:1fr;padding:36px var(--pad-x)}
  .season-band__title{font-size:28px}
  .topbar{font-size:10px;gap:8px}
  .site-header{height:64px}
  /* Logo se v hlavičce zmáčklo: čtyři prvky se na 375 px nevešly, flex ho
     stlačil na 96 px a poměr stran spadl z 2,94 na 2,51. `flex:none` mu
     šířku uhájí, užší mezery mezi ikonami na to udělají místo. */
  .site-header__logo{flex:none}
  .site-header__logo img{height:34px;width:auto;max-width:none}
  .header-tools{gap:8px}
  .site-nav{display:none}
  .site-nav.is-open{display:block;position:absolute;top:100%;left:0;right:0;background:var(--c-surface);border-bottom:1px solid var(--c-line);padding:12px;box-shadow:0 20px 40px rgba(17,17,17,.12);z-index:40}
  .site-nav.is-open>ul{flex-direction:column;align-items:stretch}
  .site-nav.is-open a{text-align:center;min-height:48px;display:flex;align-items:center;justify-content:center}
  .site-nav .sub-menu{position:static;transform:none;display:flex;border:0;box-shadow:none;padding:0 0 6px}
  /* Dvousloupcové rozbalení je jen pro rozbalovací nabídku na desktopu —
     v mobilním seznamu by se z něj stal pevně široký blok mimo obrazovku. */
  .site-nav .menu-item-has-children.dkk-nav--siroke > .sub-menu,
  .site-nav .menu-item-has-children.dkk-nav--siroke:hover > .sub-menu,
  .site-nav .menu-item-has-children.dkk-nav--siroke:focus-within > .sub-menu{
    display:flex;width:auto;columns:auto;column-rule:none}
  .site-nav .sub-menu::after,
  .site-nav .sub-menu::before{display:none}
  .nav-toggle{display:inline-flex !important}
}
.nav-toggle{display:none;width:44px;height:44px;align-items:center;justify-content:center}
@media (max-width:560px){
  .products-grid,.cats__grid{grid-template-columns:1fr}
  .topbar span:last-child{display:none}
  .site-footer__cols{grid-template-columns:1fr;gap:26px}
}

/* ---------- Complianz cookie lišta v barvách brandu ---------- */
#cmplz-cookiebanner-container .cmplz-cookiebanner{font-family:var(--font-sans);border-radius:var(--r-md);box-shadow:0 20px 50px rgba(17,17,17,.18)}
.cmplz-cookiebanner .cmplz-btn.cmplz-accept{background:var(--c-red)!important;color:#fff!important;border-radius:var(--r-sm)!important;font-weight:700}
.cmplz-cookiebanner .cmplz-btn.cmplz-accept:hover{background:var(--c-ink)!important}
.cmplz-cookiebanner .cmplz-btn.cmplz-deny,
.cmplz-cookiebanner .cmplz-btn.cmplz-view-preferences,
.cmplz-cookiebanner .cmplz-btn.cmplz-save-preferences{border:1.5px solid var(--c-ink)!important;color:var(--c-ink)!important;background:transparent!important;border-radius:var(--r-sm)!important;font-weight:700}
.cmplz-cookiebanner .cmplz-links a{color:var(--c-red)!important}

/* ---------- vysouvací košík ---------- */
.mini-cart{position:fixed;inset:0;z-index:100}
.mini-cart[hidden]{display:none}
.mini-cart__backdrop{position:absolute;inset:0;background:rgba(51,34,28,.42);opacity:0;transition:opacity .22s}
.mini-cart.is-open .mini-cart__backdrop{opacity:1}
.mini-cart__panel{position:absolute;top:0;right:0;height:100%;width:min(400px,100%);background:var(--c-surface);
  box-shadow:-14px 0 40px rgba(17,17,17,.16);transform:translateX(100%);transition:transform .22s ease-out;
  display:flex;flex-direction:column}
.mini-cart.is-open .mini-cart__panel{transform:none}
.mini-cart__inner{display:flex;flex-direction:column;height:100%;min-height:0}

.mini-cart__head{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:20px 22px;border-bottom:1px solid var(--c-line)}
.mini-cart__title{font:800 19px var(--font-sans);letter-spacing:-.02em;color:var(--c-ink)}
.mini-cart__close{color:var(--c-muted);display:inline-flex;padding:4px}
.mini-cart__close:hover{color:var(--c-ink)}

/* Vyšší specificita — globální `ul[class]{padding:0}` by odsazení přebilo
   a položky by se lepily na kraj panelu. */
.mini-cart .mini-cart__list{list-style:none;margin:0;padding:8px 22px;overflow-y:auto;flex:1;min-height:0}
.mini-cart__item{display:flex;gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid var(--c-line-soft)}
.mini-cart__thumb img{width:54px;height:54px;object-fit:cover;border-radius:var(--r-sm)}
.mini-cart__info{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}
.mini-cart__name{font:600 14px/1.35 var(--font-sans);color:var(--c-ink)}
.mini-cart__name:hover{color:var(--c-red)}
.mini-cart__meta{font:500 12px var(--font-mono);color:var(--c-muted)}
.mini-cart__remove{font-size:20px;line-height:1;color:var(--c-muted);padding:2px 6px}
.mini-cart__remove:hover{color:var(--c-red)}

.mini-cart__foot{border-top:1px solid var(--c-line);padding:18px 22px 22px;display:flex;flex-direction:column;gap:12px}
.mini-cart__sum{display:flex;justify-content:space-between;align-items:baseline;
  font:500 12px var(--font-mono);letter-spacing:.06em;color:var(--c-muted);text-transform:uppercase}
.mini-cart__sum strong{font:800 20px var(--font-sans);letter-spacing:-.02em;color:var(--c-ink)}
.mini-cart__checkout{width:100%}
.mini-cart__link{text-align:center;font:600 13.5px var(--font-sans);color:var(--c-ink);text-decoration:underline}
.mini-cart__link:hover{color:var(--c-red)}

.mini-cart__empty{padding:36px 22px;display:flex;flex-direction:column;gap:16px;align-items:flex-start}
.mini-cart__empty p{font:400 15px var(--font-sans);color:var(--c-text)}

body.has-mini-cart{overflow:hidden}
@media (prefers-reduced-motion:reduce){
  .mini-cart__panel,.mini-cart__backdrop{transition:none}
}

/* ---------- vyhledávání v hlavičce ---------- */
.header-search{display:flex;align-items:center;gap:8px}
.header-tools__search{display:inline-flex;align-items:center;color:var(--c-ink);padding:6px;border-radius:var(--r-sm)}
.header-tools__search:hover{color:var(--c-red);background:var(--c-surface-2)}
.header-search__form{display:flex;align-items:center;gap:6px;background:var(--c-surface-2);
  border:1.5px solid var(--c-line);border-radius:var(--r-pill);padding:5px 6px 5px 16px;
  width:0;opacity:0;overflow:hidden;transition:width .2s ease-out,opacity .15s}
/* Zavřené vyhledávání je jen 4 px široké, ale pořád fokusovatelné — tabulátor
   do něj skočil a nešlo do něj psát. `visibility` ho vyřadí z pořadí. */
.header-search:not(.is-open) .header-search__form{visibility:hidden}
/* Po rozbalení má pole vlastní tlačítko s lupou — spouštěcí ikona by
   byla druhá v řadě, proto ji schováme. Zavře se Escapem nebo klikem mimo. */
.header-search.is-open .header-tools__search{display:none}
.header-search.is-open .header-search__form{width:290px;opacity:1}
.header-search__form input[type="search"]{border:0;outline:0;background:transparent;width:100%;
  font:500 14px var(--font-sans);color:var(--c-ink);-webkit-appearance:none}
.header-search__form input[type="search"]::placeholder{color:var(--c-muted)}
.header-search__form button{display:inline-flex;align-items:center;justify-content:center;
  width:30px;height:30px;border-radius:50%;background:var(--c-red);color:#fff;flex:none}
.header-search__form button:hover{background:var(--c-ink)}
@media (max-width:1024px){
  .header-search.is-open .header-search__form{position:absolute;top:100%;right:var(--pad-x);width:min(320px,calc(100vw - 40px));
    background:var(--c-surface);box-shadow:0 10px 30px rgba(17,17,17,.12);z-index:40}
  /* Pod 16 px iOS Safari při klepnutí do pole přizoomuje celou stránku
     a uživatel pak ručně odzoomovává — proto přesně 16 px, ne míň. */
  .header-search__form input[type="search"]{font-size:16px;min-height:44px}
  .header-search__form button{width:44px;height:44px}
}

/* ---------- donačítání v kategorii ---------- */
.cat-nacist__obal{display:flex;justify-content:center;padding:8px 0 52px}
.cat-nacist{border:1.5px solid var(--c-ink);color:var(--c-ink);background:transparent;
  font:700 14px var(--font-sans);padding:15px 40px;border-radius:var(--r-sm);cursor:pointer;
  transition:background .15s,color .15s}
.cat-nacist:hover{background:var(--c-ink);color:#fff}
.cat-nacist:disabled{opacity:.55;cursor:default}
.cat-nacist span{font-weight:500;color:var(--c-muted)}
.cat-nacist:hover span{color:var(--c-amber-soft)}
.cat-nacist__konec{font:500 12px var(--font-mono);letter-spacing:.08em;color:var(--c-muted);text-transform:uppercase}

/* ---------- nekonečné donačítání ---------- */
/* Dávky se připojují samy, tlačítko tedy myší nikdo nepotřebuje. Zůstává ale
   dostupné klávesnici — jinak by se uživatel bez myši ke zbytku seznamu
   nedostal — a při zaostření se zase zobrazí. */
.cat-nacist__obal.je-automaticke{min-height:56px;align-items:center;padding:8px 0 44px}
.cat-nacist__obal.je-automaticke .cat-nacist{position:absolute;width:1px;height:1px;
  padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.cat-nacist__obal.je-automaticke .cat-nacist:focus-visible{position:static;width:auto;height:auto;
  padding:15px 40px;margin:0;overflow:visible;clip:auto;border:1.5px solid var(--c-ink)}
.cat-nacist__obal.je-automaticke .cat-nacist:focus-visible ~ .cat-nacist__indikator{display:none}

/* tři tečky, ať je vidět, že se něco děje */
.cat-nacist__indikator{display:inline-flex;gap:6px;align-items:center;--tecka:8px}
.cat-nacist__indikator[hidden]{display:none}
.cat-nacist__indikator::before,
.cat-nacist__indikator::after{content:"";width:var(--tecka);height:var(--tecka);border-radius:50%;
  background:var(--c-amber);animation:dkk-tecky 1s ease-in-out infinite}
.cat-nacist__indikator::after{animation-delay:.25s}
@keyframes dkk-tecky{0%,100%{opacity:.25;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}
@media (prefers-reduced-motion:reduce){
  .cat-nacist__indikator::before,
  .cat-nacist__indikator::after{animation:none;opacity:.6}
}

/* ============================================================
   Mobil: dotykové plochy a přetékající galerie
   Handoff §7 žádá minimum 48 px — hlavička, přepínače a odkazy
   v patičce se pod to vešly a na telefonu se do nich těžko trefí.
   ============================================================ */
@media (max-width:1024px){
  /* hlavička */
  .site-header__logo{display:inline-flex;align-items:center;min-height:48px}
  .header-tools__search{min-width:48px;min-height:48px;justify-content:center}
  .btn-cart{min-height:48px;display:inline-flex;align-items:center}
  .nav-toggle{min-width:48px;min-height:48px;display:inline-flex;align-items:center;justify-content:center}

  /* přepínač zobrazení obsahu koše */
  .basket-box__toggle-btn{min-height:44px;padding-inline:16px}

  /* odkazy v patičce a další drobné akce */
  .footer-col__list a,
  .footer-col__strong{display:inline-flex;align-items:center;min-height:44px}
  /* Patička nese povinné právní odkazy — na mobilu měly 14 px a claim 13,5 px.
     O stupeň výš, ať se dají přečíst bez přibližování. */
  .footer-col__list a,
  .footer-col__list li{font-size:15px}
  .footer-col__claim{font-size:15px}
  .pd-related__more,
  .section-head__more,
  .cat-hero__crumbs a{display:inline-flex;align-items:center;min-height:44px}

  /* galerie produktu přetékala mimo obrazovku (slider si držel šířku desktopu) */
  .woocommerce-product-gallery,
  .woocommerce-product-gallery__wrapper{max-width:100%;overflow:hidden}
  .woocommerce-product-gallery__wrapper{display:flex}
  .woocommerce-product-gallery__image{flex:0 0 100%;max-width:100%}
  .woocommerce-product-gallery__image img{width:100%;height:auto}
  .woocommerce-product-gallery img.zoomImg{display:none!important}
  .woocommerce-product-gallery__trigger{min-width:44px;min-height:44px;
    display:inline-flex;align-items:center;justify-content:center}
}

@media (max-width:1024px){
  /* Vysouvací košík je hlavní interakce po přidání zboží. „Zobrazit košík"
     měl 17 px výšky, zavírací křížek a odebrání položky 24–26 px. */
  .mini-cart__link{display:flex;align-items:center;justify-content:center;min-height:44px}
  .mini-cart__close{min-width:44px;min-height:44px;align-items:center;justify-content:center;padding:0}
  .mini-cart__remove{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:0}
  .mini-cart__name{font-size:15px}

  /* zbylé drobné akce — chipy filtrů, ovládání množství, odkazy zpět */
  .cat-filter__chip{min-height:44px;display:inline-flex;align-items:center}
  .cart-head__continue{display:inline-flex;align-items:center;min-height:44px}
  .cart-form__update,
  .cart-item__remove,
  .qty__btn,
  .pd-qty__btn{min-width:44px;min-height:44px}
  .marquee{display:none}   /* běžící text na telefonu jen zabírá místo */

  /* ---------- formulářová pole ----------
     Pod 16 px iOS Safari při klepnutí do pole přizoomuje celou stránku a
     uživatel ji pak ručně odzoomovává. Proto přesně 16 px — a vyjmenovaně
     i pro třídy WooCommerce a pluginů (Zásilkovna, Comgate), kam by pravidlo
     na holý element nedosáhlo. */
  input:not([type=checkbox]):not([type=radio]):not([type=hidden]),
  select,
  textarea,
  .input-text,
  .b2bp-field,
  .woocommerce-Input,
  .cart-coupon__input,
  .cart-dedication__input,
  .cat-toolbar select{font-size:16px}

  /* Pole na plnou šířku — na mobilu není důvod je krátit, a půlené pole
     vedle sebe se na 375 px nevejde. */
  .input-text,
  .b2bp-field,
  .woocommerce-Input,
  .cart-coupon__input,
  .woocommerce-form-row input{width:100%;min-height:48px}
  textarea.b2bp-field,
  .cart-dedication__input{min-height:96px}

  /* Zaškrtávátka měla 13×13 px. Samotný čtvereček se nezvětšuje na 44 px
     (vypadalo by to jako chyba) — dostane 22 px a celý řádek s popiskem
     44 px výšky, takže se dá klepnout kamkoli do textu. */
  input[type=checkbox],
  input[type=radio]{width:22px;height:22px;flex:none}
  .woocommerce-form__label-for-checkbox,
  .form-row label.checkbox,
  label.woocommerce-form__label{display:flex;align-items:center;gap:10px;min-height:44px}

  /* Odesílací tlačítka WooCommerce (přihlášení, registrace, kupón) */
  .woocommerce button.button,
  .woocommerce input.button,
  .woocommerce a.button{min-height:48px;display:inline-flex;align-items:center;justify-content:center}
}

/* ---------- výsledky hledání (index.php) ---------- */
.page-plain__accent{color:var(--c-red)}
.page-plain__perex{font:500 12px var(--font-mono);letter-spacing:.06em;
  text-transform:uppercase;color:var(--c-muted);margin-bottom:28px}
.page-plain__vysledek{border-top:1px solid var(--c-line);padding:22px 0}
.page-plain__vysledek:first-of-type{border-top:0;padding-top:0}
.page-plain__vysledek-nadpis{font:700 20px/1.3 var(--font-sans);letter-spacing:-.02em;
  border:0;padding:0;margin:0 0 6px}
.page-plain__vysledek-nadpis a{color:var(--c-ink);text-decoration:none;
  display:inline-flex;align-items:center;min-height:44px}
.page-plain__vysledek-nadpis a:hover{color:var(--c-red)}
.page-plain__vysledek p{margin:0}

/* Stránkování výsledků — číslice samy o sobě mají 9 px, na dotyk se do nich
   nedá trefit. */
.page-plain .navigation.pagination{margin-top:32px;border-top:1px solid var(--c-line);padding-top:20px}
.page-plain .nav-links{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.page-plain .page-numbers{display:inline-flex;align-items:center;justify-content:center;
  min-width:44px;min-height:44px;padding:0 10px;border-radius:var(--r-sm);
  font:600 15px var(--font-sans);color:var(--c-ink);text-decoration:none}
.page-plain a.page-numbers:hover{background:var(--c-amber-soft);color:var(--c-red)}
.page-plain .page-numbers.current{background:var(--c-ink);color:#fff}

/* provozovna v patičce — druhá adresa pod sídlem, oddělená vzduchem
   a jemnou linkou, ať se nepletou */
.footer-col__provozovna{display:block;margin-top:12px;padding-top:10px;
  border-top:1px solid rgba(255,255,255,.12)}
.footer-col__provozovna strong{display:block;font:500 10.5px var(--font-mono);
  letter-spacing:.08em;text-transform:uppercase;color:#9A8E88;margin-bottom:3px}
