/*
Theme Name: Müller Knives
Theme URI: https://mullerknives.cz
Author: Müller Knives
Description: Šablona pro ateliér nožířství Müller Knives — portfolio ručně kovaných nožů, archiv realizovaných kusů a kalendář akcí. Obsah se spravuje přímo ve WordPressu, do kódu není potřeba zasahovat.
Version: 2.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: muller-knives
Tags: portfolio, custom-logo, custom-menu, featured-images, translation-ready
*/

/* ==========================================================================
   HAMON — Ateliér nožířství
   Šablona webu. Barevná paleta a typografie jsou nastaveny jako proměnné
   v sekci :root níže — stačí je upravit na jednom místě.
   ========================================================================== */

/* Písma se načítají ze souboru functions.php podle nastavení
   Přizpůsobit → Provozovatel a soukromí → Odkud načítat písma.
   Dřív tu byl @import z Google Fonts, kvůli kterému se písma
   stahovala dvakrát a nešlo to vypnout. */

:root{
  /* --- Barevná paleta (max. 4 barvy) --- */
  --ink:      #14171c;   /* základní tmavé pozadí — kalená ocel / inkoust */
  --paper:    #ece6d8;   /* světlý text — rýžový papír / kost rukojeti */
  --steel:    #7e8b90;   /* tlumená, sekundární barva — leštěná ocel */
  --ember:    #c79a45;   /* akcentní barva — mosaz, staré zlato */

  /* odvozené odstíny (stejné 4 barvy, jen jiné krytí — nejde o nové barvy) */
  --ink-soft:   #1c2027;
  --ink-line:   rgba(236, 230, 216, 0.12);
  --ink-line-2: rgba(236, 230, 216, 0.06);
  --steel-dim:  rgba(126, 139, 144, 0.55);
  --ember-dim:  rgba(199, 154, 69, 0.35);
  --paper-dim:  rgba(236, 230, 216, 0.7);

  /* --- Typografie --- */
  --font-head: 'Fraunces', 'Iowan Old Style', serif;
  --font-body: 'Manrope', -apple-system, BlinkMacSystemFont, sans-serif;

  --step-0: clamp(1rem, 0.95rem + 0.2vw, 1.05rem);
  --step-1: clamp(1.15rem, 1.05rem + 0.4vw, 1.35rem);
  --step-2: clamp(1.5rem, 1.3rem + 0.8vw, 2rem);
  --step-3: clamp(2.1rem, 1.7rem + 1.6vw, 3.1rem);
  --step-4: clamp(2.6rem, 2rem + 2.6vw, 4.4rem);

  --content-max: 74rem;
  --text-max: 38rem;
  --radius: 2px;
  --dur: 0.5s;
  --ease: cubic-bezier(.22,.61,.36,1);
}

/* --------------------------------- Reset -------------------------------- */
*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin: 0;
  background: var(--ink);
  color: var(--paper);
  font-family: var(--font-body);
  font-size: var(--step-0);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
img, svg{ display:block; max-width:100%; }
a{ color: inherit; text-decoration: none; }
ul{ margin:0; padding:0; list-style:none; }
button{ font: inherit; color: inherit; background:none; border:none; cursor:pointer; }
input, textarea, select{ font: inherit; color: inherit; }
h1,h2,h3,h4,p,figure{ margin:0; }

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *, *::before, *::after{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important; }
}

:focus-visible{
  outline: 1px solid var(--ember);
  outline-offset: 3px;
}

/* -------------------------------- Layout -------------------------------- */
.wrap{
  max-width: var(--content-max);
  margin-inline: auto;
  padding-inline: clamp(1.25rem, 3vw, 3rem);
}
.text-col{ max-width: var(--text-max); }
section{ padding-block: clamp(4rem, 8vw, 7rem); }
.rule{
  border: none;
  border-top: 1px solid var(--ink-line);
  margin: 0;
}
.section-head{
  display:flex;
  flex-wrap:wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.5rem 3rem;
  margin-bottom: clamp(2.25rem, 5vw, 3.5rem);
}

/* ------------------------------ Typography ------------------------------ */
h1, h2, h3, .h1, .h2, .h3{
  font-family: var(--font-head);
  font-weight: 400;
  letter-spacing: -0.01em;
  line-height: 1.08;
  color: var(--paper);
}
h1, .h1{ font-size: var(--step-4); font-weight: 400; }
h2, .h2{ font-size: var(--step-3); }
h3, .h3{ font-size: var(--step-2); font-weight: 500; }

.dek{
  font-family: var(--font-body);
  font-weight: 500;
  color: var(--steel);
  font-size: var(--step-1);
  line-height: 1.5;
  letter-spacing: 0.005em;
}
p{ color: var(--paper-dim); }
.small{ font-size: 0.85rem; }
.mono-num{ font-variant-numeric: tabular-nums; }

.accent{ color: var(--ember); }
.text-steel{ color: var(--steel); }

/* -------------------------------- Buttons -------------------------------- */
.btn{
  display:inline-flex;
  align-items:center;
  gap: 0.6rem;
  padding: 0.9rem 1.6rem;
  font-size: 0.95rem;
  font-weight: 600;
  border: 1px solid transparent;
  border-radius: var(--radius);
  transition: background var(--dur) var(--ease), color var(--dur) var(--ease), border-color var(--dur) var(--ease);
  white-space: nowrap;
}
.btn--primary{
  background: var(--ember);
  color: var(--ink);
}
.btn--primary:hover{ background: #d9b15e; }
.btn--ghost{
  border-color: var(--ink-line);
  color: var(--paper);
}
.btn--ghost:hover{ border-color: var(--steel); background: var(--ink-soft); }
.btn--text{
  color: var(--paper);
  padding: 0;
  border-bottom: 1px solid var(--steel-dim);
  border-radius: 0;
}
.btn--text:hover{ border-color: var(--ember); color: var(--ember); }

/* --------------------------------- Header -------------------------------- */
.site-header{
  position: sticky;
  top: 0;
  z-index: 40;
  background: rgba(20, 23, 28, 0.86);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--ink-line);
}
.site-header .wrap{
  display:flex;
  align-items:center;
  justify-content: space-between;
  padding-block: 1.1rem;
}
.logo{
  font-family: var(--font-head);
  font-size: 1.35rem;
  font-style: italic;
  font-weight: 500;
  color: var(--paper);
}
.logo em{ font-style: italic; color: var(--ember); }

.nav-links{ display:flex; gap: clamp(1.25rem, 3vw, 2.5rem); }
.nav-links a{
  font-size: 0.92rem;
  font-weight: 500;
  color: var(--paper-dim);
  padding-bottom: 0.2rem;
  border-bottom: 1px solid transparent;
  transition: color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.nav-links a:hover, .nav-links a[aria-current="page"]{
  color: var(--paper);
  border-color: var(--ember);
}
.nav-toggle{ display:none; }

@media (max-width: 720px){
  .nav-toggle{
    display:flex;
    flex-direction: column;
    gap: 5px;
    padding: 0.5rem;
  }
  .nav-toggle span{ width: 22px; height: 1px; background: var(--paper); transition: transform var(--dur) var(--ease), opacity var(--dur) var(--ease); }
  .nav-links{
    position: absolute;
    inset: 100% 0 auto 0;
    background: var(--ink);
    border-bottom: 1px solid var(--ink-line);
    flex-direction: column;
    padding: 1.5rem clamp(1.25rem, 3vw, 3rem) 2rem;
    gap: 1.1rem;
    transform: translateY(-8px);
    opacity: 0;
    visibility: hidden;
    transition: transform var(--dur) var(--ease), opacity var(--dur) var(--ease), visibility var(--dur);
  }
  .site-header.is-open .nav-links{ transform: translateY(0); opacity:1; visibility: visible; }
  .site-header.is-open .nav-toggle span:nth-child(1){ transform: translateY(6px) rotate(45deg); }
  .site-header.is-open .nav-toggle span:nth-child(2){ opacity:0; }
  .site-header.is-open .nav-toggle span:nth-child(3){ transform: translateY(-6px) rotate(-45deg); }
}

/* ---------------------------------- Hero ---------------------------------- */
.hero{
  padding-block: clamp(3rem, 8vw, 6rem) clamp(3.5rem, 8vw, 6rem);
}
.hero .wrap{
  display:grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: clamp(2rem, 5vw, 4rem);
  align-items:center;
}
.hero__text p{ margin-top: 1.4rem; }
.hero__actions{ display:flex; gap: 1rem; flex-wrap:wrap; margin-top: 2.4rem; }
.hero__figure{ position:relative; }
.hamon-svg path{
  stroke-dasharray: 1400;
  stroke-dashoffset: 1400;
  animation: draw 2.4s var(--ease) forwards 0.2s;
}
@keyframes draw{ to{ stroke-dashoffset: 0; } }
@media (prefers-reduced-motion: reduce){
  .hamon-svg path{ animation: none; stroke-dashoffset: 0; }
}

@media (max-width: 880px){
  .hero .wrap{ grid-template-columns: 1fr; }
  .hero__figure{ order:-1; max-width: 22rem; margin-inline:auto; }
}

/* ------------------------------- Placeholder media ------------------------------- */
.media{
  position: relative;
  aspect-ratio: var(--card-ratio, 4 / 5);
  background:
    linear-gradient(155deg, var(--ink-soft) 0%, var(--ink) 62%),
    repeating-linear-gradient(120deg, transparent 0 26px, var(--ink-line-2) 26px 27px);
  border: 1px solid var(--ink-line);
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.media--wide{ aspect-ratio: 16/10; }
.media--square{ aspect-ratio: 1/1; }
.media img{ width:100%; height:100%; object-fit:cover; }
.media__icon{ width: 34%; opacity: 0.55; stroke: var(--steel); }
.media__label{
  position:absolute;
  left: 0.9rem;
  bottom: 0.8rem;
  font-size: 0.7rem;
  color: var(--steel);
  letter-spacing: 0.02em;
  background: rgba(20,23,28,0.55);
  padding: 0.25rem 0.5rem;
}

/* --------------------------------- About --------------------------------- */
.about .wrap{
  display:grid;
  grid-template-columns: 0.85fr 1.15fr;
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items:center;
}
.about ul{ margin-top: 1.75rem; display:flex; flex-direction:column; gap: 0.85rem; }
.about li{ display:flex; gap: 0.75rem; color: var(--paper-dim); border-top: 1px solid var(--ink-line); padding-top: 0.85rem; }
.about li:first-child{ border-top: none; padding-top:0; }
.about li strong{ color: var(--paper); font-weight: 600; min-width: 11rem; }
@media (max-width: 880px){ .about .wrap{ grid-template-columns: 1fr; } .about figure{ order:-1; max-width: 22rem; } }

/* ------------------------------- Product grid ------------------------------ */
.grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(1.75rem, 3vw, 2.75rem) clamp(1.5rem, 3vw, 2.25rem);
}
@media (max-width: 920px){ .grid{ grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px){ .grid{ grid-template-columns: 1fr; } }

.card{ display:flex; flex-direction:column; }
.card__media{ position:relative; display:block; width:100%; padding:0; margin-bottom: 1.1rem; cursor:pointer; }
.card__media:hover .media{ border-color: var(--steel); }
.card__cat{ font-size: 0.78rem; color: var(--steel); margin-bottom: 0.35rem; }
.card__title{ font-family: var(--font-head); font-size: 1.3rem; font-weight: 500; color: var(--paper); }
.card__desc{ color: var(--paper-dim); font-size: 0.92rem; margin-top: 0.4rem; }
.card__foot{ display:flex; align-items:center; justify-content:space-between; margin-top: 0.9rem; gap: 1rem; }
.card__price{ color: var(--ember); font-weight: 600; }
.card__link{ font-size: 0.85rem; border-bottom: 1px solid var(--steel-dim); }
.card__link:hover{ color: var(--ember); border-color: var(--ember); }

/* --------------------------------- Archiv --------------------------------- */
.archive{ background: var(--ink-soft); border-top: 1px solid var(--ink-line); border-bottom: 1px solid var(--ink-line); }
/* archiv — tlumenější, ale barevný. Odbarvení schovávalo barvy dřeva
   a damašku, což je u nožů to podstatné. */
.card--archive .media{
  opacity: 0.7;
  transition: opacity var(--dur) var(--ease);
}
.card--archive .card__media:hover .media{ opacity: 1; }
/* v detailu se fotka nijak netlumí — návštěvník si ji šel prohlédnout */
.media--sold{ filter: none; opacity: 1; }
.card--archive .card__title{ color: var(--paper-dim); }
.archive-badge{
  position:absolute;
  top: 0.8rem;
  left: 0.8rem;
  font-size: 0.72rem;
  padding: 0.25rem 0.6rem;
  background: var(--ink);
  border: 1px solid var(--ink-line);
  color: var(--steel);
}

/* -------------------------------- Filters -------------------------------- */
.filters{ display:flex; gap: 0.5rem; flex-wrap:wrap; }
.filter{
  padding: 0.5rem 1.05rem;
  border: 1px solid var(--ink-line);
  color: var(--paper-dim);
  font-size: 0.85rem;
  border-radius: 999px;
  transition: border-color var(--dur) var(--ease), color var(--dur) var(--ease), background var(--dur) var(--ease);
}
.filter:hover{ border-color: var(--steel); }
.filter[aria-pressed="true"]{ background: var(--paper); color: var(--ink); border-color: var(--paper); }

/* --------------------------------- Steps --------------------------------- */
.steps{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;
}
@media (max-width: 880px){ .steps{ grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px){ .steps{ grid-template-columns: 1fr; } }
.step{ border-top: 1px solid var(--ink-line); padding-top: 1.25rem; }
.step__num{ font-family: var(--font-head); font-style: italic; color: var(--ember); font-size: 1.4rem; }
.step h3{ font-size: 1.1rem; margin-top: 0.6rem; margin-bottom: 0.5rem; }
.step p{ font-size: 0.92rem; }

/* --------------------------------- Banner --------------------------------- */
.banner{
  background: var(--ink-soft);
  border-top: 1px solid var(--ink-line);
  border-bottom: 1px solid var(--ink-line);
}
.banner .wrap{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap: 1.5rem; padding-block: clamp(2.5rem, 5vw, 3.5rem); }

/* --------------------------------- Footer --------------------------------- */
.site-footer{ border-top: 1px solid var(--ink-line); padding-block: 3rem 2rem; }
.site-footer .wrap{ display:grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 2.5rem; }
.site-footer h4{ font-size: 0.85rem; color: var(--steel); font-weight: 600; margin-bottom: 0.9rem; }
.site-footer ul{ display:flex; flex-direction:column; gap: 0.55rem; }
.site-footer a:hover{ color: var(--ember); }
.footer__bottom{ margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid var(--ink-line); display:flex; flex-wrap:wrap; justify-content:space-between; gap: 0.75rem; color: var(--steel); font-size: 0.8rem; }
@media (max-width: 640px){ .site-footer .wrap{ grid-template-columns: 1fr 1fr; } }

/* ---------------------------------- Forms ---------------------------------- */
.field{ display:flex; flex-direction:column; gap: 0.45rem; margin-bottom: 1.35rem; }
.field label{ font-size: 0.85rem; color: var(--steel); }
.field input, .field textarea, .field select{
  background: var(--ink-soft);
  border: 1px solid var(--ink-line);
  color: var(--paper);
  padding: 0.8rem 0.9rem;
  border-radius: var(--radius);
  transition: border-color var(--dur) var(--ease);
}
.field input:focus, .field textarea:focus, .field select:focus{ border-color: var(--steel); outline: none; }
.field textarea{ resize: vertical; min-height: 7rem; }
.field-row{ display:grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
@media (max-width: 560px){ .field-row{ grid-template-columns: 1fr; } }
.form-note{ font-size: 0.82rem; color: var(--steel); margin-top: 0.75rem; }
.form-status{ margin-top: 1rem; font-size: 0.9rem; }
.form-status[data-state="ok"]{ color: var(--paper); }
.form-status[data-state="err"]{ color: var(--ember); }

/* --------------------------------- Contact page --------------------------------- */
.contact-grid{
  display:grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: clamp(2.5rem, 5vw, 5rem);
  align-items:start;
}
@media (max-width: 880px){ .contact-grid{ grid-template-columns: 1fr; } }
.info-block{ margin-bottom: 1.75rem; }
.info-block h4{ font-size: 0.85rem; color: var(--steel); font-weight:600; margin-bottom:0.5rem; }
.info-block p{ margin:0; }

/* --------------------------------- Modal --------------------------------- */
.modal{
  position: fixed;
  inset: 0;
  z-index: 100;
  display:none;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
}
.modal.is-open{ display:flex; }
.modal__backdrop{ position:absolute; inset:0; background: rgba(10,11,13,0.78); }
.modal__panel{
  position: relative;
  background: var(--ink);
  border: 1px solid var(--ink-line);
  max-width: 62rem;
  width:100%;
  max-height: 88vh;
  overflow-y:auto;
  padding: clamp(1.5rem, 4vw, 2.75rem);
}
.modal__close{
  position:absolute;
  top: 1.1rem;
  right: 1.1rem;
  width: 2.2rem;
  height: 2.2rem;
  border: 1px solid var(--ink-line);
  border-radius: 50%;
  display:flex;
  align-items:center;
  justify-content:center;
  color: var(--paper);
  z-index: 2;
}
.modal__close:hover{ border-color: var(--ember); color: var(--ember); }
.modal__body{ display:grid; grid-template-columns: 1.1fr 1fr; gap: clamp(1.5rem, 4vw, 3rem); }
@media (max-width: 780px){ .modal__body{ grid-template-columns: 1fr; } }

.gallery__main{ margin-bottom: 0.75rem; }
.gallery__thumbs{ display:flex; gap: 0.6rem; }
.gallery__thumbs .media{ aspect-ratio: 1/1; width: 4.2rem; cursor:pointer; opacity: 0.55; }
.gallery__thumbs .media.is-active{ opacity: 1; border-color: var(--steel); }

.modal__cat{ color: var(--steel); font-size: 0.82rem; margin-bottom: 0.35rem; }
.modal__price{ color: var(--ember); font-weight:600; font-size: 1.15rem; margin: 0.9rem 0 1.4rem; }
.modal__desc p + p{ margin-top: 0.9rem; }
.modal__form{ margin-top: 1.75rem; padding-top: 1.75rem; border-top: 1px solid var(--ink-line); }
.modal__form h4{ font-family: var(--font-head); font-size: 1.15rem; font-weight:500; margin-bottom: 1.1rem; color: var(--paper); }

/* --------------------------------- Calendar --------------------------------- */
/* Kalendář byl nahrazen galerií proběhlých akcí — jeho styly odstraněny. */

.events{ display:flex; flex-direction:column; }
.event{
  display:grid;
  grid-template-columns: 5.5rem 1fr auto;
  gap: 1.5rem;
  align-items:center;
  padding-block: 1.5rem;
  border-top: 1px solid var(--ink-line);
}
.event:last-child{ border-bottom: 1px solid var(--ink-line); }
.event__date{ font-family: var(--font-head); font-style: italic; color: var(--ember); line-height:1.1; }
.event__date .day{ font-size: 1.8rem; display:block; }
.event__date .month{ font-size: 0.85rem; color: var(--steel); font-style: normal; font-family: var(--font-body); }
.event__title{ font-family: var(--font-head); font-size: 1.15rem; font-weight:500; margin-bottom: 0.3rem; }
.event__meta{ font-size: 0.85rem; color: var(--steel); }
.event__desc{ margin-top: 0.4rem; font-size: 0.92rem; }
.event.is-highlight{ background: var(--ink-soft); }
@media (max-width: 620px){
  .event{ grid-template-columns: 3.5rem 1fr; }
  .event__ics--zruseno{ grid-column: 1 / -1; margin-top: 0.5rem; }
}

/* ==========================================================================
   DOPLŇKY PRO WORDPRESS
   Přidáno při převodu statického webu na šablonu. Nic z původního vzhledu
   se nemění — jde jen o prvky, které do webu přidává samotný WordPress
   (administrátorská lišta, zarovnání obrázků v editoru, komentáře…).
   ========================================================================== */

/* administrátorská lišta nahoře nesmí přebít fixní hlavičku webu */
.admin-bar .site-header{ top: 32px; }
@media screen and (max-width: 782px){
  .admin-bar .site-header{ top: 46px; }
}

/* text jen pro odečítače obrazovky */
.screen-reader-text{
  border:0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%);
  height:1px; width:1px; margin:-1px; overflow:hidden; padding:0; position:absolute; word-wrap:normal;
}
.screen-reader-text:focus{
  background: var(--ink-soft); color: var(--paper); clip:auto; clip-path:none;
  display:block; height:auto; width:auto; left:1rem; top:1rem; padding:.8rem 1.2rem;
  font-size:.9rem; z-index:100000; text-decoration:none; border:1px solid var(--ember);
}

/* vlastní logo z Knihovny médií (Vzhled → Přizpůsobit → Identita webu) */
.logo img, .custom-logo{ max-height: 44px; width:auto; display:block; }
.site-footer .logo img, .site-footer .custom-logo{ max-height: 38px; }

/* zarovnání obrázků a bloků z editoru stránek */
.alignleft{ float:left; margin: .4rem 1.6rem 1.2rem 0; }
.alignright{ float:right; margin: .4rem 0 1.2rem 1.6rem; }
.aligncenter{ display:block; margin-inline:auto; }
.alignwide, .alignfull{ max-width:none; }
.wp-caption{ max-width:100%; }
.wp-caption-text, figcaption{
  font-size:.85rem; color:var(--steel); margin-top:.5rem;
}

/* obsah stránky psaný v editoru — čitelná šířka a rozestupy */
.entry-content > * + *{ margin-top: 1.1rem; }
.entry-content h2{ font-size: var(--step-2); margin-top: 2.5rem; }
.entry-content h3{ font-size: var(--step-1); margin-top: 2rem; }
.entry-content ul, .entry-content ol{
  padding-left: 1.2rem; color: var(--paper-dim);
}
.entry-content ul{ list-style: disc; }
.entry-content ol{ list-style: decimal; }
.entry-content li + li{ margin-top:.4rem; }
.entry-content a{ color: var(--ember); text-decoration: underline; text-underline-offset: 3px; }
.entry-content blockquote{
  border-left: 2px solid var(--ember); padding-left: 1.2rem; margin-left:0;
  font-family: var(--font-head); font-size: var(--step-1);
}
.entry-content table{ width:100%; border-collapse: collapse; }
.entry-content th, .entry-content td{
  border-bottom:1px solid var(--ink-line); padding:.6rem .4rem; text-align:left;
}

/* skutečná fotografie v místě zástupné plochy */
.media img{
  width:100%; height:100%; object-fit: cover; display:block;
}
/* (odbarvení archivních fotek zrušeno — viz pravidla u .card--archive výše) */

/* stránkování výpisů */
.mk-pagination{
  display:flex; gap:.5rem; flex-wrap:wrap; justify-content:center;
  margin-top: clamp(2rem,4vw,3rem);
}
.mk-pagination .page-numbers{
  border:1px solid var(--ink-line); padding:.5rem .9rem; border-radius: var(--radius);
  color: var(--steel); font-size:.9rem;
}
.mk-pagination .page-numbers.current,
.mk-pagination .page-numbers:hover{ border-color: var(--ember); color: var(--ember); }

/* prázdný stav — když ještě nejsou zadané žádné položky */
.mk-empty{
  border:1px dashed var(--ink-line); border-radius: var(--radius);
  padding: clamp(2rem,5vw,3.5rem); text-align:center; color: var(--steel);
}
.mk-empty strong{ color: var(--paper); display:block; margin-bottom:.5rem; font-family:var(--font-head); font-size:var(--step-1); }

/* skrytí dlaždice filtrem (bez JS zůstávají vidět všechny) */
.card.is-hidden{ display:none; }

/* detail nože jako samostatná stránka */
.mk-single{ padding-block: clamp(3rem,7vw,6rem); }
.mk-single .modal__body{ padding:0; }
.mk-back{
  display:inline-flex; align-items:center; gap:.5rem; color:var(--steel);
  font-size:.9rem; margin-bottom:1.5rem;
}
.mk-back:hover{ color: var(--ember); }

/* pravý sloupec kontaktní stránky — text psaný v editoru vypadá
   stejně jako původní bloky s údaji */
.contact-aside h4{
  font-size: 0.85rem; color: var(--steel); font-weight:600;
  margin-bottom: 0.5rem; margin-top: 1.75rem;
  font-family: var(--font-body); letter-spacing: 0.02em;
}
.contact-aside > *:first-child{ margin-top:0; }
.contact-aside p{ margin:0; }
.contact-aside p + p{ margin-top:.4rem; }
.contact-aside a{ text-decoration:none; }

/* ==========================================================================
   OZNÁMENÍ „NA WEBU SE PRACUJE“
   Zobrazuje se návštěvníkům, dokud je v Přizpůsobení zapnutý režim
   rozpracovaného webu.
   ========================================================================== */
.soon{
  min-height: 100svh;
  display: grid;
  place-items: center;
  position: relative;
  overflow: hidden;
  padding: clamp(2.5rem, 8vw, 5rem) clamp(1.25rem, 5vw, 3rem);
}
.soon__figure{
  position: absolute;
  inset: 0 auto 0 auto;
  right: clamp(-6rem, -4vw, 1rem);
  width: min(38vw, 26rem);
  opacity: .5;
  pointer-events: none;
}
.soon__figure svg{ width:100%; height:100%; }
.soon__inner{
  position: relative;
  max-width: 34rem;
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
  text-align: left;
}
.soon__logo{
  font-family: var(--font-head);
  font-size: 1.35rem;
  font-style: italic;
  font-weight: 500;
  color: var(--paper);
  margin-bottom: .75rem;
}
.soon__logo em{ font-style: italic; color: var(--ember); }
.soon__logo img{ max-height: 56px; width:auto; }
.soon h1{
  font-size: clamp(1.9rem, 5vw, 2.9rem);
  line-height: 1.12;
  text-wrap: balance;
}
.soon__actions{ margin-top: .6rem; }
.soon__contact{
  margin-top: .4rem;
  font-size: .92rem;
  color: var(--steel);
}
.soon__contact a{
  color: var(--ember);
  border-bottom: 1px solid var(--ember-dim);
  padding-bottom: 1px;
}
.soon__contact a:hover{ border-bottom-color: var(--ember); }

@media (max-width: 720px){
  .soon__figure{ display:none; }
}

/* horní lišta správce nesmí oznámení přesahovat */
.admin-bar .soon{ min-height: calc(100svh - 32px); }
@media screen and (max-width: 782px){
  .admin-bar .soon{ min-height: calc(100svh - 46px); }
}

/* ukazatel v horní liště */
#wp-admin-bar-mk-soon .ab-item{ color: var(--ember) !important; }

/* ==========================================================================
   VLASTNÍ ODDÍL A MEDIÁLNÍ BLOKY
   Styly pro obsah, který se píše v editoru stránky — fotky, galerie,
   videa, vložená videa z YouTube, sloupce, tlačítka.
   ========================================================================== */
.mk-free{
  /* zabrání vodorovnému posouvání u obrázků přes celou šířku */
  overflow-x: clip;
}
.mk-free__inner{
  max-width: none;
}
.mk-free__inner > *{
  /* text drží čitelnou šířku a zarovnává se vlevo pod nadpis oddílu,
     ne na střed — jinak by se rozešel se zbytkem stránky */
  max-width: var(--text-max);
  margin-inline: 0;
}

/* obrázky, galerie a videa smějí být širší než text */
.mk-free__inner > figure,
.mk-free__inner > .wp-block-image,
.mk-free__inner > .wp-block-gallery,
.mk-free__inner > .wp-block-video,
.mk-free__inner > .wp-block-embed,
.mk-free__inner > .wp-block-columns,
.mk-free__inner > .wp-block-media-text,
.mk-free__inner > .wp-block-cover{
  max-width: 100%;
}

/* širší než obsah / přes celou šířku okna */
.mk-free__inner > .alignwide{
  max-width: min(var(--content-max), 100%);
}
.mk-free__inner > .alignfull{
  max-width: none;
  margin-inline: calc(50% - 50vw);
  width: 100vw;
}
/* popisek pod fotkou přes celou šířku se zarovná zpátky k obsahu */
.mk-free__inner > .alignfull > figcaption,
.mk-free__inner > .alignfull > .wp-element-caption{
  max-width: var(--content-max);
  margin-inline: auto;
  padding-inline: clamp(1.25rem, 3vw, 3rem);
}

/* --- obrázek --- */
.entry-content .wp-block-image,
.entry-content figure.wp-block-image{
  margin-block: 1.6rem;
}
.entry-content .wp-block-image img,
.entry-content figure img{
  border-radius: var(--radius);
  border: 1px solid var(--ink-line);
  width: 100%;
  height: auto;
}
.entry-content .alignfull img{ border-radius: 0; border-inline: none; }

/* --- galerie --- */
.entry-content .wp-block-gallery{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
  gap: .9rem;
  margin-block: 1.6rem;
}
.entry-content .wp-block-gallery figure{ margin: 0; }
.entry-content .wp-block-gallery img{
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

/* --- video nahrané do knihovny médií --- */
.entry-content .wp-block-video{ margin-block: 1.6rem; }
.entry-content .wp-block-video video,
.entry-content video{
  width: 100%;
  height: auto;
  max-width: 100%;
  display: block;
  border-radius: var(--radius);
  border: 1px solid var(--ink-line);
  background: #000;
}

/* --- vložené video (YouTube, Vimeo) --- */
.entry-content .wp-block-embed{ margin-block: 1.6rem; }
.entry-content .wp-block-embed__wrapper{ position: relative; }
.entry-content .wp-embed-aspect-16-9 .wp-block-embed__wrapper::before{
  content: "";
  display: block;
  padding-top: 56.25%;
}
.entry-content .wp-embed-aspect-4-3 .wp-block-embed__wrapper::before{
  content: "";
  display: block;
  padding-top: 75%;
}
.entry-content .wp-block-embed iframe{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 1px solid var(--ink-line);
  border-radius: var(--radius);
  background: #000;
}
/* vložení bez známého poměru stran — ať se aspoň nerozbije */
.entry-content .wp-block-embed:not([class*="wp-embed-aspect"]) iframe{
  position: static;
  aspect-ratio: 16 / 9;
  height: auto;
}

/* --- fotka s textem vedle sebe --- */
.entry-content .wp-block-media-text{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(1.5rem, 4vw, 3rem);
  align-items: center;
  margin-block: 2rem;
}
.entry-content .wp-block-media-text img{ border-radius: var(--radius); }
@media (max-width: 720px){
  .entry-content .wp-block-media-text{ grid-template-columns: 1fr; }
}

/* --- sloupce --- */
.entry-content .wp-block-columns{
  display: flex;
  flex-wrap: wrap;
  gap: clamp(1.5rem, 4vw, 3rem);
  margin-block: 2rem;
}
.entry-content .wp-block-column{ flex: 1 1 16rem; min-width: 0; }

/* --- fotka s textem přes ni --- */
.entry-content .wp-block-cover{
  min-height: clamp(18rem, 40vw, 28rem);
  display: grid;
  place-items: center;
  padding: clamp(2rem, 5vw, 4rem);
  border-radius: var(--radius);
  overflow: hidden;
  margin-block: 2rem;
}
.entry-content .wp-block-cover .wp-block-cover__inner-container{
  position: relative;
  text-align: center;
  max-width: 34rem;
}
.entry-content .alignfull.wp-block-cover{ border-radius: 0; }

/* --- popisek pod fotkou --- */
.entry-content figcaption,
.entry-content .wp-element-caption{
  font-size: .85rem;
  color: var(--steel);
  margin-top: .55rem;
  text-align: left;
}

/* --- tlačítko z editoru --- */
.entry-content .wp-block-buttons{
  display: flex;
  flex-wrap: wrap;
  gap: .8rem;
  margin-block: 1.6rem;
}
.entry-content .wp-block-button__link{
  display: inline-block;
  background: var(--ember);
  color: var(--ink);
  font-weight: 600;
  font-size: .92rem;
  padding: .85rem 1.5rem;
  border-radius: var(--radius);
  text-decoration: none;
  transition: background var(--dur) var(--ease);
}
.entry-content .wp-block-button__link:hover{ background: var(--paper); }
.entry-content .is-style-outline .wp-block-button__link{
  background: transparent;
  color: var(--paper);
  border: 1px solid var(--steel-dim);
}
.entry-content .is-style-outline .wp-block-button__link:hover{ border-color: var(--ember); color: var(--ember); }

/* --- oddělovač a mezera --- */
.entry-content .wp-block-separator{
  border: none;
  border-top: 1px solid var(--ink-line);
  margin-block: 2.5rem;
  max-width: 100%;
}
.entry-content .wp-block-spacer{ margin: 0; }

/* --- vložený tweet, mapa a podobně --- */
.entry-content .wp-block-embed iframe[src*="google.com/maps"]{ background: var(--ink-soft); }

/* ==========================================================================
   FOTOGRAFIE V DETAILU NOŽE
   Dlaždice v přehledu drží jednotný poměr stran, aby mřížka byla klidná.
   V detailu se ale rámeček přizpůsobí formátu konkrétní fotky — fotka
   na výšku zůstane na výšku, na šířku na šířku, a při přepínání náhledů
   se rozměr mění podle právě zobrazené fotografie.
   ========================================================================== */

/* poměr 16:10 platí už jen pro zástupnou plochu, když fotka chybí */
.media--wide{ aspect-ratio: 16 / 10; }

.media--wide:has(img){
  aspect-ratio: auto;
  display: block;
  border: none;
  background: none;
  overflow: visible;
  text-align: center;
}

.media--wide img{
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: min(70vh, 40rem);
  object-fit: contain;
  margin-inline: auto;
  border: 1px solid var(--ink-line);
  border-radius: var(--radius);
  background: var(--ink-soft);
}

/* náhledy pod fotkou zůstávají čtvercové, aby řádek držel tvar */
.gallery__thumbs .media img{ width: 100%; height: 100%; object-fit: cover; }

/* v okně s detailem ať fotka nepřeroste dostupnou výšku */
.modal .media--wide img{ max-height: min(58vh, 32rem); }

/* způsob usazení fotky do dlaždice — Přizpůsobit → Fotografie nožů */
.card .media img{ object-fit: var(--card-fit, cover); }

/* ==========================================================================
   FOTOGRAFIE V ÚVODNÍM BLOKU
   Místo kreslené čepele lze vedle nadpisu zobrazit fotografii —
   Přizpůsobit → Úvodní stránka — texty → 1. Úvodní blok.
   ========================================================================== */
.hero__figure--photo{ line-height: 0; }
.hero__photo{
  width: 100%;
  height: auto;
  max-height: min(78vh, 44rem);
  object-fit: cover;
  border: 1px solid var(--ink-line);
  border-radius: var(--radius);
  background: var(--ink-soft);
}

/* bez doprovodné grafiky se nadpis roztáhne přes celou šířku */
.hero--solo .wrap{ grid-template-columns: 1fr; }
.hero--solo .hero__text{ max-width: var(--content-max); }

/* ==========================================================================
   POVINNÉ INFORMACE
   Poučení u formuláře (informační povinnost podle čl. 13 GDPR)
   a identifikace provozovatele v patičce.
   ========================================================================== */
.form-privacy{
  margin-top: 0.9rem;
  font-size: 0.8rem;
  line-height: 1.5;
  color: var(--steel);
}
.form-privacy a{
  color: var(--ember);
  border-bottom: 1px solid var(--ember-dim);
  padding-bottom: 1px;
}
.form-privacy a:hover{ border-bottom-color: var(--ember); }

.footer__legal{
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1.5rem;
  justify-content: space-between;
  align-items: baseline;
  padding-top: 0.9rem;
  padding-bottom: 1.5rem;
  font-size: 0.78rem;
  color: var(--steel);
}
.footer__legal a{ color: var(--steel); border-bottom: 1px solid var(--ink-line); }
.footer__legal a:hover{ color: var(--paper); border-bottom-color: var(--steel); }

/* past na roboty — pole musí zůstat v kódu, ale nesmí být vidět */
.mk-hp{
  position: absolute !important;
  left: -9999px !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/* ==========================================================================
   DOLADĚNÍ POLOHY LOGA
   Rozvržení je zarovnané přesně — logo, nadpisy i patička začínají na
   stejné svislici. Optický posun ale může způsobit prázdný okraj uvnitř
   obrázku loga nebo levé postranní vyrovnání u písma v kurzívě.
   Nastavuje se v Přizpůsobit → Identita webu → Posun loga.
   ========================================================================== */
.site-header .logo,
.site-footer .logo{
  margin-left: var(--logo-offset, 0);
}

/* obrázek loga se přimkne k levému okraji svého rámečku */
.logo img,
.logo .custom-logo{
  object-fit: contain;
  object-position: left center;
}



/* ==========================================================================
   PROBĚHLÉ AKCE
   Dlaždice akce v galerii i v posuvné řadě na úvodní stránce.
   ========================================================================== */
.card--event .card__media{ display:block; }
.card--event .card__title a{ color: inherit; }
.card--event .card__title a:hover{ color: var(--ember); }

/* datum na fotce */
.event-badge{
  position: absolute;
  top: 0.8rem;
  left: 0.8rem;
  font-size: 0.72rem;
  padding: 0.25rem 0.6rem;
  background: rgba(20, 23, 28, 0.82);
  border: 1px solid var(--ink-line);
  color: var(--paper);
  font-variant-numeric: tabular-nums;
}

/* počet fotek */
.event-count{
  position: absolute;
  right: 0.8rem;
  bottom: 0.8rem;
  font-size: 0.7rem;
  padding: 0.2rem 0.5rem;
  background: rgba(20, 23, 28, 0.7);
  color: var(--steel);
}

/* ==========================================================================
   POSUVNÁ ŘADA AKCÍ NA ÚVODNÍ STRÁNCE
   ========================================================================== */
.mk-carousel{ position: relative; }

.mk-carousel__track{
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(15rem, 21rem);
  gap: clamp(1rem, 2.5vw, 1.75rem);
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x proximity;
  padding-bottom: 0.75rem;
  scrollbar-width: thin;
  scrollbar-color: var(--steel-dim) transparent;
}
.mk-carousel__track > .card{ scroll-snap-align: start; }
.mk-carousel__track:focus-visible{ outline: 1px solid var(--ember); outline-offset: 4px; }

.mk-carousel__track::-webkit-scrollbar{ height: 6px; }
.mk-carousel__track::-webkit-scrollbar-thumb{ background: var(--steel-dim); border-radius: 3px; }
.mk-carousel__track::-webkit-scrollbar-track{ background: transparent; }

.mk-carousel__nav{
  position: absolute;
  top: 28%;
  z-index: 2;
  width: 2.6rem;
  height: 2.6rem;
  display: grid;
  place-items: center;
  font-size: 1.5rem;
  line-height: 1;
  color: var(--paper);
  background: rgba(20, 23, 28, 0.88);
  border: 1px solid var(--ink-line);
  border-radius: 50%;
  transition: border-color var(--dur) var(--ease), color var(--dur) var(--ease);
}
.mk-carousel__nav:hover{ border-color: var(--ember); color: var(--ember); }

/* Bez tohoto pravidla by se schované šipky stejně kreslily — pravidlo
   display:grid výše je silnější než výchozí chování atributu hidden. */
.mk-carousel__nav[hidden]{ display: none; }
.mk-carousel__nav[data-carousel-prev]{ left: -1.1rem; }
.mk-carousel__nav[data-carousel-next]{ right: -1.1rem; }

@media (max-width: 720px){
  /* na mobilu se posouvá prstem, šipky by jen překážely */
  .mk-carousel__nav{ display: none; }
}

/* ==========================================================================
   GALERIE NA STRÁNCE AKCE
   ========================================================================== */
.mk-event-gallery{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr));
  gap: clamp(0.75rem, 2vw, 1.25rem);
}
.mk-event-gallery figure{ margin: 0; }
.mk-event-gallery img{
  width: 100%;
  height: auto;
  display: block;
  border: 1px solid var(--ink-line);
  border-radius: var(--radius);
  background: var(--ink-soft);
}

/* ==========================================================================
   POSUVNÁ ŘADA FOTEK NA ÚVODNÍ STRÁNCE
   ========================================================================== */
.mk-carousel--photos .mk-carousel__track{
  /* šířka je volená tak, aby se na běžné obrazovce vešlo pět fotek
     a šestá kouskem vykukovala — to samo napoví, že jde posouvat dál */
  grid-auto-columns: minmax(12.5rem, 13rem);
  gap: clamp(.6rem, 1.4vw, 1rem);
}
.mk-carousel--photos .mk-carousel__nav{ top: 50%; transform: translateY(-50%); }

.mk-photo{
  display: block;
  scroll-snap-align: start;
  transition: opacity var(--dur) var(--ease);
}
a.mk-photo:hover{ opacity: .82; }
.mk-photo .media{ aspect-ratio: 1 / 1; }

/* zástupná plocha — ať je poznat, že fotka teprve přijde */
.mk-photo--placeholder .media,
.card--placeholder .media{ border-style: dashed; }

.card--placeholder .card__title,
.card--placeholder .card__cat,
.card--placeholder .card__desc,
.card--placeholder .card__link{ opacity: .55; }
.card--placeholder .card__link{ text-decoration: none; cursor: default; }
.card--placeholder .event-badge{ opacity: .6; }

.mk-carousel__note{
  margin-top: 1rem;
  font-size: .85rem;
  color: var(--steel);
  max-width: var(--text-max);
}

/* ==========================================================================
   MŘÍŽKA FOTOGRAFIÍ (stránka Galerie)
   Záměrně bez popisků — jen snímky.
   ========================================================================== */
.mk-photo-grid{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr));
  gap: clamp(.6rem, 1.5vw, 1rem);
}
.mk-photo-grid .mk-photo{ width: 100%; }

/* tlačítko fotky — bez vlastního vzhledu, nese jen snímek */
button.mk-photo{
  padding: 0;
  border: none;
  background: none;
  cursor: zoom-in;
  display: block;
  width: 100%;
}
button.mk-photo:hover .media{ border-color: var(--steel-dim); }

/* ==========================================================================
   ZVĚTŠENINA FOTOGRAFIE
   ========================================================================== */
.mk-lightbox{
  position: fixed;
  inset: 0;
  z-index: 90;
  display: none;
  align-items: center;
  justify-content: center;
  padding: clamp(1rem, 4vw, 3rem);
}
.mk-lightbox.is-open{ display: flex; }

.mk-lightbox__backdrop{
  position: absolute;
  inset: 0;
  background: rgba(10, 12, 15, 0.94);
  cursor: zoom-out;
}

.mk-lightbox__figure{
  position: relative;
  margin: 0;
  max-width: min(100%, 72rem);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .7rem;
}
.mk-lightbox__figure img{
  max-width: 100%;
  max-height: 82vh;
  width: auto;
  height: auto;
  display: block;
  border: 1px solid var(--ink-line);
  border-radius: var(--radius);
}
.mk-lightbox__figure figcaption{
  font-size: .8rem;
  color: var(--steel);
  font-variant-numeric: tabular-nums;
}

.mk-lightbox__close,
.mk-lightbox__nav{
  position: absolute;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 2.8rem;
  height: 2.8rem;
  color: var(--paper);
  background: rgba(20, 23, 28, 0.9);
  border: 1px solid var(--ink-line);
  border-radius: 50%;
  font-size: 1.4rem;
  line-height: 1;
  transition: border-color var(--dur) var(--ease), color var(--dur) var(--ease);
}
.mk-lightbox__close:hover,
.mk-lightbox__nav:hover{ border-color: var(--ember); color: var(--ember); }

.mk-lightbox__close{ top: clamp(.75rem, 2vw, 1.5rem); right: clamp(.75rem, 2vw, 1.5rem); font-size: 1.1rem; }
.mk-lightbox__nav--prev{ left: clamp(.5rem, 2vw, 1.5rem); }
.mk-lightbox__nav--next{ right: clamp(.5rem, 2vw, 1.5rem); }

/* stejně jako u karuselu: schované tlačítko se nesmí kreslit */
.mk-lightbox__close[hidden],
.mk-lightbox__nav[hidden]{ display: none; }

@media (max-width: 560px){
  .mk-lightbox__nav{ top: auto; bottom: clamp(.75rem, 3vw, 1.5rem); }
}
