:root{
  --bg:#fffaf3;
  --bg-alt:#f8eef0;
  --surface:#ffffff;
  --surface-line:rgba(18,52,73,0.10);
  --ink:#123449;
  --ink-soft:#4a6672;
  --ink-faint:#7f95a0;
  --teal:#7a2e3d;
  --teal-deep:#4e1b24;
  --teal-pale:#f2dee2;
  --blush:#e8b9c2;
  --blush-deep:#c98a97;
  --terracotta:#b5651d;
  --terracotta-deep:#8a4d16;
  --shadow:0 18px 40px -22px rgba(15,45,60,0.35);
  --hero-ink:#123449;
  --hero-teal:#7a2e3d;
  --hero-terracotta:#a85423;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:'Nunito',system-ui,sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,svg{max-width:100%;display:block;}
a{color:inherit;}
.wrap{max-width:1140px;margin:0 auto;padding:0 clamp(1.25rem,4vw,3rem);}
h1,h2,h3{font-family:'Fraunces',Georgia,serif;font-weight:600;text-wrap:balance;margin:0;}
.eyebrow{
  font-family:'Nunito',sans-serif;
  font-weight:800;
  font-size:0.72rem;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--terracotta);
}
.placeholder-note{
  font-size:0.82rem;
  color:var(--ink-faint);
  font-style:italic;
}
.ph{
  border-bottom:1.5px dashed var(--ink-faint);
  padding-bottom:0.05em;
}

/* ---------- header ---------- */
.site-header{
  position:sticky;top:0;z-index:50;
  background:color-mix(in srgb, var(--bg) 78%, transparent);
  backdrop-filter:blur(14px) saturate(1.3);
  -webkit-backdrop-filter:blur(14px) saturate(1.3);
  border-bottom:1px solid var(--surface-line);
}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;height:5rem;}
.brand-mini{display:flex;align-items:center;text-decoration:none;}
.brand-mini img{height:4.2rem;width:auto;display:block;}
nav.primary-nav ul{list-style:none;display:flex;gap:clamp(1rem,2.5vw,2.1rem);margin:0;padding:0;}
nav.primary-nav a{
  text-decoration:none;font-weight:700;font-size:0.92rem;color:var(--ink-soft);
  padding:0.4rem 0.1rem;border-bottom:2px solid transparent;transition:color .15s,border-color .15s;
}
nav.primary-nav a:hover,nav.primary-nav a:focus-visible{color:var(--teal-deep);border-color:var(--teal);}
.header-ctas{display:flex;align-items:center;gap:0.7rem;}
.nav-cta{
  display:inline-flex;align-items:center;gap:0.4rem;
  background:var(--teal);color:#fff !important;
  padding:0.55rem 1.05rem;border-radius:999px;font-weight:800;font-size:0.85rem;
  text-decoration:none;box-shadow:var(--shadow);transition:transform .15s,background .15s,border-color .15s;
  outline:none;
}
.nav-cta:hover{background:var(--teal-deep);transform:translateY(-1px);}
.nav-cta--ghost{
  background:transparent;color:var(--teal) !important;
  border:1.5px solid var(--teal);box-shadow:none;
}
.nav-cta--ghost:hover{background:var(--teal-pale);border-color:var(--teal-deep);color:var(--teal-deep) !important;}
.nav-toggle,.nav-burger{display:none;}

@media (max-width:820px){
  nav.primary-nav{
    position:fixed;inset:5rem 0 auto 0;
    background:var(--bg);border-bottom:1px solid var(--surface-line);
    transform:translateY(-8px);opacity:0;pointer-events:none;
    transition:opacity .18s ease,transform .18s ease;
  }
  nav.primary-nav ul{flex-direction:column;padding:1.25rem clamp(1.25rem,4vw,3rem) 1.75rem;gap:0.2rem;}
  nav.primary-nav a{display:block;padding:0.7rem 0.2rem;border-bottom:1px solid var(--surface-line);}
  .nav-burger{
    display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;
    width:2.75rem;height:2.75rem;cursor:pointer;
  }
  .nav-burger span{display:block;width:22px;height:2px;background:var(--ink);border-radius:2px;}
  .nav-toggle:checked ~ nav.primary-nav{transform:translateY(0);opacity:1;pointer-events:auto;}
  .header-cta{display:none;}
}
@media (min-width:821px){.nav-burger{display:none;}}

/* ---------- hero ---------- */
.hero{
  position:relative;overflow:hidden;
  padding:clamp(3.5rem,9vw,6.5rem) 0 clamp(6rem,12vw,8.5rem);
  background:var(--hero-cream,#fffaf3);
  color:var(--hero-ink);
  isolation:isolate;
}
.hero-wash{position:absolute;inset:0;z-index:-1;background:#fef9f2;}
.blob{position:absolute;border-radius:50%;filter:blur(70px);opacity:.75;}
.blob--teal{width:46vw;height:46vw;top:-16vw;left:-12vw;background:radial-gradient(circle at 40% 40%,#e3aab8,#7a2e3d 70%);}
.blob--teal2{width:34vw;height:34vw;top:6vw;right:-10vw;background:radial-gradient(circle at 60% 40%,#eec2cb,#a8556a 70%);opacity:.6;}
.blob--blush{width:38vw;height:30vw;top:14vw;left:28vw;background:radial-gradient(circle,#f3d7dc,#dba7b2 65%);opacity:.65;}
.blob--cream{width:30vw;height:26vw;bottom:-6vw;left:8vw;background:radial-gradient(circle,#fffdf8,#fdeee0 70%);opacity:.85;}

.hero .wrap{position:relative;display:grid;grid-template-columns:1.15fr 0.85fr;gap:clamp(2rem,5vw,3.5rem);align-items:center;}
.hero-copy .eyebrow{color:var(--hero-terracotta);}
.hero-title{
  font-family:'Alex Brush',cursive;
  font-weight:400;
  font-size:clamp(3.4rem,9vw,6.4rem);
  line-height:0.92;
  color:var(--hero-ink);
  margin:0.35rem 0 0.6rem;
}
.hero-tagline{
  font-family:'Fraunces',serif;font-style:italic;font-weight:500;
  font-size:clamp(1.15rem,2.1vw,1.4rem);
  color:var(--hero-ink);max-width:34ch;margin:0 0 1.6rem;
}
.hero-actions{display:flex;flex-wrap:wrap;gap:0.9rem;align-items:center;}
.btn{
  display:inline-flex;align-items:center;gap:0.5rem;
  padding:0.85rem 1.5rem;border-radius:999px;
  font-weight:800;font-size:0.95rem;text-decoration:none;
  transition:transform .15s ease,box-shadow .15s ease,background .15s ease;
  outline:none;
  border:none;background:none;cursor:pointer;font-family:inherit;
  appearance:none;-webkit-appearance:none;
}
.btn:focus-visible,.nav-cta:focus-visible{outline:2px solid var(--teal-deep);outline-offset:3px;}
.btn-primary{background:var(--hero-teal);color:#fff;box-shadow:0 14px 28px -14px rgba(122,46,61,.65);}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 18px 32px -14px rgba(122,46,61,.75);}
.btn-ghost{color:var(--hero-ink);font-weight:700;border-bottom:1.5px solid var(--hero-ink);border-radius:0;padding:0.85rem 0.1rem;}
.btn-ghost:hover{color:var(--hero-terracotta);border-color:var(--hero-terracotta);}

.hero-art{display:flex;justify-content:center;align-items:center;}
.mascot-photo{
  width:min(340px,85%);height:auto;
  filter:drop-shadow(0 20px 32px rgba(15,45,60,.28));
  opacity:0;transform:translateY(14px);
  animation:mascotIn .7s ease forwards .2s;
}
@keyframes mascotIn{to{opacity:1;transform:none;}}
@media (prefers-reduced-motion:reduce){
  .mascot-photo{opacity:1;transform:none;animation:none;}
}

.wave{display:block;width:100%;height:auto;position:absolute;left:0;bottom:0;z-index:1;}

@media (max-width:900px){
  .hero .wrap{grid-template-columns:1fr;text-align:left;}
  .hero-art{order:-1;max-width:200px;margin:0 0 1rem;}
}

/* ---------- section shells ---------- */
section{padding:clamp(3.5rem,8vw,6rem) 0;}
.section-alt{background:var(--bg-alt);}
.section-head{max-width:46rem;margin:0 0 2.75rem;}
.section-head h2{font-size:clamp(1.9rem,3.6vw,2.6rem);margin-top:0.4rem;}
.section-head .eyebrow{margin-bottom:0.2rem;display:block;}
.section-head p{color:var(--ink-soft);font-size:1.05rem;max-width:56ch;margin-top:0.85rem;}

/* ---------- about ---------- */
.about-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:start;}
.about-copy p{font-size:1.08rem;color:var(--ink-soft);max-width:52ch;}
.about-copy p+p{margin-top:1rem;}
.pillars{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:0.5rem;}
.pillar{
  background:var(--surface);border:1px solid var(--surface-line);border-radius:1.1rem;
  padding:1.1rem 1.2rem;box-shadow:var(--shadow);
}
.pillar .pillar-icon{width:26px;height:26px;color:var(--teal-deep);margin-bottom:0.55rem;}
.pillar h3{font-family:'Nunito',sans-serif;font-weight:800;font-size:0.98rem;margin-bottom:0.25rem;}
.pillar p{margin:0;font-size:0.87rem;color:var(--ink-soft);}

/* ---------- offer ---------- */
.offer-grid{display:flex;flex-wrap:wrap;gap:1.5rem;}
.offer-card{
  flex:1 1 270px;
  background:var(--surface);border:1px solid var(--surface-line);
  border-radius:1.4rem;padding:1.8rem 1.6rem;box-shadow:var(--shadow);
  transition:transform .18s ease,box-shadow .18s ease;
}
.offer-card:hover{transform:translateY(-4px);}
.offer-icon{
  width:52px;height:52px;border-radius:50%;
  background:var(--teal-pale);display:flex;align-items:center;justify-content:center;
  margin-bottom:1.1rem;
}
.offer-icon svg{width:28px;height:28px;stroke:var(--teal-deep);fill:none;}
.offer-card h3{font-size:1.15rem;font-weight:700;margin-bottom:0.4rem;}
.offer-card p{margin:0;color:var(--ink-soft);font-size:0.95rem;}

/* ---------- hours + contact ---------- */
.info-card{
  background:var(--surface);border:1px solid var(--surface-line);
  border-radius:1.6rem;box-shadow:var(--shadow);
  display:grid;grid-template-columns:1fr 1fr;overflow:hidden;
}
.info-col{padding:clamp(1.8rem,4vw,2.75rem);}
.info-col+.info-col{border-left:1px solid var(--surface-line);}
.info-col h3{font-size:1.3rem;margin-bottom:1.2rem;}
.hours-table{width:100%;border-collapse:collapse;font-size:0.98rem;}
.hours-table td{padding:0.5rem 0;border-bottom:1px dashed var(--surface-line);}
.hours-table td:last-child{text-align:right;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;}
.hours-table tr:last-child td{border-bottom:none;}
.contact-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0.95rem;}
.contact-list li{display:flex;gap:0.8rem;align-items:flex-start;font-size:0.98rem;}
.contact-list svg{width:20px;height:20px;flex:none;stroke:var(--terracotta);fill:none;margin-top:0.15rem;}
.contact-list a{text-decoration:none;font-weight:700;}
.contact-list a:hover{color:var(--teal-deep);}
.social-row{display:flex;gap:0.7rem;margin-top:1.4rem;}
.social-row a{
  width:2.75rem;height:2.75rem;border-radius:50%;background:var(--teal-pale);
  display:flex;align-items:center;justify-content:center;text-decoration:none;
  transition:background .15s;
}
.social-row a:hover{background:var(--teal);}
.social-row a:hover svg{stroke:#fff;}
.social-row svg{width:18px;height:18px;stroke:var(--teal-deep);fill:none;}
@media (max-width:760px){
  .info-card{grid-template-columns:1fr;}
  .info-col+.info-col{border-left:none;border-top:1px solid var(--surface-line);}
}

.kontakt-cta{text-align:center;margin-top:2.25rem;}
.kontakt-cta p{color:var(--ink-soft);margin:0 0 1rem;}

/* ---------- footer ---------- */
footer{padding:2.75rem 0 3.25rem;border-top:1px solid var(--surface-line);}
footer .wrap{display:flex;flex-wrap:wrap;gap:1.25rem;align-items:center;justify-content:space-between;}
.footer-brand{font-family:'Fraunces',serif;font-style:italic;font-weight:600;font-size:1.05rem;}
.legal-credit{font-size:0.88rem;font-weight:700;color:var(--ink-soft);}
.legal-credit a{color:var(--ink-soft);text-decoration:underline;text-decoration-color:var(--surface-line);text-underline-offset:2px;}
.legal-credit a:hover{color:var(--teal-deep);}
.legal-text{font-size:0.78rem;line-height:1.6;color:var(--ink-faint);width:100%;text-align:center;margin-top:0.35rem;}

@media (max-width:900px){.about-grid{grid-template-columns:1fr;}}

/* ---------- wizard / poptávka ---------- */
.wizard{max-width:44rem;margin:0 auto;}
.wizard-steps{display:flex;justify-content:center;list-style:none;margin:0 0 2.5rem;padding:0;}
.wizard-step{
  display:flex;align-items:center;gap:0.55rem;
  font-size:0.85rem;font-weight:700;color:var(--ink-faint);
  padding:0 0.9rem;position:relative;
}
.wizard-step:not(:last-child)::after{
  content:"";position:absolute;top:0.85rem;left:100%;
  width:2.2rem;height:1.5px;background:var(--surface-line);
}
.wizard-step-num{
  display:flex;align-items:center;justify-content:center;flex:none;
  width:1.7rem;height:1.7rem;border-radius:50%;
  background:var(--surface);border:1.5px solid var(--surface-line);
  font-size:0.78rem;color:var(--ink-faint);
  transition:background .2s,border-color .2s,color .2s;
}
.wizard-step.is-active{color:var(--ink);}
.wizard-step.is-active .wizard-step-num{background:var(--teal);border-color:var(--teal);color:#fff;}
.wizard-step.is-done .wizard-step-num{background:var(--teal-pale);border-color:var(--teal);color:var(--teal-deep);}

.wizard-form{background:var(--surface);border:1px solid var(--surface-line);border-radius:1.6rem;padding:clamp(1.6rem,4vw,2.75rem);box-shadow:var(--shadow);}
.wizard-panel{display:none;}
.wizard-panel.is-active{display:block;animation:panelIn .35s ease;}
@keyframes panelIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}
@media (prefers-reduced-motion:reduce){.wizard-panel.is-active{animation:none;}}

.option-grid{display:flex;flex-wrap:wrap;gap:0.85rem;margin-bottom:0.5rem;}
.option-input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none;}
.option-card{
  flex:1 1 150px;display:flex;flex-direction:column;align-items:center;gap:0.6rem;
  text-align:center;padding:1.1rem 0.9rem;border-radius:1.1rem;
  border:1.5px solid var(--surface-line);background:var(--bg);
  cursor:pointer;transition:border-color .15s,background .15s,transform .15s;
  font-size:0.92rem;font-weight:700;color:var(--ink-soft);
}
.option-icon{
  width:44px;height:44px;border-radius:50%;flex:none;
  background:var(--surface);box-shadow:0 4px 10px -6px rgba(15,45,60,.3);
  display:flex;align-items:center;justify-content:center;
}
.option-icon svg{width:24px;height:24px;stroke:var(--teal);fill:none;}
.option-card:hover{border-color:var(--teal);transform:translateY(-2px);}
.option-input:checked + .option-card{border-color:var(--teal);background:var(--teal-pale);color:var(--ink);}
.option-input:focus-visible + .option-card{outline:2px solid var(--teal);outline-offset:2px;}

.option-grid--chips{gap:0.6rem;}
.option-chip{
  padding:0.6rem 1.3rem;border-radius:999px;border:1.5px solid var(--surface-line);
  background:var(--bg);font-weight:700;font-size:0.9rem;color:var(--ink-soft);
  cursor:pointer;transition:border-color .15s,background .15s;
}
.option-input:checked + .option-chip{border-color:var(--teal);background:var(--teal-pale);color:var(--ink);}
.option-input:focus-visible + .option-chip{outline:2px solid var(--teal);outline-offset:2px;}

.field{margin-bottom:1.3rem;}
.field label,.field-label{display:block;font-weight:700;font-size:0.9rem;margin-bottom:0.5rem;color:var(--ink);}
.field-label{margin-top:1.5rem;}
.field input[type="date"],.field input[type="text"],.field textarea{
  width:100%;padding:0.75rem 1rem;border-radius:0.85rem;border:1.5px solid var(--surface-line);
  background:var(--bg);font-family:inherit;font-size:0.98rem;color:var(--ink);
  transition:border-color .15s;
}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--teal);}
.field textarea{resize:vertical;min-height:4.5rem;}

.wizard-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.75rem;}
.wizard-warn{color:var(--terracotta-deep);font-weight:700;font-size:0.88rem;margin:0 0 1rem;}
.wizard-note{color:var(--teal-deep);font-weight:700;font-size:0.9rem;margin:1.1rem 0 0;text-align:center;}
.wizard-summary{background:var(--bg-alt);border-radius:1rem;padding:1rem 1.2rem;margin-bottom:1.5rem;font-size:0.9rem;color:var(--ink-soft);}
.wizard-summary strong{color:var(--ink);}
.wizard-summary p{margin:0.25rem 0;}

@media (max-width:560px){
  .wizard-step-label{display:none;}
  .wizard-step{padding:0 0.5rem;}
  .wizard-step:not(:last-child)::after{width:1.4rem;}
}

.back-link{display:inline-block;font-weight:700;font-size:0.9rem;color:var(--ink-soft);text-decoration:none;margin-bottom:1.5rem;}
.back-link:hover{color:var(--teal-deep);}

/* ---------- výběr kategorie → rozbalení konkrétní nabídky ---------- */
.picker{position:relative;}
.option-card{position:relative;will-change:transform,opacity;}
/* mizející (nevybrané) kategorie */
.option-card.is-out{opacity:0;transform:scale(.94) translateY(-6px);pointer-events:none;filter:blur(1px);}
.option-grid.is-condensed .option-card.is-out{display:none;}
.option-grid.is-condensed{gap:0;}
/* vybraná kategorie jako široký pruh */
.option-card.is-chosen{
  flex:1 1 100%;flex-direction:row;align-items:center;justify-content:flex-start;
  gap:0.9rem;text-align:left;padding:0.9rem 1.1rem;
  border-color:var(--teal);background:var(--teal-pale);color:var(--ink);
  animation:chosenIn .4s cubic-bezier(.2,.8,.2,1);
}
.option-card.is-chosen:hover{transform:none;}
.option-card.is-chosen .option-icon{width:38px;height:38px;}
.option-card.is-chosen .option-icon svg{width:20px;height:20px;}
.option-card.is-chosen::after{
  content:"Vybráno ✓";margin-left:auto;font-size:0.8rem;font-weight:800;
  color:var(--teal-deep);letter-spacing:.02em;
}
@keyframes chosenIn{from{opacity:.35;transform:translateY(-4px);}to{opacity:1;transform:none;}}

.subpicker{margin-top:1.1rem;opacity:1;transform:none;transition:opacity .22s ease,transform .22s ease;}
.subpicker.is-leaving{opacity:0;transform:translateY(-6px);}
.subpicker-bar{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin:0 0 0.9rem;}
.subpicker-title{margin:0;font-weight:800;font-size:0.95rem;color:var(--ink);}
.subpicker-title span{display:block;font-weight:600;font-size:0.8rem;color:var(--ink-faint);margin-top:.15rem;}
.subpicker-reset{
  flex:none;border:1.5px solid var(--surface-line);background:var(--surface);border-radius:999px;
  padding:0.45rem 1rem;font-family:inherit;font-size:0.8rem;font-weight:700;color:var(--ink-soft);
  cursor:pointer;transition:border-color .15s,color .15s,background .15s;
}
.subpicker-reset:hover{border-color:var(--teal);color:var(--teal-deep);background:var(--teal-pale);}
.subpicker-reset:focus-visible{outline:2px solid var(--teal);outline-offset:2px;}

.subpanel{display:none;}
.subpanel.is-active{display:block;}
.subpanel-note{margin:0 0 0.9rem;font-size:0.88rem;color:var(--ink-soft);}
.subitem-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:0.6rem;}
.subitem{
  position:relative;display:flex;align-items:center;gap:0.5rem;
  border:1.5px solid var(--surface-line);border-radius:0.9rem;background:var(--bg);
  padding:0.5rem 0.6rem 0.5rem 0.85rem;min-height:3rem;
  transition:border-color .15s,background .15s,box-shadow .15s,transform .15s;
  animation:subItemIn .4s cubic-bezier(.2,.8,.2,1) both;
  animation-delay:calc(60ms + var(--i,0) * 40ms);
}
@keyframes subItemIn{from{opacity:0;transform:translateY(10px) scale(.97);}to{opacity:1;transform:none;}}
.subitem:hover{border-color:var(--blush-deep);transform:translateY(-1px);}
.subitem.is-checked{border-color:var(--teal);background:var(--teal-pale);box-shadow:0 8px 18px -14px rgba(122,46,61,.8);}
.subitem-input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none;}
.subitem-label{display:flex;align-items:center;gap:0.6rem;flex:1 1 auto;cursor:pointer;min-width:0;}
.subitem-check{
  flex:none;width:1.25rem;height:1.25rem;border-radius:0.45rem;
  border:1.5px solid var(--surface-line);background:var(--surface);
  display:flex;align-items:center;justify-content:center;
  transition:background .18s,border-color .18s;
}
.subitem-check svg{width:12px;height:12px;fill:none;stroke:#fff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;opacity:0;transform:scale(.4);transition:opacity .15s,transform .2s cubic-bezier(.2,1.5,.4,1);}
.subitem-input:checked + .subitem-label .subitem-check{background:var(--teal);border-color:var(--teal);}
.subitem-input:checked + .subitem-label .subitem-check svg{opacity:1;transform:none;}
.subitem-input:focus-visible + .subitem-label .subitem-check{outline:2px solid var(--teal);outline-offset:2px;}
.subitem-name{font-weight:700;font-size:0.9rem;color:var(--ink-soft);line-height:1.3;}
.subitem.is-checked .subitem-name{color:var(--ink);}
.subitem-qty{
  flex:none;display:flex;align-items:center;gap:0.1rem;margin-left:auto;
  background:var(--surface);border:1.5px solid var(--surface-line);border-radius:999px;padding:0.1rem;
  opacity:0;transform:scale(.8);pointer-events:none;visibility:hidden;
  transition:opacity .18s ease,transform .22s cubic-bezier(.2,1.4,.4,1),visibility .18s;
}
/* visibility drží skryté počítadlo i mimo pořadí tabulátoru */
.subitem-input:checked ~ .subitem-qty{opacity:1;transform:none;pointer-events:auto;visibility:visible;}
.subitem-qty button{
  width:1.5rem;height:1.5rem;border:0;border-radius:50%;background:transparent;
  font-family:inherit;font-size:0.95rem;font-weight:800;line-height:1;color:var(--teal);
  cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s;
}
.subitem-qty button:hover{background:var(--teal-pale);}
.subitem-qty button:focus-visible{outline:2px solid var(--teal);outline-offset:1px;}
.subitem-count{
  width:2.2rem;min-width:2.2rem;padding:0.15rem 0;margin:0;border:0;border-radius:0.5rem;
  background:transparent;text-align:center;font-family:inherit;font-size:0.82rem;font-weight:800;
  color:var(--ink);font-variant-numeric:tabular-nums;appearance:none;
  transition:background .15s,box-shadow .15s;
}
.subitem-count:focus{outline:none;background:var(--surface);box-shadow:0 0 0 2px var(--teal);}

.subpicker-hint{margin:0.9rem 0 0;font-size:0.82rem;color:var(--ink-faint);}

@media (max-width:560px){
  .option-card.is-chosen::after{content:"✓";}
  .subitem-grid{grid-template-columns:1fr;}
}
@media (prefers-reduced-motion:reduce){
  .option-card.is-chosen,.subitem{animation:none;}
  .subitem,.subitem-qty,.subpicker,.option-card{transition:none;}
}

/* ---------- výběr z více kategorií najednou ---------- */
.option-badge{
  position:absolute;top:0.5rem;right:0.6rem;
  min-width:1.35rem;height:1.35rem;padding:0 0.35rem;border-radius:999px;
  background:var(--teal);color:#fff;font-size:0.72rem;font-weight:800;line-height:1;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 10px -6px rgba(15,45,60,.55);
}
.option-badge.is-pop{animation:badgePop .3s cubic-bezier(.2,1.5,.4,1);}
@keyframes badgePop{from{opacity:.2;transform:scale(.4);}to{opacity:1;transform:none;}}
.option-card.is-chosen .option-badge{display:none;}

.subpicker-bar-actions{display:flex;align-items:center;gap:0.45rem;flex-wrap:wrap;}
.subpicker-title .subpicker-sum{display:block;margin-top:0.35rem;font-size:0.82rem;font-weight:800;color:var(--teal-deep);}
.subpicker-clear{
  flex:none;border:1.5px solid transparent;background:transparent;border-radius:999px;
  padding:0.45rem 0.85rem;font-family:inherit;font-size:0.8rem;font-weight:700;
  color:var(--terracotta-deep);cursor:pointer;transition:border-color .15s,background .15s;
}
.subpicker-clear:hover{border-color:var(--terracotta);background:var(--bg-alt);}
.subpicker-clear:focus-visible{outline:2px solid var(--terracotta);outline-offset:2px;}

.subpanel{transition:opacity .15s ease,transform .15s ease;}
.subpicker.is-swapping .subpanel.is-active{opacity:0;transform:translateY(-6px);}

.subpicker-more{margin-top:1.4rem;padding-top:1.1rem;border-top:1px dashed var(--surface-line);}
.subpicker-more-title{margin:0 0 0.6rem;font-size:0.85rem;font-weight:800;color:var(--ink-soft);}
.cat-pill-row{display:flex;flex-wrap:wrap;gap:0.45rem;}
.cat-pill{
  display:inline-flex;align-items:center;gap:0.4rem;
  border:1.5px solid var(--surface-line);background:var(--surface);border-radius:999px;
  padding:0.4rem 0.9rem;font-family:inherit;font-size:0.82rem;font-weight:700;
  color:var(--ink-soft);cursor:pointer;
  transition:border-color .15s,background .15s,color .15s,transform .15s;
}
.cat-pill:hover{border-color:var(--teal);background:var(--teal-pale);color:var(--teal-deep);transform:translateY(-1px);}
.cat-pill:focus-visible{outline:2px solid var(--teal);outline-offset:2px;}
.cat-pill.has-pick{border-color:var(--blush-deep);}
.cat-pill.is-current,.cat-pill.is-current:hover{
  background:var(--teal);border-color:var(--teal);color:#fff;transform:none;cursor:default;
}
.cat-pill-count{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:1.15rem;height:1.15rem;padding:0 0.3rem;border-radius:999px;
  background:var(--teal);color:#fff;font-size:0.7rem;font-weight:800;line-height:1;
}
.cat-pill.is-current .cat-pill-count{background:rgba(255,255,255,.3);}

/* prvky s display: musí respektovat atribut hidden */
.option-badge[hidden],.cat-pill-count[hidden],.subpicker-sum[hidden],.subpicker-clear[hidden]{display:none;}

@media (max-width:560px){
  .subpicker-bar-actions{width:100%;justify-content:space-between;}
}
@media (prefers-reduced-motion:reduce){
  .option-badge.is-pop{animation:none;}
  .subpanel,.cat-pill,.subitem-count{transition:none;}
}

/* množství — jen u kategorie „Nevím, poraďte mi“ */
.subpanel-qty{
  margin-top:1.2rem;padding-top:1rem;border-top:1px dashed var(--surface-line);
  animation:subItemIn .4s cubic-bezier(.2,.8,.2,1) both;animation-delay:.34s;
}
.subpanel-qty .field-label{margin-top:0;}
.subpanel-qty .option-grid--chips{margin-bottom:0;}
@media (prefers-reduced-motion:reduce){.subpanel-qty{animation:none;}}

/* panel s jednou volbou (příležitost) — kulaté přepínače místo zaškrtávátek */
.subitem-grid--single .subitem-check{border-radius:50%;}
.subitem-grid--single .subitem-check svg{width:11px;height:11px;}

/* hláška o zrušení předchozího výběru při přechodu na „Nevím, poraďte mi“ */
.subpicker-cleared{
  margin:0 0 0.9rem;padding:0.6rem 0.9rem;
  border-left:3px solid var(--terracotta);border-radius:0.6rem;
  background:var(--bg-alt);color:var(--ink-soft);
  font-size:0.84rem;font-weight:700;
  animation:subItemIn .35s cubic-bezier(.2,.8,.2,1) both;
}
@media (prefers-reduced-motion:reduce){.subpicker-cleared{animation:none;}}

/* ---------- karty dobrot s náhledem ---------- */
.subitem-grid--cards{grid-template-columns:repeat(auto-fill,minmax(11.25rem,1fr));gap:0.75rem;}
.subitem--card{
  flex-direction:column;align-items:stretch;gap:0;padding:0;min-height:0;
  overflow:hidden;border-radius:1.1rem;background:var(--surface);
}
.subitem--card:nth-child(4n+1){--ph:#f8eef0;}
.subitem--card:nth-child(4n+2){--ph:#fbefe3;}
.subitem--card:nth-child(4n+3){--ph:#f3ece6;}
.subitem--card:nth-child(4n+4){--ph:#f5e6ea;}
.subitem--card:hover{transform:translateY(-2px);box-shadow:0 14px 26px -18px rgba(15,45,60,.45);}
.subitem--card.is-checked{box-shadow:0 14px 26px -16px rgba(122,46,61,.55);}
.subitem--card .subitem-label{flex-direction:column;align-items:stretch;gap:0;flex:1 1 auto;}

.subitem-media{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:var(--bg-alt);}
.subitem-media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.2,.8,.2,1);}
.subitem--card:hover .subitem-media img{transform:scale(1.05);}
.subitem-media.is-empty{
  display:flex;align-items:center;justify-content:center;
  background:radial-gradient(120% 95% at 28% 18%,#fff 0%,var(--ph,#f8eef0) 62%);
}
.subitem-ph{width:38%;max-width:4.25rem;height:auto;fill:none;stroke:var(--teal);stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round;opacity:.5;transition:transform .4s cubic-bezier(.2,.8,.2,1),opacity .2s;}
.subitem--card:hover .subitem-ph{transform:scale(1.08) rotate(-3deg);opacity:.7;}

.subitem--card .subitem-check{
  position:absolute;top:0.55rem;left:0.55rem;width:1.6rem;height:1.6rem;border-radius:50%;
  background:rgba(255,255,255,.94);border-color:rgba(18,52,73,.14);
  box-shadow:0 4px 10px -6px rgba(15,45,60,.5);
}
.subitem--card .subitem-check svg{width:13px;height:13px;}

.subitem-body{display:flex;flex-direction:column;gap:0.2rem;padding:0.7rem 0.8rem 0.25rem;}
.subitem--card .subitem-name{font-size:0.93rem;color:var(--ink);}
/* popis se nikdy nezkracuje — karty v řadě se srovnají na výšku nejdelšího textu */
.subitem-desc{
  font-size:0.78rem;font-weight:600;line-height:1.4;color:var(--ink-faint);
  overflow-wrap:break-word;
}

.subitem-foot{display:flex;align-items:center;min-height:2.7rem;padding:0.35rem 0.8rem 0.75rem;}
.subitem-add{
  display:inline-flex;align-items:center;padding:0.32rem 0.85rem;border-radius:999px;
  border:1.5px solid var(--surface-line);font-size:0.8rem;font-weight:800;color:var(--teal);
  cursor:pointer;transition:background .15s,border-color .15s;
}
.subitem--card:hover .subitem-add{border-color:var(--teal);background:var(--teal-pale);}
.subitem-input:checked ~ .subitem-foot .subitem-add{display:none;}
.subitem--card .subitem-qty{display:none;margin-left:0;}
.subitem-input:checked ~ .subitem-foot .subitem-qty{
  display:flex;opacity:1;transform:none;pointer-events:auto;visibility:visible;
  animation:qtyIn .25s cubic-bezier(.2,1.4,.4,1);
}
@keyframes qtyIn{from{opacity:0;transform:scale(.85);}to{opacity:1;transform:none;}}
.subitem-unit{font-size:0.75rem;font-weight:700;color:var(--ink-faint);padding:0 0.45rem 0 0.05rem;}

.subitem-zoom{
  position:absolute;top:0.55rem;right:0.55rem;z-index:1;
  width:1.9rem;height:1.9rem;border:0;border-radius:50%;
  background:rgba(255,255,255,.94);color:var(--teal);cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 10px -6px rgba(15,45,60,.5);
  opacity:0;transform:scale(.85);transition:opacity .18s,transform .18s;
}
.subitem-zoom svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;}
.subitem--card:hover .subitem-zoom,.subitem-zoom:focus-visible{opacity:1;transform:none;}
.subitem-zoom:focus-visible{outline:2px solid var(--teal);outline-offset:2px;}
@media (hover:none){.subitem-zoom{opacity:1;transform:none;}}

/* zvětšený náhled */
.preview{
  width:100%;max-width:min(34rem,calc(100vw - 2rem));padding:0;border:0;border-radius:1.4rem;
  background:var(--surface);color:var(--ink);overflow:hidden;
  box-shadow:0 30px 60px -20px rgba(15,45,60,.55);
}
.preview::backdrop{background:rgba(18,52,73,.5);backdrop-filter:blur(3px);}
.preview[open]{animation:previewIn .3s cubic-bezier(.2,.8,.2,1);}
@keyframes previewIn{from{opacity:0;transform:translateY(12px) scale(.97);}to{opacity:1;transform:none;}}
.preview-img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--bg-alt);}
.preview-body{padding:1.1rem 1.3rem 1.35rem;}
.preview-name{margin:0;font-family:'Fraunces',serif;font-size:1.35rem;font-weight:600;line-height:1.25;}
.preview-desc{margin:0.35rem 0 1.15rem;font-size:0.92rem;color:var(--ink-soft);}
.preview-close{
  position:absolute;top:0.7rem;right:0.7rem;width:2.2rem;height:2.2rem;border:0;border-radius:50%;
  background:rgba(255,255,255,.94);color:var(--ink);font-family:inherit;font-size:1.35rem;line-height:1;
  cursor:pointer;box-shadow:0 4px 10px -6px rgba(15,45,60,.5);
}
.preview-close:focus-visible{outline:2px solid var(--teal);outline-offset:2px;}
.preview-toggle.is-on{background:var(--teal-pale);color:var(--teal-deep);box-shadow:none;}

@media (max-width:560px){
  .subitem-grid.subitem-grid--cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:0.55rem;}
  .subitem-body{padding:0.55rem 0.6rem 0.2rem;}
  .subitem--card .subitem-name{font-size:0.86rem;}
  .subitem-foot{padding:0.3rem 0.6rem 0.6rem;}
  .subitem-unit{display:none;}
}
@media (prefers-reduced-motion:reduce){
  .subitem-media img,.subitem-ph,.subitem-zoom{transition:none;}
  .subitem-input:checked ~ .subitem-foot .subitem-qty,.preview[open]{animation:none;}
}

/* ---------- odeslání objednávky na server ---------- */
.field-hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden;}
.wizard-warn--send{display:flex;flex-wrap:wrap;align-items:center;gap:0.4rem 0.8rem;padding:0.75rem 1rem;border-radius:0.9rem;background:#fbece6;}
.wizard-warn--send[hidden]{display:none;}
.wizard-mail{border:0;background:none;padding:0;font:inherit;font-weight:800;color:var(--teal-deep);text-decoration:underline;cursor:pointer;}
.wizard-done{
  background:var(--surface);border:1px solid var(--surface-line);border-radius:1.6rem;
  padding:clamp(2rem,5vw,3rem) clamp(1.4rem,4vw,2.75rem);box-shadow:var(--shadow);
  text-align:center;animation:panelIn .45s ease;outline:none;
}
.wizard-done h2{margin:0.4rem 0 0.8rem;font-size:clamp(1.5rem,4vw,1.9rem);color:var(--ink);}
.wizard-done p{margin:0.3rem 0;color:var(--ink-soft);}
.wizard-done strong{color:var(--ink);}
.wizard-done .btn{margin-top:1.4rem;}
.wizard-done-icon{
  display:inline-flex;align-items:center;justify-content:center;width:4rem;height:4rem;border-radius:50%;
  background:var(--teal-pale);color:var(--teal);animation:doneIcon .5s cubic-bezier(.2,1.5,.4,1) .1s both;
}
.wizard-done-icon svg{width:2rem;height:2rem;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;}
@keyframes doneIcon{from{opacity:0;transform:scale(.4);}to{opacity:1;transform:none;}}
@media (prefers-reduced-motion:reduce){.wizard-done,.wizard-done-icon{animation:none;}}
