/* =====================================================================
   ByKate – styles
   ===================================================================== */
:root{
  --lav-50:#faf6fd;
  --lav-100:#f3e9fb;
  --lav-200:#e7d3f4;
  --lav-300:#d9bdec;
  --lav-400:#c8a2e0;
  --lav-500:#b07fd1;
  --lav-600:#9457bd;
  --lav-700:#6f3d92;
  --ink:#2b2330;
  --ink-soft:#6a5d72;
  --pink:#f6cad9;
  --cream:#fffdfb;
  --gold:#caa24a;
  --radius:28px;
  --shadow-sm:0 8px 24px rgba(112,61,146,.10);
  --shadow:0 20px 55px rgba(112,61,146,.16);
  --shadow-lg:0 34px 90px rgba(112,61,146,.24);
  --maxw:1180px;
  --ease:cubic-bezier(.22,.61,.36,1);
}
*{box-sizing:border-box}
/* overflow-x:clip je na iOS spoľahlivejšie než hidden (hidden robí zo stránky
   vodorovný „scroll kontajner" a po obnovení vie ostať posunutá doprava) */
/* POZOR: scroll-behavior:smooth tu ZÁMERNE NIE JE. Kým sa stránka načítava, každý posun
   by sa animoval a na mobile to vyzeralo, akoby refresh „preletel" celým webom.
   Plynulé rolovanie zapne app.js (trieda .smooth) až keď je stránka usadená. */
html{overflow-x:hidden;overflow-x:clip;
  /* Prehliadač si pri načítavaní sám „doťahuje" pozíciu, aby obsah nepreskakoval
     (scroll anchoring). Práve preto refresh končil kúsok pod vrchom a cestou preblesklo
     iné miesto stránky. Vypnuté – pozíciu si riadime sami. */
  overflow-anchor:none}
body{overflow-anchor:none}
html.smooth{scroll-behavior:smooth}
body{overflow-x:hidden;overflow-x:clip;width:100%;max-width:100%}
/* skok na kotvu (z menu ☰) nech nezasunie hornú lištu – sekcia začne pod ňou */
section[id],div[id],main[id]{scroll-margin-top:96px}
/* pole termínu: vypĺňa sa LEN kliknutím do kalendára (readonly = na mobile nevyskočí klávesnica) */
input.dateonly{cursor:pointer;background:#fff;color:inherit;-webkit-user-select:none;user-select:none}
input.dateonly::placeholder{color:var(--ink-soft);opacity:.75}
@media(max-width:768px){section[id],div[id],main[id]{scroll-margin-top:88px}}
body{
  margin:0;font-family:"Manrope",system-ui,sans-serif;color:var(--ink);
  background:var(--cream);line-height:1.6;
  /* len zvislé posúvanie - žiadne ťahanie do strán na mobile */
  touch-action:pan-y;overscroll-behavior-x:none;max-width:100%;
}
h1,h2,h3{font-family:"Fraunces",Georgia,serif;font-weight:600;line-height:1.08;margin:0}
/* Nič sa neoznačuje (na mobile pôsobilo krivé zvýraznenie pri zatváraní galérie).
   Polia, kde človek píše, ostávajú normálne označiteľné. */
body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}
input,textarea,select,[contenteditable="true"]{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}

img{max-width:100%;display:block;-webkit-user-drag:none;-khtml-user-drag:none;user-select:none;-webkit-user-select:none;
  -webkit-touch-callout:none;pointer-events:none}
a{-webkit-user-drag:none;-webkit-touch-callout:none}
a{color:inherit;text-decoration:none}
em{font-style:italic;color:var(--lav-600)}
section{position:relative}

/* ---------- buttons ---------- */
.btn{
  --b:var(--lav-600);
  position:relative;overflow:hidden;isolation:isolate;
  display:inline-flex;align-items:center;justify-content:center;gap:.5em;
  padding:1em 1.9em;border-radius:999px;font-weight:700;font-size:.98rem;
  cursor:pointer;border:0;transition:transform .22s var(--ease),box-shadow .22s,filter .22s,background .22s,color .22s;
  letter-spacing:.2px;
}
/* ===== glossy 3D buttons (ladene k 3D logu) – platí pre VŠETKY .btn ===== */
.btn::before{ /* lesklý odlesk navrchu */
  content:"";position:absolute;left:6%;right:6%;top:7%;height:42%;border-radius:999px;
  background:linear-gradient(180deg,rgba(255,255,255,.85),rgba(255,255,255,0));
  pointer-events:none;z-index:1;
}
.btn--solid{
  color:#fff;
  background:linear-gradient(180deg,#c79be6 0%,#a86fd0 42%,#8f4fc0 100%);
  box-shadow:
    inset 0 2px 1px rgba(255,255,255,.55),
    inset 0 -7px 12px rgba(86,40,124,.55),
    0 10px 18px -6px rgba(120,60,170,.55),
    0 3px 6px rgba(90,45,130,.35);
  text-shadow:0 1px 1px rgba(70,30,110,.4);
}
.btn--ghost{
  color:var(--lav-700);
  background:linear-gradient(180deg,#ffffff 0%,#f4ecfb 55%,#e7d8f5 100%);
  box-shadow:
    inset 0 2px 2px rgba(255,255,255,.9),
    inset 0 -7px 12px rgba(150,110,190,.28),
    0 10px 18px -6px rgba(120,60,170,.30),
    0 3px 6px rgba(90,45,130,.18);
}
.btn:hover{transform:translateY(-3px);filter:saturate(1.06) brightness(1.03)}
.btn:active{transform:translateY(0);filter:brightness(.97)}
.btn--full{width:100%}

.kicker{display:inline-block;font-family:"Dancing Script",cursive;font-size:1.5rem;color:var(--lav-600);font-weight:700}
.section-head{max-width:760px;margin:0 auto 2.6rem;text-align:center;padding:0 1rem}
.section-head h2{font-size:clamp(1.9rem,4vw,3rem);margin:.2rem 0 .6rem}
.section-sub{color:var(--ink-soft);font-size:1.05rem}

/* ---------- NAV ---------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:50;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;
  padding:.7rem clamp(1rem,4vw,2.4rem);transition:.35s var(--ease);
}
.nav.scrolled{background:rgba(255,253,251,.82);backdrop-filter:blur(14px);box-shadow:0 6px 24px rgba(112,61,146,.08)}
/* sezónny oznam (banner navrchu) */
.announce{position:fixed;top:0;left:0;right:0;z-index:60;background:linear-gradient(135deg,var(--lav-600),var(--lav-700));
  color:#fff;text-align:center;font-weight:700;font-size:.9rem;line-height:1.35;padding:9px 44px 9px 16px}
.announce__x{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:transparent;border:0;color:#fff;
  font-size:17px;cursor:pointer;opacity:.85;padding:6px;line-height:1}
.announce__x:hover{opacity:1}
body.has-announce .nav{top:var(--annH,40px)}
/* Keď je oznam zapnutý, posunie sa DOLE AJ OBSAH – inak by menu klesalo
   na hero a odkazy by sa natlačili na nadpis. Takto ostanú medzery rovnaké. */
body.has-announce{padding-top:var(--annH,40px)}
/* aby kotvy (#ponuka, #torty…) po kliknutí nezastali pod lištou */
body.has-announce section[id]{scroll-margin-top:calc(96px + var(--annH,40px))}
@media(max-width:768px){ body.has-announce section[id]{scroll-margin-top:calc(88px + var(--annH,40px))} }
@media(max-width:760px){ body.has-announce .nav__links{top:var(--annH,40px);height:calc(100vh - var(--annH,40px))} }
.nav__brand{justify-self:start}
.nav__logo{height:56px;width:auto;transition:.35s}
.nav.scrolled .nav__logo{height:46px}
.nav__links{display:flex;gap:1.5rem;justify-self:center}
.nav__links a{font-weight:600;font-size:.97rem;color:var(--ink);position:relative;padding:.3rem 0}
.nav__links a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--lav-600);transition:.3s var(--ease)}
.nav__links a:hover::after{width:100%}
.nav__right{display:flex;align-items:center;gap:.8rem;justify-self:end}
.cartBtn{position:relative;background:#fff;border:2px solid var(--lav-200);color:var(--lav-700);width:46px;height:46px;border-radius:50%;display:grid;place-items:center;cursor:pointer;transition:.25s;box-shadow:var(--shadow-sm)}
.cartBtn:hover{transform:translateY(-2px);border-color:var(--lav-500)}
.cartBtn__count{position:absolute;top:-5px;right:-5px;background:var(--lav-600);color:#fff;font-size:.72rem;font-weight:800;min-width:20px;height:20px;border-radius:999px;display:grid;place-items:center;padding:0 5px;transform:scale(0);transition:.3s var(--ease)}
.cartBtn__count.show{transform:scale(1)}
.cartBtn.bump{animation:bump .4s var(--ease)}
@keyframes bump{0%,100%{transform:scale(1)}40%{transform:scale(1.18)}}
.nav__burger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px}
.nav__close{display:none;position:absolute;top:1rem;right:1.2rem;background:none;border:0;font-size:1.7rem;line-height:1;color:var(--lav-700);cursor:pointer;padding:.2rem .4rem}
.nav__backdrop{position:fixed;inset:0;z-index:-1;background:rgba(45,22,66,.42);opacity:0;visibility:hidden;transition:opacity .35s var(--ease),visibility .35s}
.nav__burger span{width:26px;height:2.5px;background:var(--ink);border-radius:2px;transition:.3s}
/* language switcher */
.langsw{position:relative;display:flex;gap:0;background:var(--lav-50);border:1px solid var(--lav-200);border-radius:999px;padding:3px}
/* kĺzavá farebná bublina za aktívnym jazykom */
.langsw::before{content:"";position:absolute;top:3px;bottom:3px;left:3px;width:calc(50% - 3px);border-radius:999px;background:var(--lav-600);transition:transform .38s cubic-bezier(.34,1.25,.4,1);z-index:0}
.langsw:has(.langsw__btn[data-lang="en"].is-active)::before{transform:translateX(100%)}
.langsw__btn{flex:1;position:relative;z-index:1;border:0;background:none;cursor:pointer;font:inherit;font-weight:700;font-size:.78rem;color:var(--lav-700);padding:.32em .7em;border-radius:999px;transition:color .25s;line-height:1;text-align:center}
.langsw__btn:hover{color:var(--lav-600)}
.langsw__btn.is-active,.langsw__btn.is-active:hover{color:#fff}
/* FAQ */

/* ---------- HERO (modern soft) ---------- */
.hero{min-height:100svh;display:grid;place-items:center;text-align:center;position:relative;overflow:hidden;padding:7rem 1rem 6rem;
  background:linear-gradient(180deg,#fdfaff 0%,var(--lav-50) 45%,#fbeef7 100%)}
/* mesh-gradient glow */
.hero__mesh{position:absolute;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(40% 40% at 18% 22%,rgba(200,162,224,.55),transparent 70%),
    radial-gradient(45% 45% at 82% 28%,rgba(246,202,217,.55),transparent 70%),
    radial-gradient(50% 50% at 50% 92%,rgba(176,127,209,.35),transparent 70%);
  filter:blur(10px)}
/* floating round cake bubbles */
.hero__floats{position:absolute;inset:0;z-index:1;pointer-events:none}
/* ručne kreslené čiarové kresby pečiva v úvode (v štýle čiernej čiary loga) */
.doodle{position:absolute;opacity:.64;animation:floaty 13s ease-in-out infinite;will-change:transform}
.doodle img{width:100%;height:auto;display:block}
.doodle--1{width:118px;top:13%;left:11%}
.doodle--2{width:96px;top:48%;left:12%;animation-delay:-2.5s}
.doodle--3{width:58px;top:16%;right:13%;animation-delay:-1.5s}
.doodle--4{width:132px;top:49%;right:10%;animation-delay:-4s}
.doodle--1 img{transform:rotate(-6deg)} .doodle--2 img{transform:rotate(8deg)}
.doodle--3 img{transform:rotate(5deg)} .doodle--4 img{transform:rotate(-8deg)}
@keyframes floaty{0%,100%{transform:translateY(0) translateX(0)}50%{transform:translateY(-18px) translateX(6px)}}
.hero__inner{max-width:880px;position:relative;z-index:2;transform:translateY(-2.6rem)}
.hero__eyebrow{display:inline-block;background:rgba(255,255,255,.8);backdrop-filter:blur(6px);color:var(--lav-700);font-weight:700;font-size:.82rem;letter-spacing:.6px;text-transform:uppercase;padding:.55em 1.2em;border-radius:999px;box-shadow:var(--shadow-sm)}
.hero__logoWrap{position:relative;display:block;margin:1.4rem auto 1.2rem;width:min(420px,78vw);transform-origin:50% 100%;animation:logoFloat 6s ease-in-out infinite;will-change:transform}  /* bez nábehu – logo len pokojne pláva */
/* ŽELÉ DOPAD DO HĹBKY (bez pravého 3D – aby to bolo ROVNAKÉ na Chrome aj
   Safari): logo priletí VEĽKÉ (zblízka) a zmenší sa na normál = vzďaľuje sa
   od nás do stránky; dosadne a roztrasie sa ako želé – každý kmit menší
   (tlmené), kým sa ustáli. Len obyčajné 2D transformácie (translateY+scaleX+
   scaleY+opacity), ktoré všetky prehliadače interpretujú IDENTICKY. */
.skip-link{position:fixed;top:.6rem;left:.6rem;z-index:200;transform:translateY(-160%);background:var(--lav-600);color:#fff;padding:.7rem 1.1rem;border-radius:12px;font-weight:700;text-decoration:none;box-shadow:0 8px 24px rgba(112,61,146,.3);transition:transform .2s ease}
.skip-link:focus{transform:translateY(0);outline:3px solid #fff;outline-offset:2px}
.hero:focus{outline:none}
/* soft lavender backing so the gaps inside the logo ring blend with the background (never white) */
.hero__logoGlow{display:block;position:absolute;inset:7% 9%;z-index:0;border-radius:50%;pointer-events:none;
  background:radial-gradient(58% 56% at 50% 49%, var(--lav-200) 0%, var(--lav-200) 40%, var(--lav-100) 62%, rgba(243,233,251,0) 80%)}
/* big logo blends into the hero as a graphic title (no white bubble).
   POZN.: tieň je ZAPEČENÝ v obrázku logo-hero.webp – žiadny CSS filter (drop-shadow/blur
   na priehľadnom PNG vykresľoval na Safari/iOS pravouhlý „štvorec" okolo loga). */
.hero__logo{position:relative;z-index:1;width:100%;height:auto;aspect-ratio:900/842;display:block;touch-action:pan-y;user-select:none;-webkit-user-drag:none;
  pointer-events:none;-webkit-touch-callout:none}  /* logo sa nedá chytiť ani ťahať – iba sa samo vznáša */
/* Logo je vždy rovno viditeľné – žiadny nábeh ani poskočenie pri otvorení.
   (Predtým ho „rozsvecovala" animácia logoIn; bez nej by čakalo na reveal efekt.) */
.hero__logoWrap.reveal{opacity:1;transform:none}

@keyframes logoFloat{0%,100%{transform:translateY(0) rotate(-.6deg)}50%{transform:translateY(-12px) rotate(.6deg)}}
/* 3D „wow" nábeh hero tlačidiel – v štýle skákavého loga (squash/stretch + perspektíva) */
@keyframes btnPop{
  0%{opacity:0;transform:perspective(700px) translateY(34px) rotateX(-42deg) scale(.9)}
  55%{opacity:1;transform:perspective(700px) translateY(-6px) rotateX(10deg) scale(1.04)}
  74%{transform:perspective(700px) translateY(0) rotateX(-4deg) scale(.99)}
  100%{opacity:1;transform:perspective(700px) translateY(0) rotateX(0) scale(1)}
}
.hero__cta .btn{transform-origin:center bottom;animation:btnPop .8s cubic-bezier(.2,.8,.25,1.35) both}
.hero__cta .btn:first-child{animation-delay:.85s}
.hero__cta .btn:last-child{animation-delay:1s}
/* výraznejší 3D zdvih pri hoveri/stlačení (wow ako logo) */
.btn--3d:hover{transform:translateY(-3px) scale(1.035)}
.btn--3d:active{transform:translateY(1px) scale(.99)}
.hero__sub{font-size:clamp(1.05rem,2.2vw,1.35rem);max-width:600px;margin:0 auto 1.3rem;color:#5a4f63}
.hero__sub em{font-style:normal}
.hero__cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}
.hero__chips{display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap;margin-top:2rem}
.hero__chips span{background:rgba(255,255,255,.85);backdrop-filter:blur(6px);padding:.55em 1.1em;border-radius:999px;font-weight:600;font-size:.9rem;box-shadow:var(--shadow-sm)}
.hero__wave{position:absolute;left:0;right:0;bottom:-1px;z-index:2;line-height:0}
.hero__wave svg{width:100%;height:90px;display:block}
.hero__wave path{fill:var(--cream)}

/* ---------- MARQUEE ---------- */
.marquee{background:linear-gradient(90deg,var(--lav-600),var(--lav-500));color:#fff;overflow:hidden;padding:.85rem 0;transform:rotate(-1.4deg) scale(1.04);margin:2.5rem 0}
.marquee__track{display:inline-flex;gap:1.6rem;white-space:nowrap;animation:marq 26s linear infinite;font-family:"Fraunces",serif;font-size:1.3rem;font-style:italic;will-change:transform;backface-visibility:hidden}
.marquee__track span{opacity:.95}
@keyframes marq{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}

/* ---------- ABOUT ---------- */
.about{max-width:var(--maxw);margin:0 auto;padding:4rem clamp(1rem,4vw,2rem);display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.about__photo{position:relative}
.about__photo img{border-radius:var(--radius);box-shadow:var(--shadow-lg);aspect-ratio:4/5;object-fit:cover;width:100%}
.about__photo::before{content:"";position:absolute;inset:-18px -18px auto auto;width:60%;height:60%;background:var(--lav-200);border-radius:var(--radius);z-index:-1;transform:rotate(4deg)}
.about__badge{position:absolute;bottom:-26px;left:-26px;background:#fff;border-radius:50%;width:128px;height:128px;display:grid;place-content:center;text-align:center;box-shadow:var(--shadow);border:3px solid var(--lav-200);transform:rotate(-8deg)}
.about__badgeYear{font-family:"Dancing Script",cursive;font-size:1.5rem;color:var(--lav-600);font-weight:700;line-height:1}
.about__badgeText{font-size:.58rem;text-transform:uppercase;letter-spacing:.3px;color:var(--ink-soft);font-weight:700}
.about__text h2{font-size:clamp(1.9rem,4vw,2.9rem);margin:.3rem 0 1rem}
.about__text p{color:var(--ink-soft);margin:0 0 1rem}
.about__points{list-style:none;padding:0;margin:1.4rem 0 0;display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
.about__points li{background:var(--lav-50);border:1px solid var(--lav-100);border-radius:14px;padding:.7em 1em;font-weight:600;font-size:.95rem}
.about__points b{color:var(--lav-600)}

/* ---------- FREE-FROM band ---------- */
.freefrom{background:linear-gradient(135deg,var(--lav-500),var(--lav-700));color:#fff;padding:4.5rem clamp(1rem,4vw,2rem);position:relative;overflow:hidden}
.freefrom::before,.freefrom::after{content:"";position:absolute;border-radius:50%;background:rgba(255,255,255,.08)}
.freefrom::before{width:340px;height:340px;top:-120px;right:-80px}
.freefrom::after{width:240px;height:240px;bottom:-100px;left:-60px}
.freefrom__inner{max-width:var(--maxw);margin:0 auto;position:relative}
.freefrom .section-head h2{color:#fff}
.freefrom__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;margin-top:.5rem}
.ff-card{position:relative;background:linear-gradient(160deg,rgba(255,255,255,.22),rgba(255,255,255,.1));backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.28);border-radius:var(--radius);padding:1.7rem 1.5rem;box-shadow:0 10px 30px rgba(60,20,90,.22),inset 0 1px 0 rgba(255,255,255,.25);transition:transform .35s var(--ease),box-shadow .35s,background .35s;overflow:hidden}
.ff-card::before{content:"";position:absolute;inset:0 0 auto 0;height:40%;background:linear-gradient(rgba(255,255,255,.16),transparent);pointer-events:none}
.ff-card:hover{transform:translateY(-8px);background:linear-gradient(160deg,rgba(255,255,255,.32),rgba(255,255,255,.16));box-shadow:0 18px 42px rgba(60,20,90,.32),inset 0 1px 0 rgba(255,255,255,.35)}
.ff-card__ic{font-size:1.9rem;line-height:1;display:grid;place-items:center;width:58px;height:58px;margin-bottom:.9rem;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,#f3e9fb);box-shadow:0 6px 16px rgba(40,10,70,.28),inset 0 0 0 1px rgba(255,255,255,.6);transition:transform .35s var(--ease)}
.ff-card:hover .ff-card__ic{transform:scale(1.08) rotate(-4deg)}
.ff-card h3{font-size:1.18rem;margin-bottom:.45rem;color:#fff;text-shadow:0 1px 8px rgba(40,10,70,.25)}
.ff-card p{font-size:.92rem;color:rgba(255,255,255,.94);margin:0;line-height:1.55}
.freefrom__note{text-align:center;margin:2rem auto 0;background:rgba(255,255,255,.14);border-radius:22px;padding:.7em 1.4em;display:block;width:fit-content;max-width:100%;font-size:.86rem;line-height:1.9}

/* ---------- MENU ---------- */
.menu{max-width:var(--maxw);margin:0 auto;padding:4rem clamp(1rem,4vw,2rem)}
.menu__controls{display:flex;gap:1rem;justify-content:space-between;flex-wrap:wrap;margin-bottom:2rem;align-items:center}
.menu__search{flex:1;min-width:220px;max-width:340px;padding:.85em 1.2em;border-radius:999px;border:2px solid var(--lav-200);font:inherit;background:#fff;transition:.25s}
.menu__search:focus{outline:none;border-color:var(--lav-500);box-shadow:0 0 0 4px var(--lav-100)}
.menu__filters{display:flex;gap:.5rem;flex-wrap:wrap}
.chip{background:#fff;border:2px solid var(--lav-200);color:var(--ink);padding:.55em 1.1em;border-radius:999px;font-weight:600;font-size:.9rem;cursor:pointer;transition:.25s}
.chip:hover{border-color:var(--lav-400)}
.chip.is-active{background:var(--lav-600);border-color:var(--lav-600);color:#fff}
.menu__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(186px,1fr));gap:.9rem}
.cake{
  background:#fff;border:1px solid var(--lav-100);border-radius:18px;padding:.85rem;
  display:flex;flex-direction:column;box-shadow:var(--shadow-sm);transition:transform .3s var(--ease),box-shadow .3s;
  position:relative;overflow:hidden;
}
.cake::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 80% at 100% 0,var(--lav-100),transparent 55%);opacity:0;transition:.35s;pointer-events:none;z-index:0}
.cake:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.cake:hover::after{opacity:1}
.cake>*{position:relative;z-index:1}
.field__hint{display:block;margin-top:.35rem;font-size:.82rem;line-height:1.4;color:var(--lav-600);font-style:italic;opacity:.92}
.cake__photo{
  position:relative;margin:.1rem 0 .5rem;height:78px;width:100%;
  display:grid;place-items:center;
  background:radial-gradient(56% 60% at 50% 70%,var(--lav-50),transparent 72%);
}
.cake__photo img{max-height:calc(78px * var(--imgs,1));max-width:calc(72% * var(--imgs,1));width:auto;object-fit:contain;
  filter:drop-shadow(0 8px 10px rgba(112,61,146,.2));transition:transform .4s var(--ease)}
.cake:hover .cake__photo img{transform:translateY(-3px) scale(1.05)}
.cake.no-photo .cake__photo{height:5px;width:60%;margin:.2rem auto .8rem;background:var(--lav-300);border-radius:999px}
/* karty s „min. 10 ks" – fotka nižšie, badge má hore voľný pruh (neprekrýva koláč) */
.cake.no-photo .cake__photo img{display:none}
/* široká spoločná fotka (napr. Pohárik s ovocím – 3 poháriky): vyplní ŠÍRKU karty,
   ale karta ostáva ROVNAKO vysoká ako ostatné (výška fotky = štandardná, nerozhádže mriežku).
   width:100% = fotka na plnú šírku; max-height dedí z bežného pravidla (78px / 58px mobil). */
.cake__photo.cake__photo--wide img{width:100%;max-width:100%}
.cake__weight{display:inline-flex;align-items:center;gap:.28em;align-self:flex-start;margin-top:.3rem;
  padding:.16em .62em;background:var(--lav-100);color:var(--lav-700);border-radius:999px;
  font-size:.72rem;font-weight:800;letter-spacing:.2px}
.cake__weight::before{content:"⚖";font-size:.8em;opacity:.75}
/* dia (xylitol) voľba – pilulka v štýle webu (ako .chip), vyplní sa keď zaškrtnutá */
.cake__dia{display:inline-flex;align-items:center;gap:.4rem;align-self:flex-start;margin:.15rem 0 .4rem;
  padding:.4em .9em;border:2px solid #bfe3bf;border-radius:999px;background:#fff;color:#2e7d32;
  font-weight:700;font-size:.76rem;cursor:pointer;user-select:none;transition:.22s var(--ease)}
.cake__dia:hover{border-color:#8fce8f;box-shadow:0 3px 10px rgba(46,158,91,.15)}
.cake__dia input{position:absolute;opacity:0;width:0;height:0}
.vrow__alg{display:inline-flex;gap:.2rem;margin-left:.35rem}
.vrow__alg b{display:inline-grid;place-items:center;min-width:1.35em;height:1.35em;padding:0 .3em;border-radius:999px;background:var(--lav-100);color:var(--lav-700);font-size:.66rem;font-weight:800}
.cake__dia:has(input:checked){background:linear-gradient(135deg,#2e9e5b,#248a4d);border-color:#248a4d;color:#fff;box-shadow:0 4px 12px rgba(46,158,91,.28)}
/* informačná verzia pri koláčoch s príchuťami – klik otvorí výber príchutí (dia sa volí tam) */
.cake__dia--hint{font-family:inherit}
.cake__dia--hint::after{content:" ›";opacity:.7}
@media(max-width:560px){.cake__dia{font-size:.7rem;padding:.35em .75em}}
.cake__top{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem}
.cake__name{font-family:"Fraunces",serif;font-weight:600;font-size:.97rem;line-height:1.15}
/* na úzkych mobilných kartách badge zmenšiť a dotiahnuť do rohu, nech neprekrýva centrovanú fotku */
.cake__note{color:var(--lav-600);font-size:.74rem;font-weight:700;margin-top:.1rem}
/* kompaktný náznak príchutí (rozbalí výber po kliknutí) */
.cake__varhint{display:inline-flex;align-items:center;gap:.3em;margin:.4rem 0 .1rem;font:inherit;font-size:.72rem;font-weight:700;color:var(--lav-700);background:var(--lav-50);border:1px solid var(--lav-200);border-radius:999px;padding:.28em .7em;cursor:pointer;transition:.18s}
.cake__varhint:hover{background:var(--lav-100);border-color:var(--lav-300)}
.cake__alg{display:flex;flex-wrap:wrap;gap:.26rem;margin-top:auto;padding-top:.5rem}
.cake__alg b{font-size:.62rem;width:19px;height:19px;border-radius:50%;display:grid;place-items:center;background:var(--lav-100);color:var(--lav-700);font-weight:800;cursor:help}
/* Bublina s významom alergénu – ukáže sa HNEĎ po prejdení myšou.
   Systémová bublina z title-u vyskočí až po ~1 s a na 19px terčíku ľahko utečie,
   preto máme vlastnú. Karta má overflow:hidden, tak je bublina ukotvená
   na celý riadok alergénov a nikdy z karty nevytŕča. */
.cake__alg{position:relative}
.cake__alg b::after{
  content:attr(data-alg);
  position:absolute; left:0; right:0; bottom:calc(100% + 7px);
  margin:0 auto; width:max-content; max-width:100%;
  background:var(--lav-700); color:#fff;
  font-size:.66rem; font-weight:600; line-height:1.35; letter-spacing:.01em;
  padding:.3rem .55rem; border-radius:8px; text-align:center;
  box-shadow:0 6px 18px rgba(112,61,146,.22);
  opacity:0; visibility:hidden; transform:translateY(3px);
  transition:opacity .13s ease, transform .13s ease, visibility .13s;
  pointer-events:none; z-index:6;
}
.cake__alg b:hover::after{opacity:1; visibility:visible; transform:none}
/* na dotykových zariadeniach bublinu nezobrazujeme – tam slúži vysvetlivka pod ponukou */
@media (hover:none){ .cake__alg b::after{display:none} }

.cake__bottom{display:flex;align-items:center;justify-content:space-between;margin-top:.6rem;gap:.5rem;flex-wrap:wrap;row-gap:.45rem}
/* Na úzkej karte sa cena a ovládanie počtu nezmestia vedľa seba (cena ~85px + ovládanie ~97px
   pri ~140px miesta). Preto ovládanie spadne pod cenu a je na stred – nikde nepresahuje okraj. */
.cake.qty .qtyctl{margin-left:auto}
@media(max-width:768px){
  .cake.qty .cake__bottom .qtyctl{width:100%;justify-content:center;margin-left:0}
  .qtyctl button{width:26px;height:26px}
}
.cake__price{font-family:"Fraunces",serif;font-weight:600;font-size:1.12rem;color:var(--lav-700);white-space:nowrap}
.cake__price small{font-size:.68rem;color:var(--ink-soft);font-weight:500;white-space:nowrap}
/* štítok „zo sezónnej ponuky" v objednávke */
.nm__tag{display:inline-block;margin-left:.4rem;font-size:.66rem;font-weight:700;vertical-align:middle;
  color:var(--lav-700);background:var(--lav-100);border-radius:999px;padding:.05rem .45rem}
.addBtn{position:relative;isolation:isolate;color:#fff;border:0;width:34px;height:34px;border-radius:50%;font-size:1.25rem;line-height:1;cursor:pointer;display:grid;place-items:center;flex-shrink:0;
  transition:transform .25s var(--ease),filter .25s;
  background:radial-gradient(circle at 36% 28%, #e2c6f3 0%, #b888df 30%, #9a5dc6 62%, #7e44ad 100%);
  box-shadow:
    inset 0 2px 2px rgba(255,255,255,.55),
    inset 0 -5px 9px rgba(74,30,112,.6),
    0 5px 9px -2px rgba(120,60,170,.55),
    0 2px 4px rgba(90,45,130,.35);
  text-shadow:0 1px 1px rgba(70,30,110,.45)}
.addBtn::after{ /* lesklý odlesk hore */
  content:"";position:absolute;left:22%;top:13%;width:46%;height:34%;border-radius:50%;z-index:-1;
  background:radial-gradient(60% 60% at 50% 40%, rgba(255,255,255,.92), rgba(255,255,255,0) 75%);
  pointer-events:none}
.addBtn:hover{transform:translateY(-2px) scale(1.1);filter:brightness(1.05) saturate(1.05)}
.addBtn:active{transform:translateY(0) scale(1.02);filter:brightness(.96)}
.cake.qty .addBtn{display:none}
.qtyctl{display:none;align-items:center;gap:.3rem;background:var(--lav-50);border-radius:999px;padding:.16rem}
.cake.qty .qtyctl{display:flex}
.qtyctl button{width:28px;height:28px;border-radius:50%;border:0;background:#fff;color:var(--lav-700);font-size:1rem;font-weight:800;cursor:pointer;box-shadow:var(--shadow-sm);transition:.2s}
.qtyctl button:hover{background:var(--lav-600);color:#fff}
.qtyctl b{min-width:22px;text-align:center;font-weight:800;color:var(--lav-700);font-size:.9rem}
.menu__legend{margin-top:2rem;color:var(--ink-soft);font-size:.86rem;text-align:center;line-height:1.8}
.menu__empty{text-align:center;color:var(--ink-soft);padding:3rem;grid-column:1/-1}

/* ---------- GALLERY ---------- */
.gallery{max-width:var(--maxw);margin:0 auto;padding:4rem clamp(1rem,4vw,2rem)}
/* ---- tri priečinky vedľa seba (iPhone-folder štýl) ---- */
.gtabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(.7rem,2vw,1.6rem);max-width:680px;margin-inline:auto}
.gtab{display:flex;flex-direction:column;align-items:center;gap:.85rem;cursor:pointer;
  background:linear-gradient(180deg,var(--lav-50),#fff);border:1px solid var(--lav-100);
  border-radius:var(--radius);padding:clamp(.8rem,2vw,1.4rem);box-shadow:var(--shadow-sm);
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s var(--ease)}
.gtab:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--lav-300)}
.gtab.is-active{border-color:var(--lav-500);box-shadow:0 0 0 3px var(--lav-200),var(--shadow);
  background:linear-gradient(180deg,var(--lav-100),#fff)}
.gtab__mosaic{display:grid;grid-template-columns:1fr 1fr;gap:6px;width:100%;align-items:start;
  padding:9px;border-radius:26px;background:rgba(200,162,224,.18)}
.gtab__mosaic img{display:block;width:100%;aspect-ratio:1;height:auto;object-fit:cover;border-radius:12px;
  box-shadow:0 4px 10px rgba(112,61,146,.14);transition:transform .35s var(--ease)}
.gtab:hover .gtab__mosaic img{transform:scale(1.04)}
.gtab__name{font-family:"Fraunces",Georgia,serif;font-size:clamp(1.05rem,2.4vw,1.5rem);
  color:var(--lav-700);font-weight:600}
.gtab.is-active .gtab__name{color:var(--lav-600)}

.gallery__item{margin:0;border-radius:18px;overflow:hidden;position:relative;cursor:zoom-in;
  box-shadow:var(--shadow-sm);opacity:0;transform:scale(.96);
  background:linear-gradient(100deg,var(--lav-100) 25%,var(--lav-50) 42%,#fff 50%,var(--lav-50) 58%,var(--lav-100) 75%);
  background-size:220% 100%;animation:gShimmer 1.5s linear infinite;
  transition:opacity .45s var(--ease),transform .45s var(--ease)}
.gallery__item.in{opacity:1;transform:none}
.gallery__item.loaded{animation:none;background:var(--lav-100)}
.gallery__item picture{display:block;width:100%}
@keyframes gShimmer{to{background-position:-220% 0}}
.gallery__item img{width:100%;aspect-ratio:1;height:auto;object-fit:cover;display:block;transition:transform .6s var(--ease)}
.gallery__item:hover img{transform:scale(1.03)}

/* ---- otvorený priečinok = prekrytie (iPhone-folder) ---- */
.gmodal{position:fixed;inset:0;z-index:110;display:flex;align-items:center;justify-content:center;
  padding:clamp(.7rem,3vw,2.4rem);opacity:0;pointer-events:none;transition:opacity .3s var(--ease)}
.gmodal.open{opacity:1;pointer-events:auto}
.gmodal__backdrop{position:absolute;inset:0;background:rgba(43,35,48,.55);backdrop-filter:blur(8px)}
.gmodal__panel{position:relative;width:min(1100px,100%);max-height:90vh;display:flex;flex-direction:column;
  background:linear-gradient(180deg,var(--lav-50),#fff);border:1px solid var(--lav-100);
  border-radius:var(--radius);box-shadow:var(--shadow-lg);overflow:hidden;
  transform:scale(.9);opacity:0;transition:transform .38s var(--ease),opacity .38s var(--ease)}
.gmodal.open .gmodal__panel{transform:none;opacity:1}
.gmodal__head{display:flex;align-items:center;gap:1rem;padding:clamp(.9rem,2.2vw,1.3rem);
  border-bottom:1px solid var(--lav-100);background:rgba(255,255,255,.7)}
.gmodal__tabs{display:flex;flex-wrap:wrap;gap:.5rem;flex:1;min-width:0}
.gmodal__tab{cursor:pointer;border:1px solid var(--lav-200);background:#fff;color:var(--lav-700);
  font-weight:700;font-size:.95rem;padding:.5rem 1.1rem;border-radius:999px;transition:.22s var(--ease)}
.gmodal__tab:hover{background:var(--lav-100)}
.gmodal__tab.is-active{background:linear-gradient(135deg,var(--lav-500),var(--lav-600));color:#fff;border-color:transparent;box-shadow:var(--shadow-sm)}
.gmodal__close{flex-shrink:0;width:44px;height:44px;border-radius:50%;border:none;cursor:pointer;
  font-size:1.1rem;color:var(--lav-700);background:var(--lav-100);transition:.22s var(--ease)}
.gmodal__close:hover{background:var(--lav-300);color:#fff;transform:rotate(90deg)}
.gmodal__grid{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:clamp(.9rem,2.2vw,1.4rem);
  display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:.8rem;align-content:start;align-items:start;grid-auto-rows:max-content}

@media(max-width:560px){
  /* na telefónoch 3 rovnaké stĺpce – menšie náhľady, fotky nemenia veľkosť podľa šírky mobilu */
  .gmodal__grid{grid-template-columns:repeat(3,1fr);gap:.45rem;padding:.7rem}
  .gmodal__panel{width:calc(100% - 1.4rem)}
  .gmodal__panel{max-height:92vh}
  .gmodal__tab{font-size:.85rem;padding:.42rem .8rem}
  /* 3 priečinky vedľa seba – kompaktné a ROVNAKÉ stĺpce, aby sa fotky/text neprekrývali */
  .gtabs{gap:.5rem}
  .gtab{padding:.5rem .4rem;gap:.45rem;border-radius:16px;min-width:0}
  .gtab__mosaic{padding:5px;gap:4px;border-radius:16px}
  .gtab__mosaic img{border-radius:9px}
  .gtab__name{font-size:.78rem;line-height:1.15;text-align:center;word-break:break-word}
}

/* ---------- AKTUÁLNA PONUKA ---------- */
.offer{max-width:var(--maxw);margin:0 auto;padding:1.4rem clamp(1rem,4vw,2rem)}
.offer[hidden]{display:none}  /* schovana sekcia nesmie nechat prazdne miesto */
.offer__card{background:linear-gradient(135deg,var(--lav-100),var(--pink));border:1px solid var(--lav-200);
  border-radius:var(--radius);padding:clamp(1.2rem,3vw,1.9rem) clamp(1.3rem,3.5vw,2.1rem);box-shadow:var(--shadow-sm)}
.offer__head{margin-bottom:1.1rem;text-align:center}
.offer__badge{display:inline-block;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  color:#fff;background:var(--lav-600);padding:.26rem .7rem;border-radius:999px;margin-bottom:.55rem}
.offer__title{font-size:clamp(1.4rem,3.4vw,2rem);color:var(--lav-700)}
.offer__sub{margin:.4rem auto 0;color:var(--ink-soft);max-width:52ch}
.offer__grid .cake{background:#fff}

/* --- Sezónna fotka sa dá zväčšiť (pri krabičkách si zákazník chce pozrieť obsah) --- */
.offer__cake .cake__photo img,
.cake.is-box .cake__photo img{cursor:zoom-in}
.lightbox--single .lightbox__nav{display:none}   /* jedna fotka – bez šípok */

/* --- KRABIČKA: široká na 2 koláčiky, fotka vľavo, text vpravo ---
   Krabičky sú hlavný sezónny artikel – potrebujú väčšiu fotku a miesto na obsah.
   Zaberá presne 2 stĺpce mriežky, takže NEROZBÍJA rozloženie ostatných kariet.
   Text je zabalený v .cake__side (jeden stĺpec pod sebou) – bez toho by si
   prvky sadli do tej istej bunky mriežky a prekrývali sa. */
.cake.is-box{
  grid-column:span 2;
  display:grid;
  grid-template-columns:minmax(0,44%) minmax(0,1fr);
  gap:1rem;align-items:center;padding:1rem;
}
.cake.is-box .cake__photo{margin:0;aspect-ratio:1/1;height:100%}
/* Základné pravidlo obmedzuje fotku na 78 px – pri krabičke ju treba zrušiť,
   inak sa v tom veľkom priestore stratí. */
.cake.is-box .cake__photo img{
  width:100%;height:100%;max-width:none;max-height:none;
  object-fit:cover;border-radius:12px;transform:none;
}
.cake.is-box:hover .cake__photo img{transform:scale(1.02)}
.cake.is-box .cake__side{
  display:flex;flex-direction:column;gap:.45rem;min-width:0;align-self:stretch;justify-content:center;
}
.cake.is-box .cake__top{margin:0}
.cake.is-box .cake__name{font-size:1.18rem;line-height:1.25}
.cake.is-box .cake__note{
  font-size:.92rem;line-height:1.5;color:var(--ink-soft);
  white-space:pre-line;          /* zalomenie riadkov z administrácie sa zachová */
  margin-top:.3rem;
}
.cake.is-box .cake__bottom{margin-top:.2rem}
.cake.is-box .cake__price{font-size:1.15rem}
.cake.is-box .cake__varhint,
.cake.is-box .cake__alg,
.cake.is-box .cake__dia{align-self:flex-start}
.cake__dia--hint{letter-spacing:.01em;word-spacing:.12em}
/* na úzkom mobile sa fotka a text zložia pod seba */
@media(max-width:560px){
  .cake.is-box{grid-template-columns:1fr;gap:.7rem}
  .cake.is-box .cake__photo{aspect-ratio:4/3}
}
.offer__none{margin:.3rem 0 0;color:var(--lav-700);font-weight:700;text-align:center}

/* ---------- SEZÓNNY RÁM + PADAJÚCE OZDOBY ---------- */
.offer__round:has(> .seasonframe){border-radius:48px;overflow:hidden;
  box-shadow:0 24px 60px -30px rgba(112,61,146,.5)}
.offer__card{position:relative}
.offer__card.seasonframe{
  background:var(--lav-50);
  padding:clamp(12px,2.4vw,22px) clamp(12px,2vw,22px) 0;
  border-style:solid;border-color:transparent;
  border-width:clamp(30px,4.6vw,52px);
  border-image-slice:170;border-image-repeat:round;overflow:hidden;
  border-image-outset:0 0 8px 0;border-radius:48px}
.offer__card.s-vianoce  {border-image-source:url(assets/img/sezony/frame-src-vianoce.webp)}
.offer__card.s-valentin {border-image-source:url(assets/img/sezony/frame-src-valentin.webp)}
.offer__card.s-velkanoc {border-image-source:url(assets/img/sezony/frame-src-velkanoc.webp)}
.offer__card.s-denmatiek{border-image-source:url(assets/img/sezony/frame-src-denmatiek.webp)}
.offer__card.s-jesen    {border-image-source:url(assets/img/sezony/frame-src-jesen.webp)}
.offer__card.s-halloween{border-image-source:url(assets/img/sezony/frame-src-halloween.webp)}
.offer__card.seasonframe>*:not(.offer__flakes){position:relative;z-index:1}
.offer__card.seasonframe .cake{background:transparent;box-shadow:none}
.offer__flakes{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.offer__flakes span{position:absolute;top:-8%;will-change:transform,top;
  animation:offerFall linear infinite;opacity:.85}
@keyframes offerFall{
  0%{top:-8%;transform:translateX(0) rotate(0deg)}
  50%{transform:translateX(16px) rotate(90deg)}
  100%{top:110%;transform:translateX(-8px) rotate(180deg)}}
@media (prefers-reduced-motion:reduce){.offer__flakes{display:none}}

/* ---------- VÝROBŇA ---------- */
.vyrobna{max-width:var(--maxw);margin:0 auto;padding:4rem clamp(1rem,4vw,2rem)}
.vyrobna__stage{position:relative;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-lg);aspect-ratio:16/9;background:linear-gradient(135deg,var(--lav-200),var(--lav-400))}
.vyrobna__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity 1.1s var(--ease)}
.vyrobna__img--night{opacity:0}
.vyrobna__stage[data-mode="night"] .vyrobna__img--day{opacity:0}
.vyrobna__stage[data-mode="night"] .vyrobna__img--night{opacity:1}
.vyrobna__toggle{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);background:rgba(255,255,255,.85);backdrop-filter:blur(8px);border-radius:999px;padding:.3rem;display:flex;gap:0;box-shadow:var(--shadow);min-width:188px}
/* kĺzavá bublina za aktívnym režimom (deň/noc) */
.vyrobna__toggle::before{content:"";position:absolute;top:.3rem;bottom:.3rem;left:.3rem;width:calc(50% - .3rem);border-radius:999px;background:var(--lav-600);transition:transform .38s cubic-bezier(.34,1.25,.4,1);z-index:0}
.vyrobna__toggle:has(button[data-mode="night"].is-active)::before{transform:translateX(100%)}
.vyrobna__toggle button{flex:1;position:relative;z-index:1;border:0;background:none;padding:.55em 1.1em;border-radius:999px;font-weight:700;cursor:pointer;color:var(--ink-soft);transition:color .25s;text-align:center}
.vyrobna__toggle button.is-active{color:#fff}

/* ---------- ORDER ---------- */
.order{max-width:var(--maxw);margin:0 auto;padding:4rem clamp(1rem,4vw,2rem)}
.order__wrap{display:grid;grid-template-columns:1fr 1.2fr;gap:2rem;align-items:start}
.order__cart,.order__form{background:#fff;border:1px solid var(--lav-100);border-radius:var(--radius);padding:1.8rem;box-shadow:var(--shadow-sm)}
.order__cart{position:sticky;top:90px}
.order__cart h3,.order__form h3{font-size:1.4rem;margin-bottom:1rem}
.order__items{display:flex;flex-direction:column;gap:.7rem;min-height:60px}
.order__row{display:flex;align-items:center;gap:.7rem;padding:.6rem 0;border-bottom:1px dashed var(--lav-100)}
.order__row .nm{flex:1;font-weight:600;font-size:.95rem}
.order__row .vr{display:inline-block;font-weight:500;font-size:.78rem;color:var(--lav-600);margin-right:.4rem}
.order__row .vr--dia{color:#2e7d32;font-weight:700}
.order__row .row-min{display:inline-block;margin-top:.15rem;font-size:.72rem;font-weight:800;color:#fff;background:var(--err,#c0392b);padding:.1em .5em;border-radius:999px;letter-spacing:.02em}
.order__row--under{background:linear-gradient(90deg,rgba(192,57,43,.07),transparent 70%);border-radius:10px;padding-left:.5rem;margin-left:-.5rem}
.order__row .pr{font-weight:700;color:var(--lav-700);white-space:nowrap}
.order__row .rm{background:none;border:0;color:var(--ink-soft);cursor:pointer;font-size:1.1rem;line-height:1}
.order__row .qmini{display:flex;align-items:center;gap:.3rem;background:var(--lav-50);border-radius:999px;padding:.15rem}
.order__row .qmini button{width:26px;height:26px;border:0;border-radius:50%;background:#fff;cursor:pointer;font-weight:800;color:var(--lav-700)}
.order__empty{color:var(--ink-soft);text-align:center;padding:1.4rem 0}
.order__pkg{display:flex;justify-content:space-between;align-items:center;margin-top:.85rem;font-size:.9rem;color:var(--ink-soft);font-weight:600}
.order__total{display:flex;justify-content:space-between;align-items:center;margin-top:.5rem;padding-top:.8rem;border-top:2px solid var(--lav-100);font-size:1.05rem}
.order__total strong{font-family:"Fraunces",serif;font-size:1.7rem;color:var(--lav-700)}
.order__addmore{display:inline-block;margin-top:1rem;color:var(--lav-600);font-weight:700;font-size:.92rem}
.field{margin-bottom:1rem;display:flex;flex-direction:column}
.field2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.field label{font-weight:600;font-size:.88rem;margin-bottom:.35rem}
.field input,.field select,.field textarea{padding:.8em 1em;border-radius:12px;border:2px solid var(--lav-200);font:inherit;background:#fff;transition:.2s}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--lav-500);box-shadow:0 0 0 4px var(--lav-100)}
/* ===== vlastné rozbaľovacie menu (v štýle stránky) ===== */
.csel{position:relative;width:100%}
.csel select.csel__native{position:absolute;width:1px;height:1px;padding:0;margin:-1px;border:0;opacity:0;pointer-events:none;clip:rect(0 0 0 0);overflow:hidden}
.csel__btn{width:100%;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.8em 1em;border-radius:12px;border:2px solid var(--lav-200);background:#fff;font:inherit;color:var(--ink);cursor:pointer;transition:.2s}
.csel__btn:hover{border-color:var(--lav-400)}
.csel.open .csel__btn,.csel__btn:focus-visible{outline:none;border-color:var(--lav-500);box-shadow:0 0 0 4px var(--lav-100)}
.csel__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.csel__chev{flex:0 0 auto;color:var(--lav-600);font-size:.8em;transition:transform .25s}
.csel.open .csel__chev{transform:rotate(180deg)}
.csel__menu{position:absolute;z-index:60;left:0;right:0;top:calc(100% + 6px);background:#fff;border:2px solid var(--lav-200);border-radius:14px;box-shadow:0 16px 34px rgba(112,61,146,.22);padding:.35rem;max-height:260px;overflow:auto;opacity:0;transform:translateY(-6px);pointer-events:none;transition:opacity .18s ease,transform .18s ease}
.csel.open .csel__menu{opacity:1;transform:translateY(0);pointer-events:auto}
.csel__grp{font-family:"Dancing Script",cursive;font-size:1.15rem;color:var(--lav-600);font-weight:700;padding:.4rem .7rem .1rem}
.csel__opt{padding:.55em .85em;border-radius:9px;cursor:pointer;color:var(--ink);transition:.12s}
.csel__opt:hover{background:var(--lav-100)}
.csel__opt.sel{background:var(--lav-500);color:#fff;font-weight:700}
@media(max-width:560px){.csel__btn{padding:.6em .8em;border-radius:10px;border-width:1.5px}}
.field.check label{display:flex;gap:.6rem;align-items:flex-start;font-weight:500;font-size:.88rem;color:var(--ink-soft)}
.field.check input{width:20px;height:20px;accent-color:var(--lav-600);flex-shrink:0;margin-top:2px}
/* ---- date field + custom lavender calendar ---- */
#orderDeadline{cursor:pointer;padding-right:2.5rem;
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%239457bd'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Crect%20x='3'%20y='5'%20width='18'%20height='16'%20rx='2.5'/%3E%3Cpath%20d='M3%2010h18M8%203v4M16%203v4'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right .85rem center;background-size:19px}
.dp{position:absolute;z-index:60;top:calc(100% + 8px);left:0;width:300px;max-width:92vw;
  background:#fff;border:1px solid var(--lav-100);border-radius:16px;box-shadow:0 18px 44px rgba(112,61,146,.24);
  padding:.9rem;animation:dpIn .16s var(--ease)}
@keyframes dpIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.dp__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.55rem}
.dp__title{font-family:"Fraunces",serif;font-weight:600;font-size:1rem;color:var(--lav-700)}
.dp__nav{background:var(--lav-50);border:0;width:32px;height:32px;border-radius:50%;cursor:pointer;color:var(--lav-700);font-size:1.15rem;line-height:1;display:grid;place-items:center;transition:.2s}
.dp__nav:hover{background:var(--lav-100);transform:translateY(-1px)}
.dp__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.dp__wd{font-size:.66rem;font-weight:800;color:var(--ink-soft);text-align:center;padding:.25rem 0 .4rem;text-transform:uppercase;letter-spacing:.04em}
.dp__day{aspect-ratio:1;border:0;background:none;border-radius:10px;cursor:pointer;font:inherit;font-size:.85rem;font-weight:600;color:var(--ink);display:grid;place-items:center;transition:.15s}
.dp__day:hover:not(:disabled){background:var(--lav-100)}
.dp__day.is-today{box-shadow:inset 0 0 0 2px var(--lav-300)}
.dp__day.is-sel{background:var(--lav-600);color:#fff;box-shadow:0 4px 12px rgba(112,61,146,.4)}
.dp__day:disabled{color:var(--lav-200);cursor:not-allowed}
.order__msg{margin-top:1rem;padding:.9em 1.1em;border-radius:12px;font-weight:600;font-size:.92rem;display:none}
.order__msg.show{display:block}
.order__msg.err{background:#fdecef;color:#b3263c}
.order__msg.ok{background:#eaf7ee;color:#1f7a3d}
.order__msg.info{background:var(--lav-50);color:var(--lav-700)}
.invalid{border-color:#e07a8b !important;box-shadow:0 0 0 4px #fdecef !important}
.field label small{font-weight:500;color:var(--ink-soft);font-size:.78rem}
#orderMessage{font-family:inherit;line-height:1.55;resize:vertical;min-height:150px}
#orderMessage[readonly]{background:var(--lav-50);cursor:default;color:var(--ink-soft)}
#orderNote{font-family:inherit;line-height:1.5;resize:vertical}
.order__how{display:flex;gap:.8rem;align-items:flex-start;background:var(--lav-50);border:1px solid var(--lav-100);border-radius:16px;padding:1rem 1.1rem;margin:.2rem 0 1.1rem;font-size:.9rem}
.order__how span{font-size:1.45rem;flex-shrink:0;line-height:1.2}
.order__how p{margin:0;color:var(--ink-soft)}
.modal__steps{text-align:left;display:flex;flex-direction:column;gap:.75rem;margin:1.3rem 0;background:var(--lav-50);border-radius:16px;padding:1.1rem 1.2rem}
.modal__steps div{display:flex;gap:.75rem;align-items:flex-start;font-size:.92rem;color:var(--ink)}
.modal__steps div>span:first-child{flex-shrink:0;width:26px;height:26px;border-radius:50%;background:var(--lav-600);color:#fff;display:grid;place-items:center;font-weight:800;font-size:.85rem}
.modal__steps div>span:last-child{flex:1;line-height:1.4}

/* ---------- CONTACT ---------- */
.contact{max-width:var(--maxw);margin:0 auto;padding:4rem clamp(1rem,4vw,2rem)}
.contact__card{display:grid;grid-template-columns:1fr 1.1fr;gap:0;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-lg);background:#fff}
.contact__info{padding:clamp(1.6rem,4vw,3rem);background:linear-gradient(160deg,var(--lav-50),#fff)}
.contact__info h2{font-size:clamp(1.7rem,3.5vw,2.5rem);margin:.3rem 0 1.4rem}
.contact__list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:1rem}
.contact__list li{display:flex;gap:.9rem;align-items:center}
.contact__list .ic{width:46px;height:46px;border-radius:14px;background:var(--lav-100);color:var(--lav-700);display:grid;place-items:center;font-size:1.2rem;flex-shrink:0}
.contact__list .ic svg{width:56%;height:56%;display:block}
/* jednotné jemné fialové ikony */
.contact__list .ic{background:var(--lav-100);color:var(--lav-600)}
/* zvýraznený telefón – väčší, výraznejšia fialová */
.contact__list-phone .ic{width:54px;height:54px;border-radius:16px;background:linear-gradient(135deg,var(--lav-500),var(--lav-600));color:#fff;box-shadow:0 6px 16px rgba(112,61,146,.28)}
.contact__list-phone a{font-size:1.15rem;color:var(--lav-700)}
/* plávajúce rýchle kontakty */
.quickfab{position:fixed;right:1.1rem;bottom:calc(1.8rem + env(safe-area-inset-bottom,0px));z-index:90;display:flex;flex-direction:column;gap:.7rem}
.quickfab__btn{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;color:#fff;opacity:.82;box-shadow:none;transition:transform .2s ease,opacity .2s ease;-webkit-tap-highlight-color:transparent}
.quickfab__btn svg{width:54%;height:54%}
.quickfab__btn:hover{transform:scale(1.06);opacity:1;box-shadow:none}
.quickfab__wa{background:#25D366;position:relative}  /* bez fialového pulzovania */
/* na mobile viac odsadenia zdola – keď sa spodná lišta Safari roztiahne, nesmie
   prekryť WhatsApp tlačidlo */
@media(max-width:560px){.quickfab__btn{width:44px;height:44px}
  .quickfab{right:.8rem;bottom:calc(.9rem + env(safe-area-inset-bottom,0px))}}


.contact__list b{display:block;font-size:.78rem;text-transform:uppercase;letter-spacing:.5px;color:var(--ink-soft)}
.contact__list a,.contact__list span{font-weight:600}
.contact__map{position:relative;min-height:340px}
.contact__map iframe{width:100%;height:100%;min-height:340px;border:0;display:block}
.mapconsent{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.7rem;text-align:center;padding:1.6rem;
  background:linear-gradient(160deg,var(--lav-50),#fff)}
.mapconsent__pin{font-size:2rem}
.mapconsent p{margin:0;color:var(--ink-soft);max-width:34ch}
.mapconsent p b{color:var(--ink);font-size:1.02rem}
.mapconsent small{font-size:.8rem;line-height:1.45;display:inline-block;margin-top:.25rem}
.mapconsent__link{font-size:.82rem;font-weight:700;color:var(--lav-700)}
.contact__map.loaded .mapconsent{display:none}
/* načítavanie mapy – točiaci sa indikátor kým Google embed nabehne */
.contact__map.loading::after{content:"";position:absolute;top:50%;left:50%;width:38px;height:38px;margin:-19px 0 0 -19px;z-index:3;
  border:4px solid var(--lav-200);border-top-color:var(--lav-600);border-radius:50%;animation:mapspin .8s linear infinite;pointer-events:none}
.contact__map.loading{background:var(--lav-50)}
@keyframes mapspin{to{transform:rotate(360deg)}}

/* ---------- FOOTER ---------- */
.footer{text-align:center;padding:3rem 1rem 2.4rem;background:var(--lav-50);margin-top:3rem}
.footer__logo{height:78px;margin:0 auto 1rem}
.footer p{color:var(--ink-soft);font-size:.9rem;margin:.3rem 0}
.footer__love{font-family:"Dancing Script",cursive;font-size:1.45rem;font-weight:700;color:var(--lav-600);margin:.5rem 0 .35rem}
.footer__small{font-size:.82rem}

/* ---------- DRAWER ---------- */
.drawer{position:fixed;inset:0;z-index:80;visibility:hidden}
.drawer.open{visibility:visible}
.drawer__backdrop{position:absolute;inset:0;background:rgba(43,35,48,.4);opacity:0;transition:.35s;backdrop-filter:blur(2px)}
.drawer.open .drawer__backdrop{opacity:1}
.drawer__panel{position:absolute;top:0;right:0;height:100%;overflow:hidden;overscroll-behavior:contain;width:min(420px,92vw);background:#fff;box-shadow:var(--shadow-lg);transform:translateX(100%);transition:transform .4s var(--ease);display:flex;flex-direction:column}
.drawer.open .drawer__panel{transform:none}
.drawer__head{display:flex;justify-content:space-between;align-items:center;padding:1.4rem;border-bottom:1px solid var(--lav-100);flex:0 0 auto}
/* V košíku sa roluje LEN zoznam koláčikov – hlavička, krabička aj pätička sú pevné.
   min-height:0 je nutné, inak flexbox nechá zoznam pretiecť namiesto rolovania (odtiaľ sekanie). */
.drawer__head h3{font-size:1.3rem}
.drawer__close{background:var(--lav-50);border:0;width:38px;height:38px;border-radius:50%;cursor:pointer;font-size:1rem}
.drawer__items{flex:1 1 auto;min-height:0;overflow-y:auto;padding:1rem 1.4rem;display:flex;flex-direction:column;gap:.6rem;
  /* rolovanie sa nesmie „preliať" na stránku za košíkom (odhaľovalo to pozadie) */
  overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.drawer__foot{padding:1.4rem;padding-bottom:calc(1.4rem + env(safe-area-inset-bottom,0px));border-top:1px solid var(--lav-100);flex:0 0 auto;background:#fff}
.drawer__total{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;font-size:1.05rem}
.drawer__total strong{font-family:"Fraunces",serif;font-size:1.6rem;color:var(--lav-700)}

/* ---------- MODAL ---------- */
.modal{position:fixed;inset:0;z-index:90;display:grid;place-items:center;visibility:hidden;padding:1rem}
.modal.open{visibility:visible}
.modal__backdrop{position:absolute;inset:0;background:rgba(43,35,48,.55);opacity:0;transition:.3s;backdrop-filter:blur(3px)}
.modal.open .modal__backdrop{opacity:1}
.modal__card{position:relative;background:#fff;border-radius:var(--radius);padding:2.4rem;max-width:560px;width:100%;text-align:center;box-shadow:var(--shadow-lg);transform:scale(.9) translateY(20px);opacity:0;transition:.4s var(--ease);max-height:92vh;overflow-y:auto}
.modal.open .modal__card{transform:none;opacity:1}
.modal__close{position:absolute;top:1rem;right:1rem;background:var(--lav-50);border:0;width:38px;height:38px;border-radius:50%;cursor:pointer;font-size:1rem}
.modal__check{width:74px;height:74px;border-radius:50%;background:linear-gradient(135deg,#5bc47f,#2f9d57);color:#fff;font-size:2.4rem;display:grid;place-items:center;margin:0 auto 1rem;animation:pop .5s var(--ease)}
@keyframes pop{0%{transform:scale(0)}70%{transform:scale(1.15)}100%{transform:scale(1)}}
.modal__card h3{font-size:1.7rem;margin-bottom:.5rem}
.modal__card>p{color:var(--ink-soft)}
.pay{display:grid;grid-template-columns:auto 1fr;gap:1.4rem;align-items:center;background:var(--lav-50);border-radius:16px;padding:1.2rem;margin:1.4rem 0;text-align:left}
.modal__actions{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap}

/* ---------- variant picker modal ---------- */
.vmodal{position:fixed;inset:0;z-index:95;display:grid;place-items:center;padding:1rem}
.vmodal__backdrop{position:absolute;inset:0;background:rgba(43,35,48,.5);backdrop-filter:blur(3px)}
.vmodal__card{position:relative;background:#fff;border-radius:var(--radius);padding:1.8rem;max-width:430px;width:100%;box-shadow:var(--shadow-lg);max-height:90vh;overflow-y:auto;animation:vpop .3s var(--ease)}
@keyframes vpop{from{transform:scale(.92) translateY(14px);opacity:0}to{transform:none;opacity:1}}
.vmodal__close{position:absolute;top:.9rem;right:.9rem;background:var(--lav-50);border:0;width:36px;height:36px;border-radius:50%;cursor:pointer;font-size:1rem}
.vmodal__card h3{font-size:1.45rem;margin-bottom:.25rem}
.vmodal__sub{color:var(--ink-soft);font-size:.9rem;margin-bottom:1.1rem}
.vmodal__sub b{color:var(--lav-700)}
.vmodal__list{display:flex;flex-direction:column;gap:.55rem;margin-bottom:1.2rem}
.vrow{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;padding:.55rem .55rem .55rem .9rem;border:1.5px solid var(--lav-100);border-radius:14px;transition:.2s}
.vrow__dia{flex-basis:100%;margin:.1rem 0 0}
.vrow__min{display:inline-block;margin-left:.4rem;font-size:.68rem;font-weight:800;color:#fff;background:var(--err,#c0392b);padding:.08em .5em;border-radius:999px}
.vrow.under{border-color:color-mix(in srgb,var(--err,#c0392b) 40%,transparent)}
.vrow.has{border-color:var(--lav-400);background:var(--lav-50)}
.vrow__l{display:flex;align-items:center;gap:.65rem;min-width:0}
.vrow__sw{width:22px;height:22px;border-radius:50%;flex-shrink:0;box-shadow:inset 0 0 0 1px rgba(0,0,0,.14),0 2px 5px rgba(0,0,0,.12)}
.vrow__img{width:46px;height:46px;border-radius:11px;object-fit:cover;flex-shrink:0;box-shadow:0 3px 8px rgba(0,0,0,.16)}
.vrow__name{font-weight:600;text-transform:capitalize}
/* sezónna ponuka – mini-formulár */
.vstep{display:flex;align-items:center;gap:.45rem;background:var(--lav-50);border-radius:999px;padding:.2rem}
.vrow.has .vstep{background:#fff}
.vstep button{width:32px;height:32px;border:0;border-radius:50%;background:#fff;color:var(--lav-700);font-size:1.15rem;font-weight:800;cursor:pointer;box-shadow:var(--shadow-sm);transition:.2s}
.vstep button:hover{background:var(--lav-600);color:#fff}
.vstep b{min-width:20px;text-align:center;font-weight:800;color:var(--lav-700)}
/* editovateľný počet (ručné zadanie napr. 100) – vyzerá ako súčasť počítadla, bez natívnych šípok */
.qin{width:3.2ch;min-width:3.2ch;border:0;background:transparent;text-align:center;font-family:inherit;
  font-weight:800;color:var(--lav-700);font-size:.9rem;padding:.1rem 0;margin:0;-moz-appearance:textfield;appearance:textfield;cursor:text}
.qin::-webkit-outer-spin-button,.qin::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.qin:focus{outline:none;background:#fff;border-radius:7px;box-shadow:0 0 0 2px var(--lav-300)}
.vstep .qin{width:3.4ch;min-width:3.4ch;font-size:1rem}

/* ---------- reveal anim ---------- */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal.in{opacity:1;transform:none}

/* ---------- 3D pastry box visualization ---------- */
.boxviz{flex:0 0 auto;padding:1.6rem 1.3rem 1.1rem;perspective:820px;border-radius:18px;
  background:radial-gradient(125% 100% at 50% 16%, var(--lav-100) 0%, var(--lav-50) 52%, #fbf7fe 100%)}
.boxviz--order{padding:1.4rem .7rem 1.1rem}
/* real photographed white box (krabicka.webp) – cakes sit on the interior floor */
.boxviz__tray{
  position:relative;width:min(100%,360px);margin:0 auto;
  aspect-ratio:760/571;
  padding:21% 14% 18%;            /* inset so cakes land inside the box opening */
  background:url("assets/img/krabicka.webp") center/100% 100% no-repeat;
  filter:drop-shadow(0 16px 20px rgba(90,70,45,.28));
}
.boxviz__tray::before{content:none}
.boxviz__tray::after{content:none}
.boxviz__grid{position:relative;display:grid;grid-template-columns:repeat(5,1fr);gap:.35rem .3rem;z-index:2}
.boxviz__slot{position:relative;aspect-ratio:1;
  animation:slotPop .4s var(--ease)}
/* a stack/pile of the same cake (Pringles-style) – no plate, sits in the box */
.boxviz__pile{position:absolute;inset:0}
.boxviz__pile::after{content:"";position:absolute;left:14%;right:14%;bottom:7%;height:9%;border-radius:50%;
  background:radial-gradient(50% 100% at 50% 50%, rgba(70,48,24,.34), rgba(70,48,24,0) 75%)} /* soft contact shadow on the box floor */
.boxviz__pile img{position:absolute;left:50%;bottom:8%;width:90%;height:90%;object-fit:contain;
  transform:translateX(-50%) translateY(calc(var(--l) * -26%));
  filter:drop-shadow(0 3px 2px rgba(60,42,20,.4))}
.boxviz__qty{position:absolute;top:-6px;right:-6px;background:var(--lav-600);color:#fff;font-size:.6rem;font-weight:800;border-radius:999px;padding:.08em .42em;box-shadow:0 2px 4px rgba(0,0,0,.3);z-index:6}
.boxviz__slot--more{display:grid;place-items:center;border-radius:50%;background:var(--lav-600);color:#fff;font-weight:800;font-size:.78rem;box-shadow:0 3px 6px rgba(112,61,146,.3)}
@keyframes slotPop{0%{transform:scale(0) rotate(-18deg);opacity:0}70%{transform:scale(1.14)}100%{transform:scale(1)}}
.boxviz__empty{position:absolute;inset:0;display:grid;place-items:center;text-align:center;color:#a98c6e;font-weight:600;font-size:.8rem;line-height:1.5;margin:0;padding:.4rem;transform:translateZ(1px)}
.boxviz.has .boxviz__empty{display:none}
.boxviz__count{display:block;text-align:center;font-size:.82rem;color:var(--ink-soft);font-weight:700;margin-top:.9rem;min-height:1em}

/* flying cake clone (add-to-cart animation) */
.fly-clone{position:fixed;z-index:200;pointer-events:none;border-radius:50%;object-fit:contain;
  filter:drop-shadow(0 8px 12px rgba(112,61,146,.3));
  transition:transform .75s cubic-bezier(.2,.7,.25,1), opacity .75s ease;will-change:transform,opacity}
.cartBtn.pulse{animation:cartPulse .5s var(--ease)}
@keyframes cartPulse{0%,100%{transform:scale(1)}45%{transform:scale(1.25)}}

/* ---------- gallery lightbox ---------- */
.lightbox{position:fixed;inset:0;z-index:120;display:grid;place-items:center;visibility:hidden;padding:2rem}
.lightbox.open{visibility:visible}
.lightbox__backdrop{position:absolute;inset:0;background:rgba(28,18,32,.88);z-index:-1;opacity:0;transition:.3s;backdrop-filter:blur(3px)}
.lightbox.open .lightbox__backdrop{opacity:1}
.lightbox__fig{margin:0;max-width:min(92vw,1040px);display:flex;flex-direction:column;align-items:center;transform:scale(.94);opacity:0;transition:.35s var(--ease)}
.lightbox.open .lightbox__fig{transform:none;opacity:1}
.lightbox__fig img{max-width:100%;max-height:78vh;border-radius:16px;box-shadow:0 30px 80px rgba(0,0,0,.5)}
.lightbox__fig figcaption{color:#fff;margin-top:1rem;font-weight:600;font-size:1.05rem;text-align:center}
.lightbox__close,.lightbox__nav{position:fixed;background:rgba(255,255,255,.14);border:0;color:#fff;cursor:pointer;border-radius:50%;backdrop-filter:blur(6px);transition:.2s;display:grid;place-items:center}
.lightbox__close:hover,.lightbox__nav:hover{background:rgba(255,255,255,.28)}
.lightbox__close{top:1.2rem;right:1.4rem;width:46px;height:46px;font-size:1.2rem}
.lightbox__nav{top:50%;transform:translateY(-50%);width:54px;height:54px;font-size:2rem;line-height:1}
.lightbox__nav--prev{left:1.2rem}
.lightbox__nav--next{right:1.2rem}
.gallery__item{cursor:zoom-in}

/* ---------- GDPR text modal ---------- */
.modal__card--text{max-width:620px;text-align:left}
.modal__card--text h3{text-align:left}
.gdpr__updated{text-align:left;font-size:.78rem;color:var(--ink-soft);margin:.15rem 0 0;font-style:italic}
.gdpr__text{text-align:left;font-size:.92rem;color:var(--ink-soft);line-height:1.6;max-height:54vh;overflow-y:auto;margin:.7rem 0 1.2rem;padding-right:.4rem}
.gdpr__text p{margin:0 0 .85rem}
.footer__small a{color:var(--lav-700);font-weight:700;text-decoration:underline}

/* ---------- TORTY na mieru ---------- */
.torta{max-width:var(--maxw);margin:0 auto;padding:4rem clamp(1rem,4vw,2rem)}
.torta__wrap{display:grid;grid-template-columns:.92fr 1.08fr;gap:2rem;align-items:start}
.tortaviz{position:sticky;top:88px;background:linear-gradient(160deg,var(--lav-50),#fff);border:1px solid var(--lav-100);border-radius:var(--radius);padding:1.6rem;box-shadow:var(--shadow-sm);text-align:center}
.tortaviz__stage{min-height:290px;display:flex;align-items:flex-end;justify-content:center;padding:1.4rem 0 .6rem}
@keyframes cakeBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
/* frosted top – domed disc seen at an angle */
/* ganache poured over the top, dripping over the edge (varied drips, scales with cake width) */
/* glossy poured-chocolate top for ganache (wet specular + deep edge = 3D dome) */
/* body = a frosted cylinder with cream/sponge layers + side shading */
/* ===== heart cake (22 cm) – classic layered cake, just in a heart shape ===== */
/* visible cake SIDE (layers + height) sits a bit lower */
/* frosted heart TOP overlaps the side -> reveals the height at the bottom */
/* realistic plate */

/* ===== fotorealistická torta (foto kompozícia) ===== */
.cakephoto{position:relative;display:flex;flex-direction:column;align-items:center;--w1:260px;--w2:0px;animation:cakeBob 6s ease-in-out infinite}
.cakephoto::after{content:"";position:absolute;bottom:-6px;left:50%;transform:translateX(-50%);width:calc(var(--w1) * .8);height:26px;border-radius:50%;background:radial-gradient(closest-side, rgba(80,45,110,.34), rgba(80,45,110,0) 75%);filter:blur(5px);z-index:0;pointer-events:none}
.cakephoto__tier{position:relative;display:flex;justify-content:center;transition:width .4s var(--ease)}
.cakephoto__tier--base{width:var(--w1)}
.cakephoto__tier--top{width:var(--w2);margin-bottom:calc(var(--w2) * var(--tierMbF, -0.5));z-index:3;transform:translateY(var(--tierFwd,0px))}
.cakephoto:not(.two) .cakephoto__tier--top{display:none}
/* ŽIADNY filter:drop-shadow – na iOS Safari kreslí na priehľadnom PNG pravouhlý „štvorec".
   Tieň torty je zapečený vo fotke, spodný tieň rieši .cakephoto::after. */
.cakephoto__img{width:100%;height:auto;display:block}
/* prefarbenie povrchu podľa zvoleného krému (multiply zachová tiene) – maskované tvarom torty */
.cakephoto__tint{position:absolute;inset:0;z-index:2;mix-blend-mode:multiply;pointer-events:none;background:transparent;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}
/* poloha ozdoby (top) sa nastavuje per povrch×tvar v JS cez --decoTop */
.cakephoto__deco{position:absolute;top:var(--decoTop,20%);left:6%;right:6%;display:flex;justify-content:center;align-items:flex-end;gap:3%;z-index:5;pointer-events:none}
.cakephoto__deco img{width:calc(var(--w1) * .34);height:auto}
/* photo upload */
.torta__upload{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap}
.torta__uploadbtn{display:inline-flex;align-items:center;gap:.5rem;background:var(--lav-50);border:2px dashed var(--lav-300);color:var(--lav-700);font-weight:700;padding:.7em 1.1em;border-radius:14px;cursor:pointer;transition:.2s;font-size:.9rem}
.torta__uploadbtn:hover{border-color:var(--lav-500);background:var(--lav-100)}
.torta__thumb{position:relative;width:72px;height:72px;border-radius:12px;overflow:hidden;box-shadow:var(--shadow-sm)}
.torta__thumb img{width:100%;height:100%;object-fit:cover}
.torta__thumb button{position:absolute;top:2px;right:2px;width:22px;height:22px;border:0;border-radius:50%;background:rgba(0,0,0,.6);color:#fff;cursor:pointer;font-size:.75rem;line-height:1}
.order__cakecard{display:flex;gap:.7rem;align-items:flex-start}
.order__cakethumb{width:54px;height:54px;border-radius:10px;object-fit:cover;flex-shrink:0;box-shadow:var(--shadow-sm)}
.order__cakebody{flex:1;min-width:0}
.tortaviz__info{border-top:1px solid var(--lav-100);padding-top:1rem;margin-top:.4rem}
.tortaviz__portions{font-weight:600;color:var(--ink-soft);font-size:.9rem;margin-bottom:.5rem}
.tortaviz__price span{font-size:.74rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.5px;font-weight:700;display:block}
.tortaviz__price strong{font-family:"Fraunces",serif;font-size:2.1rem;color:var(--lav-700)}
.torta__form{background:#fff;border:1px solid var(--lav-100);border-radius:var(--radius);padding:1.8rem;box-shadow:var(--shadow-sm)}
/* skupinový nadpis vo formulári torty (v štýle stránky) */
.torta__group{display:flex;align-items:center;gap:.7rem;margin:1.4rem 0 .9rem;font-family:"Amatic SC","Fraunces",serif;font-weight:700;font-size:1.5rem;letter-spacing:.02em;color:var(--lav-700)}
.torta__group::after{content:"";flex:1;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--lav-200),transparent)}
.torta__group:first-child{margin-top:0}
.torta__bokychk{display:flex;align-items:center;gap:.5rem;padding:.6em .2em;font-weight:600;font-size:.95rem;color:var(--ink);cursor:pointer}
.torta__bokychk input{width:18px;height:18px;accent-color:var(--lav-600);cursor:pointer}
.torta__sizes{display:flex;flex-direction:column;gap:.5rem}
.torta__size{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.65em .9em;border:2px solid var(--lav-200);border-radius:14px;cursor:pointer;transition:.2s;text-align:left}
.torta__size:hover{border-color:var(--lav-400)}
.torta__size.sel{border-color:var(--lav-600);background:var(--lav-50)}
.torta__size b{font-weight:700;display:block}
.torta__size .p{font-size:.78rem;color:var(--ink-soft);font-weight:600}
.torta__size .pr{font-family:"Fraunces",serif;font-weight:600;color:var(--lav-700);white-space:nowrap;font-size:1.1rem}
.torta__toggles{display:flex;flex-direction:column;gap:.55rem;margin:.5rem 0 1rem}
.tgl{display:flex;align-items:center;gap:.6rem;font-weight:600;font-size:.92rem;cursor:pointer}
.tgl input{width:20px;height:20px;accent-color:var(--lav-600);flex-shrink:0}
.tgl small{color:var(--lav-600);font-weight:700}
.order__wedding{display:inline-flex;align-items:center;gap:.55rem;margin-top:.7rem;font-size:.92rem;font-weight:600;color:var(--lav-700);cursor:pointer}
.order__wedding input{width:20px;height:20px;accent-color:var(--lav-600);flex-shrink:0}
.order__wedding small{color:var(--lav-600);font-weight:700}
.torta__note{font-size:.8rem;color:var(--ink-soft);margin-top:.9rem;line-height:1.55}
/* custom cakes inside the order */
.order__torty{display:flex;flex-direction:column;gap:.6rem;margin-top:.5rem}
.order__torty:empty{display:none}
.order__cakecard{background:var(--lav-50);border:1px solid var(--lav-100);border-radius:14px;padding:.75rem .85rem;position:relative}
.order__cakecard h4{font-size:.96rem;margin:0 0 .25rem;font-family:"Fraunces",serif;padding-right:1.4rem}
.order__cakecard p{margin:0;font-size:.79rem;color:var(--ink-soft);line-height:1.5}
.order__cakecard .pr{font-weight:700;color:var(--lav-700)}
.order__cakecard .rm{position:absolute;top:.5rem;right:.55rem;background:none;border:0;font-size:1.1rem;cursor:pointer;color:var(--ink-soft);line-height:1}

/* ---------- responsive ---------- */
@media(max-width:1150px){
  /* pull floating bubbles to the edges & shrink so they don't cover the logo */
}
@media(max-width:1000px){
  .about{grid-template-columns:1fr;gap:3.5rem}
  .order__wrap{grid-template-columns:1fr}
  .order__cart{position:static}
  .contact__card{grid-template-columns:1fr}
  .freefrom__grid{grid-template-columns:repeat(2,1fr)}
  .torta__wrap{display:block}
  .torta__form{margin-top:1.2rem}
  .torta__form,.tortaviz{min-width:0}
  /* torta ostáva viditeľná aj pri scrollovaní filtrov – kompaktný pripnutý banner */
  .tortaviz{position:sticky;top:58px;z-index:5;display:flex;align-items:center;gap:.5rem;
    padding:.4rem .8rem;text-align:left;box-shadow:0 8px 20px -10px rgba(80,45,110,.4)}
  .tortaviz__stage{flex:0 0 40%;height:118px;min-height:0;padding:0;overflow:hidden;align-items:flex-end}
  .tortaviz .cakephoto{animation:none;transform:scale(.56);transform-origin:bottom center;margin:0}
  /* fialový tieň pod tortou sa v kompaktnom banneri oreže a sadne flush k spodku – skryť */
  .tortaviz .cakephoto::after{display:none}
  .tortaviz__info{flex:1;border-top:none;padding-top:0;margin-top:0;text-align:center}
  .tortaviz__portions{font-size:.92rem;margin-bottom:.15rem}
}
@media(max-width:880px){
  /* on phones/small tablets the bubbles crowd the logo – hide them */
  .hero__floats{display:none}
  .hero{min-height:auto;padding:6.5rem 1rem 3rem}
  .hero__inner{transform:none}
  .hero__logoWrap{width:min(360px,86vw)}
}
@media(max-width:760px){
  /* úvodný efekt loga na mobile pomalší a jemnejší (na malom displeji pôsobil príliš rýchlo) */
  .hero__logoWrap{animation:logoFloat 7s ease-in-out infinite}
  /* lišta priehľadná (žiadny biely pruh) – obsah hera posunutý nižšie nech SK/EN neprekrýva text */
  .nav{display:flex;justify-content:space-between}
  .nav__links{position:fixed;top:0;right:0;height:100vh;width:min(300px,80vw);background:#fff;flex-direction:column;justify-content:center;padding:2rem;transform:translateX(100%);
    transition:transform .4s var(--ease),visibility 0s .4s;box-shadow:var(--shadow-lg);gap:1.4rem;z-index:2;visibility:hidden}
  .nav__links.open{transform:none;visibility:visible;transition:transform .4s var(--ease),visibility 0s 0s}
  .nav__links a{font-size:1.2rem}
  .nav__close{display:block}
  .nav__burger{display:flex}
  .nav__links.open ~ .nav__backdrop{opacity:1;visibility:visible;z-index:1}
  .nav__links.open ~ .nav__right{opacity:0;pointer-events:none;transition:opacity .25s}
  .field2{grid-template-columns:1fr}
  .about__points{grid-template-columns:1fr}
  .freefrom__grid{grid-template-columns:1fr}
  .pay{grid-template-columns:1fr;text-align:center}
  .marquee__track{font-size:1.05rem}
}
@media(max-width:460px){
  .hero__chips span{font-size:.8rem}
  .modal__card{padding:1.6rem}
}
@media(prefers-reduced-motion:reduce){
  /* POZOR: samotné skrátenie trvania NEVYPNE nekonečné animácie – zrýchli ich.
     Pri .01ms by sa opakovali 100 000× za sekundu a stránka by divoko vibrovala
     (presne to sa dialo na Androide so zapnutým „obmedziť animácie"). Preto sa
     musí obmedziť aj počet opakovaní a ozdobné slučky rovno vypnúť. */
  *{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.1ms !important}
  .marquee__track,.doodle,.cakephoto,.hero__float,
  .gallery__item,.offer__flakes span,.contact__map.loading::after{animation:none !important}
  /* galéria bez trblietavej animácie by ostala neviditeľná (opacity:0) – ukáž ju */
  .gallery__item{opacity:1 !important;transform:none !important;background:var(--lav-100)}
  .marquee__track{transform:none !important}
  .offer__flakes{display:none}
  .reveal{opacity:1;transform:none}
  /* pri obmedzenom pohybe žiadny WOW zoom/točenie – len jemné rozjasnenie */
  .hero__logoWrap{animation:logoFade .6s ease-out both !important}
  @keyframes logoFade{from{opacity:0}to{opacity:1}}
  /* aj 3D nábeh hero tlačidiel nech sa prejaví */
  .hero__cta .btn{animation-duration:.7s !important}
}

/* =====================================================================
   Amatic SC — LEN na nadpisy a ozdobné prvky (krásne + čitateľné vo veľkom).
   Bežný text (popisy, alergény, formulár, ceny) ostáva v čistom čitateľnom
   fonte Manrope, aby sa všetko dalo dobre prečítať.
   ===================================================================== */
h1,h2,h3,h4,h5,h6,
.section-head h2,
.hero__eyebrow,.hero__sub,
.marquee__track,.kicker,.footer__love,.about__badgeYear,
.cake__name,.nav__links a,.btn{
  font-family:"Amatic SC","Fraunces",Georgia,serif !important;
  font-weight:700;
  letter-spacing:.02em;
}

/* veľkosti ozdobných Amatic prvkov (Amatic je úzky, preto väčšie) */
.section-head h2{ font-size:clamp(2.5rem,5.4vw,4rem); }
.hero__eyebrow{ font-size:1.2rem; letter-spacing:.05em }
.hero__sub{ font-size:1.6rem; line-height:1.28 }
.nav__links a{ font-size:1.34rem }
.btn{ font-size:1.26rem }
.cake__name{ font-size:1.5rem; line-height:1.02 }
.marquee__track{ font-size:1.75rem }

/* BEŽNÝ TEXT — čistý a dobre čitateľný (Manrope), mierne zvýraznený */
body{ font-family:"Manrope",system-ui,sans-serif !important; font-size:1.05rem; line-height:1.6; font-weight:500; letter-spacing:0 }
p,li,small,label,th,td,figcaption{ font-family:"Manrope",system-ui,sans-serif !important }
input,textarea,select{ font-family:"Manrope",system-ui,sans-serif !important; font-size:1rem; font-weight:500 }

/* =====================================================================
   MOBIL — dôkladná kompaktná optimalizácia (LEN ≤768px).
   Desktop ostáva nezmenený. Cieľ: husté, moderné, profesionálne rozloženie
   bez zbytočného whitespace a nadrozmerných komponentov.
   ===================================================================== */
@media (max-width:768px){
  body{ font-size:.96rem; line-height:1.5 }

  /* — navigácia: nižšia lišta, menšie logo — */
  .nav{ padding:.4rem .9rem }
  .nav__logo{ height:46px }
  .nav__right{ gap:.45rem }
  .langsw__btn{ padding:.3em .6em; font-size:.92rem }

  /* — hero: výrazne kompaktnejší — */
  .hero{ min-height:auto; padding:4.6rem 1rem 2.2rem }
  .hero__logoWrap{ width:min(250px,68vw) }
  .hero__eyebrow{ font-size:.82rem !important; letter-spacing:.04em }
  .hero__sub{ font-size:1.08rem !important; line-height:1.32; margin:0 auto 1rem; max-width:330px }
  .hero__cta{ gap:.5rem; width:100% }
  .hero__cta .btn{ flex:1 1 0 }

  /* — bežiaci pás: menší — */
  .marquee{ margin:1.2rem 0; padding:.45rem 0 }
  .marquee__track{ font-size:1rem !important; gap:.85rem }

  /* — sekcie: menšie vertikálne medzery, menej whitespace — */
  .about,.menu,.gallery,.order,.contact,.torta,.vyrobna{ padding-top:2rem; padding-bottom:2rem }
  .freefrom{ padding-top:2.3rem; padding-bottom:2.3rem }
  .about{ gap:1.3rem }
  .footer{ padding:1.7rem 1rem 1.4rem; margin-top:1.3rem }

  /* — nadpisy sekcií: menšie + tesnejšie — */
  .section-head{ margin-bottom:1.2rem }
  .section-head h2{ font-size:clamp(1.6rem,7vw,2.05rem) !important; line-height:1.05 }
  .section-head p{ font-size:.9rem }
  .kicker{ font-size:1.05rem }

  /* — tlačidlá: nižšie, kompaktné, stále dobre klikateľné — */
  .btn{ font-size:1.02rem !important; padding:.6em 1.2em }

  /* — O NÁS: kompaktnejšie — */
  .about__photo img{ border-radius:18px; aspect-ratio:4/3; max-height:46vh }
  .about__points{ grid-template-columns:1fr 1fr; gap:.5rem; margin-top:1rem }
  .about__points li{ font-size:.85rem; padding:.55em .75em }

  /* — FREE-FROM pás: 2 stĺpce, menšie karty — */
  .freefrom__grid{ grid-template-columns:1fr 1fr; gap:.6rem }
  .ff-card{ padding:1.1rem 1rem; border-radius:16px }
  .ff-card__ic{ font-size:1.5rem; width:46px; height:46px; margin-bottom:.55rem }
  .ff-card h3{ font-size:1.05rem; margin-bottom:.25rem }
  .ff-card p{ font-size:.82rem }
  .freefrom__note{ font-size:.8rem; margin-top:1.3rem }

  /* — PONUKA: 2 stĺpce, menšie karty — */
  .menu__search{ font-size:.92rem; padding:.65em 1em; min-width:0 }
  .menu__filters{ gap:.38rem }
  .chip{ font-size:.78rem; padding:.4em .85em; border-width:1.5px }
  .menu__grid{ grid-template-columns:repeat(2,1fr); gap:.5rem }
  .cake{ padding:.55rem; border-radius:14px }
  .cake__photo{ height:58px; margin:.05rem 0 .35rem }
  .cake__photo img{ max-height:calc(58px * var(--imgs,1)) }
  .cake__name{ font-size:1.08rem !important; line-height:1 }
  .cake__note{ font-size:.66rem }
  .cake__price{ font-size:.98rem }
  .cake__price small{ font-size:.58rem }
  .cake__alg{ padding-top:.35rem }
  .cake__bottom{ margin-top:.45rem }

  /* — GALÉRIA: menšie zaoblenie na mobile — */
  .gallery__item{ border-radius:13px }

  /* — OBJEDNÁVKA: kompaktný formulár, pohodlný jednou rukou — */
  .order__wrap{ gap:1rem }
  .order__cart,.order__form{ padding:1.05rem; border-radius:16px }
  .order__cart h3,.order__form h3{ font-size:1.18rem; margin-bottom:.65rem }
  .order__total{ margin-top:.9rem; padding-top:.8rem }
  .order__total strong{ font-size:1.35rem }
  .field{ margin-bottom:.65rem }
  .field2{ gap:.65rem }
  .field label{ font-size:.83rem; margin-bottom:.22rem }
  .field input,.field select,.field textarea{ padding:.6em .8em; border-radius:10px; border-width:1.5px }
  #orderMessage{ min-height:104px }
  .order__how{ padding:.7rem .8rem; gap:.55rem; font-size:.84rem; margin:.1rem 0 .8rem; border-radius:14px }
  .order__how span{ font-size:1.15rem }

  /* — KONFIGURÁTOR TORT: menšia vizualizácia + možnosti — */
  .torta__wrap{ gap:1rem }
  .tortaviz{ padding:1rem }
  .tortaviz__stage{ min-height:190px; padding:.7rem 0 .3rem }
  .tortaviz__portions{ font-size:.82rem; margin-bottom:.35rem }
  .tortaviz__price strong{ font-size:1.6rem }
  .torta__form{ padding:1.05rem }
  .torta__size{ padding:.5em .75em; border-width:1.5px }
  .torta__size .p{ font-size:.72rem }
  .torta__size .pr{ font-size:.98rem }
  .torta__uploadbtn{ font-size:.84rem; padding:.6em .95em }

  /* — KONTAKT — */
  .contact__info{ padding:1.3rem 1.1rem }
  .contact__info h2{ font-size:1.55rem; margin-bottom:.9rem }
  .contact__list{ gap:.65rem }
  .contact__list .ic{ width:38px; height:38px; font-size:1rem; border-radius:12px }
  .contact__map{ min-height:220px }
  .contact__map iframe{ min-height:220px }

  /* — modálne okná: menšie — */
  .modal__card{ padding:1.4rem }
  .modal__card h3{ font-size:1.35rem }
  .modal__steps{ padding:.9rem 1rem; gap:.6rem; margin:1rem 0 }
  .modal__steps div{ font-size:.86rem }
}

/* — telefóny: galéria 2 stĺpce (väčšie ako 3, ale stále malé náhľady) — */
@media (max-width:560px){
}

/* =====================================================================
   MOBIL — doladenie po spätnej väzbe (≤768px)
   ===================================================================== */
@media (max-width:768px){
  /* horná lišta: jemnejšie prepínanie jazyka, košík aj burger (nebijú do očí) */
  .langsw{ padding:2px }
  .langsw__btn{ font-size:.74rem; padding:.26em .52em }
  .cartBtn{ width:37px; height:37px; border-width:1.5px }
  .cartBtn svg{ width:18px; height:18px }
  .cartBtn__count{ min-width:16px; height:16px; font-size:.6rem; top:-4px; right:-4px }
  .nav__burger{ padding:6px 4px }
  .nav__burger span{ width:21px; height:2px; background:var(--lav-700) }

  /* hero vlna nech neprekrýva tlačidlá „Pozrieť ponuku/Objednať" */
  .hero{ padding-bottom:3.8rem }
  .hero__wave svg{ height:42px }

  /* výrobňa – menšie deň/noc tlačidlá, nech neprekrývajú fotku */
  .vyrobna__toggle{ bottom:9px; padding:.18rem }
  .vyrobna__toggle button{ padding:.3em .75em; font-size:.78rem }

  /* KONTAKT – celé menšie a kompaktnejšie */
  .contact__info{ padding:1.05rem 1rem }
  .contact__info h2{ font-size:1.38rem; margin-bottom:.65rem }
  .contact__list{ gap:.42rem }
  .contact__list li{ gap:.65rem }
  .contact__list .ic{ width:31px; height:31px; font-size:.88rem; border-radius:10px }
  .contact__list b{ font-size:.64rem }
  .contact__list a,.contact__list span{ font-size:.88rem }

  /* mapa – nech sa zmestí do bieleho rámčeka (neprelieva sa von) */
  .contact__map{ min-height:232px }
  .contact__map iframe{ min-height:232px }
  .mapconsent{ padding:.9rem .85rem; gap:.4rem }
  .mapconsent__pin{ font-size:1.45rem }
  .mapconsent p b{ font-size:.9rem }
  .mapconsent small{ font-size:.7rem; line-height:1.4 }
  .mapconsent .btn{ font-size:.92rem !important; padding:.48em 1.05em }
  .mapconsent__link{ font-size:.74rem }

  /* päta – menšia, logo nevychádza z rámčeka */
  .footer{ padding:1.5rem 1rem 1.3rem; margin-top:1.2rem }
  .footer__logo{ height:54px; margin-bottom:.6rem }
  .footer__love{ font-size:1.2rem }
  .footer p{ font-size:.84rem }
}

/* =====================================================================
   iOS Safari automaticky PRIBLÍŽI stránku, keď klikneš do poľa s písmom
   menším ako 16px (a stránka potom ostane posunutá). Preto majú na mobile
   všetky polia minimálne 16px – web sa už pri klikaní nikam nepohne.
   ===================================================================== */
@media (max-width:768px){
  input, textarea, select,
  .menu__search, .qin, .vstep .qin, .field input, .field select, .field textarea{
    font-size:16px;
  }
}

/* =====================================================================
   Vyhradené miesto pre obrázky – bez neho je stránka pri načítaní krátka
   a keď sa obrázky doťahujú, výška naskočí (na mobile to vyzeralo, akoby
   refresh preblesol cez galériu/objednávku). S pomerom strán je výška
   známa vopred a stránka sa nikam nehýbe.
   ===================================================================== */
.footer__logo{aspect-ratio:900/842}
.nav__logo{aspect-ratio:1}
.cakephoto__img{aspect-ratio:5/4}
.doodle img{aspect-ratio:1}

/* =====================================================================
   ŽIADNE NÁHODNÉ PRIBLIŽOVANIE
   touch-action:manipulation vypína priblíženie dvojklikom (rýchle dvojité
   ťuknutie pri klikaní do košíka, na tlačidlá, odkazy…). Rolovanie aj
   zámerné priblíženie dvoma prstami ostávajú zachované.
   ===================================================================== */
a, button, input, select, textarea, label,
.cake, .addBtn, .qin, .gtab, .gallery__item, .tab, .btn, .langsw__btn,
.quickfab__btn, .cartBtn, .nav__burger, .dp__day{
  touch-action:manipulation;
}
