/* Znovu s Týnou – styles for the shortcode output.
   Colours and fonts come from Elementor Global Colors / Global Fonts (Site Settings),
   so rebranding there changes these parts too. Fallbacks match the design. */

:root {
  --zn-orange: var(--e-global-color-primary, #F98B00);
  --zn-green: var(--e-global-color-secondary, #1D3D3A);
  --zn-ink: var(--e-global-color-text, #141414);
  --zn-burgundy: var(--e-global-color-accent, #5D2B37);
  --zn-orange-hover: var(--e-global-color-znhover, #D97700);
  --zn-navy: var(--e-global-color-znnavy, #0C1E32);
  --zn-white: var(--e-global-color-znwhite, #FFFFFF);
  --zn-cream: var(--e-global-color-zncream, #FFF6EA);
  --zn-line: var(--e-global-color-znline, #E8E2DA);
  --zn-link: var(--e-global-color-znlink, #B85C00);
  --zn-sold: var(--e-global-color-znsold, #6B6B6B);
  --zn-muted: var(--e-global-color-znmuted, #4A4A4A);
  --zn-field: #8B8178;
  --zn-font: var(--e-global-typography-text-font-family, "Bricolage Grotesque"), "Segoe UI", system-ui, sans-serif;
  --zn-narrow: var(--e-global-typography-secondary-font-family, "Bricolage Grotesque Narrow"), "Segoe UI", sans-serif;
  --zn-display: var(--e-global-typography-primary-font-family, "Bricolage Grotesque Condensed"), "Segoe UI", sans-serif;
  --zn-hand: var(--e-global-typography-zntag-font-family, "Caveat"), "Segoe Print", cursive;
  --zn-radius: 14px;
}

.zn-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.zn-icon { display: inline-block; flex: none; vertical-align: middle; }

/* ---------- buttons (theme button styles are reset first) ---------- */
.zn-btn, .zn-btn:visited {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  min-height: 48px; padding: .7rem 1.35rem; margin: 0;
  border: 2px solid transparent; border-radius: 999px; box-shadow: none;
  font: 700 1rem/1.1 var(--zn-font); text-decoration: none; text-align: center; text-transform: none; letter-spacing: 0;
  cursor: pointer; transition: background-color .15s, color .15s, border-color .15s;
}
.zn-btn--primary, .zn-btn--primary:visited { background: var(--zn-orange); color: var(--zn-ink); }
.zn-btn--primary:hover, .zn-btn--primary:focus { background: var(--zn-orange-hover); color: var(--zn-ink); }
.zn-btn--dark, .zn-btn--dark:visited { background: var(--zn-green); color: var(--zn-white); }
.zn-btn--dark:hover, .zn-btn--dark:focus { background: var(--zn-navy); color: var(--zn-white); }
.zn-btn--outline, .zn-btn--outline:visited, .zn-btn--buy, .zn-btn--buy:visited { background: var(--zn-white); color: var(--zn-green); border-color: var(--zn-green); }
.zn-btn--outline:hover, .zn-btn--outline:focus, .zn-btn--buy:hover, .zn-btn--buy:focus { background: var(--zn-green); color: var(--zn-white); border-color: var(--zn-green); }
.zn-btn--large { min-height: 56px; padding: .9rem 1.75rem; font-size: 1.125rem; }
.zn-btn--small { min-height: 40px; padding: .45rem .8rem; font-size: .875rem; }
.zn-btn--block { width: 100%; }
.zn-linkbtn, .zn-linkbtn:hover, .zn-linkbtn:focus {
  min-height: 44px; padding: 0; border: 0; background: none; box-shadow: none; cursor: pointer;
  font: 600 1rem var(--zn-font); color: var(--zn-link); text-decoration: underline; text-underline-offset: .18em;
}
.zn-btn:focus-visible, .zn-linkbtn:focus-visible, .zn-chip:focus-visible, .zn-nav a:focus-visible, .zn-nav__toggle:focus-visible,
.zn-gallery__track:focus-visible, .zn-gallery button:focus-visible, .zn-crumbs a:focus-visible {
  outline: 3px solid var(--zn-navy); outline-offset: 3px;
}
.zn-rating:focus-visible { outline: 3px solid var(--zn-orange); outline-offset: 3px; }

/* ---------- hang tag ---------- */
.zn-tag { position: relative; display: inline-block; filter: drop-shadow(0 1px 1px rgba(20, 20, 20, .35)); }
.zn-tag__body {
  display: block; padding: .25rem .75rem .3rem 1.45rem;
  background: var(--zn-cream); color: var(--zn-ink);
  font: 700 1.4rem/1 var(--zn-hand); white-space: nowrap;
  clip-path: polygon(.75rem 0, 100% 0, 100% 100%, .75rem 100%, 0 50%);
  -webkit-mask: radial-gradient(circle .2rem at .8rem 50%, transparent 95%, #000 100%);
          mask: radial-gradient(circle .2rem at .8rem 50%, transparent 95%, #000 100%);
}
.zn-tag::before {
  content: ""; position: absolute; left: .8rem; bottom: 50%;
  width: 1.5px; height: 1.5rem; background: var(--zn-ink);
  transform-origin: bottom center; transform: rotate(-38deg);
}
.zn-tag--big .zn-tag__body {
  font-size: 1.9rem; padding: .35rem 1rem .4rem 1.8rem;
  clip-path: polygon(1rem 0, 100% 0, 100% 100%, 1rem 100%, 0 50%);
  -webkit-mask: radial-gradient(circle .26rem at 1rem 50%, transparent 95%, #000 100%);
          mask: radial-gradient(circle .26rem at 1rem 50%, transparent 95%, #000 100%);
}
.zn-tag--big::before { left: 1rem; height: 2rem; }
.zn-pricetag { margin: .4rem 0 .25rem .4rem; transform: rotate(-3deg); transform-origin: left center; }

.zn-stars { display: inline-flex; gap: 2px; color: var(--zn-link); vertical-align: -2px; }
.zn-stars .zn-icon { display: block; }

/* ---------- main menu ---------- */
.zn-nav { position: static; font-family: var(--zn-font); }
.zn-nav__toggle, .zn-nav__toggle:hover, .zn-nav__toggle:focus {
  display: inline-flex; align-items: center; gap: .55rem; min-height: 44px; padding: 0 .9rem; margin: 0;
  border: 1.5px solid var(--zn-ink); border-radius: 999px; background: var(--zn-white); color: var(--zn-ink);
  font: 700 .9375rem var(--zn-font); cursor: pointer; box-shadow: none;
}
.zn-nav__bars, .zn-nav__bars::before, .zn-nav__bars::after { display: block; width: 16px; height: 2px; background: currentColor; border-radius: 2px; transition: transform .2s; }
.zn-nav__bars { position: relative; }
.zn-nav__bars::before, .zn-nav__bars::after { content: ""; position: absolute; left: 0; }
.zn-nav__bars::before { top: -5px; }
.zn-nav__bars::after { top: 5px; }
.zn-nav__toggle[aria-expanded="true"] .zn-nav__bars { background: transparent; }
.zn-nav__toggle[aria-expanded="true"] .zn-nav__bars::before { transform: translateY(5px) rotate(45deg); }
.zn-nav__toggle[aria-expanded="true"] .zn-nav__bars::after { transform: translateY(-5px) rotate(-45deg); }
.zn-nav ul { list-style: none; margin: 0; padding: 0; }
.zn-nav__list {
  display: none; position: fixed; left: 0; right: 0; top: var(--zn-nav-top, 60px); z-index: 9990;
  max-height: calc(100vh - var(--zn-nav-top, 60px)); overflow-y: auto;
  background: var(--zn-white); border-top: 1px solid var(--zn-line); border-bottom: 1px solid var(--zn-line);
  padding: .25rem 16px 1rem; box-shadow: 0 16px 24px -16px rgba(12, 30, 50, .25);
}
.zn-nav__list.is-open { display: block; }
.zn-nav__list > li { margin: 0; }
.zn-nav__list > li + li { border-top: 1px solid var(--zn-line); }
.zn-nav a, .zn-nav a:visited {
  display: block; padding: .85rem 0; color: var(--zn-ink); text-decoration: none;
  font-family: var(--zn-narrow); font-weight: 700; font-size: 1.375rem; line-height: 1.2;
}
.zn-nav a:hover { color: var(--zn-ink); text-decoration: underline; text-decoration-color: var(--zn-orange); text-decoration-thickness: 3px; text-underline-offset: .3em; }
.zn-nav a[aria-current="page"] { text-decoration: underline; text-decoration-color: var(--zn-orange); text-decoration-thickness: 4px; text-underline-offset: .3em; }
.zn-nav__sub { padding: 0 0 .5rem 1rem !important; }
.zn-nav__sub a, .zn-nav__sub a:visited { font-family: var(--zn-font); font-size: 1.0625rem; font-weight: 600; padding: .45rem 0; }

@media (min-width: 860px) {
  .zn-nav { position: relative; }
  .zn-nav__toggle, .zn-nav__toggle:hover, .zn-nav__toggle:focus { display: none; }
  .zn-nav__list { display: flex; gap: 1.75rem; position: static; max-height: none; overflow: visible; padding: 0; border: 0; box-shadow: none; background: none; }
  .zn-nav__list > li + li { border: 0; }
  .zn-nav__item { position: relative; }
  .zn-nav a, .zn-nav a:visited { font-family: var(--zn-font); font-size: 1.0625rem; padding: .5rem 0; }
  .zn-nav a[aria-current="page"] { text-decoration-thickness: 3px; }
  .zn-nav__sub {
    display: none; position: absolute; left: -1rem; top: 100%; min-width: 12rem; z-index: 60;
    padding: .5rem 1rem !important; background: var(--zn-white); border: 1px solid var(--zn-line); border-radius: 14px;
    box-shadow: 0 12px 24px -12px rgba(12, 30, 50, .3);
  }
  .zn-nav__item--has-sub:hover .zn-nav__sub, .zn-nav__item--has-sub:focus-within .zn-nav__sub { display: block; }
}

/* ---------- hero parts ---------- */
.zn-rating, .zn-rating:visited { display: inline-flex; align-items: center; flex-wrap: wrap; gap: .5rem; color: var(--zn-white); font: 400 .9375rem/1.4 var(--zn-font); text-decoration: none; }
.zn-rating:hover { color: var(--zn-white); }
.zn-rating:hover span:last-child { text-decoration: underline; }
.zn-rating .zn-stars { color: var(--zn-orange); }
.zn-hero-tag { padding-left: 1.5rem; transform: rotate(-5deg); transform-origin: left center; }
.zn-hero-tag .zn-tag::before { background: var(--zn-cream); height: 2.6rem; }
.zn-hero-tag .zn-tag__body { font-size: 1.6rem; }
.zn-hero-tag__string { display: none; }
@media (min-width: 900px) {
  .zn-hero-tag { padding: 0; transform: none; }
  .zn-hero-tag__string { display: block; width: 2px; height: 8rem; margin-left: calc(1rem - 1px); background: var(--zn-cream); }
  .zn-hero-tag .zn-tag { margin-top: -1.15rem; transform: rotate(16deg); transform-origin: 1rem 50%; }
  .zn-hero-tag .zn-tag::before { display: none; }
  .zn-hero-tag .zn-tag__body { font-size: 1.9rem; }
}

/* ---------- chips ---------- */
.zn-chips { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1rem 0; padding: 0; list-style: none; }
.zn-chips li { margin: 0; }
.zn-chips--scroll { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin: 0 -1rem; padding: 2px 1rem 4px; }
.zn-chips--scroll::-webkit-scrollbar { display: none; }
.zn-chip, .zn-chip:visited {
  display: inline-flex; align-items: center; gap: .4rem; flex: none;
  min-height: 40px; padding: .4rem .95rem; margin: 0;
  border: 1.5px solid var(--zn-line); border-radius: 999px; background: var(--zn-white);
  color: var(--zn-ink); font: 600 .9375rem/1.2 var(--zn-font); text-decoration: none; white-space: nowrap;
}
a.zn-chip:hover { border-color: var(--zn-green); color: var(--zn-ink); }
.zn-chip__count { color: var(--zn-muted); font-weight: 500; font-size: .8125rem; }
.zn-chip--radio, .zn-chip--radio:hover { position: relative; cursor: pointer; padding: 0; border: 0; background: none; min-height: 0; }
.zn-chip--radio input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.zn-chip--radio span {
  display: inline-flex; align-items: center; justify-content: center; min-height: 40px; min-width: 44px;
  padding: .4rem .95rem; border: 1.5px solid var(--zn-field); border-radius: 999px; background: var(--zn-white);
}
.zn-chip--radio input:checked + span { background: var(--zn-green); border-color: var(--zn-green); color: var(--zn-white); }
.zn-chip--radio input:focus-visible + span { outline: 3px solid var(--zn-navy); outline-offset: 2px; }
.zn-size { display: inline-block; padding: 0 .4rem; border: 1.5px solid var(--zn-ink); border-radius: 6px; font-weight: 700; font-size: .8125rem; line-height: 1.45; color: var(--zn-ink); }

/* ---------- listing ---------- */
.zn-listing { font-family: var(--zn-font); color: var(--zn-ink); }
.zn-lead { font-size: 1.125rem; color: var(--zn-muted); max-width: 52ch; margin: 0 0 1rem; }
.zn-filters { margin: 1rem 0 .5rem; padding: 1rem; background: var(--zn-cream); border: 1px solid var(--zn-line); border-radius: 18px; }
.zn-filters__row { display: grid; gap: .85rem; }
.zn-field { display: block; margin: 0; }
.zn-field__label { display: block; margin: 0 0 .3rem; padding: 0; font-weight: 700; font-size: .875rem; color: var(--zn-ink); }
.zn-field select {
  width: 100%; min-height: 48px; height: auto; padding: 0 2.6rem 0 .9rem; margin: 0;
  border: 1.5px solid var(--zn-field); border-radius: 12px; background-color: var(--zn-white);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%23141414' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right .95rem center; background-size: 14px 9px;
  font: 500 1rem var(--zn-font); color: var(--zn-ink); -webkit-appearance: none; appearance: none; cursor: pointer; box-shadow: none;
}
.zn-field select:focus { border-color: var(--zn-green); outline: 3px solid var(--zn-navy); outline-offset: 2px; }
.zn-sizes { margin: .9rem 0 0; padding: 0; border: 0; min-width: 0; }
.zn-sizes legend { float: none; width: auto; }
.zn-sizes .zn-chips { margin-block: 0; }
.zn-results { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 44px; margin: .75rem 0 .5rem; }
.zn-results__count { margin: 0; font-weight: 700; }
.zn-empty { text-align: center; padding: 3rem 1rem 1rem; }
.zn-empty__title { font-family: var(--zn-narrow); font-weight: 800; font-size: 1.5rem; margin-bottom: .5rem; }

.zn-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem .75rem; }
@media (min-width: 700px) { .zn-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.5rem 1.25rem; } .zn-filters__row { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1000px) { .zn-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

/* ---------- card ---------- */
.zn-card { position: relative; display: flex; flex-direction: column; min-width: 0; font-family: var(--zn-font); }
.zn-card[hidden] { display: none; }
.zn-card__media { display: block; position: relative; aspect-ratio: 3 / 4; overflow: hidden; border-radius: var(--zn-radius); background: var(--zn-cream); }
.zn-card__media img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; border-radius: 0; }
.zn-card__tag { align-self: flex-start; z-index: 2; margin: -1.15rem 0 0 .6rem; transform: rotate(-4deg); pointer-events: none; }
.zn-card__title { margin: .55rem 0 0; padding: 0; font: 650 1rem/1.25 var(--zn-font); letter-spacing: 0; text-transform: none; color: var(--zn-ink); }
.zn-card__title a, .zn-card__title a:visited {
  color: var(--zn-ink); text-decoration: none;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.zn-card__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.zn-card__title a:hover { color: var(--zn-ink); text-decoration: underline; }
.zn-card__title a:focus-visible { outline: none; }
.zn-card:has(.zn-card__title a:focus-visible) { outline: 3px solid var(--zn-navy); outline-offset: 4px; border-radius: var(--zn-radius); }
.zn-card__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .5rem; margin: .35rem 0 .75rem; font-size: .875rem; color: var(--zn-muted); }
.zn-card__brand { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; }
.zn-card__buy { position: relative; z-index: 2; margin-top: auto; width: 100%; }

/* sold (designed; used when an offer gets status "sold") */
.zn-card--sold .zn-card__media img { filter: grayscale(1); opacity: .55; }
.zn-card--sold .zn-card__title a, .zn-card--sold .zn-card__meta, .zn-card--sold .zn-card__soldnote { color: var(--zn-sold); }
.zn-card--sold .zn-size { border-color: var(--zn-sold); color: var(--zn-sold); }
.zn-card--sold .zn-tag__body { background: #EDEDED; color: var(--zn-sold); }
.zn-stamp {
  position: absolute; left: 50%; top: 45%; transform: translate(-50%, -50%) rotate(-12deg); z-index: 2;
  padding: .1rem .8rem .25rem; border: 3px solid var(--zn-sold); border-radius: 10px;
  background: rgba(255, 255, 255, .88); color: var(--zn-sold); font: 700 1.75rem/1 var(--zn-hand); white-space: nowrap;
}
.zn-card__soldnote { margin: auto 0 0; font-size: .875rem; font-weight: 600; }

/* ---------- breadcrumbs ---------- */
.zn-crumbs { font: 400 .875rem/1.4 var(--zn-font); }
.zn-crumbs ol { display: flex; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; list-style: none; margin: 0 -16px; padding: .25rem 16px; }
.zn-crumbs ol::-webkit-scrollbar { display: none; }
.zn-crumbs li { flex: none; white-space: nowrap; margin: 0; }
.zn-crumbs li + li::before { content: "/"; margin: 0 .45rem; color: var(--zn-muted); }
.zn-crumbs a, .zn-crumbs a:visited { display: inline-block; padding-block: .3rem; color: var(--zn-link); text-decoration: underline; text-underline-offset: .18em; }
.zn-crumbs a:hover { color: var(--zn-link); text-decoration-thickness: .14em; }
.zn-crumbs [aria-current] { color: var(--zn-muted); }
@media (min-width: 600px) { .zn-crumbs ol { margin: 0; padding-inline: 0; } }

/* ---------- gallery ---------- */
.zn-gallery { position: relative; margin-inline: -16px; }
.zn-gallery__track {
  display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth;
  scrollbar-width: none; aspect-ratio: 4 / 5; background: var(--zn-cream); overscroll-behavior-x: contain;
}
.zn-gallery__track::-webkit-scrollbar { display: none; }
.zn-gallery__slide { flex: 0 0 100%; margin: 0; scroll-snap-align: start; scroll-snap-stop: always; }
.zn-gallery__slide img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; border-radius: 0; }
.zn-gallery__arrow, .zn-gallery__arrow:hover, .zn-gallery__arrow:focus {
  position: absolute; top: calc(50% - 22px); transform: translateY(-50%); z-index: 2;
  display: grid; place-items: center; width: 44px; height: 44px; min-height: 0; padding: 0; margin: 0;
  border: 0; border-radius: 50%; background: rgba(255, 255, 255, .92); color: var(--zn-ink);
  box-shadow: 0 2px 8px rgba(12, 30, 50, .2); cursor: pointer;
}
.zn-gallery__arrow--prev { left: 10px; }
.zn-gallery__arrow--prev .zn-icon { transform: rotate(180deg); }
.zn-gallery__arrow--next { right: 10px; }
.zn-gallery__arrow:disabled { opacity: 0; pointer-events: none; }
.zn-gallery__dots { display: flex; justify-content: center; gap: 2px; padding: .5rem 0 0; }
.zn-gallery__dot, .zn-gallery__dot:hover, .zn-gallery__dot:focus { position: relative; width: 24px; height: 24px; min-height: 0; padding: 0; margin: 0; border: 0; background: none; box-shadow: none; cursor: pointer; }
.zn-gallery__dot::before {
  content: ""; position: absolute; left: 50%; top: 50%; width: 9px; height: 9px; transform: translate(-50%, -50%);
  border-radius: 5px; background: #C9C0B6; transition: width .2s, background-color .2s;
}
.zn-gallery__dot[aria-current="true"]::before { width: 22px; background: var(--zn-green); }
.zn-gallery--sold .zn-gallery__slide img { filter: grayscale(1); opacity: .6; }
.zn-stamp--gallery { top: 45%; font-size: 2.4rem; }
@media (min-width: 900px) {
  .zn-gallery { margin-inline: 0; }
  .zn-gallery__track { border-radius: 20px; aspect-ratio: 3 / 4; }
}

/* ---------- offer details ---------- */
.zn-offerlinks { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; }
.zn-share { display: grid; gap: .25rem; }
.zn-share__toast { margin: 0; min-height: 1.5em; color: var(--zn-green); font: 700 1rem var(--zn-font); text-align: center; }
.zn-soldnote { padding: 1rem; background: #F2F2F2; border-radius: 12px; color: var(--zn-ink); margin: 0; }
.zn-specs { margin: 0; font-family: var(--zn-font); }
.zn-specs div { display: flex; justify-content: space-between; gap: 1rem; padding: .7rem 0; border-bottom: 1px solid var(--zn-line); }
.zn-specs div:first-child { border-top: 1px solid var(--zn-line); }
.zn-specs dt { color: var(--zn-muted); font-weight: 400; margin: 0; }
.zn-specs dd { margin: 0; font-weight: 650; text-align: right; color: var(--zn-ink); }
.zn-qr { display: none; }
.zn-qr__code svg { display: block; width: 116px; height: auto; }
.zn-qr__text { margin: 0; font-size: .9375rem; color: var(--zn-muted); }
@media (min-width: 900px) {
  .zn-qr { display: flex; align-items: center; gap: 1rem; padding: .9rem; border: 1px solid var(--zn-line); border-radius: 16px; }
  .zn-share__toast { text-align: left; }
}

/* ---------- about ---------- */
.zn-facts { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; margin: 0 0 1.25rem; padding: 0; list-style: none; font: 600 1.0625rem/1.4 var(--zn-font); color: var(--zn-ink); }
.zn-facts li { display: inline-flex; align-items: center; gap: .4rem; margin: 0; }
.zn-facts .zn-icon { color: var(--zn-green); }
.zn-badges { display: grid; gap: .6rem; margin: 0; padding: 0; list-style: none; font-family: var(--zn-font); }
.zn-badge { margin: 0; padding: .75rem 1rem; border-radius: 14px; background: var(--zn-burgundy); color: var(--zn-white); }
.zn-badge__name { display: block; font-weight: 800; font-size: 1.0625rem; }
.zn-badge__info { display: block; font-size: .9375rem; }
@media (min-width: 600px) { .zn-badges { grid-template-columns: 1fr 1fr; } }

.zn-reviews { font-family: var(--zn-font); color: var(--zn-ink); }
.zn-score { display: flex; align-items: center; gap: .75rem; margin: 0 0 1.5rem; }
.zn-score__num { font-family: var(--zn-display); font-weight: 800; font-size: 3.75rem; line-height: .9; }
.zn-score__meta { display: grid; gap: .2rem; font-size: .9375rem; color: var(--zn-muted); }
.zn-reviews__list { display: grid; gap: .75rem; margin: 0; padding: 0; list-style: none; }
.zn-js .zn-reviews__list:not(.is-expanded) [data-more] { display: none; }
.zn-review { margin: 0; padding: 1rem 1.15rem; border-radius: 16px; background: var(--zn-cream); }
.zn-review__text { margin: 0 0 .6rem; font-size: 1.0625rem; }
.zn-review__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .7rem; margin: 0; font-size: .875rem; color: var(--zn-muted); }
.zn-review__name { font-weight: 700; color: var(--zn-ink); }
.zn-reviews__more { margin-top: 1rem; }
.zn-reviews__note { margin: 1.25rem 0 0; font-size: .875rem; color: var(--zn-muted); }
@media (min-width: 700px) { .zn-reviews__list { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1000px) { .zn-reviews__list { grid-template-columns: repeat(3, 1fr); } }

@media (prefers-reduced-motion: reduce) {
  .zn-btn, .zn-nav__bars, .zn-nav__bars::before, .zn-nav__bars::after, .zn-gallery__dot::before { transition: none; }
  .zn-gallery__track { scroll-behavior: auto; }
}

/* ---------- Elementor layout helpers (added with the Elementor pages) ---------- */
.zn-more, .zn-more:visited { font-family: var(--zn-font); font-weight: 700; color: var(--zn-link); text-underline-offset: .18em; }
.zn-more:hover { color: var(--zn-link); text-decoration-thickness: .14em; }
.zn-copy { margin: 0; font-family: var(--zn-font); font-size: .875rem; color: var(--zn-line); }

/* Hero tag: below the buttons on phones, hanging from the top edge on wide screens (as on the static site). */
@media (min-width: 900px) {
  #uvod-cedulka { position: absolute !important; top: calc(-1 * var(--padding-top, 80px)); right: 9rem; width: auto; max-width: none; margin: 0; padding: 0; }
}

/* Links in the dark footer and notice boxes: white, never orange text on white. */
#paticka a, #paticka a:visited { color: var(--zn-white); }
#paticka a:hover { color: var(--zn-white); text-decoration: underline; text-decoration-color: var(--zn-orange); text-decoration-thickness: 2px; }
#jak-upozorneni a { color: var(--zn-white); }

/* Spacing lives in widget padding: no stray margin after the last paragraph of a Text Editor widget. */
.elementor-widget-text-editor p:last-child, .elementor-widget-text-editor ul:last-child { margin-bottom: 0; }
.elementor-widget-text-editor h2 { margin: 1.75rem 0 .6rem; }

/* Cookie bar (Cookie Notice plugin) in the site colours: orange button with dark text, never white on orange. */
#cookie-notice { font-family: var(--zn-font); font-size: .9375rem; line-height: 1.45; }
#cookie-notice .cookie-notice-container { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .75rem 1.25rem; padding: 14px 16px; text-align: left; }
#cookie-notice .cn-text-container { margin: 0; max-width: 62ch; }
#cookie-notice .cn-buttons-container { display: inline-flex; flex-wrap: wrap; gap: .5rem; }
#cookie-notice .cn-button.zn-cookie-ok { margin: 0; min-height: 40px; padding: .5rem 1.1rem; border-radius: 999px; border: 2px solid var(--zn-orange); background: var(--zn-orange); color: var(--zn-ink); font: 700 .9375rem var(--zn-font); cursor: pointer; }
#cookie-notice .cn-button.zn-cookie-ok:hover { background: var(--zn-orange-hover); border-color: var(--zn-orange-hover); color: var(--zn-ink); }
#cookie-notice #cn-more-info.zn-cookie-ok { background: transparent; border-color: var(--zn-white); color: var(--zn-white); }
#cookie-notice #cn-more-info.zn-cookie-ok:hover { background: var(--zn-white); color: var(--zn-navy); }
#cookie-notice .cn-button:focus-visible { outline: 3px solid var(--zn-white); outline-offset: 2px; }
#cookie-notice .cn-close-icon { display: none; }

/* ---------- link colours vs. Elementor kit: the kit sets '.elementor-kit-5 a', so link-like components repeat their colour one level stronger ---------- */
body .zn-btn--primary, body .zn-btn--primary:visited { color: var(--zn-ink); }
body .zn-btn--primary:hover, body .zn-btn--primary:focus { color: var(--zn-ink); }
body .zn-btn--dark, body .zn-btn--dark:visited { color: var(--zn-white); }
body .zn-btn--dark:hover, body .zn-btn--dark:focus { color: var(--zn-white); }
body .zn-btn--outline, body .zn-btn--outline:visited, body .zn-btn--buy, body .zn-btn--buy:visited { color: var(--zn-green); }
body .zn-btn--outline:hover, body .zn-btn--outline:focus, body .zn-btn--buy:hover, body .zn-btn--buy:focus { color: var(--zn-white); }
body .zn-linkbtn, body .zn-linkbtn:hover, body .zn-linkbtn:focus { color: var(--zn-link); }
body .zn-nav__toggle, body .zn-nav__toggle:hover, body .zn-nav__toggle:focus { color: var(--zn-ink); }
body .zn-nav a, body .zn-nav a:visited { color: var(--zn-ink); }
body .zn-nav a:hover { color: var(--zn-ink); }
body .zn-rating, body .zn-rating:visited { color: var(--zn-white); }
body .zn-rating:hover { color: var(--zn-white); }
body .zn-rating .zn-stars { color: var(--zn-orange); }
body .zn-chip, body .zn-chip:visited { color: var(--zn-ink); }
body a.zn-chip:hover { color: var(--zn-ink); }
body .zn-chip__count { color: var(--zn-muted); }
body .zn-chip--radio input:checked + span { color: var(--zn-white); }
body .zn-card__title a, body .zn-card__title a:visited { color: var(--zn-ink); }
body .zn-card__title a:hover { color: var(--zn-ink); }
body .zn-card--sold .zn-card__title a { color: var(--zn-sold); }
body .zn-crumbs li + li::before { color: var(--zn-muted); }
body .zn-crumbs a, body .zn-crumbs a:visited { color: var(--zn-link); }
body .zn-crumbs a:hover { color: var(--zn-link); }
body .zn-crumbs [aria-current] { color: var(--zn-muted); }
body .zn-more, body .zn-more:visited { color: var(--zn-link); }
body .zn-more:hover { color: var(--zn-link); }
body #paticka a, body #paticka a:visited { color: var(--zn-white); }
body #paticka a:hover { color: var(--zn-white); }
body #jak-upozorneni a { color: var(--zn-white); }

/* Sticky header (Xpro Theme Builder header, plain CSS so it works without extra scripts). */
.xpro-theme-builder-header { position: sticky; top: 0; z-index: 9980; }
.admin-bar .xpro-theme-builder-header { top: var(--wp-admin--admin-bar--height, 32px); }
@media (max-width: 600px) { .admin-bar .xpro-theme-builder-header { top: 0; } }

/* Mobile menu panel keeps its side padding ('.zn-nav ul' resets padding). */
.zn-nav .zn-nav__list { padding: .25rem 16px 1rem; }
@media (min-width: 600px) { .zn-nav .zn-nav__list { padding-inline: 24px; } }
@media (min-width: 860px) { .zn-nav .zn-nav__list { padding: 0; } }
