/* U VÁS – base layer beyond what Bricks classes express: cuts, marquee, hours, motion safety. */

:root {
  --font-display: "Barlow Condensed", "Arial Narrow", sans-serif;
  --font-text: "Barlow", "Helvetica Neue", Arial, sans-serif;
  --font-label: "Barlow Semi Condensed", "Arial Narrow", sans-serif;
  --uv-skew: var(--skew, -6deg);
  --uv-cut: var(--cut, clamp(1.75rem, 5vw, 4.5rem));
}

html { scroll-behavior: auto; }
/* Tilted marquee and photo strips bleed past the viewport on purpose – clip, never scroll sideways. */
html, body, #brx-content, main { overflow-x: clip; }
/* Mobile menu open: the page behind it must not scroll (Lenis is stopped from JS as well). */
html.uv-menu-open, html.uv-menu-open body { overflow: hidden !important; height: 100%; }
html.uv-menu-open [data-uv-header] { background: var(--uv-teal-deep) !important; }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: hidden; }

body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
/* Bricks wraps the header template in #brx-header; sticky must sit on that wrapper (the inner block has no room to stick). */
#brx-header { position: sticky; top: 0; z-index: 100; margin-bottom: calc(-1 * var(--header-h)); }
/* First section of every page starts under the floating header. */
[data-uv-hero] { padding-top: var(--header-h); }
img, video { max-width: 100%; height: auto; }
::selection { background: var(--uv-caramel); color: var(--uv-ink); }

/* Linked images are inline by default – block kills the baseline gap under photos. */
a.uv-media-bleed, a.uv-instax, a.uv-phone { display: block; line-height: 0; }

/* --- Header row: logo | nav | lang + CTA; below 1100px the nav collapses to a hamburger on the right */
.uv-header__logo { display: block; flex: 0 0 auto; line-height: 0; padding-block: 6px; }
.uv-header__logo img { width: 76px; height: 76px; display: block; filter: drop-shadow(0 2px 6px rgba(14,23,31,.35)); }
.uv-header__cluster { flex: 0 0 auto; }
@media (min-width: 1100px) { .uv-header__logo img { width: 84px; height: 84px; } }
@media (max-width: 1099.98px) {
  .uv-header__cluster { order: 2; margin-left: auto; }
  .uv-header__nav { order: 3; margin-left: var(--space-xs); }
}

/* --- Section cuts: the slanted edge that quotes the logo's underline ------- */
.uv-cut { position: relative; }
.uv-cut::before {
  content: "";
  position: absolute;
  left: 0; right: 0; top: 0;
  height: var(--uv-cut);
  background: inherit;
  transform: translateY(-99%);
  clip-path: polygon(0 100%, 100% 0, 100% 100%);
  pointer-events: none;
}
.uv-cut--reverse::before { clip-path: polygon(0 0, 100% 100%, 0 100%); }

/* --- Skewed CTA -------------------------------------------------------------- */
/* Base look lives in the Bricks global class; this fallback covers JS-rendered markup (order form). */
.uv-btn { display:inline-flex; align-items:center; justify-content:center; gap:.5em; padding:.85em 1.2em .75em; background: var(--uv-caramel); color: var(--uv-ink); font-family: var(--font-display); font-weight:800; font-style:italic; text-transform:uppercase; font-size: var(--text-l); line-height:1; letter-spacing:.01em; text-decoration:none; border:0; border-radius: var(--radius); cursor:pointer; transform: skewX(var(--uv-skew)); will-change: transform; transition: transform var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out); }
.uv-btn:hover { background: var(--uv-roast); color: var(--uv-paper); }
.uv-btn--ghost { background: transparent; color: inherit; box-shadow: inset 0 0 0 2px currentColor; }
.uv-btn--ghost:hover { background: var(--uv-caramel); color: var(--uv-ink); box-shadow: inset 0 0 0 2px var(--uv-caramel); }
.uv-btn--teal { background: var(--uv-teal); color: var(--uv-paper); }
.uv-btn--sm { font-size: var(--text-m); padding:.7em 1em .6em; }
.uv-btn:disabled { opacity:.6; cursor:wait; }
.uv-btn > * { display: inline-block; transform: skewX(calc(-1 * var(--uv-skew))); }
.uv-btn:hover, .uv-btn:focus-visible { transform: skewX(var(--uv-skew)) translateY(-2px); }
.uv-btn:active { transform: skewX(var(--uv-skew)) translateY(0); }

/* Ring hover: a roast circle grows from the centre of the button (the logo motif). */
.uv-btn { position: relative; overflow: hidden; isolation: isolate; }
.uv-btn::before { content: ""; position: absolute; inset: -20%; background: var(--uv-roast); clip-path: circle(0% at 50% 50%); transition: clip-path var(--dur-slow) var(--ease-in-out); z-index: -1; pointer-events: none; }
.uv-btn:hover::before, .uv-btn:focus-visible::before { clip-path: circle(75% at 50% 50%); }
.uv-btn:hover { background: var(--uv-caramel); color: var(--uv-paper); }
.uv-btn--ghost::before { background: var(--uv-caramel); }
.uv-btn--ghost:hover { background: transparent; color: var(--uv-ink); }
.uv-btn--teal::before { background: var(--uv-caramel); }
.uv-btn--teal:hover { background: var(--uv-teal); color: var(--uv-ink); }
.uv-btn--paper::before { background: var(--uv-caramel); }

/* --- Copy accents: highlighter, emphasis ------------------------------------- */
.uv-copy mark, mark.uv-mark { background: rgba(203,141,75,.5); color: inherit; padding: .04em .18em; margin: 0 -.04em; border-radius: 2px; box-decoration-break: clone; -webkit-box-decoration-break: clone; }
.uv-bg-teal .uv-copy mark, .uv-bg-ink .uv-copy mark { background: rgba(203,141,75,.4); }
.uv-copy strong { font-weight: 600; }
.uv-copy em { font-family: var(--font-display); font-style: italic; font-weight: 700; font-size: 1.08em; letter-spacing: .01em; }
.uv-copy u { text-decoration: none; background-image: linear-gradient(var(--uv-caramel), var(--uv-caramel)); background-size: 100% 2px; background-repeat: no-repeat; background-position: 0 100%; padding-bottom: .05em; }
.uv-copy p { margin: 0 0 1em; } .uv-copy p:last-child { margin-bottom: 0; }

/* --- Marquee ------------------------------------------------------------------ */
.uv-marquee { overflow: hidden; white-space: nowrap; }
.uv-marquee--tilt { transform: rotate(-2deg); width: 116vw !important; max-width: none !important; margin-left: -8vw; position: relative; z-index: 3; }
.uv-marquee__track { display: inline-flex; gap: 0; will-change: transform; animation: uv-marquee var(--uv-marquee-speed, 28s) linear infinite; }
.uv-marquee__item { padding-inline: .45em; }
.uv-marquee__item::after { content: "·"; margin-left: .9em; opacity: .55; }
@keyframes uv-marquee { to { transform: translateX(-50%); } }

/* --- Opening hours table ------------------------------------------------------ */
.uv-hours { display: grid; grid-template-columns: auto 1fr; gap: .35em 1.5em; margin: 0; }
.uv-hours__row { display: contents; }
.uv-hours__day { font-family: var(--font-label); font-weight: 600; text-transform: uppercase; letter-spacing: var(--track-label, .08em); font-size: var(--text-s); align-self: center; opacity: .8; }
.uv-hours__time { margin: 0; font-family: var(--font-display); font-weight: 600; text-transform: uppercase; font-size: var(--text-xl); line-height: 1.1; font-variant-numeric: tabular-nums; }
.uv-hours__row.is-today .uv-hours__day, .uv-hours__row.is-today .uv-hours__time { color: var(--uv-caramel); opacity: 1; }
.uv-open-status { display: inline-flex; align-items: center; gap: .6em; padding: .55em .95em .45em .8em; background: var(--uv-ink); color: var(--uv-paper); font-family: var(--font-display); font-weight: 700; font-style: italic; text-transform: uppercase; font-size: var(--text-m); line-height: 1; letter-spacing: .02em; transform: skewX(var(--uv-skew)); white-space: nowrap; }
.uv-open-status > * { display: inline-block; transform: skewX(calc(-1 * var(--uv-skew))); }
.uv-open-status__dot { width: .6em; height: .6em; border-radius: 50%; background: var(--uv-caramel); box-shadow: 0 0 0 0 rgba(203,141,75,.6); animation: uv-pulse 2.4s ease-out infinite; }
.uv-open-status.is-closed .uv-open-status__dot { background: var(--uv-roast); animation: none; }
.uv-bg-ink .uv-open-status { background: var(--uv-paper); color: var(--uv-ink); }
@keyframes uv-pulse { 0% { box-shadow: 0 0 0 0 rgba(203,141,75,.55); } 70% { box-shadow: 0 0 0 .6em rgba(203,141,75,0); } 100% { box-shadow: 0 0 0 0 rgba(203,141,75,0); } }

/* --- Reveal states (JS adds .is-in; without JS everything is visible) ------- */
.js [data-uv-reveal] { opacity: 0; transform: translateY(1.5rem); transition: opacity var(--dur-slow, .7s) var(--ease-out), transform var(--dur-slow, .7s) var(--ease-out); }
.js [data-uv-reveal].is-in { opacity: 1; transform: none; }
.js [data-uv-reveal="clip"] { transform: none; clip-path: inset(0 100% 0 0); transition: clip-path .9s var(--ease-in-out), opacity .2s; }
.js [data-uv-reveal="clip"].is-in { clip-path: inset(0 0 0 0); }
/* Line masks for slide-up headings: the clip box is padded so accents (Ě, Ů) and italic overhangs survive. */
.uv-line { display: block; overflow: hidden; padding: .16em .25em .08em .12em; margin: -.16em -.25em -.08em -.12em; }
.uv-line > span { display: block; }
h1, h2, h3 { overflow-wrap: normal; }

/* --- Mobile action bar --------------------------------------------------------- */
.uv-mobile-bar { position: fixed; inset-inline: 0; bottom: 0; z-index: 90; display: grid; grid-template-columns: repeat(3, 1fr); background: var(--uv-ink); color: var(--uv-paper); transform: translateY(0); transition: transform var(--dur-base) var(--ease-out); padding-bottom: env(safe-area-inset-bottom); }
.uv-mobile-bar.is-hidden { transform: translateY(110%); }
.uv-mobile-bar a { display: flex; flex-direction: column; align-items: center; gap: .2em; padding: .7em .5em .6em; font-family: var(--font-label); font-weight: 600; text-transform: uppercase; letter-spacing: .06em; font-size: .75rem; color: inherit; text-decoration: none; }
.uv-mobile-bar a + a { border-left: 1px solid rgba(254,254,252,.12); }
.uv-mobile-bar svg { width: 1.4em; height: 1.4em; fill: currentColor; }
/* The fixed bar needs room only where it exists (phones/tablets); desktop hides it. */
body.has-mobile-bar { padding-bottom: 3.6rem; background: var(--uv-ink); }
@media (min-width: 1024px) {
  .uv-mobile-bar { display: none; }
  body.has-mobile-bar { padding-bottom: 0; background: var(--uv-cream); }
}

/* --- Accessibility & motion safety ------------------------------------------- */
:focus-visible { outline: 3px solid var(--uv-caramel); outline-offset: 3px; }
.uv-visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
@media (prefers-reduced-motion: reduce) {
  .uv-marquee__track { animation: none; }
  .uv-open-status::before { animation: none; }
  .js [data-uv-reveal] { opacity: 1; transform: none; clip-path: none; transition: none; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* --- Cakes: allergens, catalogue, order form ---------------------------------- */
.uv-allergens { display:flex; flex-wrap:wrap; gap:.4em; }
.uv-allergen { display:inline-flex; align-items:center; gap:.4em; padding:.25em .6em; border:1px solid var(--uv-foam); border-radius:var(--radius); font-size:var(--text-s); }
.uv-allergen b { font-family: var(--font-display); font-weight:800; font-style:italic; font-size:1.1em; color: var(--uv-roast); }
[data-uv-cake-add].is-added { background: var(--uv-roast); color: var(--uv-paper); }
.uv-cart-badge { display:inline-grid; place-items:center; min-width:1.6em; height:1.6em; padding:0 .4em; border-radius:999px; background: var(--uv-caramel); color: var(--uv-ink); font-family: var(--font-label); font-weight:600; font-size:.75rem; }
.uv-order { display:grid; gap: var(--space-xl); }
.uv-order__section { display:grid; gap: var(--space-m); }
.uv-order__h { font-family: var(--font-display); font-weight:800; font-style:italic; text-transform:uppercase; font-size: var(--text-2xl); line-height:.95; margin:0; }
.uv-order__list { list-style:none; margin:0; padding:0; display:grid; gap: var(--space-xs); }
.uv-order__item { display:grid; grid-template-columns: 1fr auto auto auto; gap: var(--space-s); align-items:center; padding: var(--space-s) 0; border-bottom: 1px solid var(--uv-foam); }
.uv-order__item-main { display:flex; flex-direction:column; }
.uv-order__meta { font-size: var(--text-s); opacity:.7; }
.uv-order__qty { display:inline-flex; align-items:center; border:2px solid var(--uv-foam); border-radius: var(--radius); }
.uv-order__qtybtn { appearance:none; border:0; background:transparent; width:2.2em; height:2.2em; font-size:1.1rem; cursor:pointer; color:inherit; }
.uv-order__qtybtn:hover { background: var(--uv-foam); }
.uv-order__qtyval { min-width:1.6em; text-align:center; font-variant-numeric: tabular-nums; font-weight:600; }
.uv-order__price { font-family: var(--font-display); font-weight:700; font-size: var(--text-l); white-space:nowrap; }
.uv-order__remove { appearance:none; border:0; background:transparent; font-size:1.4rem; line-height:1; cursor:pointer; opacity:.5; color:inherit; }
.uv-order__remove:hover { opacity:1; color: var(--uv-roast); }
.uv-order__total { display:flex; justify-content:space-between; align-items:baseline; font-family: var(--font-display); text-transform:uppercase; font-weight:700; font-size: var(--text-l); }
.uv-order__total strong { font-size: var(--text-2xl); font-style:italic; font-weight:800; }
.uv-order__hint, .uv-order__terms, .uv-order__more { font-size: var(--text-s); opacity:.85; margin:0; }
.uv-dates { display:grid; gap: var(--space-m); }
.uv-dates__title { font-family: var(--font-label); font-weight:600; text-transform:uppercase; letter-spacing: var(--track-label); font-size: var(--text-s); margin:0 0 var(--space-xs); opacity:.8; cursor:pointer; list-style:none; display:flex; align-items:center; gap:.6em; }
.uv-dates__title::-webkit-details-marker { display:none; }
.uv-dates__title::before { content:"+"; font-family: var(--font-display); font-weight:800; font-size:1.3em; line-height:1; color: var(--uv-caramel); }
.uv-dates__month[open] > .uv-dates__title::before { content:"–"; }
.uv-dates__count { opacity:.6; letter-spacing:0; text-transform:none; font-weight:400; }
.uv-dates__month { border-top: 1px solid var(--uv-foam); padding-top: var(--space-xs); }
.uv-dates__grid { display:grid; grid-template-columns: repeat(auto-fill, minmax(4.2rem, 1fr)); gap: var(--space-2xs); }
.uv-date { position:relative; display:grid; place-items:center; gap:.1em; padding:.55em .3em .45em; border:2px solid var(--uv-foam); border-radius: var(--radius); cursor:pointer; background: var(--uv-paper); transition: border-color var(--dur-fast), background-color var(--dur-fast); }
.uv-date input { position:absolute; inset:0; opacity:0; margin:0; cursor:pointer; }
.uv-date__d { font-family: var(--font-label); font-weight:600; text-transform:uppercase; font-size:.7rem; letter-spacing:.06em; opacity:.7; }
.uv-date__n { font-family: var(--font-display); font-weight:800; font-style:italic; font-size: var(--text-xl); line-height:1; }
.uv-date:hover { border-color: var(--uv-caramel); }
.uv-date:has(input:checked) { background: var(--uv-caramel); border-color: var(--uv-caramel); color: var(--uv-ink); }
.uv-date:has(input:focus-visible) { outline: 3px solid var(--uv-teal); outline-offset:2px; }
.uv-order__fields { display:grid; gap: var(--space-s); }
@media (min-width:768px) { .uv-order__fields { grid-template-columns: 1fr 1fr; } .uv-field--full { grid-column: 1 / -1; } }
.uv-field { display:grid; gap:.35em; }
.uv-field > span { font-family: var(--font-label); font-weight:600; text-transform:uppercase; letter-spacing: var(--track-label); font-size: var(--text-s); }
.uv-field input, .uv-field textarea { font: inherit; padding: var(--space-s) var(--space-m); border:2px solid var(--uv-foam); border-radius: var(--radius); background: var(--uv-paper); color: var(--uv-ink); width:100%; }
.uv-field input:focus, .uv-field textarea:focus { outline:none; border-color: var(--uv-caramel); }
.uv-order__actions { display:flex; flex-wrap:wrap; gap: var(--space-s); align-items:center; }
.uv-order__error { color: var(--uv-roast); font-weight:600; }
.uv-order__warn { padding: var(--space-s) var(--space-m); background: var(--uv-foam); }
.uv-order__done, .uv-order__empty, .uv-order__closed { display:grid; gap: var(--space-m); }
.uv-order__done h2, .uv-order__empty h2, .uv-order__closed h2 { margin:0; }
.uv-order__copy pre { white-space:pre-wrap; font: inherit; font-size: var(--text-s); background: var(--uv-paper); padding: var(--space-m); border:1px solid var(--uv-foam); }
.uv-order__copybtn { font: inherit; padding:.5em 1em; border:2px solid var(--uv-ink); background:transparent; cursor:pointer; }
.uv-btn--wa { background:#25D366; color: var(--uv-ink); }

/* --- Instax photos ------------------------------------------------------------- */
.uv-instax { position: relative; display: block; container-type: inline-size; background: var(--uv-paper); padding: 3.5% 3.5% 11.5%; box-shadow: 0 clamp(6px, 3.5cqw, 22px) clamp(16px, 9cqw, 56px) rgba(14,23,31,.28), 0 1px 4px rgba(14,23,31,.12); transform: rotate(var(--r, 0deg)); transition: transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out); color: var(--uv-ink); text-decoration: none; }
.uv-instax img { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; }
.uv-instax--tall img { aspect-ratio: 4 / 5; }
.uv-instax::after { content: attr(data-uv-caption); position: absolute; left: 4.5%; right: 4.5%; bottom: 3.2%; font-family: var(--font-display); font-style: italic; font-weight: 700; font-size: clamp(.6rem, 5.2cqw, 1.1rem); line-height: 1; text-transform: uppercase; letter-spacing: .02em; color: var(--uv-ink); opacity: .8; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.uv-instax:hover, .uv-instax:focus-visible { transform: rotate(0deg) scale(1.04); z-index: 9; box-shadow: 0 clamp(10px, 5cqw, 30px) clamp(24px, 13cqw, 80px) rgba(14,23,31,.35); }
.uv-collage { position: relative; }
.uv-collage .uv-instax { position: absolute; width: var(--w, 40%); }

/* --- Photo strip (gallery slider) -------------------------------------------------- */
.uv-string { position: relative; }
.uv-string__track { display: flex; align-items: flex-start; gap: clamp(1.25rem, 3vw, 3rem); overflow-x: auto; overflow-y: visible; scroll-snap-type: x mandatory; width: 100vw !important; max-width: none !important; position: relative; left: 50%; transform: translateX(-50%); padding: 3rem var(--gutter) 4.5rem; scrollbar-width: none; -webkit-overflow-scrolling: touch; cursor: grab; }
/* first photo lines up with the container's content edge */
.uv-string__track { padding-left: max(var(--gutter), calc((100vw - var(--container-max)) / 2 + var(--gutter))); padding-right: max(var(--gutter), calc((100vw - var(--container-max)) / 2 + var(--gutter))); scroll-padding-inline: max(var(--gutter), calc((100vw - var(--container-max)) / 2 + var(--gutter))); }
.uv-string__track::-webkit-scrollbar { display: none; }
.uv-string__track.is-dragging { cursor: grabbing; scroll-snap-type: none; }
.uv-string__item { flex: 0 0 clamp(240px, 24vw, 460px); scroll-snap-align: start; position: relative; }
.uv-string__item:nth-child(even) { margin-top: 2.5rem; }
.uv-string__item .uv-instax:hover { transform: rotate(0deg) scale(1.03); }

/* --- Phones (Instagram) ------------------------------------------------------------ */
.uv-phones { position: relative; aspect-ratio: 1 / 1; }
.uv-phone { position: absolute; width: 48%; aspect-ratio: 10 / 18; background: var(--uv-ink); border-radius: 13% / 7.2%; padding: 3.5%; box-shadow: 0 26px 70px rgba(14,23,31,.4), inset 0 0 0 2px rgba(254,254,252,.08); transform: rotate(var(--r, 0deg)); transition: transform var(--dur-base) var(--ease-out); z-index: var(--z, 1); }
.uv-phone::before { content: ""; position: absolute; top: 5.2%; left: 50%; width: 30%; height: 2.6%; background: var(--uv-ink); border-radius: 999px; transform: translateX(-50%); z-index: 2; }
.uv-phone::after { content: ""; position: absolute; left: 30%; right: 30%; bottom: 3.2%; height: .6%; background: rgba(254,254,252,.7); border-radius: 999px; z-index: 2; }
.uv-phone img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 10% / 5.6%; }
.uv-phone:hover { transform: rotate(0deg) translateY(-4%); z-index: 9; }

/* --- Alert bar (Provoz teď) ---------------------------------------------------------- */
.uv-alert { position: relative; z-index: 101; padding: .75em var(--gutter); background: var(--uv-caramel); color: var(--uv-ink); text-align: center; font-family: var(--font-label); font-weight: 600; text-transform: uppercase; letter-spacing: var(--track-label); font-size: var(--text-s); line-height: 1.35; }
.uv-alert--closed { background: var(--uv-roast); color: var(--uv-paper); }
.uv-alert a { color: inherit; text-decoration: underline; text-underline-offset: .2em; }

/* --- Cart bar: what is in the order + jump to checkout. Mobile: replaces the action bar; desktop: floating panel. */
.uv-cartbar { position: fixed; inset-inline: 0; bottom: 0; z-index: 95; background: var(--uv-ink); color: var(--uv-paper); box-shadow: 0 -12px 40px rgba(14,23,31,.35); padding-bottom: env(safe-area-inset-bottom); }
.uv-cartbar__row { display: flex; align-items: center; gap: var(--space-s); padding: .6rem var(--gutter); }
.uv-cartbar__toggle { flex: 1 1 auto; display: flex; align-items: center; gap: .7em; min-width: 0; background: transparent; border: 0; color: inherit; font: inherit; text-align: left; cursor: pointer; padding: 0; }
.uv-cartbar__toggle svg { width: 1.6em; height: 1.6em; flex: 0 0 auto; color: var(--uv-caramel); }
.uv-cartbar__sum { display: flex; flex-direction: column; min-width: 0; line-height: 1.15; }
.uv-cartbar__sum b { font-family: var(--font-display); font-weight: 800; font-style: italic; text-transform: uppercase; font-size: var(--text-l); letter-spacing: .01em; }
.uv-cartbar__sum small { font-family: var(--font-label); font-weight: 600; text-transform: uppercase; letter-spacing: var(--track-label); font-size: .7rem; opacity: .7; }
.uv-cartbar__go { flex: 0 0 auto; }
.uv-cartbar__panel { max-height: 45vh; overflow: auto; border-bottom: 1px solid rgba(254,254,252,.12); padding: .4rem var(--gutter); }
.uv-cartbar__list { list-style: none; margin: 0; padding: 0; }
.uv-cartbar__list li { display: grid; grid-template-columns: 1fr auto minmax(4.5em, auto); gap: .8em; align-items: center; padding: .5em 0; border-bottom: 1px solid rgba(254,254,252,.08); font-size: var(--text-s); }
.uv-cartbar__list li:last-child { border-bottom: 0; }
.uv-cartbar__name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.uv-cartbar__qty { display: inline-flex; align-items: center; gap: .3em; line-height: 1; }
.uv-cartbar__qty button { display: inline-grid; place-items: center; width: 1.8em; height: 1.8em; padding: 0; margin: 0; border: 1px solid rgba(254,254,252,.25); background: transparent; color: inherit; border-radius: 2px; cursor: pointer; font: 500 1rem/1 var(--font-text); }
.uv-cartbar__qty b { min-width: 1.4em; text-align: center; font-variant-numeric: tabular-nums; }
.uv-cartbar__price { font-family: var(--font-display); font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
body.has-cart .uv-mobile-bar { display: none; }
body.has-cart.has-mobile-bar { padding-bottom: 4.2rem; }
@media (min-width: 1024px) {
  .uv-cartbar { inset-inline: auto; right: var(--gutter); bottom: var(--space-m); width: min(26rem, calc(100vw - 2 * var(--gutter))); border-radius: var(--radius); box-shadow: 0 16px 50px rgba(14,23,31,.4); }
  .uv-cartbar__row, .uv-cartbar__panel { padding-inline: var(--space-m); }
  body.has-cart.has-mobile-bar { padding-bottom: 0; }
}

/* --- Showreel: vertical video in a phone frame, same family as the Instagram phones ---------- */
.uv-reel { position: relative; width: min(100%, 22rem); margin-inline: auto; background: var(--uv-ink); border-radius: 13% / 7.2%; padding: 3.5%; box-shadow: 0 26px 70px rgba(14,23,31,.4), inset 0 0 0 2px rgba(254,254,252,.08); transform: rotate(var(--r, -2.5deg)); transition: transform var(--dur-base) var(--ease-out); }
.uv-reel:hover { transform: rotate(0deg) scale(1.02); }
.uv-reel::before { content: ""; position: absolute; top: 2.2%; left: 50%; width: 30%; height: 1.6%; background: var(--uv-ink); border-radius: 999px; transform: translateX(-50%); z-index: 3; }
.uv-reel .brxe-video, .uv-reel video { display: block; width: 100%; border-radius: 9% / 5%; }
.uv-reel video { aspect-ratio: 9 / 16; height: auto; object-fit: cover; background: var(--uv-teal-deep); }
.uv-reel__caption { position: absolute; left: 0; right: 0; bottom: -2.4rem; text-align: center; font-family: var(--font-label); font-weight: 600; text-transform: uppercase; letter-spacing: var(--track-label); font-size: .72rem; opacity: .7; }
.uv-reel__sound { position: absolute; right: 8%; bottom: 7%; z-index: 4; display: inline-grid; place-items: center; width: 2.6rem; height: 2.6rem; border: 0; border-radius: 999px; background: rgba(14,23,31,.6); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); color: var(--uv-paper); cursor: pointer; transition: background var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out); }
.uv-reel__sound:hover, .uv-reel__sound:focus-visible { background: var(--uv-caramel); color: var(--uv-ink); transform: scale(1.06); }
.uv-reel__sound svg { width: 1.2rem; height: 1.2rem; fill: currentColor; pointer-events: none; }
@media (max-width: 767px) { .uv-reel { width: min(72%, 18rem); } }

/* --- Navigation links: desktop underline -------------------------------------------------------- */
.uv-mnav__link { color: inherit; text-decoration: none; padding: .4em 0; position: relative; }
.uv-mnav__link::after { content: ""; position: absolute; left: 0; right: 100%; bottom: .1em; height: 2px; background: var(--uv-caramel); transition: right var(--dur-base) var(--ease-out); }
.uv-mnav__link:hover::after, .uv-mnav__link[aria-current="page"]::after, .uv-mnav__link.brx-current::after { right: 0; }

/* --- Mobile menu (nav-nested below 1100px) ------------------------------------------------------ */
/* Panel-only items never show in the desktop nav row. */
@media (min-width: 1101px) { .uv-header__nav .brx-nav-nested-items > li:has(> .uv-mnav-only) { display: none !important; } }

.uv-header__nav.brx-open .brx-nav-nested-items {
  flex-direction: column; flex-wrap: nowrap; align-items: stretch !important; justify-content: flex-start !important;
  gap: 0 !important; padding: 0 var(--gutter) calc(var(--space-l) + env(safe-area-inset-bottom)) !important;
  background-color: var(--uv-teal-deep) !important;
  background-image: radial-gradient(140% 55% at 100% 0%, rgba(203,141,75,.16), transparent 62%), radial-gradient(90% 40% at 0% 100%, rgba(25,54,65,.9), transparent 70%);
  overflow-y: auto; overscroll-behavior: contain;
}
.uv-header__nav.brx-open .brx-nav-nested-items > li { width: 100%; margin: 0; }

/* Logo bar: the logo stays exactly where it is in the header, so opening the menu does not jump. */
.uv-header__nav.brx-open .brx-nav-nested-items > li:has(> .uv-mnav__logo) { display: flex; align-items: center; min-height: var(--header-h); margin-bottom: var(--space-m); }
.uv-mnav__logo { display: block; line-height: 0; padding-block: 6px; }
.uv-mnav__logo img { width: 76px; height: 76px; display: block; filter: drop-shadow(0 2px 6px rgba(14,23,31,.35)); }

/* Close button on the hamburger's spot. */
.uv-header__nav .uv-mnav__close { position: absolute !important; top: calc(var(--header-h) / 2) !important; right: var(--gutter) !important; transform: translateY(-50%); z-index: 2; }

/* Links: one compact column with hairlines, arrow on the right, current page in caramel. */
.uv-header__nav.brx-open .uv-mnav__link {
  display: flex; align-items: center; justify-content: space-between; width: 100%;
  padding: .62em 0 !important; border-bottom: 1px solid rgba(254,254,252,.12);
  font-family: var(--font-display); font-weight: 800; font-style: italic; text-transform: uppercase;
  font-size: var(--text-xl) !important; line-height: 1; letter-spacing: .01em; color: var(--uv-paper) !important;
  transition: color var(--dur-fast) var(--ease-out), padding var(--dur-fast) var(--ease-out);
}
.uv-header__nav.brx-open .brx-nav-nested-items > li:has(> .uv-mnav__link):first-of-type .uv-mnav__link,
.uv-header__nav.brx-open li:has(> .uv-mnav__logo) + li .uv-mnav__link { border-top: 1px solid rgba(254,254,252,.12); }
.uv-header__nav.brx-open .uv-mnav__link::after {
  content: "" !important; position: static !important; flex: 0 0 auto; width: .42em !important; height: .42em !important;
  background: none !important; border-top: 2px solid currentColor; border-right: 2px solid currentColor;
  transform: rotate(45deg); margin-right: .25em; opacity: .35; transition: opacity var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);
}
.uv-header__nav.brx-open .uv-mnav__link:hover, .uv-header__nav.brx-open .uv-mnav__link:focus-visible { padding-left: .3em !important; color: var(--uv-caramel) !important; }
.uv-header__nav.brx-open .uv-mnav__link:hover::after, .uv-header__nav.brx-open .uv-mnav__link:focus-visible::after { opacity: 1; transform: translateX(.15em) rotate(45deg); }
.uv-header__nav.brx-open .uv-mnav__link[aria-current="page"], .uv-header__nav.brx-open .uv-mnav__link.brx-current { color: var(--uv-caramel) !important; }
.uv-header__nav.brx-open .uv-mnav__link[aria-current="page"]::after, .uv-header__nav.brx-open .uv-mnav__link.brx-current::after { opacity: 1; }
/* Rezervace is the button in the foot, not a list row. */
.uv-header__nav.brx-open .brx-nav-nested-items > li:has(> .uv-mnav__res) { display: none; }

/* Foot: reservation button, today's status, phone + Instagram. */
.uv-header__nav.brx-open .brx-nav-nested-items > li:has(> .uv-mnav__foot) { margin-top: auto; padding-top: var(--space-xl); }
.uv-mnav__foot { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-s); width: 100%; }
.uv-mnav__foot .uv-mnav__cta { width: 100%; justify-content: center; }
.uv-mnav__meta { display: flex; flex-wrap: wrap; width: 100%; gap: .5em 1.4em; font-family: var(--font-label); font-weight: 600; text-transform: uppercase; letter-spacing: var(--track-label); font-size: .78rem; }
.uv-mnav__meta a { width: auto !important; flex: 0 0 auto; color: var(--uv-paper); opacity: .75; text-decoration: none; }
.uv-mnav__meta a:hover, .uv-mnav__meta a:focus-visible { opacity: 1; color: var(--uv-caramel); }

/* Items slide in one after another when the panel opens. */
@keyframes uv-mnav-in { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.uv-header__nav.brx-open .brx-nav-nested-items > li:not(:has(> .brx-toggle-div)) { animation: uv-mnav-in .42s var(--ease-out) both; }
.uv-header__nav.brx-open .brx-nav-nested-items > li:nth-child(2) { animation-delay: .03s; }
.uv-header__nav.brx-open .brx-nav-nested-items > li:nth-child(3) { animation-delay: .06s; }
.uv-header__nav.brx-open .brx-nav-nested-items > li:nth-child(4) { animation-delay: .09s; }
.uv-header__nav.brx-open .brx-nav-nested-items > li:nth-child(5) { animation-delay: .12s; }
.uv-header__nav.brx-open .brx-nav-nested-items > li:nth-child(6) { animation-delay: .15s; }
.uv-header__nav.brx-open .brx-nav-nested-items > li:nth-child(7) { animation-delay: .18s; }
.uv-header__nav.brx-open .brx-nav-nested-items > li:nth-child(8) { animation-delay: .21s; }
.uv-header__nav.brx-open .brx-nav-nested-items > li:nth-child(9) { animation-delay: .26s; }
@media (prefers-reduced-motion: reduce) { .uv-header__nav.brx-open .brx-nav-nested-items > li { animation: none !important; } }

/* --- Homepage hero: on phones the title matches the subpage heroes ------------------------------ */
/* Content never starts under the floating header, whatever the viewport height. */
.uv-home-hero__body { padding-top: calc(var(--header-h) + var(--space-l)) !important; }
.uv-home-hero__title { font-size: var(--text-5xl) !important; line-height: var(--lh-tight, 1.04); }
.uv-home-hero__claim { font-size: var(--text-xl) !important; }
@media (min-width: 768px) {
  .uv-home-hero__title { font-size: var(--text-hero) !important; }
  .uv-home-hero__claim { font-size: var(--text-2xl) !important; }
}
@media (min-width: 1024px) { .uv-home-hero__title { font-size: var(--text-display) !important; } }
@media (max-width: 767px) { .uv-home-hero__body { row-gap: var(--space-s) !important; } }

/* --- Cake cards on dark sections ("Další dorty" under a cake detail) ---------------------------- */
.uv-bg-teal article .uv-h3, .uv-bg-teal article .uv-h3 a, .uv-bg-ink article .uv-h3, .uv-bg-ink article .uv-h3 a { color: var(--uv-paper) !important; text-decoration: none; }
.uv-bg-teal article .uv-h3 a:hover, .uv-bg-ink article .uv-h3 a:hover { color: var(--uv-caramel) !important; }
.uv-bg-teal article .uv-text-roast, .uv-bg-ink article .uv-text-roast { color: var(--uv-caramel) !important; }
.uv-bg-teal article .uv-btn--teal, .uv-bg-ink article .uv-btn--teal { background: var(--uv-paper); color: var(--uv-ink); }
.uv-bg-teal article .uv-btn--teal:hover, .uv-bg-ink article .uv-btn--teal:hover { background: var(--uv-paper); color: var(--uv-ink); }

/* --- Order page: WhatsApp note on top ---------------------------------------------------------- */
.uv-order__wa { display: flex; align-items: flex-start; gap: var(--space-s); margin-bottom: var(--space-l); padding: var(--space-m); background: var(--uv-foam); border-left: 4px solid var(--uv-caramel); border-radius: var(--radius); color: var(--uv-ink); }
.uv-order__wa-icon { flex: 0 0 auto; display: inline-grid; place-items: center; width: 2.4rem; height: 2.4rem; border-radius: 999px; background: var(--uv-teal); color: var(--uv-paper); }
.uv-order__wa-icon svg { width: 1.35rem; height: 1.35rem; }
.uv-order__wa p { margin: 0; line-height: 1.45; }
.uv-order__wa p + p { margin-top: .35em; }
.uv-order__wa a { color: inherit; font-weight: 700; white-space: nowrap; text-decoration-color: var(--uv-caramel); text-decoration-thickness: 2px; text-underline-offset: .15em; }

/* --- Photo strip controls (mouse devices) ------------------------------------------------------ */
/* With a mouse the strip is moved by arrows/drag, so CSS snapping would only fight the drag. */
@media (pointer: fine) { .uv-string__track { scroll-snap-type: none; } }
.uv-string__track:focus-visible { outline: 3px solid var(--uv-caramel); outline-offset: -3px; }
.uv-string__track.is-dragging { cursor: grabbing; user-select: none; }
.uv-string__track.is-dragging a { pointer-events: none; }
.uv-string__nav { position: absolute; inset: 0; pointer-events: none; z-index: 5; }
.uv-string__btn {
  pointer-events: auto; position: absolute; top: 50%; transform: translateY(-50%);
  display: inline-grid; place-items: center; width: 3.6rem; height: 3.6rem; padding: 0; border: 0; border-radius: 999px;
  background: var(--uv-ink); color: var(--uv-paper); cursor: pointer;
  box-shadow: 0 10px 30px rgba(14,23,31,.35);
  transition: opacity var(--dur-base) var(--ease-out), transform var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);
}
.uv-string__btn svg { width: 1.5rem; height: 1.5rem; }
.uv-string__btn--prev { left: calc(-1 * var(--space-m)); }
.uv-string__btn--prev svg { transform: rotate(180deg); }
.uv-string__btn--next { right: calc(-1 * var(--space-m)); }
.uv-string__btn:hover, .uv-string__btn:focus-visible { background: var(--uv-caramel); color: var(--uv-ink); transform: translateY(-50%) scale(1.07); }
.uv-string__btn:focus-visible { outline: 3px solid var(--uv-paper); outline-offset: 2px; }
.uv-string__btn:disabled { opacity: 0; pointer-events: none; }
@media (pointer: coarse) { .uv-string__nav { display: none; } }
@media (max-width: 1023px) { .uv-string__btn { width: 3rem; height: 3rem; } .uv-string__btn--prev { left: 0; } .uv-string__btn--next { right: 0; } }

/* --- Admin-managed galleries (U VÁS → Galerie) ------------------------------------------------- */
.uv-galleries { display: grid; row-gap: var(--space-3xl); width: 100%; }
.uv-gal { display: grid; row-gap: var(--space-l); }
.uv-gal__head { display: grid; row-gap: var(--space-xs); justify-items: start; position: relative; z-index: 1; }
.uv-gal__head .uv-h2 { margin: 0; }
/* Phones: two columns, every second photo dropped a little; the grid reserves that space, so
   nothing below can slide under the photos. Laptop/tablet: three columns, the middle one dropped. */
.uv-gal__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-l) var(--space-m); padding-bottom: var(--space-l); align-items: start; }
.uv-gal__item { width: 100%; --r-scale: .6; transform: rotate(calc(var(--r, 0deg) * var(--r-scale))); }
.uv-gal__item:nth-child(even) { margin-top: var(--space-l); }
@media (min-width: 768px) {
  .uv-gal__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-xl) var(--space-l); padding-bottom: var(--space-xl); }
  .uv-gal__item { --r-scale: 1; }
  .uv-gal__item:nth-child(even) { margin-top: 0; }
  .uv-gal__item:nth-child(3n+2) { margin-top: var(--space-xl); }
}
/* Hover lift only where there is a hover; on touch it only caused overlapping frames. */
@media (hover: hover) { .uv-gal__item:hover, .uv-gal__item:focus-visible { transform: rotate(0deg) scale(1.04); z-index: 2; } }
@media (hover: none) { .uv-gal__item:hover { transform: rotate(calc(var(--r, 0deg) * var(--r-scale))); } }
.uv-gal__empty { padding: var(--space-m); background: var(--uv-foam); border-left: 4px solid var(--uv-caramel); }

/* --- Lightbox ----------------------------------------------------------------------------------- */
html.uv-lb-open, html.uv-lb-open body { overflow: hidden; }
.uv-lb { position: fixed; inset: 0; z-index: 1000; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: var(--space-s); padding: var(--space-xl) var(--space-m); background: rgba(14,23,31,.94); opacity: 0; visibility: hidden; transition: opacity var(--dur-base) var(--ease-out), visibility 0s linear var(--dur-base); }
.uv-lb.is-open { opacity: 1; visibility: visible; transition: opacity var(--dur-base) var(--ease-out); }
.uv-lb__fig { margin: 0; display: grid; justify-items: center; align-content: center; gap: var(--space-s); min-width: 0; height: 100%; }
.uv-lb__img { max-width: 100%; max-height: calc(100svh - 9rem); width: auto; height: auto; object-fit: contain; background: var(--uv-paper); padding: .6rem .6rem 2.4rem; box-shadow: 0 30px 80px rgba(0,0,0,.5); }
.uv-lb__cap { display: flex; gap: 1em; align-items: baseline; color: var(--uv-paper); font-family: var(--font-label); font-weight: 600; text-transform: uppercase; letter-spacing: var(--track-label); font-size: .8rem; }
.uv-lb__count { opacity: .6; }
.uv-lb__close { position: absolute; top: var(--space-s); right: var(--space-s); width: 3rem; height: 3rem; border: 0; border-radius: 999px; background: transparent; color: var(--uv-paper); font-size: 2.2rem; line-height: 1; cursor: pointer; }
.uv-lb__nav { width: 3.2rem; height: 3.2rem; display: inline-grid; place-items: center; border: 0; border-radius: 999px; background: rgba(254,254,252,.1); color: var(--uv-paper); cursor: pointer; }
.uv-lb__nav svg { width: 1.4rem; height: 1.4rem; }
.uv-lb__nav--prev svg { transform: rotate(180deg); }
.uv-lb__nav:hover, .uv-lb__nav:focus-visible, .uv-lb__close:hover, .uv-lb__close:focus-visible { background: var(--uv-caramel); color: var(--uv-ink); }
.uv-lb.is-single .uv-lb__nav { visibility: hidden; }
@media (max-width: 767px) {
  .uv-lb { grid-template-columns: 1fr; padding: var(--space-2xl) var(--space-s) var(--space-l); }
  .uv-lb__nav { position: absolute; bottom: var(--space-m); }
  .uv-lb__nav--prev { left: var(--space-m); }
  .uv-lb__nav--next { right: var(--space-m); }
  .uv-lb__img { max-height: calc(100svh - 11rem); padding: .4rem .4rem 1.8rem; }
}

/* --- Footer credit line ---------------------------------------------------------------------- */
.uv-footer-credit { display: block; font-size: var(--text-s); line-height: 1.5; opacity: .55; }
#brx-footer .uv-footer-credit a { color: inherit; text-decoration: underline; text-decoration-color: rgba(254,254,252,.35); text-underline-offset: .18em; }
#brx-footer .uv-footer-credit a:hover, #brx-footer .uv-footer-credit a:focus-visible { color: var(--uv-caramel); text-decoration-color: currentColor; }

/* --- Galerie: Instagram call after the galleries ----------------------------------------------- */
.uv-gal-ig { display: grid; justify-items: start; gap: var(--space-s); padding: var(--space-xl) var(--space-l); background: var(--uv-teal); color: var(--uv-paper); border-radius: var(--radius); }
.uv-gal-ig__text { margin: 0; max-width: 24ch; font-family: var(--font-display); font-weight: 800; font-style: italic; text-transform: uppercase; font-size: var(--text-2xl); line-height: 1.05; }
.uv-gal-ig .uv-btn { margin-top: var(--space-xs); }
.uv-gal-ig__btn { display: inline-flex !important; align-items: center; gap: .5em; }
.uv-gal-ig__btn svg { width: 1.15em; height: 1.15em; }
@media (min-width: 768px) {
  .uv-gal-ig { grid-template-columns: 1fr auto; align-items: end; column-gap: var(--space-xl); padding: var(--space-2xl); }
  .uv-gal-ig .uv-eyebrow { grid-column: 1 / -1; }
  .uv-gal-ig .uv-btn { margin-top: 0; }
}

/* Strip rendered by [uvas_strip]: the Bricks shortcode wrapper is just a pass-through box. */
.uv-string > .brxe-shortcode { width: 100%; }

/* --- Public e-mail (Kontakt, footer) ---------------------------------------------------------- */
.uv-contact-email { font-family: var(--font-text); font-weight: 600; font-size: var(--text-l); line-height: 1.3; color: inherit; text-decoration: underline; text-decoration-color: var(--uv-caramel); text-decoration-thickness: 2px; text-underline-offset: .2em; overflow-wrap: anywhere; }
.uv-contact-email:hover, .uv-contact-email:focus-visible { color: var(--uv-roast); }
#brx-footer .uv-contact-email { color: var(--uv-paper); font-size: var(--text-m); }
#brx-footer .uv-contact-email:hover, #brx-footer .uv-contact-email:focus-visible { color: var(--uv-caramel); }
.uv-contact-email__note { font-size: var(--text-s); line-height: 1.45; opacity: .75; max-width: 38ch; }
