/* ═══════════════════════════════════════════════════════════════════════
   Doplňky pro WordPress a WooCommerce.
   style.css je doslovná kopie návrhu; tady je jen to, co návrh neřeší:
   obaly widgetů a menu, běžný text z editoru, hlášky a stránkování.
   ═══════════════════════════════════════════════════════════════════════ */

/* ── promo lišta: obal widgetu nesmí rozbít flex řádek ─────────────── */
.ribbon .textwidget,
.ribbon .widget_text,
.ribbon .widget_block,
.ribbon .custom-html-widget{display:contents}
.ribbon p:empty{display:none}

/* starý obsah widgetu (bloky z editoru s barvou a velikostí písma) —
   lišta vypadá jako v návrhu i předtím, než se přepíše na p.ribbon__lead */
.ribbon > p:not([class*="ribbon__"]){
  margin:0;
  font-family:var(--serif); font-weight:300;
  font-size:clamp(.875rem,1.15vw,1rem) !important;
  line-height:1.5; color:#F2EDE4 !important;
}
.ribbon > p:not([class*="ribbon__"]) strong{font-weight:500}
.ribbon > p:not([class*="ribbon__"]) a{
  color:#fff; border-bottom:1px solid rgba(242,237,228,.4); padding-bottom:.08em;
  transition:border-color .4s var(--ease);
}
.ribbon > p:not([class*="ribbon__"]) a:hover{border-color:#fff}
.ribbon mark{background:none !important; color:inherit !important}
.ribbon hr,.ribbon .wp-block-separator{display:none}

/* ── hlavní menu: oddělovač před e-shopem (v návrhu li.nav__sep) ───── */
.nav__list .nav__item--shop{display:flex; align-items:center; gap:clamp(1rem,1.8vw,2rem)}
.nav__list .nav__item--shop::before{content:""; width:1px; height:16px; background:var(--rule)}

/* ── běžný text z editoru (podmínky, příspěvky, prosté stránky) ────── */
.prose{
  max-width:44rem; margin-inline:auto;
  padding:calc(var(--band) * .72) var(--pad);
  box-sizing:content-box;
  font-size:1rem; line-height:1.8; color:var(--ink-2);
}
.prose > * + *{margin-top:1.1em}
.prose h2,.prose h3,.prose h4{
  font-family:var(--serif); font-weight:400; color:var(--ink);
  line-height:1.25; letter-spacing:-.012em;
  margin-top:2em;
}
.prose h2{font-size:clamp(1.5rem,2.4vw,1.875rem)}
.prose h3{font-size:clamp(1.25rem,1.9vw,1.5rem)}
.prose h4{font-size:1.125rem}
.prose a{border-bottom:1px solid var(--rule); transition:border-color .35s var(--ease), color .35s var(--ease)}
.prose a:hover,.prose a:focus-visible{border-color:var(--accent); color:var(--accent)}
.prose ul,.prose ol{padding-left:1.25em}
.prose ul{list-style:disc}
.prose ol{list-style:decimal}
.prose li + li{margin-top:.4em}
.prose blockquote{
  border-left:1px solid var(--rule); padding-left:1.25em;
  font-family:var(--serif); font-style:italic; color:var(--ink);
}
.prose img{margin-inline:auto}
.prose figure figcaption{margin-top:.6rem; font-size:.8125rem; color:var(--faint); text-align:center}
.prose table{width:100%; border-collapse:collapse; font-size:.9375rem}
.prose th,.prose td{padding:.7rem .5rem; border-bottom:1px solid var(--rule-soft); text-align:left; vertical-align:top}
.prose hr{height:1px; background:var(--rule)}
.prose strong,.prose b{font-weight:600; color:var(--ink)}

.phead .label + .phead__title{margin-top:0}
.pback{padding:0 var(--pad) var(--band); text-align:center}
.pback--top{padding-top:var(--band)}

/* ── newsletter: formulář Ecomailu místo makety z návrhu ───────────── */
/* Ecomail vkládá vlastní bílý box (387 px, Open Sans) a rozměry i barvy
   zapisuje do style="", proto tolik !important. Rozvržení jako .nwl__form
   z návrhu: pole a tlačítko v řádku, text formuláře pod nimi jako .nwl__note. */
.nwl .nwl__ecm{margin-top:clamp(2rem,3.4vw,2.75rem); text-align:left}
.nwl .nwl__ecm:empty{display:none}
.nwl .nwl__ecm .ec-v-form-holder{
  width:100% !important; background:none !important; overflow:visible !important;
  font-family:var(--sans); color:var(--ink);
}
.nwl .nwl__ecm .ec-v-form-holder > form{min-height:0 !important; overflow:visible}
.nwl .nwl__ecm .ec-v-form-step{height:auto !important}
.nwl .nwl__ecm .ec-v-form-step.ec-v-form-step-visible{display:block; overflow:visible}
.nwl .nwl__ecm .ec-v-form-column{
  display:flex; flex-wrap:wrap; align-items:flex-start; gap:.75rem;
  width:100% !important;
}
.nwl .nwl__ecm .ec-v-form-spacer{display:none}

.nwl .nwl__ecm .ec-v-form-input{flex:1 1 16rem; min-width:0; padding:0 !important}
.nwl .nwl__ecm .ec-v-forms-label{
  margin-bottom:.6rem; padding-left:var(--fieldpad);
  font-size:.72rem; letter-spacing:.145em; text-transform:uppercase;
  font-weight:500; line-height:1.5; color:var(--muted) !important;
}
.nwl .nwl__ecm .ec-v-forms-label:empty{display:none}
.nwl .nwl__ecm input.ec-v-forms-form-control{
  width:100%; min-height:56px; padding:.9em var(--fieldpad);
  border:1px solid var(--rule); border-radius:0; box-shadow:none;
  background:var(--paper-hi); color:var(--ink);
  font-family:var(--sans); font-size:.9375rem; line-height:1.5;
  transition:border-color .35s var(--ease), background-color .35s var(--ease);
}
.nwl .nwl__ecm input.ec-v-forms-form-control::placeholder{color:var(--faint)}
.nwl .nwl__ecm input.ec-v-forms-form-control:hover{border-color:rgba(27,25,22,.3)}
.nwl .nwl__ecm input.ec-v-forms-form-control:focus{border-color:var(--ink); background:#fff}
.nwl .nwl__ecm input.ec-v-form-has-error{border-color:var(--accent) !important}
.nwl .nwl__ecm .ec-v-form-error{
  margin-top:.45rem; padding:0 0 0 var(--fieldpad);
  background:none; border-radius:0;
  font-size:.8125rem; font-weight:400; line-height:1.6; color:var(--accent);
}

.nwl .nwl__ecm .ec-v-form-submit{flex:0 0 auto; padding:0 !important}
/* pole s popiskem je vyšší — tlačítko zůstává v rovině s polem */
.nwl .nwl__ecm .ec-v-form-column:has(.ec-v-forms-label:not(:empty)) .ec-v-form-submit{margin-top:1.68rem}
.nwl .nwl__ecm .ec-v-form-submit button{
  display:inline-flex; align-items:center; justify-content:center;
  width:auto !important; min-height:56px; padding:.9em 1.9em;
  border:1px solid var(--ink) !important; border-radius:0;
  background:var(--ink) !important; color:var(--paper) !important;
  font-family:var(--sans) !important; font-size:.72rem; letter-spacing:.145em;
  text-transform:uppercase; font-weight:500; line-height:1.5;
  transition:background-color .4s var(--ease), border-color .4s var(--ease);
}
.nwl .nwl__ecm .ec-v-form-submit button:hover,
.nwl .nwl__ecm .ec-v-form-submit button:focus-visible{background:#2E2A25 !important; border-color:#2E2A25 !important}
.nwl .nwl__ecm .ec-v-form-submit button:focus-visible{outline:1.5px solid var(--accent); outline-offset:3px}

/* text formuláře z Ecomailu = poznámka pod polem */
.nwl .nwl__ecm .ec-v-form-text{order:2; flex:0 0 100%; padding:0 !important}
.nwl .nwl__ecm .ec-v-form-step:not(.ec-v-form-step-send) .ec-v-form-text{
  margin-top:.15rem; padding-left:var(--fieldpad) !important;
}
.nwl .nwl__ecm .ec-v-form-step:not(.ec-v-form-step-send) .ec-v-form-text :is(p,span){
  margin:0 !important; text-align:left !important;
  font-size:.8125rem !important; line-height:1.6; color:var(--faint) !important;
}
/* poděkování po odeslání */
.nwl .nwl__ecm .ec-v-form-step-send .ec-v-form-text :is(h2,h3,p,span){
  margin:0 !important; text-align:center !important;
  font-family:var(--serif) !important; font-weight:400 !important;
  font-size:clamp(1.25rem,1.9vw,1.5rem) !important; line-height:1.3 !important;
  color:var(--ink) !important;
}
@media (max-width:640px){
  .nwl .nwl__ecm .ec-v-form-input,
  .nwl .nwl__ecm .ec-v-form-submit{flex-basis:100%}
  .nwl .nwl__ecm .ec-v-form-column:has(.ec-v-forms-label:not(:empty)) .ec-v-form-submit{margin-top:0}
  .nwl .nwl__ecm .ec-v-form-submit button{width:100% !important}
}

/* ── kontaktní formulář (Contact Form 7) ───────────────────────────── */
.cform .wpcf7-form-control-wrap{display:block}
/* odesílací tlačítko CF7 je <input> — návrh by ho přes .fld input roztáhl jako pole */
.fld--go input[type="submit"]{
  width:auto; display:inline-flex; min-height:48px; padding:.9em 1.9em;
  background:var(--ink); border:1px solid var(--ink); color:var(--paper);
  font-family:var(--sans); font-size:.72rem; letter-spacing:.145em;
  text-transform:uppercase; font-weight:500; line-height:1.5; cursor:pointer;
}
.fld--go input[type="submit"]:hover,
.fld--go input[type="submit"]:focus{background:#2E2A25; border-color:#2E2A25}
.cform .wpcf7-spinner{vertical-align:middle}
.cform .wpcf7-not-valid-tip{margin-top:.45rem; font-size:.8125rem; color:var(--accent)}
.cform .wpcf7 form .wpcf7-response-output{
  margin:1.5rem 0 0; padding:1rem 1.25rem;
  border:1px solid var(--rule); background:var(--paper-hi);
  font-size:.9375rem; line-height:1.6; color:var(--ink);
}
.cform .wpcf7 form.invalid .wpcf7-response-output,
.cform .wpcf7 form.failed .wpcf7-response-output,
.cform .wpcf7 form.spam .wpcf7-response-output{
  border-color:color-mix(in srgb, var(--accent) 40%, transparent); color:var(--accent);
}

/* ── hlášky WooCommerce na běžných stránkách ───────────────────────── */
.vm-notices{padding:1.25rem var(--pad) 0}
.vm-notices .woocommerce-message,
.vm-notices .woocommerce-info,
.vm-notices .woocommerce-error{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:.75rem 1.5rem;
  margin:0; padding:1rem 1.25rem; list-style:none;
  border:1px solid var(--rule); background:var(--paper-hi);
  font-size:.9375rem; color:var(--ink);
}
.vm-notices .woocommerce-error{border-color:color-mix(in srgb, var(--accent) 40%, transparent); color:var(--accent)}
.vm-notices .button{
  font-family:var(--sans); font-size:.72rem; letter-spacing:.145em;
  text-transform:uppercase; font-weight:500; order:2;
  border-bottom:1px solid var(--ink); padding-bottom:.2em;
}

/* po přidání přes AJAX WooCommerce vloží za tlačítko odkaz do košíku */
.buy__act .added_to_cart{
  align-self:center;
  font-family:var(--sans); font-size:.72rem; letter-spacing:.145em;
  text-transform:uppercase; font-weight:500; color:var(--ink);
  border-bottom:1px solid var(--rule); padding-bottom:.2em;
}
.add_to_cart_button.loading{opacity:.55; pointer-events:none}
.add_to_cart_button.added::after{content:" ✓"}

/* ── stránkování novinek ───────────────────────────────────────────── */
.pagination{padding:0 var(--pad) var(--band)}
.pagination .nav-links{
  display:flex; flex-wrap:wrap; justify-content:center; gap:.5rem 1.25rem;
  font-family:var(--sans); font-size:.72rem; letter-spacing:.145em;
  text-transform:uppercase; font-weight:500;
}
.pagination .page-numbers{color:var(--muted); padding:.5em .2em}
.pagination .page-numbers.current{color:var(--ink); border-bottom:1px solid var(--ink)}
.pagination a.page-numbers:hover,.pagination a.page-numbers:focus-visible{color:var(--ink)}
.screen-reader-text{
  position:absolute !important; width:1px; height:1px; overflow:hidden;
  clip:rect(1px,1px,1px,1px); white-space:nowrap;
}

/* ── telefony: karty v mřížkách na stejném okraji jako ostatní sekce ─ */
/* Návrh kartám na úzké obrazovce nuluje vnitřní okraj, takže jejich text
   začíná 4 px od kraje (zbytek stránky 20 px). Vracíme okraj karty. */
@media (max-width:640px){
  .sheet main .packs > .pack,
  .sheet main .packs--4 > .pack,
  .sheet main .prods > .prod,
  .sheet main .prods--pack > .prod,
  .sheet main .grid > .case,
  .sheet main .nws > .nw:not(.nw--lead),
  .sheet main .zals > .zal{padding-inline:var(--cardpad) !important}
  /* hlavní novinka je vysunutá přes okraj mřížky — potřebuje plný okraj stránky */
  .sheet main .nws > .nw--lead{padding-inline:var(--pad) !important}
}

/* ── obrázky obalené do <picture> (Imagify na ostrém webu) ─────────── */
/* Obal nesmí měnit rozvržení: obrázek se chová, jako by v něm nebyl.
   Třídy na <img> vrací filtr vm_imagify_img_attributes ve functions.php. */
picture{display:contents}

/* ── zarovnání obrázků z editoru ───────────────────────────────────── */
.alignleft{float:left; margin:.3em 1.5em 1em 0}
.alignright{float:right; margin:.3em 0 1em 1.5em}
.aligncenter{margin-inline:auto}
@media (max-width:640px){ .alignleft,.alignright{float:none; margin:1em auto} }
