
:root {
  color-scheme: light;
  /* Mujvit Brand Guidelines, official colors (sjednoceno s Krev report) */
  --brand-primary: #289546;       /* Mujvit GREEN */
  --brand-primary-dark: #1f7037;
  --brand-primary-soft: #e8f3ec;
  --brand-red: #EE2E27;            /* Mujvit RED */
  --brand-violet: #9E0051;         /* Mujvit VIOLET */
  --brand-blue: #034EA2;           /* Mujvit BLUE */
  --brand-cyan: #00AAE5;           /* Mujvit CYAN */
  --brand-lime: #BDCF3C;           /* Mujvit LIME */
  --brand-yellow: #FFD800;         /* Mujvit YELLOW */
  --brand-orange: #F8961F;         /* Mujvit ORANGE (akcent pro Vít komentář) */
  --brand-gray: #E6E7E8;           /* Mujvit GRAY */
  --brand-cream: #FFF9F0;          /* Vít summary cream (z Krev) */
  --brand-bg: #FAFAFA;             /* Krev background */
  --brand-gray-1: #E5E7EB;
  --brand-gray-2: #c4c1b8;
  --brand-text: #1A2332;           /* mv-ink */
  --brand-text-soft: #6B6D70;      /* mv-gray-dark */
  --brand-text-medium: #A8AAAD;    /* mv-gray-medium */
  --brand-warm: #F8961F;
  --warning: #F8961F;
  --success: #289546;
  --shadow-card: 0 2px 12px rgba(0,0,0,0.06);
  --shadow-card-hover: 0 4px 20px rgba(0,0,0,0.1);
  --shadow-soft: 0 1px 3px rgba(0,0,0,0.04);
}
* {box-sizing: border-box; margin: 0; padding: 0;}
body {
  font-family: 'Poppins', sans-serif;
  background: var(--brand-cream);
  color: var(--brand-text);
  line-height: 1.6;
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
::selection {background: var(--brand-primary-soft); color: var(--brand-primary-dark);}
/* Mobile-first container (80% users mobile) */
.container, .container-wide {
  width: 100%; margin: 0 auto; padding: 16px;
}
/* Vít 21.5.2026: jediný breakpoint 980px, mobil = full-width, desktop = max-width */
@media (min-width: 980px) {
  .container {max-width: 860px; padding: 32px 24px;}
  .container-wide {max-width: 980px; padding: 32px 24px;}
}

/* Progress */
.progress-bar {
  width: 100%; height: 6px; background: var(--brand-gray-1);
  border-radius: 3px; margin-bottom: 8px; overflow: hidden;
}
.progress-fill {
  height: 100%; background: var(--brand-primary);
  border-radius: 3px; transition: width 0.3s;
}
/* Stage indicator, mobile-first */
.stages {
  display: flex; gap: 4px; margin-bottom: 20px;
  font-size: 11px;
}
.stage-pill {
  flex: 1; text-align: center; padding: 8px 4px;
  border-radius: 100px; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  border: 1.5px solid var(--brand-gray-1); background: white;
  font-weight: 500; color: var(--brand-text-soft);
  display: flex; align-items: center; justify-content: center; gap: 4px;
  position: relative; min-height: 32px;
}
.stage-pill.active {
  background: var(--brand-primary); color: white;
  border-color: var(--brand-primary); font-weight: 700;
  box-shadow: 0 4px 14px rgba(40, 149, 70, 0.25);
}
.stage-pill.done {
  background: var(--brand-primary-soft); color: var(--brand-primary);
  border-color: var(--brand-primary-soft); font-weight: 600;
}
.stage-pill.done::before {
  content: "\2713\FE0E"; font-family: -apple-system, "system-ui", "Segoe UI", Roboto, sans-serif; font-weight: 700; margin-right: 2px;
}
@media (min-width: 600px) {
  .stages {gap: 8px; margin-bottom: 28px; font-size: 13px;}
  .stage-pill {padding: 10px 8px; min-height: 38px;}
  .stage-pill.active {transform: scale(1.04);}
}

/* Logo header, mobile-first */
.brand-header {
  padding: 12px 0 16px;
  margin-bottom: 4px;
}
.brand-header img {height: 36px; width: auto; display: block;}
.brand-logo {font-size: 26px; font-weight: 800; color: var(--brand-primary); letter-spacing: -0.8px;}
.brand-tagline {color: var(--brand-text-soft); font-size: 14px; margin-top: 4px;}
@media (min-width: 600px) {
  .brand-header {padding: 16px 0 24px;}
  .brand-header img {height: 44px;}
  .brand-logo {font-size: 32px;}
}

/* Question card, mobile-first */
.question {
  background: white;
  border-radius: 14px;
  padding: 24px 20px;
  box-shadow: var(--shadow-card);
}
.question h2 {
  font-size: 22px; font-weight: 700;
  color: var(--brand-text);
  margin-bottom: 16px;
  line-height: 1.3;
  letter-spacing: -0.3px;
}
@media (min-width: 600px) {
  .question {padding: 32px 28px; border-radius: 16px;}
  .question h2 {font-size: 28px; margin-bottom: 20px;}
}
@media (min-width: 900px) {
  .question {padding: 40px 36px;}
  .question h2 {font-size: 32px;}
}
/* Vít 19.5.2026: Searchable checkbox (Q23 onemocnění), search input + scrollable list + "Jiné napište nám" */
.sc-wrap {display: flex; flex-direction: column; gap: 10px;}
.sc-input-row {position: relative;}
.sc-search-input {
  width: 100%; padding: 12px 16px 12px 42px;
  border: 1.5px solid var(--brand-gray-1); border-radius: 12px;
  font-size: 15px; font-family: inherit; background: #fafafa;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23289546' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='7'/><line x1='21' y1='21' x2='16.65' y2='16.65'/></svg>");
  background-repeat: no-repeat;
  background-position: 14px center;
  transition: all 0.15s;
}
.sc-search-input:focus {outline: none; border-color: var(--brand-primary); background-color: white; box-shadow: 0 0 0 3px var(--brand-primary-soft);}
.sc-selected-chips {
  display: flex; flex-wrap: wrap; gap: 6px;
  min-height: 4px;
}
.sc-selected-chips:not(:empty) {
  padding: 8px 10px;
  background: var(--brand-primary-soft);
  border-radius: 10px;
}
.sc-chip {
  display: inline-flex; align-items: center; gap: 6px;
  background: white; color: var(--brand-text);
  padding: 4px 6px 4px 10px; border-radius: 999px;
  font-size: 12.5px; font-weight: 600;
  border: 1px solid var(--brand-primary);
}
.sc-chip button {
  background: var(--brand-primary); color: white;
  border: none; border-radius: 50%;
  width: 18px; height: 18px;
  cursor: pointer; font-size: 12px; line-height: 1;
  display: inline-flex; align-items: center; justify-content: center;
  font-family: inherit;
}
.sc-list-wrap {
  border: 1.5px solid var(--brand-gray-1); border-radius: 12px;
  background: white;
  overflow: hidden;
}
.sc-list {
  max-height: min(48vh, 380px);  /* Vit 13.7.: vic videt, lepsi scroll */
  overflow-y: auto;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;  /* nescrolluje se pod tim cela stranka */
}
.sc-list::-webkit-scrollbar {width: 8px;}
.sc-list::-webkit-scrollbar-track {background: var(--brand-gray-1); border-radius: 4px;}
.sc-list::-webkit-scrollbar-thumb {background: var(--brand-primary); border-radius: 4px;}
.sc-item {
  display: flex; align-items: center; gap: 12px;
  padding: 11px 16px;
  cursor: pointer;
  border-bottom: 1px solid var(--brand-gray-1);
  transition: background 0.1s;
}
.sc-item:last-child {border-bottom: none;}@media (hover: hover) and (pointer: fine){
.sc-item:hover {background: var(--brand-primary-soft);}}
.sc-item.selected {background: var(--brand-primary-soft);}
.sc-check {
  width: 18px; height: 18px;
  border: 1.5px solid var(--brand-gray-2);
  border-radius: 4px;
  flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center;
  background: white;
  transition: all 0.15s;
}
.sc-item.selected .sc-check {
  background: var(--brand-primary);
  border-color: var(--brand-primary);
}
.sc-item.selected .sc-check::after {
  content: "\2713\FE0E"; color: white; font-size: 12px; font-weight: 700; font-family: -apple-system, "system-ui", "Segoe UI", Roboto, sans-serif; /* Vit 14.7.: kanon fajfka */
}
.sc-label {font-size: 14px; color: var(--brand-text); line-height: 1.35;}
.sc-no-results {
  padding: 16px;
  text-align: center;
  color: var(--brand-text-soft);
  font-size: 13px;
}
/* Vít 19.5.2026: dolní akce v Q23, 2 buttony vedle sebe: Jiné (primary CTA vlevo) | Nechci odpovídat (decentní vpravo) */
.sc-bottom-actions {
  display: flex; gap: 10px; align-items: center;
  margin-top: 4px;
  flex-wrap: wrap;
  justify-content: space-between;
}
.sc-other-cta { /* Vit 14.7.: decentni (nesviti zelene) - styl jako drivejsi carkovane tlacitko */
  display: inline-flex; align-items: center; gap: 8px;
  background: transparent; color: var(--brand-text-soft);
  border: 1.5px dashed var(--brand-gray-2);
  padding: 10px 14px; border-radius: 12px;
  cursor: pointer; font-family: inherit; font-size: 12.5px; font-weight: 500;
  transition: all 0.15s;
}@media (hover: hover) and (pointer: fine){
.sc-other-cta:hover {color: var(--brand-text); border-color: var(--brand-gray-3); background: #fafafa;}}
.sc-other-icon {
  background: var(--brand-primary-soft); color: var(--brand-primary);
  width: 20px; height: 20px;
  border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 14px; font-weight: 900;
  flex-shrink: 0;
}
/* Decentní dashed šedý "Nechci odpovídat", stejný styl jako "Neužívám nic z naší databáze" u léků */
.sc-skip-btn,
.q-skip-btn {
  background: transparent;
  color: var(--brand-text-soft);
  border: 1.5px dashed var(--brand-gray-2);
  padding: 10px 14px; border-radius: 12px; /* Vit 13.7.: kanon hranate, mensi at se vejde */
  font-weight: 500; cursor: pointer; font-size: 12.5px;
  font-family: inherit;
  transition: all 0.15s;
}@media (hover: hover) and (pointer: fine){
.sc-skip-btn:hover,
.q-skip-btn:hover {color: var(--brand-text); border-color: var(--brand-gray-3); background: #fafafa;}}

/* Vit 14.7.: prave tlacitko Q23 - zelene hranate; meni se jen text Ne, zadny <-> Pokracovat */
.sc-action-main {
  background: var(--brand-primary); color: #fff;
  border: none;
  padding: 10px 16px; border-radius: 12px;
  cursor: pointer; font-family: inherit; font-size: 13.5px; font-weight: 700;
  transition: all 0.15s;
  box-shadow: 0 4px 12px rgba(40,149,70,0.18);
}@media (hover: hover) and (pointer: fine){
.sc-action-main:hover {background: var(--brand-primary-dark); transform: translateY(-1px); box-shadow: 0 6px 16px rgba(40,149,70,0.25);}}

/* Poslední otázka stamp badge */
.last-question-stamp {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 14px 6px 10px;
  background: var(--brand-primary-soft); /* Vit 13.7.: nase zelena dle brandu */
  border: 1.5px solid rgba(40,149,70,0.25);
  border-radius: 999px;
  color: var(--brand-primary);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  margin-bottom: 14px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}
.last-question-stamp .lqs-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px; height: 18px;
  background: var(--brand-primary); color: white;
  border-radius: 50%;
  font-size: 11px;
  font-weight: 900;
}
/* Examples (i) icon and content */
.examples-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--brand-primary-soft);
  color: var(--brand-primary);
  font-size: 13px;
  font-weight: 700;
  font-style: italic;
  cursor: pointer;
  margin-left: 8px;
  vertical-align: middle;
  user-select: none;
  transition: background 0.15s;
}@media (hover: hover) and (pointer: fine){
.examples-icon:hover {background: var(--brand-primary); color: white;}}
.examples-content {
  display: block;
  color: var(--brand-text-soft);
  font-size: 13px;
  margin: 6px 0 14px;
  padding: 10px 14px;
  background: #fffbeb;
  border-left: 3px solid var(--brand-yellow);
  border-radius: 6px;
  line-height: 1.5;
}
.examples-content.open {display: block;}
.examples-content strong {color: var(--brand-text);}

/* Collapsible sage tooltip "Proč se ptáme?" */
.sage-toggle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--brand-primary);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  user-select: none;
  margin-bottom: 16px;
  padding: 4px 10px;
  border-radius: 100px;
  background: var(--brand-primary-soft);
  transition: background 0.15s;
  border: none;
  font-family: inherit;
}@media (hover: hover) and (pointer: fine){
.sage-toggle:hover {background: #d4ead9;}}
.sage-toggle .arrow {transition: transform 0.2s;}
.sage-toggle.open .arrow {transform: rotate(180deg);}
.sage-content {
  display: none;
  color: var(--brand-text-soft);
  font-size: 13px;
  margin-bottom: 20px;
  padding: 12px 16px;
  background: var(--brand-primary-soft);
  border-left: 3px solid var(--brand-primary);
  border-radius: 8px;
  line-height: 1.5;
}
.sage-content.open {display: block;}
.sage-content strong {color: var(--brand-text);}

/* Options, mobile-first, min touch target 44px */
.options {display: flex; flex-direction: column; gap: 8px;}
.option {
  display: flex; align-items: center; gap: 12px;
  padding: 14px 16px; min-height: 52px;
  border: 1.5px solid var(--brand-gray-1);
  border-radius: 12px; cursor: pointer;
  transition: all 0.18s cubic-bezier(0.4, 0, 0.2, 1);
  background: white;
  font-size: 15px;
  user-select: none; -webkit-tap-highlight-color: transparent;
}@media (hover: hover) and (pointer: fine){
.option:hover, .option:focus-within {
  border-color: var(--brand-primary); background: var(--brand-primary-soft);
}}
.option.selected {
  border-color: var(--brand-primary); background: var(--brand-primary-soft);
  box-shadow: 0 4px 14px rgba(40, 149, 70, 0.12);
}
@media (min-width: 600px) {
  .options {gap: 10px;}
  .option {padding: 16px 20px; font-size: 15px; border-radius: 14px;}@media (hover: hover) and (pointer: fine){
  .option:hover {transform: translateY(-1px); box-shadow: 0 4px 12px rgba(40, 149, 70, 0.08);}}
}
.option-icon {font-size: 20px;}
.option-marker {
  width: 20px; height: 20px;
  border: 2px solid var(--brand-gray-2);
  border-radius: 50%;
  flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
}
.option.selected .option-marker {
  border-color: var(--brand-primary);
}
.option.selected .option-marker::after {
  content: ''; width: 10px; height: 10px;
  background: var(--brand-primary); border-radius: 50%;
}
.option-checkbox .option-marker {border-radius: 4px;}
.option-checkbox.selected .option-marker {
  background: var(--brand-primary);
  border-color: var(--brand-primary);
}
.option-checkbox.selected .option-marker::after {
  content: "\2713\FE0E"; color: white; font-weight: 700; font-size: 13px; font-family: -apple-system, "system-ui", "Segoe UI", Roboto, sans-serif; /* Vit 14.7.: kanon fajfka */
  background: none; width: auto; height: auto;
}
/* Sentinel "nic/none" options inside checkbox lists, render as RADIO (circle), visually separated */
.option-checkbox.option-none .option-marker {border-radius: 50%; background: white;}
.option-checkbox.option-none.selected .option-marker::after {
  content: ''; width: 10px; height: 10px;
  background: var(--brand-primary); border-radius: 50%;
  color: transparent; font-size: 0;
}
/* Vít 20.5.2026: "Nic mě netrápí" je teď DECENTNÍ. Vypadá jako ostatní options,
   jen má kolečko (radio) místo čtverečku a lehce odlišenou dashed border, aby user věděl že je to "vyřazovací" volba. */
.option-checkbox.option-none {
  margin-top: 6px;
  border: 1.5px dashed var(--brand-gray-2);
  background: white;
  color: var(--brand-text);
  font-weight: 500;
  padding: 14px 16px;
  min-height: 52px;
  justify-content: flex-start;
  text-align: left;
}@media (hover: hover) and (pointer: fine){
.option-checkbox.option-none:hover {
  background: var(--brand-primary-soft);
  border-color: var(--brand-primary);
  color: var(--brand-text);
}}
.option-checkbox.option-none.selected {
  background: var(--brand-primary-soft);
  border-color: var(--brand-primary);
  color: var(--brand-text);
}
.option-checkbox.option-none.selected .option-marker {background: white; border-color: var(--brand-primary);}
/* Když je vybrané něco jiného, "nic" se vizuálně zablokuje */
.option-checkbox.option-none.disabled-by-others {
  opacity: 0.35; pointer-events: none;
}

/* Scale */
.scale-options {display: flex; gap: 8px; justify-content: space-between; margin-top: 12px;}
.scale-btn {
  flex: 1; padding: 16px 8px;
  border: 2px solid var(--brand-gray-1);
  border-radius: 10px;
  cursor: pointer; background: white;
  font-size: 18px; font-weight: 600;
  transition: all 0.15s;
}@media (hover: hover) and (pointer: fine){
.scale-btn:hover {border-color: var(--brand-primary);}}
.scale-btn.selected {background: var(--brand-primary); color: white; border-color: var(--brand-primary);}
.scale-labels {display: flex; justify-content: space-between; margin-top: 8px; font-size: 12px; color: var(--brand-text-soft);}

/* Text/Number input */
.input-field {
  width: 100%; padding: 14px 16px;
  border: 2px solid var(--brand-gray-1);
  border-radius: 12px;
  font-size: 16px; font-family: inherit;
}
.input-field:focus {outline: none; border-color: var(--brand-primary);}

/* Buttons, mobile-first, min 48px height */
.btn {
  padding: 14px 24px; border: none; border-radius: 100px;
  font-family: inherit; font-size: 16px; font-weight: 600;
  cursor: pointer; transition: all 0.15s;
  display: inline-flex; align-items: center; gap: 8px;
  min-height: 48px;
  -webkit-tap-highlight-color: transparent;
}
.btn-primary {background: var(--brand-primary); color: white;}@media (hover: hover) and (pointer: fine){
.btn-primary:hover:not(:disabled) {background: var(--brand-primary-dark);}}
.btn-primary:disabled {background: var(--brand-gray-2); cursor: not-allowed; opacity: 0.6;}
.btn-secondary {background: transparent; color: var(--brand-text-soft); padding: 12px 16px; min-height: 44px;}
.btn-row {display: flex; justify-content: space-between; align-items: center; margin-top: 20px; gap: 8px;}
@media (min-width: 600px) {
  .btn {padding: 16px 32px; font-size: 17px;}@media (hover: hover) and (pointer: fine){
  .btn-primary:hover:not(:disabled) {transform: translateY(-1px);}}
  .btn-row {margin-top: 24px;}
}

/* Drug autocomplete */
.drug-input-wrapper {position: relative;}
.drug-suggestions {
  position: absolute; top: 100%; left: 0; right: 0;
  background: white; border: 1px solid var(--brand-gray-1);
  border-radius: 8px; max-height: 200px; overflow-y: auto;
  box-shadow: var(--shadow-card); z-index: 10;
}
.drug-suggestion {padding: 10px 14px; cursor: pointer;}@media (hover: hover) and (pointer: fine){
.drug-suggestion:hover {background: var(--brand-gray-1);}}
/* Address autocomplete (B8, košík) - zrcadlí drug-dropdown, žádné nové barvy */
.cv3-field.addr-field {position: relative;}
.addr-suggestions {
  position: absolute; top: calc(100% + 2px); left: 0; right: 0;
  background: #fff; border: 1px solid var(--brand-gray-1);
  border-radius: 8px; max-height: 240px; overflow-y: auto;
  box-shadow: var(--shadow-card); z-index: 40;
}
.addr-suggestion {padding: 11px 14px; cursor: pointer; font-size: 14.5px; line-height: 1.35;}
.addr-suggestion strong {font-weight: 600; color: var(--brand-text);}
.addr-suggestion small {color: var(--brand-text-soft, #6B7785); font-weight: 400;}
.addr-suggestion.is-active {background: var(--brand-gray-1);}@media (hover: hover) and (pointer: fine){
.addr-suggestion:hover {background: var(--brand-gray-1);}}
.drug-chip {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 6px 12px; background: var(--brand-cream);
  border: 1px solid var(--brand-primary);
  border-radius: 8px; font-size: 14px; margin: 4px 4px 4px 0;
}
.drug-chip button {
  background: none; border: none; cursor: pointer;
  color: var(--brand-text-soft); font-size: 16px;
}

/* Loading, premium mixing animation s glow + ring puls */
.loading {text-align: center; padding: 40px 20px 30px;}
.loading-mix {
  position: relative; width: 340px; height: 340px; margin: 0 auto 24px;
  max-width: 92vw;
}
/* Glow halo za centrem */
.loading-mix::before {
  content: ""; position: absolute; top: 50%; left: 50%;
  width: 200px; height: 200px; margin-top: -100px; margin-left: -100px;
  background: radial-gradient(circle, rgba(40,149,70,0.18) 0%, rgba(40,149,70,0) 70%);
  border-radius: 50%; animation: glowPulse 2.4s ease-in-out infinite;
  z-index: 0; pointer-events: none;
}
.mix-circle {
  position: absolute; width: 88px; height: 88px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 40px; box-shadow: 0 8px 24px rgba(0,0,0,0.12);
  animation: orbit 3.8s cubic-bezier(0.4, 0, 0.2, 1) infinite;
  z-index: 1;
}
.mix-circle.c1 {background: var(--brand-primary-soft); top: 0; left: 50%; margin-left: -44px; animation-delay: 0s;}
.mix-circle.c2 {background: #fff3cf; top: 50%; right: 0; margin-top: -44px; animation-delay: -0.95s;}
.mix-circle.c3 {background: #e0f2fe; bottom: 0; left: 50%; margin-left: -44px; animation-delay: -1.9s;}
.mix-circle.c4 {background: #fce8e6; top: 50%; left: 0; margin-top: -44px; animation-delay: -2.85s;}
.mix-center {
  position: absolute; top: 50%; left: 50%; width: 88px; height: 88px;
  margin-top: -44px; margin-left: -44px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 50%;
  background: white;
  box-shadow: 0 10px 28px rgba(40, 149, 70, 0.25);
  animation: centerPulse 2.4s ease-in-out infinite;
  z-index: 2;
}
.mix-center-img {
  width: 70%; height: 70%; object-fit: contain;
  animation: spin-mujvit 6s linear infinite;
}
@keyframes spin-mujvit {
  from {transform: rotate(0deg);}
  to {transform: rotate(360deg);}
}
@keyframes centerPulse {
  0%, 100% {transform: scale(1); box-shadow: 0 10px 28px rgba(40, 149, 70, 0.25);}
  50%       {transform: scale(1.06); box-shadow: 0 14px 38px rgba(40, 149, 70, 0.4);}
}
@keyframes glowPulse {
  0%, 100% {opacity: 0.6; transform: scale(0.95);}
  50%       {opacity: 1;   transform: scale(1.1);}
}
@keyframes orbit {
  0%   {transform: translate(0, 0) scale(1); opacity: 1;}
  40%  {transform: translate(calc(170px - 50%), calc(170px - 50%)) scale(0.45); opacity: 0.55;}
  60%  {transform: translate(calc(170px - 50%), calc(170px - 50%)) scale(0.45); opacity: 0.35;}
  100% {transform: translate(0, 0) scale(1); opacity: 1;}
}
/* Loading teaser, produkty padají do Mujvit balíčku
   Vít 19.5.: chce vidět box samostatný + kolem něj plno produktů co se "vybírají" */
.loading-teaser {
  max-width: 520px; margin: 24px auto 0;
  position: relative; padding: 12px 8px 0;
}
.loading-teaser-head {
  font-size: 11px; font-weight: 700; color: var(--brand-orange);
  letter-spacing: 2px; text-transform: uppercase; margin-bottom: 8px;
  text-align: center;
}
.loading-teaser-title {font-size: 15px; font-weight: 700; color: var(--brand-text); text-align: center; margin-bottom: 6px;}
.loading-teaser-note {font-size: 12px; color: var(--brand-text-soft); text-align: center; line-height: 1.5; margin-top: 4px;}

/* Vít 20.5.2026: nová split-layout loading animace, krabička vlevo, scroll produktů vpravo */
.loading-teaser-v2 {
  max-width: 560px; margin: 28px auto 0;
  position: relative; padding: 16px 12px 0;
}
.loading-split {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 14px;
  align-items: center;
  margin: 20px 0 12px;
  min-height: 280px;
}
.loading-box-big {
  display: flex; justify-content: center; align-items: center;
  animation: boxRise 0.8s cubic-bezier(0.4,0,0.2,1) both;
}
.loading-box-big img {
  width: 100%; max-width: 240px;
  filter: drop-shadow(0 18px 40px rgba(0,0,0,0.22));
  animation: boxFloat 4s ease-in-out infinite;
}
@keyframes boxFloat {
  0%,100% {transform: translateY(0);}
  50% {transform: translateY(-8px);}
}
.loading-vscroll-wrap {
  height: 280px; overflow: hidden;
  mask-image: linear-gradient(to bottom, transparent 0, #000 14%, #000 86%, transparent 100%);
  -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 14%, #000 86%, transparent 100%);
}
.loading-vscroll {
  display: flex; flex-direction: column;
  gap: 10px;
  animation: vscrollUp 18s linear infinite;
}
.loading-vscroll-pill {
  width: 100%; aspect-ratio: 1 / 1;
  background: white; border: 1.5px solid var(--brand-gray-1);
  border-radius: 14px;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
  box-shadow: 0 4px 14px rgba(0,0,0,0.06);
  flex-shrink: 0;
  max-height: 90px;
}
.loading-vscroll-pill img {width: 90%; height: 90%; object-fit: contain;}
@keyframes vscrollUp {
  from {transform: translateY(0);}
  to   {transform: translateY(-50%);}
}

/* Vyběhající marquee s produkty nad krabičkou */
.loading-marquee-wrap {
  position: relative; height: 110px; margin: 14px 0 6px;
  overflow: hidden;
  mask-image: linear-gradient(to right, transparent 0, #000 12%, #000 88%, transparent 100%);
  -webkit-mask-image: linear-gradient(to right, transparent 0, #000 12%, #000 88%, transparent 100%);
}
.loading-marquee {
  display: flex; gap: 12px; width: max-content;
  animation: marqueeScroll 22s linear infinite;
}
.loading-marquee-pill {
  width: 88px; height: 88px;
  background: white; border: 1.5px solid var(--brand-gray-1);
  border-radius: 14px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
  box-shadow: 0 4px 14px rgba(0,0,0,0.06);
  position: relative;
  animation: pillBounce 3.2s ease-in-out infinite;
}
.loading-marquee-pill:nth-child(2n)  {animation-delay: -0.6s;}
.loading-marquee-pill:nth-child(3n)  {animation-delay: -1.4s;}
.loading-marquee-pill:nth-child(5n)  {animation-delay: -2.0s;}
.loading-marquee-pill img {width: 90%; height: 90%; object-fit: contain;}
@keyframes marqueeScroll {
  from {transform: translateX(0);}
  to   {transform: translateX(-50%);}
}
@keyframes pillBounce {
  0%, 100% {transform: translateY(0) rotate(0deg);}
  50%       {transform: translateY(-6px) rotate(2deg);}
}

/* Mujvit krabička pod marquee */
.loading-box {
  display: flex; justify-content: center; align-items: flex-end;
  margin-top: 4px; position: relative;
}
.loading-box-img {
  width: 200px; max-width: 70vw;
  position: relative;
  filter: drop-shadow(0 14px 28px rgba(0,0,0,0.18));
  animation: boxRise 0.8s cubic-bezier(0.4, 0, 0.2, 1) both;
}
.loading-box-img img {width: 100%; display: block;}
@keyframes boxRise {
  from {opacity: 0; transform: translateY(20px) scale(0.95);}
  to   {opacity: 1; transform: translateY(0) scale(1);}
}

/* "Padající" pill ze středu marquee dolů do krabičky */
.loading-drop-pill {
  position: absolute; left: 50%; top: 70px;
  width: 56px; height: 56px;
  background: white; border-radius: 12px;
  border: 1.5px solid var(--brand-gray-1);
  box-shadow: 0 6px 18px rgba(0,0,0,0.12);
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
  animation: dropToBox 2.4s ease-in infinite;
  opacity: 0; transform-origin: center;
  z-index: 3;
}
.loading-drop-pill img {width: 90%; height: 90%; object-fit: contain;}
.loading-drop-pill.d2 {animation-delay: 0.8s;}
.loading-drop-pill.d3 {animation-delay: 1.6s;}
@keyframes dropToBox {
  0%   {opacity: 0; transform: translate(-50%, -40px) scale(0.6) rotate(-20deg);}
  20%  {opacity: 1;}
  60%  {opacity: 1; transform: translate(-50%, 90px) scale(0.85) rotate(8deg);}
  85%  {opacity: 0.6; transform: translate(-50%, 140px) scale(0.4) rotate(20deg);}
  100% {opacity: 0; transform: translate(-50%, 160px) scale(0.2) rotate(30deg);}
}
@keyframes pulse {
  0%, 100% {transform: scale(1); box-shadow: 0 8px 28px rgba(40, 149, 70, 0.35);}
  50%       {transform: scale(1.08); box-shadow: 0 12px 40px rgba(40, 149, 70, 0.5);}
}
.loading-spinner {display: none;}
.loading-text {color: var(--brand-text-soft); font-size: 15px; transition: all 0.4s;}
.loading-text.active {color: var(--brand-primary); font-weight: 600; font-size: 17px;}

/* Vít 19.5.2026: LOADING V3, kompletně přepracováno */
.loading-v3 {
  display: flex; flex-direction: column; align-items: center;
  gap: 6px; padding: 18px 6px 30px;
  max-width: 720px; margin: 0 auto;
}
/* Logo NAHORU, Vít 20.5.2026: zmenšeno o 20% (130→104), víc prostoru kolem */
.loading-v3-logo {
  width: 104px; height: 104px;
  display: flex; align-items: center; justify-content: center;
  animation: v3LogoSpin 8s linear infinite;
  margin-bottom: 4px;
  padding: 8px;
}
.loading-v3-logo-img {
  width: 100%; height: 100%; object-fit: contain;
  filter: drop-shadow(0 6px 14px rgba(40,149,70,0.18));
}
@keyframes v3LogoSpin {
  from {transform: rotate(0deg);}
  to   {transform: rotate(360deg);}
}
.loading-v3-title {
  font-size: 21px; font-weight: 800; color: var(--brand-text);
  text-align: center; line-height: 1.25; margin-top: 6px;
}
.loading-v3-subtitle {
  font-size: 13px; color: var(--brand-text-soft);
  text-align: center; margin-bottom: 14px;
}
/* HLAVNÍ SPLIT, velká krabička vlevo + 2 sloupce vpravo (bez pillů, jen čisté obrázky) */
.loading-v3-split {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 22px;
  align-items: center;
  width: 100%;
  margin: 4px 0 18px;
  min-height: 360px;
}
.loading-v3-box {
  display: flex; justify-content: center; align-items: center;
  position: relative;
}
.loading-v3-box::before {
  content: ''; position: absolute; inset: -20px;
  background: radial-gradient(ellipse at center, rgba(40,149,70,0.10) 0%, transparent 65%);
  animation: v3BoxGlow 3.6s ease-in-out infinite;
}
.loading-v3-box img {
  position: relative; z-index: 1;
  width: 100%; max-width: 320px;
  filter: drop-shadow(0 26px 50px rgba(0,0,0,0.28));
  animation: v3BoxFloat 4s ease-in-out infinite;
}
/* Vít 20.5.2026: HTML "sáček" overlay s dynamickým jménem + zajímavostí */
.loading-v3-pouch {
  position: absolute;
  left: 4%; bottom: 6%;
  z-index: 3;
  width: 168px;
  background: rgba(255,255,255,0.97);
  border-radius: 14px;
  padding: 14px 14px 11px;
  box-shadow: 0 18px 42px rgba(0,0,0,0.22), 0 0 0 1px rgba(0,0,0,0.04);
  animation: v3PouchFloat 4s ease-in-out infinite;
  font-family: 'Poppins', sans-serif;
  display: flex; flex-direction: column; gap: 7px;
  transform: rotate(-4deg);
}
.loading-v3-pouch-logo {
  display: flex; align-items: center; gap: 5px;
  justify-content: center; margin-bottom: 2px;
}
.loading-v3-pouch-logo img {
  position: static; width: 16px; height: 16px;
  filter: none; animation: none; max-width: 16px;
}
.loading-v3-pouch-logo span {
  font-size: 12.5px; font-weight: 800; color: #1A2332; letter-spacing: -0.3px;
}
.loading-v3-pouch-name {
  font-size: 17px; font-weight: 800; color: #1A2332;
  text-align: center; line-height: 1.1; margin: 2px 0;
  letter-spacing: -0.5px;
  word-break: break-word;
}
.loading-v3-pouch-fact {
  font-size: 9.5px; line-height: 1.35;
  color: #4A5662; text-align: center;
  background: #F2F2F2; border-radius: 6px;
  padding: 6px 8px; font-weight: 500;
}
.loading-v3-pouch-tags {
  display: flex; justify-content: space-between;
  font-size: 8.5px; font-weight: 600;
  color: #6B7785; padding: 0 4px;
  margin-top: 2px;
}
@keyframes v3PouchFloat {
  0%,100% {transform: rotate(-4deg) translateY(0);}
  50%     {transform: rotate(-3deg) translateY(-6px);}
}
@keyframes v3BoxFloat {
  0%,100% {transform: translateY(0) rotate(-1deg);}
  50%     {transform: translateY(-10px) rotate(1deg);}
}
@keyframes v3BoxGlow {
  0%,100% {opacity: 0.4; transform: scale(0.94);}
  50%     {opacity: 1; transform: scale(1.06);}
}
.loading-v3-cols {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: 10px;
  height: 360px;
}
.loading-v3-col-wrap {
  height: 360px; overflow: hidden;
  mask-image: linear-gradient(to bottom, transparent 0, #000 10%, #000 90%, transparent 100%);
  -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 10%, #000 90%, transparent 100%);
}
.loading-v3-col {
  display: flex; flex-direction: column;
  gap: 12px;
}
.loading-v3-col img {
  width: 100%; aspect-ratio: 1/1; object-fit: contain;
  border-radius: 12px;
  background: transparent;
  flex-shrink: 0;
  filter: drop-shadow(0 4px 10px rgba(0,0,0,0.10));
}
/* Up = první sloupec, Down = druhý sloupec opačně */
.loading-v3-col-up   {animation: v3ScrollUp   14s linear infinite;}
.loading-v3-col-down {animation: v3ScrollDown 16s linear infinite;}
@keyframes v3ScrollUp {
  from {transform: translateY(0);}
  to   {transform: translateY(-50%);}
}
@keyframes v3ScrollDown {
  from {transform: translateY(-50%);}
  to   {transform: translateY(0);}
}
/* STATUS TEXTY DOLŮ */
.loading-v3-status {
  display: flex; flex-direction: column; gap: 8px;
  align-items: center; text-align: center;
  margin-top: 12px;
}
.loading-v3-status .loading-text {opacity: 0.6;}
.loading-v3-status .loading-text.active {opacity: 1;}
/* Mobile */
@media (max-width: 540px) {
  .loading-v3-logo {width: 84px; height: 84px; padding: 6px;}
  .loading-v3-title {font-size: 18px;}
  .loading-v3-split {grid-template-columns: 1.3fr 1fr; gap: 12px; min-height: 300px;}
  .loading-v3-box img {max-width: 220px;}
  .loading-v3-cols {height: 300px; gap: 6px;}
  .loading-v3-col-wrap {height: 300px;}
  .loading-v3-pouch {width: 122px; padding: 10px 10px 8px; left: 2%; bottom: 4%;}
  .loading-v3-pouch-name {font-size: 14px;}
  .loading-v3-pouch-fact {font-size: 8.5px; padding: 5px 6px;}
  .loading-v3-pouch-logo img {width: 13px; height: 13px;}
  .loading-v3-pouch-logo span {font-size: 11px;}
}

/* Results page, Mujvit hero s personalizovaným sáčkem */
.results-hero {
  background: var(--brand-cream);
  border-radius: 20px;
  padding: 28px 20px;
  margin-bottom: 24px;
  position: relative;
}
.results-hero-content {
  display: flex; flex-direction: column; gap: 20px;
}
.results-hero-text {flex: 1;}
.results-hero-eyebrow {
  font-size: 11px; font-weight: 700;
  color: var(--brand-orange);
  text-transform: uppercase; letter-spacing: 2px;
  margin-bottom: 8px;
}
.results-hero h2 {
  font-size: 28px; font-weight: 700; letter-spacing: -0.5px;
  line-height: 1.15; color: var(--brand-text);
  margin-bottom: 12px;
}
.results-hero h2 span.green {color: var(--brand-primary);}
.results-hero p {color: var(--brand-text-soft); font-size: 15px; line-height: 1.6;}
.results-hero-badges {
  display: flex; flex-wrap: wrap; gap: 8px 18px;
  margin-top: 16px; font-size: 13px; font-weight: 500;
}
.results-hero-badge {display: flex; align-items: center; gap: 6px;}
.results-hero-badge::before {content: "\2713\FE0E"; font-family: -apple-system, "system-ui", "Segoe UI", Roboto, sans-serif; color: var(--brand-primary); font-weight: 700;}

/* Sáček visual s jménem */
.sacek-wrap {
  position: relative; align-self: center;
  max-width: 280px; width: 100%; padding: 0;
}
.sacek-img {
  width: 100%; height: auto; display: block;
  border-radius: 12px;
}
.sacek-name {
  position: absolute; top: 16%; left: 50%;
  transform: translateX(-50%);
  background: rgba(255,255,255,0.95);
  padding: 4px 12px; border-radius: 4px;
  font-weight: 700; font-size: 14px;
  color: var(--brand-text); letter-spacing: 0.5px;
  text-transform: uppercase;
  box-shadow: 0 2px 4px rgba(0,0,0,0.08);
}
/* Vít 20.5.2026: HTML "sáček" overlay na results stránce, dynamický jméno + zajímavost */
.results-pouch {
  position: absolute;
  left: 50%; top: 50%;
  transform: translate(-50%, -50%) rotate(-3deg);
  width: 78%; max-width: 220px;
  background: rgba(255,255,255,0.97);
  border-radius: 14px;
  padding: 16px 14px 12px;
  box-shadow: 0 18px 42px rgba(0,0,0,0.22), 0 0 0 1px rgba(0,0,0,0.04);
  font-family: 'Poppins', sans-serif;
  display: flex; flex-direction: column; gap: 8px;
}
.results-pouch-logo {
  display: flex; align-items: center; gap: 5px;
  justify-content: center; margin-bottom: 2px;
}
.results-pouch-logo img {
  width: 18px; height: 18px; max-width: 18px; max-height: 18px;
}
.results-pouch-logo span {
  font-size: 13px; font-weight: 800; color: #1A2332; letter-spacing: -0.3px;
}
.results-pouch-name {
  font-size: 20px; font-weight: 800; color: #1A2332;
  text-align: center; line-height: 1.1; margin: 2px 0;
  letter-spacing: -0.5px; word-break: break-word;
}
.results-pouch-fact {
  font-size: 10.5px; line-height: 1.4;
  color: #4A5662; text-align: center;
  background: #F2F2F2; border-radius: 6px;
  padding: 7px 9px; font-weight: 500;
}
.results-pouch-tags {
  display: flex; justify-content: space-between;
  font-size: 9.5px; font-weight: 600;
  color: #6B7785; padding: 0 6px;
  margin-top: 2px;
}
@media (max-width: 540px) {
  .results-pouch {width: 70%; max-width: 180px; padding: 12px 11px 10px;}
  .results-pouch-name {font-size: 17px;}
  .results-pouch-fact {font-size: 9.5px; padding: 6px 7px;}
}

/* Vít 21.5.2026: jediný breakpoint 980px, results hero side-by-side jen na desktopu */
@media (min-width: 980px) {
  .results-hero {padding: 36px 32px; margin-bottom: 28px;}
  .results-hero-content {flex-direction: row; align-items: center; gap: 32px;}
  .results-hero h2 {font-size: 42px;}
  .results-hero p {font-size: 16px;}
}

/* Protocol cards, mobile-first */
.protocol-card {
  background: white; border-radius: 16px;
  padding: 18px 16px; margin-bottom: 12px;
  box-shadow: var(--shadow-soft);
  transition: box-shadow 0.2s;
}
.protocol-card.core-card {
  border-left: 4px solid var(--brand-primary);
}@media (hover: hover) and (pointer: fine){
.protocol-card:hover {box-shadow: 0 6px 24px rgba(0,0,0,0.08);}}
.protocol-header {
  display: flex; justify-content: space-between; align-items: flex-start;
  margin-bottom: 14px; gap: 12px;
}
.protocol-eyebrow {
  font-size: 11px; font-weight: 700;
  color: var(--brand-orange);
  text-transform: uppercase; letter-spacing: 1.5px;
  margin-bottom: 4px;
}
.protocol-title {
  font-size: 17px; font-weight: 700; color: var(--brand-text);
  letter-spacing: -0.2px;
}
.protocol-price {
  font-size: 20px; font-weight: 700; color: var(--brand-text);
  white-space: nowrap;
}
.protocol-price .kc {font-size: 13px; font-weight: 500; color: var(--brand-text-soft);}
.protocol-intro {
  color: var(--brand-text-soft); font-size: 13px;
  margin-top: 4px; line-height: 1.5;
}
.product-pills {
  display: grid; grid-template-columns: 1fr;
  gap: 8px;
}
/* Vít 21.5.2026: jediný breakpoint 980px, mobil 1 sloupec → desktop auto-fill */
@media (min-width: 980px) {
  .product-pills {grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));}
}

/* NOVÝ product grid pro Core karty (Vít 17.5.: větší foto + křížek + Více info)
   Vít 19.5.: i na mobilu vždy 2 sloupce vedle sebe (nikdy 1 sloupec) */
.product-grid {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px;
}
@media (min-width: 600px) { .product-grid {gap: 14px;} }
/* Vít 21.5.2026: jediný breakpoint 980px, mobil 2 sloupce → desktop 3 sloupce */
@media (min-width: 980px) { .product-grid {grid-template-columns: repeat(3, 1fr);} }
.product-card-large {
  position: relative;
  background: white; border: 1px solid var(--brand-gray-1);
  border-radius: 14px; padding: 10px;
  transition: all 0.2s; display: flex; flex-direction: column;
}
@media (min-width: 600px) { .product-card-large {padding: 14px;} }@media (hover: hover) and (pointer: fine){
.product-card-large:hover {box-shadow: 0 4px 16px rgba(0,0,0,0.08);}}
.product-card-large.excluded {background: #f9f9f9;}
.product-card-large.excluded > *:not(.product-remove-btn) {opacity: 0.5;}
.product-card-large.excluded .product-remove-btn {
  background: var(--brand-primary); border-color: var(--brand-primary); color: #fff;
  width: 38px; height: 38px; font-size: 26px; font-weight: 700;
  box-shadow: 0 2px 10px rgba(40,149,70,0.35);
}@media (hover: hover) and (pointer: fine){
.product-card-large.excluded .product-remove-btn:hover {background: var(--brand-primary-dark); border-color: var(--brand-primary-dark); color: #fff;}}
.product-remove-btn {
  position: absolute; top: 8px; right: 8px;
  width: 28px; height: 28px; border-radius: 50%;
  background: #fff; border: 1.5px solid var(--brand-gray-1);
  color: var(--brand-text-soft); font-size: 18px; line-height: 1;
  cursor: pointer; z-index: 5; padding: 0;
  display: flex; align-items: center; justify-content: center;
  transition: all 0.15s;
}@media (hover: hover) and (pointer: fine){
.product-remove-btn:hover {background: #ffe4e4; border-color: #ff6b6b; color: #ff6b6b;}}
.product-card-photo {
  width: 100%; aspect-ratio: 1 / 1;
  border-radius: 10px; overflow: hidden;
  background: var(--brand-cream);
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 10px;
}
.product-card-photo img {width: 100%; height: 100%; object-fit: cover; object-position: center;}
.product-card-body {flex: 1; display: flex; flex-direction: column;}
.product-card-name {font-weight: 700; color: var(--brand-text); font-size: 15px; margin-bottom: 6px;}
.product-card-vetička {font-size: 12px; color: var(--brand-text-soft); line-height: 1.45; margin-bottom: 10px; flex: 1;}
.product-card-footer {
  display: flex; justify-content: space-between; align-items: center;
  padding-top: 8px; border-top: 1px solid var(--brand-gray-1);
}
.product-card-price {font-weight: 700; color: var(--brand-primary); font-size: 14px;}
.product-card-more {
  background: none; border: none; color: var(--brand-primary);
  font-weight: 600; font-size: 12px; cursor: pointer; padding: 0;
  text-decoration: none;
}@media (hover: hover) and (pointer: fine){
.product-card-more:hover {text-decoration: underline;}}
.addon-image-large {
  width: 90px; height: 90px;
  border-radius: 12px; overflow: hidden;
  background: var(--brand-cream);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  aspect-ratio: 1 / 1;
}
.addon-image-large img {width: 100%; height: 100%; object-fit: cover; object-position: center;}
@media (min-width: 600px) {
  .addon-image-large {width: 110px; height: 110px;}
}
/* Vít 19.5.2026: vypnutá addon karta zůstává plně barevná (vidět fotka i texty), jen toggle je off. Bez šedi/opacity. */
.protocol-card.addon.excluded {opacity: 1;}
.protocol-card.addon.excluded .addon-image-large img {filter: none;}
@media (min-width: 600px) {
  .protocol-card {padding: 24px; border-radius: 18px;}
  .protocol-title {font-size: 19px;}
}
/* Vít 21.5.2026: 800px breakpoint sloučen do jednoho 980px (viz výše) */

/* Addon card layout, image left, info middle, price+toggle right */
.addon-content {
  display: grid;
  grid-template-columns: 90px 1fr auto;
  gap: 14px; align-items: flex-start;
}
.addon-image {
  width: 90px; height: 90px;
  border-radius: 12px; overflow: hidden;
  background: var(--brand-cream);
  display: flex; align-items: center; justify-content: center;
  aspect-ratio: 1 / 1;
}
.addon-image img {width: 100%; height: 100%; object-fit: cover; object-position: center;}
.addon-info {min-width: 0;}
.addon-info .protocol-title {font-size: 15px; margin-bottom: 2px;}
.addon-info .protocol-intro {font-size: 12px; margin-top: 2px;}
.addon-action {
  display: flex; flex-direction: column; align-items: flex-end; gap: 6px;
}
.addon-action .protocol-price {font-size: 16px;}
.addon-action .protocol-price .kc {font-size: 12px;}
@media (min-width: 600px) {
  .addon-content {grid-template-columns: 110px 1fr auto; gap: 18px;}
  .addon-image {width: 110px; height: 110px;}
  .addon-info .protocol-title {font-size: 17px;}
  .addon-info .protocol-intro {font-size: 13px;}
  .addon-action .protocol-price {font-size: 18px;}
}
/* Boost (Tier 3), orange accent + "Přidat" CTA emphasis */
.protocol-card.boost {
  background: #fafaf7;
  border-left: 4px solid var(--brand-orange);
}
.protocol-card.recommended {
  border-left: 4px solid var(--brand-primary);
}
.product-pill {
  display: flex; align-items: center; gap: 10px;
  padding: 8px 12px 8px 8px; background: white;
  border: 1px solid var(--brand-gray-1);
  border-radius: 12px; font-size: 13px;
  transition: all 0.15s;
  min-height: 56px;
}@media (hover: hover) and (pointer: fine){
.product-pill:hover {box-shadow: 0 2px 8px rgba(0,0,0,0.05);}}
.product-pill img {
  width: 40px; height: 40px; object-fit: cover;
  border-radius: 8px; flex-shrink: 0;
  background: var(--brand-cream);
}
.product-pill-info {flex: 1; min-width: 0;}
.product-pill-name {font-weight: 600; color: var(--brand-text); display: block; line-height: 1.2;}
.product-pill-price-small {font-size: 11px; color: var(--brand-text-soft); display: block; margin-top: 2px;}
.product-pill.excluded {
  background: var(--brand-gray-1); opacity: 0.55; text-decoration: line-through;
}
@media (min-width: 600px) {
  .product-pill {padding: 10px 14px 10px 10px; min-height: 64px; font-size: 14px;}
  .product-pill img {width: 48px; height: 48px;}
}
/* Addon protocol, větší vizuální rozlišení */
.protocol-card.addon {
  border-left: 4px solid var(--brand-orange);
  position: relative;
}
/* Dynamický badge, Vít 19.5.: místo "VOLITELNÝ" píšeme proč ho doporučujeme */
.protocol-card.addon.has-badge::before {display: none;}
.addon-badge {
  position: absolute; top: -10px; left: 16px; z-index: 2;
  font-size: 10px; font-weight: 700; letter-spacing: 1px;
  background: var(--brand-orange); color: white;
  padding: 3px 10px; border-radius: 100px;
  text-transform: uppercase;
  max-width: calc(100% - 32px);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.protocol-toggle {
  display: inline-flex; align-items: center; gap: 6px;
  cursor: pointer; user-select: none;
  font-size: 13px; color: var(--brand-text-soft); font-weight: 500;
  /* Vít 19.5.: větší klikatelná plocha aby user trefil toggle i s milimetrovou odchylkou */
  padding: 12px 14px; margin: -12px -14px;
  border-radius: 12px;
  -webkit-tap-highlight-color: transparent;
}@media (hover: hover) and (pointer: fine){
.protocol-toggle:hover {background: rgba(40,149,70,0.06);}}
.protocol-toggle:active {background: rgba(40,149,70,0.12);}
.protocol-toggle .switch {
  position: relative; width: 46px; height: 26px;
  background: var(--brand-gray-2); border-radius: 100px;
  transition: background 0.2s;
}
.protocol-toggle .switch::after {
  content: ""; position: absolute; top: 2px; left: 2px;
  width: 22px; height: 22px; background: white; border-radius: 50%;
  transition: transform 0.2s;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}
.protocol-toggle.active .switch {background: var(--brand-primary);}
.protocol-toggle.active .switch::after {transform: translateX(20px);}
/* Vít 4.6.2026: addon ovládání jako tlačítko „Přidat" z vitaminy-na-miru (sjednocení) */
.addon-add-btn {
  background: var(--brand-cream); color: var(--brand-text);
  border: 1.5px solid var(--brand-primary);
  padding: 0 22px; height: 40px; border-radius: 999px;
  font-size: 13.5px; font-weight: 700; cursor: pointer; font-family: inherit;
  transition: all 0.15s; display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  line-height: 1; min-width: 104px; white-space: nowrap;
}@media (hover: hover) and (pointer: fine){
.addon-add-btn:hover { background: var(--brand-primary); color: white; }}
.addon-add-btn.added { background: var(--brand-primary); color: white; }
.addon-price { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; line-height: 1.1; }
.addon-price-main { font-size: 21px; font-weight: 800; color: var(--brand-text); letter-spacing: -0.3px; display: inline-flex; align-items: baseline; gap: 3px; }
.addon-price-kc { font-size: 12.5px; font-weight: 700; color: var(--brand-text-soft); }
.addon-price-pack { font-size: 11.5px; font-weight: 500; color: var(--brand-text-soft); }
.product-pill-name {flex: 1; font-weight: 500;}
.product-pill-price {color: var(--brand-text-soft); font-size: 13px;}
.product-pill-warning {color: var(--warning); font-size: 14px;}

.section-title {
  font-size: 12px; text-transform: uppercase; letter-spacing: 1.5px;
  color: var(--brand-orange); font-weight: 700; text-align: left;
  margin: 28px 0 14px;
}
.section-h2 {
  font-size: 22px; font-weight: 700; text-align: center;
  margin-bottom: 20px; color: var(--brand-text);
  letter-spacing: -0.3px;
}
@media (min-width: 600px) {
  .section-title {font-size: 13px;}
  .section-h2 {font-size: 26px; margin-bottom: 24px;}
}

/* Pricing footer, mobile-first sticky.
   Vít 19.5.2026: all-products modal má vlastní sticky bar uvnitř (cena + tlačítka).
   Tj. pricing footer může zůstat klasicky sticky a být překrytý modalem (bez konfliktu). */
.pricing-footer {
  position: sticky; bottom: 0; left: 0; right: 0;
  background: white; padding: 14px 12px;
  box-shadow: 0 -4px 16px rgba(0,0,0,0.08);
  border-top: 1px solid var(--brand-gray-1);
  z-index: 50;
}
.pricing-row {display: flex; flex-direction: column; gap: 8px; max-width: 980px; margin: 0 auto;}
.pricing-options-grid {display: flex; gap: 8px;}
.pricing-option {
  flex: 1; padding: 8px 12px; min-height: 0;
  border: 2px solid var(--brand-gray-1); border-radius: 12px;
  cursor: pointer; text-align: center;
  transition: all 0.15s;
  -webkit-tap-highlight-color: transparent;
}
.pricing-option.selected {border-color: var(--brand-warm); background: rgba(248,150,31,0.06);}
.pricing-option-label {font-size: 12.5px; font-weight: 600; color: var(--brand-text); margin-top: 0;}
.pricing-option-amount {font-size: 18px; font-weight: 800; color: var(--brand-primary); margin-top: 2px;}
.pricing-option-period {font-size: 11px; color: var(--brand-text-soft); margin-top: 2px;}
.pricing-cta {
  background: var(--brand-primary); color: white; font-weight: 800;
  padding: 14px 24px; border-radius: 14px; border: none;
  cursor: pointer; font-size: 15px;
  min-height: 52px; width: 100%;
  box-shadow: 0 6px 18px rgba(40,149,70,0.32);
  display: flex; align-items: center; justify-content: center; gap: 6px;
  font-family: inherit; transition: all 0.15s;
  -webkit-tap-highlight-color: transparent;
}@media (hover: hover) and (pointer: fine){
.pricing-cta:hover { transform: translateY(-1px); box-shadow: 0 8px 22px rgba(40,149,70,0.4); }}
/* Vít 21.5.2026: jediný breakpoint 980px, pricing footer side-by-side jen na desktopu */
@media (min-width: 980px) {
  .pricing-footer {padding: 18px 20px;}
  .pricing-row {flex-direction: row; align-items: center; gap: 14px;}
  .pricing-options-grid {flex: 1; gap: 12px;}
  .pricing-option {padding: 10px 14px; min-height: 0;}
  .pricing-option-amount {font-size: 20px;}
  .pricing-cta {width: auto; padding: 14px 32px;}
}
/* Vít 19.5.2026: pod K objednávce tlačítkem prominentní info o dopravě zdarma */
.pricing-cta-wrap {
  display: flex; flex-direction: column; align-items: center; gap: 3px;
}
.pricing-cta-shipping {
  text-align: center;
  font-size: 11px;
  color: var(--brand-text-soft);
  font-weight: 500;
  padding: 2px 0 0;
  white-space: nowrap;
}
@media (max-width: 600px) { .pricing-cta-shipping { display: none; } }
.pricing-cta-shipping strong {color: var(--brand-primary); font-weight: 800; letter-spacing: 0.2px;}
@media (min-width: 600px) {
  .pricing-cta-wrap {gap: 4px;}
  .pricing-cta-shipping {font-size: 11px;}
}

/* Vít summary, KREV STYLE (cream box + orange quote mark) */
.vit-summary {
  background: var(--brand-cream);
  border-radius: 16px;
  padding: 22px 22px 18px 22px;
  margin: 24px 0;
  position: relative;
}
.vit-summary::before {
  content: '"';
  position: absolute;
  top: -10px; left: 18px;
  font-size: 64px; line-height: 1;
  color: var(--brand-orange);
  font-family: Georgia, serif;
  font-weight: 700;
}
.vit-summary-head {
  font-size: 11px; font-weight: 700;
  color: var(--brand-orange);
  text-transform: uppercase;
  letter-spacing: 1.5px;
  margin-bottom: 10px;
  margin-left: 32px;
}
.vit-summary-text {
  font-size: 15px; line-height: 1.65;
  color: var(--brand-text);
  margin-left: 32px;
}
.vit-summary-text p + p {margin-top: 10px;}
.vit-summary-text strong {font-weight: 600;}
.vit-summary-author {
  margin-top: 14px;
  margin-left: 32px;
  font-size: 13px;
  color: var(--brand-text-soft);
  font-style: italic;
  display: flex; align-items: center; gap: 10px;
}
.vit-summary-author img {
  width: 36px !important; height: 36px !important;
  max-width: 36px !important; max-height: 36px !important;
  min-width: 36px; min-height: 36px;
  border-radius: 50%;
  object-fit: cover; flex-shrink: 0;
}
.vit-summary-author strong {
  color: var(--brand-text); font-weight: 600; font-style: normal;
}
@media (min-width: 600px) {
  .vit-summary {padding: 28px 28px 22px 28px;}
  .vit-summary::before {font-size: 72px; left: 22px;}
  .vit-summary-text {font-size: 16px;}
}
/* Expandable Vít report (inline) */
.vit-report-toggle {
  display: inline-flex; align-items: center; gap: 8px;
  background: white;
  border: 1.5px solid var(--brand-gray-1);
  padding: 12px 18px; border-radius: 100px;
  color: var(--brand-primary); font-weight: 600; font-size: 14px;
  cursor: pointer; transition: all 0.15s;
  margin-top: 12px; margin-left: 32px;
  -webkit-tap-highlight-color: transparent;
}@media (hover: hover) and (pointer: fine){
.vit-report-toggle:hover {background: var(--brand-primary-soft); border-color: var(--brand-primary);}}
.vit-report-toggle .arrow {transition: transform 0.2s;}
.vit-report-toggle.open .arrow {transform: rotate(180deg);}
.vit-report-toggle-emphasized {
  background: var(--brand-primary) !important;
  color: #fff !important;
  border-color: var(--brand-primary) !important;
  padding: 16px 28px !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  box-shadow: 0 4px 16px rgba(40,148,98,0.25) !important;
}@media (hover: hover) and (pointer: fine){
.vit-report-toggle-emphasized:hover {background: #1f7a4c !important; color: #fff !important;}}
.vit-report-toggle-emphasized .arrow {color: #fff;}
/* Vít 20.5.2026: na mobilu plná šíře + center align (margin-left:32px rozbíjelo viewport) */
@media (max-width: 600px) {
  .vit-report-toggle, .vit-report-toggle-emphasized {
    margin-left: 0 !important; margin-right: 0;
    width: 100%; box-sizing: border-box;
    justify-content: center; text-align: center;
    padding: 14px 14px !important; font-size: 14.5px !important;
    white-space: normal; line-height: 1.35;
  }
  .all-products-cta {
    display: flex !important;
    width: 100%; box-sizing: border-box;
    justify-content: center; align-items: center;
    font-size: 14.5px !important; padding: 14px 14px !important;
    white-space: normal; line-height: 1.35;
  }
}
/* Vít 20.5.2026: úzké telefony (< 380 px), ikonka NAD textem aby se vše vešlo */
@media (max-width: 380px) {
  .all-products-cta {
    flex-direction: column; gap: 6px;
    padding: 12px 10px !important;
    font-size: 14px !important;
  }
  .vit-report-toggle, .vit-report-toggle-emphasized {
    padding: 12px 10px !important; font-size: 14px !important;
  }
}
.vit-report-full {
  display: none !important;
  margin-top: 16px;
  background: white;
  border: 1.5px solid var(--brand-orange);
  border-radius: 14px;
  padding: 22px;
  font-size: 14.5px; line-height: 1.65;
}
.vit-report-full.open {display: block !important;}
.vit-report-full h3 {
  font-size: 16px; font-weight: 700; margin: 18px 0 8px;
  color: var(--brand-primary);
}
.vit-report-full h3:first-child {margin-top: 0;}
.vit-report-full p {margin-bottom: 10px;}
.vit-report-full .study-ref {
  display: inline-block; font-size: 11px;
  background: var(--brand-blue); color: white;
  padding: 2px 8px; border-radius: 100px;
  margin-left: 4px; cursor: pointer;
  text-decoration: none;
}
.vit-report-full .warning-block {
  background: #fef3c7; border-left: 4px solid var(--warning);
  padding: 12px 16px; border-radius: 8px; margin: 12px 0;
}
.vit-report-full .lifestyle-block {
  background: #e0f2fe; border-left: 4px solid var(--brand-blue);
  padding: 14px 16px; border-radius: 10px; margin: 10px 0;
  line-height: 1.55;
}
.vit-report-full .lifestyle-block-ico {font-size: 18px; margin-right: 6px; vertical-align: -2px;}
.vit-report-full .lifestyle-block-top {
  background: #FFF3E0; border-left: 4px solid var(--brand-orange);
  position: relative;
  box-shadow: 0 4px 14px rgba(248,150,31,0.08);
}
.vit-report-full .lifestyle-block-top::after {
  content: "Vaše hlavní priorita"; position: absolute; top: -10px; right: 12px;
  background: var(--brand-orange); color: white;
  font-size: 10px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase;
  padding: 3px 10px; border-radius: 100px;
}
.vit-report-full .lifestyle-block-situational {
  background: #f8f8f5; border-left: 4px solid var(--brand-gray-2);
}

/* Priority cards, Persona Nutrition style */
.priority-cards {
  display: grid; grid-template-columns: 1fr;
  gap: 14px; margin: 12px 0 18px;
}
/* Vít 21.5.2026: jediný breakpoint 980px, mobil 1 sloupec → desktop 2 sloupce */
@media (min-width: 980px) {
  .priority-cards {grid-template-columns: 1fr 1fr;}
}
.priority-card {
  background: white; border: 1.5px solid var(--brand-gray-1);
  border-radius: 14px; padding: 18px 18px 16px;
  transition: all 0.18s;
  position: relative;
}@media (hover: hover) and (pointer: fine){
.priority-card:hover {box-shadow: 0 6px 22px rgba(0,0,0,0.07); border-color: var(--brand-primary-soft);}}
.priority-card-top {
  border-color: var(--brand-orange);
  background: linear-gradient(180deg, #FFF9F0 0%, #ffffff 100%);
  box-shadow: 0 4px 18px rgba(248, 145, 31, 0.08);
}
.priority-card-head {display: flex; gap: 12px; align-items: center; margin-bottom: 10px;}
.priority-card-icon {
  font-size: 28px; line-height: 1;
  width: 44px; height: 44px;
  background: var(--brand-primary-soft); border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.priority-card-top .priority-card-icon {background: #ffe7c8;}
.priority-card-label {
  font-size: 16px; font-weight: 700; color: var(--brand-text);
  line-height: 1.25;
}
.priority-top-badge {
  display: inline-block; font-size: 10px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 1px;
  background: var(--brand-orange); color: white;
  padding: 2px 8px; border-radius: 100px;
  margin-left: 6px; vertical-align: middle;
}
.priority-card-why {
  font-size: 13.5px; line-height: 1.55;
  color: var(--brand-text-soft); margin: 0 0 10px;
}
.priority-card-nutrients {
  font-size: 12.5px; color: var(--brand-text);
  background: var(--brand-cream); padding: 8px 12px;
  border-radius: 8px; margin-bottom: 8px;
}
.priority-card-products {
  font-size: 12.5px; color: var(--brand-text);
  padding: 0 4px; margin-bottom: 8px; line-height: 1.5;
}
.priority-card-products strong {color: var(--brand-primary);}
.priority-card-study {margin-top: 4px;}
.priority-card-study .study-ref {
  display: inline-block; font-size: 11px;
  background: var(--brand-blue); color: white;
  padding: 3px 10px; border-radius: 100px;
  text-decoration: none;
}
.priority-card-studies {
  margin-top: 10px; padding-top: 10px;
  border-top: 1px dashed var(--brand-gray-1);
}
.priority-card-studies .study-ref {
  font-size: 10px; padding: 1px 7px;
  background: var(--brand-blue); color: white;
  border-radius: 100px; text-decoration: none;
  display: inline-block;
}
.priority-card-studies ul {list-style: none; padding-left: 0;}
.priority-card-studies li {
  padding-left: 14px; position: relative;
}
.priority-card-studies li::before {
  content: "•"; position: absolute; left: 4px;
  color: var(--brand-primary); font-weight: 700;
}

.report-section h3 {
  font-size: 18px; font-weight: 600;
  margin: 24px 0 12px; color: var(--brand-primary);
}
.report-section p {margin-bottom: 10px; font-size: 15px;}
.report-section .study-ref {
  display: inline-block; font-size: 11px;
  background: var(--brand-blue); color: white;
  padding: 2px 8px; border-radius: 100px;
  margin-left: 4px; cursor: pointer;
  text-decoration: none;
}
.report-section .warning-block {
  background: #fef3c7; border-left: 4px solid var(--warning);
  padding: 12px 16px; border-radius: 8px; margin: 12px 0;
}
.report-section .lifestyle-block {
  background: #e0f2fe; border-left: 4px solid var(--brand-blue);
  padding: 12px 16px; border-radius: 8px; margin: 12px 0;
}

/* === PROČ MY sekce (Vít 19.5.2026) === */
.why-us {
  margin: 36px 0 18px;
  padding: 28px 22px;
  background: white;
  border-radius: 20px;
  border: 1px solid var(--brand-gray-1);
}
.why-us-title {
  font-size: 22px; font-weight: 700; color: var(--brand-text);
  text-align: center; margin: 0 0 22px;
  letter-spacing: -0.3px;
}
.why-us-grid {
  display: grid; gap: 16px;
  grid-template-columns: 1fr 1fr;
}
/* Vít 21.5.2026: jediný breakpoint 980px, mobil 2 sloupce → desktop 3 sloupce */
@media (min-width: 980px) { .why-us-grid {grid-template-columns: repeat(3, 1fr); gap: 22px;} }
.why-us-item {
  text-align: left;
  padding: 14px 12px;
  border-radius: 12px;
  transition: background 0.18s;
}@media (hover: hover) and (pointer: fine){
.why-us-item:hover {background: var(--brand-cream);}}
.why-us-icon {
  margin-bottom: 10px;
  display: inline-flex; align-items: center; justify-content: center;
  width: 52px; height: 52px;
  background: var(--brand-primary-soft); border-radius: 14px;
  color: var(--brand-primary);
}
.why-us-icon svg { width: 26px; height: 26px; }
/* === Recenze na výsledkové stránce (Vít 2.6.2026, inspirace homepage/hodnoceni) === */
.rr-reviews { max-width: 1000px; margin: 26px auto 0; }
.rr-head { text-align: center; margin-bottom: 20px; }
.rr-eyebrow { display:inline-block; font-size:12px; font-weight:800; letter-spacing:1.5px; text-transform:uppercase; color:var(--brand-warm); margin-bottom:8px; }
.rr-h2 { font-size: clamp(22px,5vw,30px); font-weight:800; margin:0 0 10px; color:var(--brand-text); }
.rr-gold { color:#FBBC04; } .rr-green { color:var(--brand-primary); }
.rr-lede { color:var(--brand-text-soft); font-size:15px; margin:0 0 16px; }
.rr-badge { display:inline-flex; align-items:center; flex-wrap:wrap; gap:8px; background:#fff; border:1px solid var(--brand-gray-1); padding:10px 16px; border-radius:14px; font-size:14px; font-weight:600; text-decoration:none; color:inherit; box-shadow:0 2px 10px rgba(0,0,0,0.04); }
.rr-gword, .rr-mini-g { display:inline-flex; gap:0; font-weight:800; }
.rr-gword span:nth-child(1),.rr-mini-g span:nth-child(1){color:#4285F4;} .rr-gword span:nth-child(2),.rr-mini-g span:nth-child(2){color:#EA4335;}
.rr-gword span:nth-child(3),.rr-mini-g span:nth-child(3){color:#FBBC04;} .rr-gword span:nth-child(4),.rr-mini-g span:nth-child(4){color:#4285F4;}
.rr-gword span:nth-child(5),.rr-mini-g span:nth-child(5){color:#34A853;} .rr-gword span:nth-child(6),.rr-mini-g span:nth-child(6){color:#EA4335;}
.rr-stars { color:#FBBC04; letter-spacing:1px; } .rr-muted { color:var(--brand-text-soft); font-weight:500; }
.rr-grid { display:grid; gap:16px; grid-template-columns:1fr; }
@media (min-width:760px){ .rr-grid { grid-template-columns:repeat(3,1fr); } }
.rr-card { background:#fff; border:1px solid var(--brand-gray-1); border-radius:18px; padding:20px; box-shadow:0 1px 3px rgba(0,0,0,0.04); display:flex; flex-direction:column; gap:12px; }
.rr-card-stars { color:#FBBC04; font-size:18px; letter-spacing:1px; line-height:1; }
.rr-card-text { color:var(--brand-text); font-size:14px; line-height:1.6; flex:1; margin:0; }
.rr-card-meta { display:flex; align-items:center; gap:12px; padding-top:12px; border-top:1px solid #F4F4F4; }
.rr-avatar { width:40px; height:40px; border-radius:50%; color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:16px; flex-shrink:0; }
.rr-c1{background:var(--brand-primary);} .rr-c2{background:var(--brand-warm);} .rr-c3{background:#4285F4;}
.rr-name { font-weight:700; font-size:14px; color:var(--brand-text); }
.rr-date { font-size:12px; color:var(--brand-text-soft); display:flex; align-items:center; gap:6px; }
.rr-mini-g { font-size:11px; letter-spacing:-0.3px; }
.rr-more { display:inline-block; margin-top:18px; color:var(--brand-primary); font-weight:700; font-size:14px; text-decoration:none; }
.why-us-item h3 {
  font-size: 16px; font-weight: 700; color: var(--brand-text);
  margin: 0 0 6px;
}
.why-us-item p {
  font-size: 13.5px; line-height: 1.5;
  color: var(--brand-text-soft); margin: 0;
}

/* === RECENZE preview === */
.reviews-preview {
  margin: 18px 0 8px;
  padding: 22px;
  background: white;
  border: 1px solid var(--brand-gray-1);
  border-radius: 20px;
}
.reviews-preview-head {
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 14px;
}
.reviews-preview h2 {
  font-size: 18px; font-weight: 700; color: var(--brand-text);
  margin: 0 0 6px; letter-spacing: -0.2px;
}
.reviews-preview-meta {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  font-size: 13.5px;
}
.reviews-preview-cta {
  background: var(--brand-primary); color: white; border: none;
  padding: 12px 22px; border-radius: 30px; font-weight: 700; font-size: 14px;
  cursor: pointer; font-family: inherit;
  box-shadow: 0 4px 14px rgba(40,149,70,0.2);
  white-space: nowrap;
}@media (hover: hover) and (pointer: fine){
.reviews-preview-cta:hover {background: var(--brand-primary-dark); transform: translateY(-1px);}}

/* === REVIEWS MODAL === */
.reviews-modal-overlay {
  position: fixed; inset: 0; background: rgba(0,0,0,0.55);
  z-index: 9999; display: flex; align-items: flex-start; justify-content: center;
  padding: 30px 16px; overflow-y: auto;
  animation: fadeBg 0.2s ease-out;
}
.reviews-modal {
  background: white; border-radius: 20px;
  max-width: 640px; width: 100%;
  padding: 24px 22px 28px; position: relative;
  box-shadow: 0 30px 80px rgba(0,0,0,0.3);
  animation: contactSlide 0.3s cubic-bezier(0.4,0,0.2,1);
}
.reviews-modal-close {
  position: absolute; top: 14px; right: 14px;
  background: #f1f1f1; border: none; border-radius: 50%;
  width: 36px; height: 36px; font-size: 20px; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
}
.reviews-modal-head {
  padding-bottom: 16px; margin-bottom: 18px;
  border-bottom: 1px solid var(--brand-gray-1);
}
.reviews-modal-head h2 {font-size: 22px; font-weight: 700; margin: 0 0 6px;}
.reviews-modal-meta {display: flex; align-items: center; gap: 8px; font-size: 14px;}
.reviews-list {display: flex; flex-direction: column; gap: 20px;}
.review-item {
  padding: 14px 0; border-bottom: 1px dashed var(--brand-gray-1);
  position: relative;
}
.review-item:last-child {border-bottom: none;}
.review-head {display: flex; align-items: center; gap: 12px; margin-bottom: 8px;}
.review-avatar {
  width: 40px; height: 40px; border-radius: 50%;
  background: var(--brand-primary-soft); color: var(--brand-primary);
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: 16px; flex-shrink: 0;
}
.review-info {flex: 1; min-width: 0;}
.review-name {font-weight: 700; font-size: 14px; color: var(--brand-text);}
.review-date {font-size: 12px; color: var(--brand-text-soft);}
.review-google {flex-shrink: 0;}
.review-stars {color: #FBBC04; font-size: 14px; letter-spacing: -1px; margin-bottom: 6px;}
.review-text {font-size: 13.5px; line-height: 1.55; color: var(--brand-text);}
.reviews-modal-footer {
  margin-top: 20px; padding-top: 16px;
  border-top: 1px solid var(--brand-gray-1);
  text-align: center;
}
.reviews-modal-footer a {
  display: inline-flex; align-items: center; gap: 8px;
  color: var(--brand-primary); font-weight: 700;
  text-decoration: none; font-size: 14px;
  padding: 10px 20px; border: 2px solid var(--brand-primary);
  border-radius: 30px;
}@media (hover: hover) and (pointer: fine){
.reviews-modal-footer a:hover {background: var(--brand-primary); color: white;}}

/* === All-products CTA + modal (Vít 19.5.2026) === */
.all-products-cta {
  display: inline-flex; align-items: center; justify-content: center;
  gap: 10px; flex-wrap: wrap;
  background: white; border: 2px dashed var(--brand-primary);
  color: var(--brand-primary); font-weight: 700; font-size: 15px;
  padding: 14px 24px; border-radius: 14px;
  cursor: pointer; font-family: inherit; line-height: 1.35;
  transition: all 0.18s; text-align: center;
  -webkit-tap-highlight-color: rgba(40,149,70,0.15);
  touch-action: manipulation;
}@media (hover: hover) and (pointer: fine){
.all-products-cta:hover, .all-products-cta:active {
  background: var(--brand-primary); color: white;
  border-style: solid; transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(40,149,70,0.25);
}}

.all-products-modal-overlay {
  position: fixed; inset: 0; background: rgba(0,0,0,0.55);
  z-index: 9999; display: flex; align-items: flex-start; justify-content: center;
  padding: 24px 12px;
  overflow-y: auto;
  animation: fadeBg 0.2s ease-out;
  -webkit-overflow-scrolling: touch;
}
.all-products-modal {
  background: white; border-radius: 20px;
  max-width: 760px; width: 100%;
  padding: 22px 18px 28px; position: relative;
  box-shadow: 0 30px 80px rgba(0,0,0,0.3);
  animation: contactSlide 0.3s cubic-bezier(0.4,0,0.2,1);
  /* Vít 19.5.: na mobilu nesmí přesahovat, vždy se vejde */
  max-width: min(760px, 100%);
}
.all-products-modal-head {
  padding-bottom: 14px; margin-bottom: 14px;
  border-bottom: 1px solid var(--brand-gray-1);
  position: sticky; top: 0; background: white; z-index: 2;
}
.all-products-modal-head h2 {font-size: 21px; font-weight: 700; margin: 0 0 4px;}
.all-products-modal-head p {font-size: 13px; color: var(--brand-text-soft); margin: 0;}
.all-products-modal-close {
  position: absolute; top: 14px; right: 14px;
  background: #f1f1f1; border: none; border-radius: 50%;
  width: 36px; height: 36px; font-size: 20px; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  z-index: 3;
}
/* Vít 19.5.2026: live sticky bar dole v modalu, počítadlo + cena + tlačítka */
.all-products-modal-stickybar {
  position: sticky; bottom: -28px;
  background: white;
  border-top: 1.5px solid var(--brand-gray-1);
  padding: 12px 16px;
  margin: 16px -18px -28px;
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px;
  box-shadow: 0 -6px 16px rgba(0,0,0,0.06);
  z-index: 3;
  flex-wrap: wrap;
}
.apmb-info {display: flex; flex-direction: column; gap: 2px; min-width: 0;}
.apmb-count {font-size: 11.5px; color: var(--brand-text-soft); font-weight: 600; text-transform: uppercase; letter-spacing: 0.4px;}
.apmb-price {font-size: 18px; color: var(--brand-primary); font-weight: 800;}
.apmb-actions {display: flex; gap: 8px; align-items: center;}
.apmb-back {
  background: white;
  border: 1.5px solid var(--brand-gray-1);
  color: var(--brand-text);
  padding: 10px 14px; border-radius: 999px;
  font-size: 13px; font-weight: 600;
  cursor: pointer; font-family: inherit;
}@media (hover: hover) and (pointer: fine){
.apmb-back:hover {border-color: var(--brand-text-soft);}}
.apmb-cta {
  background: var(--brand-primary);
  color: white; border: none;
  padding: 11px 20px; border-radius: 999px;
  font-size: 14px; font-weight: 800;
  cursor: pointer; font-family: inherit;
  box-shadow: 0 4px 12px rgba(40,149,70,0.3);
  transition: all 0.15s;
}@media (hover: hover) and (pointer: fine){
.apmb-cta:hover {transform: translateY(-1px); box-shadow: 0 6px 16px rgba(40,149,70,0.4);}}
@media (max-width: 480px) {
  .all-products-modal-stickybar {padding: 10px 12px; margin: 12px -12px -22px;}
  .apmb-price {font-size: 16px;}
  .apmb-back {padding: 9px 12px; font-size: 12px;}
  .apmb-cta {padding: 10px 16px; font-size: 13px;}
}
/* Vít 19.5.2026 mobile-first: auto-fit grid reaguje na ŠÍŘKU MODALU, ne na viewport.
   Na úzkém modalu (mobile) = 1 sloupec. Když má prostor 240+ px na sloupec = 2 sloupce. */
.all-products-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 10px;
}
.all-product-card {
  display: flex; gap: 12px; padding: 12px;
  border: 1px solid var(--brand-gray-1); border-radius: 12px;
  background: white; transition: all 0.15s;
  align-items: center;
  min-width: 0; /* Vít 19.5.: aby flex item nepřekročil parent width na úzkém viewportu */
  overflow: hidden;
}
.all-product-card.added {
  border-color: var(--brand-primary); background: var(--brand-primary-soft);
}
/* Vít 19.5.2026: produkt už v plánu má zelený rámeček a soft pozadí, ale plnou barvu (žádné opacity) */
.all-product-card.in-plan {
  background: var(--brand-primary-soft);
  border-color: var(--brand-primary);
}
.all-product-img {
  width: 64px; height: 64px; flex-shrink: 0;
  border-radius: 10px; overflow: hidden;
  background: var(--brand-cream); display: flex;
  align-items: center; justify-content: center;
}
.all-product-img img {width: 100%; height: 100%; object-fit: cover;}
.all-product-info {flex: 1 1 auto; min-width: 0; overflow: hidden;}
.all-product-name {font-weight: 700; font-size: 14px; color: var(--brand-text); margin-bottom: 2px; word-wrap: break-word;}
.all-product-desc {font-size: 12px; color: var(--brand-text-soft); line-height: 1.4; margin-bottom: 4px; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;}
.all-product-price {font-size: 13px; font-weight: 700; color: var(--brand-primary); word-wrap: break-word;}
.all-product-actions {display: flex; flex-direction: column; align-items: flex-end; gap: 6px; flex-shrink: 0;}
/* Vít 19.5.2026: mobile fix, užší padding + menší foto aby se vše vešlo */
@media (max-width: 480px) {
  .all-products-modal {padding: 18px 12px 22px; border-radius: 16px;}
  .all-products-modal-head h2 {font-size: 18px;}
  .all-products-modal-head p {font-size: 12px;}
  .all-products-cat-title {font-size: 16px;}
  .all-product-card {padding: 10px; gap: 10px;}
  .all-product-img {width: 56px; height: 56px;}
  .all-product-name {font-size: 13px;}
  .all-product-desc {font-size: 11.5px;}
  .all-product-price {font-size: 12px;}
}
.all-product-more {font-size: 11px; color: var(--brand-primary); background: none; border: none; cursor: pointer; padding: 0; font-weight: 600; text-decoration: underline; font-family: inherit;}
.all-product-in-plan-label {
  font-size: 10px; font-weight: 700; color: var(--brand-text-soft);
  background: var(--brand-gray-1); padding: 3px 8px; border-radius: 100px;
  white-space: nowrap;
}
.all-products-cat {margin-bottom: 24px;}
.all-products-cat-title {
  font-size: 18px; font-weight: 700; color: var(--brand-text);
  margin: 0 0 12px; padding-bottom: 8px;
  border-bottom: 2px solid var(--brand-gray-1);
}

/* === CART V3 (Vít 19.5.2026): GymBeam-inspired 3-step wizard === */
#cartView {padding: 0 0 60px; min-height: 100vh;}
.cv3-header {
  display: flex; align-items: center; justify-content: center; gap: 24px;
  padding: 22px 24px 6px; background: transparent;
  flex-wrap: wrap;
}
/* GymBeam vzor: košík = plné menu bez progressu; krok 2/3 = minimální hlavička (bez menu) + progress */
body.checkout-step .site-nav,
body.checkout-step .site-nav-mobile-toggle { display: none !important; }
body.checkout-step .site-header-actions .login-btn { display: none !important; }
/* Vít 28.6.: na košíkových stránkách pryč ikonka košíku + logo na střed (mobil i desktop) */
body.checkout-step .cart-link { display: none !important; }
body.checkout-step .site-header-inner { justify-content: center; }
body.checkout-step .site-logo { margin: 0 auto; }
body.checkout-step .topbar { display: none !important; }                 /* zelený pruh pryč (Vít 28.6.) */
body.checkout-step .site-header-actions { display: none !important; }    /* prázdný pravý blok pryč -> logo fakt na střed */
/* Vít: košík bílý jako hlavička (ne béžový) */
body.checkout-step { background: #fff; }
.cv3-logo img {height: 36px; width: auto; display: block;}
.cv3-steps {display: flex; align-items: center; gap: 10px; flex: 1; justify-content: center; flex-wrap: wrap;}
.cv3-step {display: flex; align-items: center; gap: 10px; cursor: pointer; transition: opacity 0.15s; opacity: 0.5;}@media (hover: hover) and (pointer: fine){
.cv3-step:hover {opacity: 0.85;}}
.cv3-step.active, .cv3-step.done {opacity: 1;}
.cv3-step-circle {
  width: 32px; height: 32px; border-radius: 50%; box-sizing: border-box;
  background: var(--brand-gray-1); color: var(--brand-text);
  display: inline-flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: 14px; transition: all 0.2s;
}
.cv3-step.active .cv3-step-circle {background: var(--brand-warm); color: white;}
.cv3-step.done .cv3-step-circle {background: var(--brand-primary-soft, #e9f4ed); color: var(--brand-primary); border: 1.5px solid var(--brand-primary);}
.cv3-step.done .cv3-step-label {color: var(--brand-primary);}
.cv3-step-label {font-weight: 600; font-size: 14px;}
.cv3-step.active .cv3-step-label {color: var(--brand-warm);}
.cv3-step-line {width: 60px; height: 2px; background: var(--brand-gray-1);}
@media (max-width: 720px) {
  .cv3-header {padding: 12px 14px; gap: 12px;}
  .cv3-steps {gap: 4px;}
  .cv3-step-line {width: 20px;}
  .cv3-step-label {font-size: 12px;}
  .cv3-step-circle {width: 28px; height: 28px; font-size: 12px;}
}
.cv3-body {
  display: grid; grid-template-columns: 1fr;
  gap: 22px; padding: 24px 22px;
  max-width: 1180px; margin: 0 auto;
}
@media (min-width: 980px) { .cv3-body {grid-template-columns: 1fr 380px;} }
.cv3-main {min-width: 0;}
.cv3-step-content {
  background: white; border-radius: 16px;
  padding: 28px 24px;
  border: 1px solid var(--brand-gray-1);
  box-shadow: 0 2px 8px rgba(0,0,0,0.03);
  margin-bottom: 16px;
}
.cv3-h1 {
  font-size: 24px; font-weight: 800; margin: 0 0 22px;
  color: var(--brand-text); letter-spacing: -0.3px;
  display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap;
}
.cv3-h1-count {font-size: 15px; font-weight: 500; color: var(--brand-text-soft);}
.cv3-section {margin-bottom: 24px;}
.cv3-section:last-child {margin-bottom: 0;}
/* Vít 12.6.2026: čitelnější formulář — sekce jasně oddělené, labely lehké, inputy 16px (konec zoomu na mobilu) */
.cv3-section-h {font-size: 15px; font-weight: 700; margin: 0 0 14px; padding-bottom: 8px; border-bottom: 1px solid var(--brand-gray-1); color: var(--brand-text); letter-spacing: .2px;}
.cv3-req {color: var(--brand-warm); font-weight: 700;}
.cv3-form-grid {display: grid; grid-template-columns: 1fr 1fr; gap: 16px;}
.cv3-field {display: flex; flex-direction: column; gap: 6px; min-width: 0;}
.cv3-field-full {grid-column: 1 / -1;}
.cv3-field label {font-size: 12.5px; font-weight: 500; color: var(--brand-text-soft, #6B7785); margin-bottom: 1px;}
.cv3-field input, .cv3-field select, .cv3-textarea {
  padding: 12px 14px;
  border: 1.5px solid var(--brand-gray-1); border-radius: 10px;
  font-size: 16px; font-family: inherit; background: white;
  transition: all 0.15s;
  width: 100%; box-sizing: border-box; min-width: 0;
}
.cv3-field input.cv3-invalid, .cv3-field select.cv3-invalid {
  border-color: #c0392b !important; background: #fff4f4;
}
.cv3-field input:focus, .cv3-field select:focus, .cv3-textarea:focus {
  outline: none; border-color: var(--brand-warm); box-shadow: 0 0 0 3px rgba(248,150,31,0.15);
}
.cv3-field input::placeholder, .cv3-field select::placeholder, .cv3-textarea::placeholder {color: #aab2bd; font-weight: 400; opacity: 1;}
.cv3-textarea {width: 100%; resize: vertical; min-height: 80px;}
@media (max-width: 600px) {
  .cv3-form-grid {grid-template-columns: 1fr;}
}
.cv3-billing-section {background: white; border: 1px solid var(--brand-gray-1); border-radius: 14px; padding: 18px 18px 14px;}
.cv3-billing-type-tabs {display: flex; gap: 8px; margin-bottom: 16px;}
.cv3-billing-tab {
  background: white; border: 1.5px solid var(--brand-gray-1);
  color: var(--brand-text); padding: 9px 18px;
  border-radius: 8px; font-weight: 600; font-family: inherit; font-size: 13.5px;
  cursor: pointer; transition: all 0.12s;
}@media (hover: hover) and (pointer: fine){
.cv3-billing-tab:hover {border-color: var(--brand-text); background: #fafafa;}}
.cv3-billing-tab-active {background: var(--brand-text); color: white; border-color: var(--brand-text);}@media (hover: hover) and (pointer: fine){
.cv3-billing-tab-active:hover {background: black; color: white;}}
.cv3-checkbox-inline {display: inline-flex; align-items: center; gap: 8px; margin-top: 14px; font-size: 14px; cursor: pointer;}
.cv3-checkbox-inline input {accent-color: var(--brand-warm); width: 18px; height: 18px;}
.cv3-checkbox-block {
  display: flex; gap: 10px; align-items: flex-start;
  padding: 10px 0; cursor: pointer; font-size: 14px; line-height: 1.55; color: var(--brand-text);
}
.cv3-checkbox-block input {margin-top: 3px; accent-color: var(--brand-warm); width: 18px; height: 18px;}
.cv3-checkbox-block a {color: var(--brand-warm); text-decoration: underline;}
.cv3-muted {color: var(--brand-text-soft);}

.cv3-shipping-group, .cv3-payment-group {
  border: 1px solid var(--brand-gray-1);
  border-radius: 12px; overflow: hidden;
}
/* Vít 24.6.: oranžové zvýraznění chybějící sekce (doprava) při validaci */
.cv3-shipping-group.cv3-need, .cv3-need {
  border-color: var(--brand-warm) !important;
  box-shadow: 0 0 0 3px rgba(248,150,31,0.22) !important;
}
body.cart-zero #cv3FinalSubmit .cv3-final-cta-sub { display: none; }
.cv3-shipping-cat {
  background: var(--brand-gray-1); color: var(--brand-text);
  padding: 8px 14px; font-size: 13px; font-weight: 700;
}
.cv3-radio-row {
  display: grid; grid-template-columns: auto 1fr auto;
  align-items: center; gap: 4px 12px;
  padding: 14px 16px; cursor: pointer;
  border-bottom: 1px solid var(--brand-gray-1);
  background: white; position: relative; transition: background 0.1s;
}
.cv3-radio-row:last-child {border-bottom: none;}
.cv3-radio-row:has(input:checked) {background: rgba(248,150,31,0.05);}
.cv3-radio-row input[type="radio"] {width: 18px; height: 18px; accent-color: var(--brand-warm); margin: 0;}
.cv3-radio-label {display: flex; align-items: center; gap: 10px; font-size: 14.5px; font-weight: 500; min-width: 0;}
.cv3-carrier-logo {width: 28px; height: 20px; object-fit: contain;}
.cv3-shipping-price {font-size: 14px; font-weight: 700;}
.cv3-free {color: var(--brand-primary); letter-spacing: 0.3px;}
.cv3-shipping-date {font-size: 13px; color: var(--brand-text-soft); grid-column: 2 / -1; grid-row: 2; white-space: normal; margin-top: 2px;}
.cv3-info {
  background: white; border: 1px solid var(--brand-gray-2);
  width: 22px; height: 22px; border-radius: 50%;
  font-family: serif; font-style: italic; font-weight: 700; font-size: 12px;
  cursor: pointer; color: var(--brand-text-soft);
  display: inline-flex; align-items: center; justify-content: center;
}@media (hover: hover) and (pointer: fine){
.cv3-info:hover {color: var(--brand-warm); border-color: var(--brand-warm);}}
.cv3-tooltip {
  position: absolute; top: 100%; right: 0; margin-top: 6px;
  background: white; border: 1px solid var(--brand-gray-1);
  border-radius: 10px; padding: 14px 18px;
  font-size: 13px; line-height: 1.55; color: var(--brand-text);
  width: 380px; max-width: 90vw;
  box-shadow: 0 12px 32px rgba(0,0,0,0.12);
  z-index: 20; display: none;
}
.cv3-tooltip.open {display: block;}
@media (max-width: 600px) {
  .cv3-radio-row {grid-template-columns: auto 1fr auto auto; gap: 8px 10px; padding: 12px 14px;}
  .cv3-tooltip {right: 0; left: 0; width: auto;}
}
.cv3-shipping-note {font-size: 13px; color: var(--brand-text-soft); margin: 12px 4px 0;}

.cv3-payment-row {grid-template-columns: auto 1fr auto;}
.cv3-pay-ico {
  display: inline-flex; align-items: center; justify-content: center;
  width: 36px; height: 28px; font-size: 18px; font-weight: 800;
  background: var(--brand-gray-1); border-radius: 6px;
}
.cv3-radio-sub {color: var(--brand-text-soft); font-size: 12.5px; font-weight: 500;}
/* Vit 3.7.2026 v3 (Vituv mockup): title nahore, sub vlevo + Zdarma vpravo, loga v rade POD textem */
.cv3-payment-row { grid-template-columns: auto 1fr; }
.cv3-pay-main { display: block; min-width: 0; } /* Vit 3.7. v4: bez Zdarma - vzdusnejsi */
.cv3-pay-title { display: block; font-size: 15px; font-weight: 600; color: var(--brand-text); line-height: 1.35; }
.cv3-pay-main .cv3-radio-sub { display: block; margin-top: 2px; }
.cv3-pay-free { grid-area: free; justify-self: end; align-self: center; font-weight: 700; font-size: 14px; color: var(--brand-primary); white-space: nowrap; }
.cv3-pay-main .pay-brands { margin-top: 9px; }
.pay-brands { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-start; }
.pay-brands .pb { display: inline-flex; align-items: center; justify-content: center; height: 27px; width: 50px; background: #fff; border: 1px solid var(--brand-gray-1); border-radius: 6px; padding: 4px 7px; box-sizing: border-box; }
.pay-brands .pb img { max-height: 100%; max-width: 100%; display: block; }
.pay-brands .pb-qr svg { width: 16px; height: 16px; color: var(--brand-text); }
/* Vit 3.7. v5: loga bank v rozbalenem seznamu, badge Doporuceno u QR, mobil bez online bankingu */
.cv3-bank-opt { display: flex; align-items: center; gap: 10px; padding: 8px 6px; cursor: pointer; border-bottom: 1px solid #f0f0f0; border-radius: 8px; font-size: 14.5px; }
.cv3-bank-opt input { accent-color: var(--brand-primary); width: 16px; height: 16px; } /* Vit 4.7.: zelene dle designu, ne modre native */
@media (hover: hover) and (pointer: fine) { .cv3-bank-opt:hover { background: var(--brand-cream); } }
.cv3-bank-opt:last-child { border-bottom: 0; }
.cv3-bank-logo { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 50px; width: 50px; height: 27px; background: #fff; border: 1px solid var(--brand-gray-1); border-radius: 6px; padding: 4px 7px; box-sizing: border-box; }
.cv3-bank-logo img { max-height: 100%; max-width: 100%; display: block; }
.cv3-bank-logo.cv3-bank-logo-none { background: transparent; border-color: transparent; }
.cv3-pay-badge { display: inline-block; margin-left: 8px; padding: 2px 9px; border-radius: 999px; background: var(--brand-warm); color: #fff; font-size: 10.5px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; vertical-align: 2px; }
@media (max-width: 979px) { .cv3-pay-desktop { display: none !important; } }

.cv3-packages {display: flex; flex-direction: column; gap: 12px;}
/* Vít 21.5.2026: balíček v košíku, zelený rámeček, hlavička jako mobile expand panel */
.cv3-package {
  background: white; border-radius: 16px; padding: 16px;
  border: 2px solid var(--brand-primary);
  box-shadow: 0 4px 14px rgba(40,149,70,0.08);
}
/* Dárkový poukaz v košíku (Vít 23.6.2026) - zelená karta pod balíčky */
.cv3-voucher-card {
  position: relative;
  background: white; border-radius: 16px; padding: 14px 16px;
  border: 2px solid var(--brand-primary);
  box-shadow: 0 4px 14px rgba(40,149,70,0.08);
}
.cv3-voucher-card .cv3-pkg-remove { position: absolute; top: 10px; right: 10px; }
.cv3-voucher-head { padding-right: 42px; margin-bottom: 14px; }
.cv3-voucher-row { display: flex; align-items: center; gap: 14px; }
.cv3-voucher-card-img {
  width: 112px; height: auto; flex-shrink: 0;
  border-radius: 10px; display: block;
  box-shadow: 0 2px 8px rgba(0,0,0,0.10);
}
.cv3-voucher-card-info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.cv3-voucher-card-name { font-size: 16px; font-weight: 800; color: var(--brand-text); line-height: 1.25; letter-spacing: -0.2px; margin-bottom: 4px; }
.cv3-voucher-card-val { font-size: 13px; font-weight: 700; color: var(--brand-text-soft); }
.cv3-voucher-card-note { font-size: 11.5px; font-weight: 500; color: var(--brand-text-soft); }
.cv3-voucher-card-price { font-size: 20px; font-weight: 800; color: var(--brand-primary); white-space: nowrap; margin-left: auto; }
.cv3-voucher-qty { display:inline-flex; align-items:center; margin-top:0; border:1.5px solid var(--brand-gray-1); border-radius:999px; overflow:hidden; width:max-content; }
.cv3-vq-btn { width:36px; height:36px; border:none; background:#fff; color:var(--brand-primary); font-size:18px; font-weight:700; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; }@media (hover: hover) and (pointer: fine){
.cv3-vq-btn:hover:not(:disabled) { background:var(--brand-cream); }}
.cv3-vq-btn:disabled { color:var(--brand-gray-1); cursor:default; }
.cv3-vq-num { min-width:38px; text-align:center; font-weight:800; color:var(--brand-text); font-size:15px; }
.cv3-summary-vouchers { color: var(--brand-text-soft); font-size: 13px; }
.cv3-digital-box { display:flex; align-items:center; gap:14px; background:var(--brand-primary-soft); border:1.5px solid var(--brand-primary); border-radius:12px; padding:16px 18px; }
.cv3-digital-ico { width:42px; height:42px; flex-shrink:0; border-radius:50%; background:var(--brand-primary); color:#fff; display:flex; align-items:center; justify-content:center; }
.cv3-digital-box strong { display:block; font-size:15px; color:var(--brand-text); margin-bottom:2px; }
.cv3-digital-box span { font-size:13px; color:var(--brand-text-medium); line-height:1.45; }
.cv3-free-badge { background: var(--brand-primary-soft); color: var(--brand-primary); font-weight:800; font-size:11.5px; padding:2px 10px; border-radius:999px; letter-spacing:0.3px; }
.cv3-summary-trust span, .cv3-mobile-trust span { display:inline-flex; align-items:center; gap:5px; }
.cv3-summary-trust span svg, .cv3-mobile-trust span svg { color: var(--brand-primary); flex-shrink:0; }
.cv3-secure-note { display:flex; align-items:center; justify-content:center; gap:7px; font-size:12.5px; color:var(--brand-text-soft); margin-top:16px; text-align:center; }
.cv3-secure-note svg { color: var(--brand-primary); flex-shrink:0; }
.cv3-secure-note-line { border-top: 1px dashed var(--brand-gray-1); margin-top: 8px; padding-top: 16px; }
.cv3-consent-foot { margin-bottom: 12px; }
@keyframes cv3ConsentFlash { 0%,100% { box-shadow: 0 0 0 0 rgba(248,150,31,0); } 25% { box-shadow: 0 0 0 5px rgba(248,150,31,0.55); } }
.cv3-consent-flash { animation: cv3ConsentFlash 1.4s ease 2; border-color: var(--brand-warm) !important; border-radius: 12px; }
@media (max-width: 560px) {
  .cv3-voucher-card-img { width: 96px; }
  .cv3-voucher-card-name { font-size: 14px; }
  .cv3-voucher-card-price { font-size: 15.5px; }
  .cv3-voucher-card-img { width: 88px; }
  .cv3-vq-btn { width: 42px; height: 42px; font-size: 20px; }
  .cv3-vq-num { min-width: 42px; font-size: 16px; }
  .cv3-pkg-remove { width: 34px; height: 34px; }
}

/* Nová hlavička, balíček ikona + nadpis */
.cv3-pkg-head-v2 {
  display: flex; align-items: center; gap: 12px;
  background: var(--brand-cream); border-radius: 12px;
  padding: 8px 10px; margin-bottom: 12px;
  position: relative;
}
.cv3-pkg-icon {
  width: 48px; height: 48px; flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center;
}
.cv3-pkg-icon img { height: 44px; width: auto; display: block; }
.cv3-pkg-head-text { display: flex; flex-direction: column; gap: 1px; line-height: 1.25; flex: 1; }
.cv3-pkg-head-text strong { font-size: 17.5px; font-weight: 800; color: var(--brand-text); letter-spacing: -0.2px; }
.cv3-pkg-head-text small { font-size: 11.5px; font-weight: 500; color: var(--brand-text-soft); }
.cv3-pkg-head-name { font-size: 14px; font-weight: 700; color: var(--brand-text); }
.cv3-pkg-head-name.is-empty { font-weight: 500; font-style: italic; color: var(--brand-text-soft); }
/* Jméno na balíček, povinné, jde přepsat ale nejde smazat */
.cv3-pkg-name-label {
  display: block; font-size: 12px; font-weight: 700;
  color: var(--brand-text); margin: 0 0 5px;
}
.cv3-pkg-name-label small { font-weight: 500; color: var(--brand-text-soft); }
.cv3-pkg-name-edit {
  width: 100%; box-sizing: border-box;
  border: 2px solid var(--brand-gray-1); border-radius: 10px;
  padding: 10px 12px; font-size: 14.5px; font-family: inherit; font-weight: 700;
  color: var(--brand-text); background: white;
  margin-bottom: 14px;
  transition: border-color 0.15s;
}
.cv3-pkg-name-edit:focus { outline: none; border-color: var(--brand-primary); background: #f0f9f4; }
.cv3-pkg-remove {
  background: white; border: 1px solid var(--brand-gray-1); color: var(--brand-text-soft);
  border-radius: 999px; width: 30px; height: 30px;
  cursor: pointer; font-size: 16px; line-height: 1;
  display: inline-flex; align-items: center; justify-content: center;
}@media (hover: hover) and (pointer: fine){
.cv3-pkg-remove:hover {background: #fff4f4; color: #c0392b; border-color: #c0392b;}}
.cv3-pkg-products {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 8px; margin-bottom: 14px;
}
@media (min-width: 480px) { .cv3-pkg-products { grid-template-columns: repeat(4, 1fr); } }
.cv3-pkg-prod {text-align: center; position: relative; min-width: 0;}
/* Vit 7.7.: proklik na produkt - spodni pulka dlazdice (fotka od pulky + nazev + cena); krizek nahore ma prednost */
.cv3-pkg-prod-golink { position: absolute; left: 0; right: 0; top: 44%; bottom: 0; z-index: 1; border-radius: 8px; }
.cv3-pkg-prod-remove, .cv3-pkg-prod-qty { z-index: 2; }
.cv3-voucher-link { text-decoration: none; color: inherit; }
.cv3-voucher-link:hover { color: var(--brand-primary); }
.cv3-pkg-prod-img {
  display: block;
  width: 100%; height: auto; aspect-ratio: 1 / 1;
  object-fit: cover;
  background: var(--brand-gray-1); border-radius: 8px; margin-bottom: 4px;
}
.cv3-pkg-prod-name {font-size: 10px; color: var(--brand-text); line-height: 1.2; font-weight: 600;}
.cv3-pkg-prod-price {font-size: 10.5px; color: var(--brand-text-soft); font-weight: 600; margin-top: 2px;}
.cv3-pkg-prod-remove {
  position: absolute; top: -6px; left: -6px; right: auto;
  width: 22px; height: 22px; border-radius: 50%;
  background: white; border: 1.5px solid var(--brand-gray-1);
  color: var(--brand-text-soft); cursor: pointer;
  font-size: 14px; line-height: 1; font-weight: 600;
  display: inline-flex; align-items: center; justify-content: center;
  z-index: 2; padding: 0;
  box-shadow: 0 1px 4px rgba(0,0,0,0.08);
  transition: all 0.12s;
}@media (hover: hover) and (pointer: fine){
.cv3-pkg-prod-remove:hover {background: #fff4f4; color: #c0392b; border-color: #c0392b;}}
.cv3-pkg-prod-qty {
  position: absolute; top: -6px; right: -6px; left: auto;
  min-width: 22px; height: 22px; padding: 0 5px; border-radius: 11px;
  background: var(--brand-warm); color: #fff;
  font-size: 11.5px; font-weight: 800; line-height: 22px;
  text-align: center; z-index: 2;
  box-shadow: 0 1px 4px rgba(0,0,0,0.12);
}
.cv3-pkg-prod-name-qty { color: var(--brand-warm); font-weight: 800; }
/* "+ Přidat vitamíny" dlaždice, Vít 21.5.2026 */
.cv3-pkg-add {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 4px; cursor: pointer; font-family: inherit;
  background: var(--brand-primary-soft, #E8F4EC);
  border: 2px dashed var(--brand-primary);
  border-radius: 8px; padding: 6px 4px;
  aspect-ratio: 1/1; min-height: 64px;
  transition: all 0.15s;
}@media (hover: hover) and (pointer: fine){
.cv3-pkg-add:hover { background: #DCEFE2; transform: translateY(-2px); }}
.cv3-pkg-add-circle {
  width: 24px; height: 24px; border-radius: 50%;
  background: var(--brand-primary); color: white;
  font-size: 17px; font-weight: 800; line-height: 1;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.cv3-pkg-add-text {
  font-size: 9.5px; font-weight: 800; color: var(--brand-primary);
  line-height: 1.15; text-align: center;
}
.cv3-pkg-add-sub {
  font-size: 8px; font-weight: 600; color: var(--brand-text-soft);
  line-height: 1.2; text-align: center; text-wrap: balance;
}
@media (min-width: 720px) {
  .cv3-pkg-add-text { font-size: 10.5px; }
  .cv3-pkg-add-sub { font-size: 8.5px; }
}
/* Vit 4.7.2026: obdobi = PRESNE stejny vzhled jako pricing toggle na doporuceni, jen badge "Vyhodnejsi" */
.cv3-pkg-period {display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 6px 0 12px;}
.cv3-period-opt {cursor: pointer; position: relative;}
.cv3-period-opt input {position: absolute; opacity: 0; pointer-events: none;}
.cv3-period-card {
  position: relative; padding: 8px 12px;
  border: 2px solid var(--brand-gray-1); border-radius: 12px;
  background: #fff; text-align: center; transition: all 0.15s;
  -webkit-tap-highlight-color: transparent;
}
.cv3-period-card::before { content:""; position:absolute; top:8px; left:8px; width:16px; height:16px; border-radius:50%; border:2px solid var(--brand-gray-1); background:#fff; transition:all .15s; }
@media (hover: hover) and (pointer: fine){
.cv3-period-opt:hover .cv3-period-card { border-color: var(--brand-warm); }}
.cv3-period-opt input:checked + .cv3-period-card { border-color: var(--brand-warm); background: rgba(248,150,31,0.06); }
.cv3-period-opt input:checked + .cv3-period-card::before { border-color:var(--brand-warm); background:var(--brand-warm) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center/11px no-repeat; }
.cv3-period-title {font-size: 12.5px; font-weight: 400; color: var(--brand-text);}
/* Vit 23.7.: mensi telefony - skryt "/ N bal." (jinak se orizne "30/90 dni"). Do 419px, >=420 beze zmeny. */
@media (max-width: 390px) { .cv3-period-pack { display: none; } } /* Vit 23.7.: az <=390 (bezny tel 375); 400/402 iPhone 17 Pro beze zmeny */
.cv3-period-price {font-size: 18px; font-weight: 800; color: var(--brand-primary); margin-top: 2px;}
.cv3-period-badge {position: absolute; top: -9px; left: 50%; transform: translateX(-50%); background: var(--brand-warm); color: #fff; font-size: 9.5px; font-weight: 700; letter-spacing: .4px; padding: 2px 10px; border-radius: 10px; white-space: nowrap; box-shadow: 0 2px 6px rgba(248,150,31,0.35); z-index: 2; text-transform: uppercase;}
.cv3-pkg-foot {
  display: flex; align-items: center; justify-content: space-between;
  font-size: 13px; color: var(--brand-text-soft);
  border-top: 1px dashed var(--brand-gray-1); padding-top: 10px;
}
.cv3-pkg-foot-total {color: var(--brand-text); font-weight: 700; font-size: 15px;}
/* Vít 12.6.2026: decentní bílé tlačítko, ať se nebije s CTA „Pokračovat". Zelená se objeví až na hover/focus. */
.cv3-pkg-reco-btn {align-self: flex-start; display: inline-flex; align-items: center; gap: 6px; margin: 2px 0 12px; padding: 7px 13px; background: #fff; color: var(--brand-text-soft, #6B7785); border: 1px solid var(--brand-gray-2, #e2e6ea); border-radius: 9px; font-family: inherit; font-size: 12.5px; font-weight: 600; cursor: pointer; transition: all 0.12s;}@media (hover: hover) and (pointer: fine){
.cv3-pkg-reco-btn:hover, .cv3-pkg-reco-btn:focus-visible {background: var(--brand-primary-soft, #e9f4ed); color: var(--brand-primary); border-color: var(--brand-primary);}}

.cv3-add-more {
  display: flex; align-items: center; gap: 12px; width: 100%;
  background: white;
  border: 1.5px dashed var(--brand-primary); color: var(--brand-text);
  padding: 14px 18px; border-radius: 14px; font-family: inherit;
  cursor: pointer; text-align: left; transition: all 0.15s; margin: 6px 0 18px;
}@media (hover: hover) and (pointer: fine){
.cv3-add-more:hover {background: var(--brand-primary-soft); border-style: solid;}}
.cv3-add-ico {
  background: var(--brand-primary); color: white;
  width: 36px; height: 36px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 22px; font-weight: 300; flex-shrink: 0;
}
.cv3-add-text {display: flex; flex-direction: column;}
.cv3-add-text strong {font-size: 14px; color: var(--brand-text);}
.cv3-add-text span {font-size: 12.5px; color: var(--brand-text-soft);}

/* Vít 6.7.: PC-only „Zpět" v řádku stepperu vlevo (zarovnané s košíkem). Mobil má svoji spodní lištu. Dolní desktop Zpět skryt. */
.cv3-topback { display: none; }
@media (min-width: 980px) {
  .cv3-header { position: relative; }
  .cv3-topback { display: inline-flex; align-items: center; gap: 7px; position: absolute; top: 18px; left: max(22px, calc(50% - 568px)); z-index: 2; background: #fff; border: 1.5px solid var(--brand-gray-1); color: var(--brand-text); font-weight: 700; font-size: 14px; padding: 9px 16px; border-radius: 12px; cursor: pointer; font-family: inherit; transition: border-color .15s, color .15s; }
  .cv3-topback:hover { border-color: var(--brand-primary); color: var(--brand-primary); }
  .cv3-nav-back { display: none !important; }
  .cv3-nav-next { margin-left: auto; }
}
.cv3-nav {display: flex; gap: 12px; justify-content: space-between; margin-top: 6px;}
.cv3-nav-back {
  background: transparent; border: 1.5px solid var(--brand-gray-1);
  color: var(--brand-text); padding: 14px 26px;
  border-radius: 999px; font-weight: 600; cursor: pointer;
  font-family: inherit; font-size: 14px;
}@media (hover: hover) and (pointer: fine){
.cv3-nav-back:hover {border-color: var(--brand-text); background: white;}}
.cv3-nav-next {
  background: var(--brand-primary); color: white; border: none;
  padding: 14px 32px; border-radius: 14px; font-weight: 800;
  cursor: pointer; font-family: inherit; font-size: 15px;
  box-shadow: 0 6px 18px rgba(40,149,70,0.28);
  transition: all 0.15s;
}@media (hover: hover) and (pointer: fine){
.cv3-nav-next:hover {background: var(--brand-primary-dark); transform: translateY(-1px);}}

.cv3-aside {position: relative;}
@media (min-width: 980px) { .cv3-aside {position: sticky; top: 90px; align-self: start;} }
.cv3-summary {
  background: white; border-radius: 16px; padding: 22px 20px;
  border: 1px solid var(--brand-gray-1);
  box-shadow: 0 4px 14px rgba(0,0,0,0.04);
}
.cv3-summary-head {
  display: flex; justify-content: space-between; align-items: center;
  margin-bottom: 14px; padding-bottom: 12px;
  border-bottom: 1px solid var(--brand-gray-1);
}
.cv3-summary-head h3 {font-size: 16px; font-weight: 700; color: var(--brand-text); margin: 0;}
.cv3-summary-count {font-size: 13px; color: var(--brand-text-soft); font-weight: 500;}
.cv3-summary-edit {
  background: transparent; border: none;
  color: var(--brand-warm); font-weight: 700;
  cursor: pointer; font-family: inherit; font-size: 13px; padding: 4px 0;
}@media (hover: hover) and (pointer: fine){
.cv3-summary-edit:hover {text-decoration: underline;}}
.cv3-summary-rows {display: flex; flex-direction: column; gap: 10px; margin-bottom: 14px; max-height: 240px; overflow-y: auto;}
/* Vít 12.6.2026 (úkol 10): sbalitelný souhrn objednávky (GymBeam styl) — kompaktní na krocích doručení/platba */
.cv3-summary-head-toggle {cursor: pointer; user-select: none;}
.cv3-summary-chevron {font-size: 13px; color: var(--brand-text-soft); transition: transform 0.2s; flex-shrink: 0; margin-left: 8px;}
.cv3-summary-head-toggle.is-open .cv3-summary-chevron {transform: rotate(180deg);}
.cv3-summary-rows.cv3-collapsed {display: none;}
.cv3-summary-pkg {display: flex; gap: 10px; align-items: center; font-size: 13px; padding: 6px 0;}
.cv3-summary-pkg-info {flex: 1; min-width: 0;}
.cv3-summary-pkg-name {font-weight: 600; color: var(--brand-text); font-size: 13.5px;}
.cv3-summary-pkg-meta {color: var(--brand-text-soft); font-size: 11.5px;}
.cv3-summary-pkg-price {font-weight: 700; color: var(--brand-text); white-space: nowrap;}
.cv3-summary-line {
  display: flex; justify-content: space-between;
  font-size: 13.5px; padding: 8px 0;
  border-top: 1px dashed var(--brand-gray-1);
}
.cv3-summary-discount {color: var(--brand-text); font-size: 13.5px;}
.cv3-promo {
  margin: 14px 0; border: 1.5px solid var(--brand-gray-1);
  border-radius: 12px; overflow: hidden;
}
.cv3-promo-toggle {
  display: flex; align-items: center; justify-content: space-between;
  width: 100%; background: transparent; border: none;
  padding: 13px 14px; cursor: pointer; font-family: inherit;
  font-size: 14px; font-weight: 800; color: var(--brand-text);
  text-align: left;
}@media (hover: hover) and (pointer: fine){
.cv3-promo-toggle:hover {background: var(--brand-cream);}}
.cv3-promo-chevron {
  font-size: 13px; color: var(--brand-text-soft);
  transition: transform 0.2s ease; flex-shrink: 0; margin-left: 10px;
}
.cv3-promo.is-open .cv3-promo-chevron {transform: rotate(180deg);}
.cv3-promo.is-open .cv3-promo-toggle {border-bottom: 1px dashed var(--brand-gray-1);}
.cv3-promo-body {padding: 12px 14px 14px;}
.cv3-promo-input-row {
  display: flex; align-items: stretch;
  border: 2px solid var(--brand-gray-2); border-radius: 12px;
  overflow: hidden; background: white;
}
.cv3-promo-input-row:focus-within {border-color: var(--brand-primary); box-shadow: 0 0 0 3px var(--brand-primary-soft);}
.cv3-promo-input-row input {
  flex: 1; width: 100%; padding: 13px 12px; font-size: 14px;
  border: none; outline: none; background: transparent;
  font-family: inherit; min-width: 0;
  text-transform: uppercase; letter-spacing: 0.5px;
}
/* Vít 17.6.2026: jasné tlačítko „Uplatnit" místo nenápadné šipky */
.cv3-promo-apply {
  background: var(--brand-primary); border: none;
  color: #fff; font-size: 14px; font-weight: 800; line-height: 1;
  padding: 0 20px; cursor: pointer; flex-shrink: 0;
  font-family: inherit; letter-spacing: 0.2px;
}@media (hover: hover) and (pointer: fine){
.cv3-promo-apply:hover {background: var(--brand-primary-dark);}}
.cv3-promo-apply:active {transform: translateY(1px);}
@media (max-width: 379px) { .cv3-promo-apply { padding: 0 13px; font-size: 13px; } .cv3-promo-input-row input { padding: 13px 10px; font-size: 13px; } }
.cv3-promo { min-width: 0; }
.cv3-promo-status {font-size: 12.5px; margin-top: 6px; font-weight: 600;}
.cv3-promo-status.ok {color: var(--brand-primary);}
.cv3-promo-status.err {color: #c0392b;}
/* Vít 21.5.2026: stav po uplatnění kódu */
.cv3-promo.is-applied {border-color: var(--brand-primary); background: var(--brand-primary-soft);}
.cv3-promo-applied {
  display: flex; align-items: center; justify-content: space-between;
  gap: 10px; padding: 12px 14px;
}
.cv3-promo-applied-info {display: flex; flex-direction: column; gap: 1px; line-height: 1.3; min-width: 0;}
.cv3-promo-applied-info strong {font-size: 13.5px; font-weight: 800; color: var(--brand-primary);}
.cv3-promo-applied-info span {font-size: 12px; font-weight: 600; color: var(--brand-text-soft);}
.cv3-promo-remove {
  flex-shrink: 0; width: 28px; height: 28px; border-radius: 50%;
  background: #fff; border: 1.5px solid var(--brand-gray-1);
  color: var(--brand-text-soft); cursor: pointer;
  font-size: 16px; line-height: 1; padding: 0;
  display: flex; align-items: center; justify-content: center;
}@media (hover: hover) and (pointer: fine){
.cv3-promo-remove:hover {border-color: #c0392b; color: #c0392b;}}
.cv3-summary-total {
  display: flex; justify-content: space-between; align-items: baseline;
  margin-top: 6px; padding-top: 12px;
  border-top: 2px solid var(--brand-gray-1);
  font-size: 15px; font-weight: 700;
}
.cv3-summary-total strong {color: var(--brand-warm); font-size: 24px; letter-spacing: -0.4px;}
.cv3-summary-vat {font-size: 11px; color: var(--brand-text-soft); text-align: right; margin: 4px 0 12px;}
.cv3-final-cta {
  width: 100%; background: var(--brand-primary); /* Vit 3.7.: zelene s bilym */
  color: white; border: none; padding: 14px 22px;
  border-radius: 14px; font-weight: 800; cursor: pointer;
  font-family: inherit; font-size: 15px;
  box-shadow: 0 6px 18px rgba(40,149,70,0.28);
  transition: all 0.15s;
  display: flex; flex-direction: column; gap: 2px; align-items: center;
}
/* Vít 2.6.2026: oranžové "Závazně objednat" v souhrnu bylo duplikát zeleného tlačítka.
   Schovat všude (předtím jen na mobilu). Odesílá zelené cv3NavNext / mobilní sticky lišta. */
.cv3-aside .cv3-final-cta { display: none; }
/* Vít 21.5.2026: Pokračovat tlačítko v summary boxu, zelené, full-width */
.cv3-summary-next {
  width: 100%; background: var(--brand-primary);
  color: white; border: none; padding: 16px 22px;
  border-radius: 12px; font-weight: 800; cursor: pointer;
  font-family: inherit; font-size: 16px;
  box-shadow: 0 6px 18px rgba(40,149,70,0.28);
  transition: all 0.15s;
}@media (hover: hover) and (pointer: fine){
.cv3-summary-next:hover {
  background: var(--brand-primary-dark, #1f6b39);
  transform: translateY(-1px);
  box-shadow: 0 10px 26px rgba(40,149,70,0.38);
}}
.cv3-summary-next:disabled {
  background: var(--brand-gray-1); color: var(--brand-text-soft);
  cursor: not-allowed; box-shadow: none; transform: none;
}@media (hover: hover) and (pointer: fine){
.cv3-final-cta:hover {transform: translateY(-1px); box-shadow: 0 10px 26px rgba(40,149,70,0.38);}}
.cv3-final-cta-sub {font-size: 10.5px; font-weight: 500; opacity: 0.9; display: inline; margin-left: 5px;}
/* Vít 2.6.2026: finální tlačítko (krok 3 Platba) oranžové */
/* Vit 3.7.2026: Zavazne objednat = ZELENE s bilym textem (jednotne hlavni CTA vsude) */
.cv3-summary-next.is-final { background: var(--brand-primary); color: #fff; }@media (hover: hover) and (pointer: fine){
.cv3-summary-next.is-final:hover { background: var(--brand-primary-dark, #1f6b39); }}
.cv3-mobile-bar-btn.is-final { background: var(--brand-primary); color: #fff; }
/* Vít 25.6.2026: ztlumené finální CTA dokud nejsou zaškrtnuté povinné souhlasy (zůstává klikací). */
.cv3-summary-next.is-final.cv3-locked, .cv3-mobile-bar-btn.is-final.cv3-locked { opacity: 0.45; box-shadow: none; }@media (hover: hover) and (pointer: fine){
.cv3-summary-next.is-final.cv3-locked:hover { transform: none; box-shadow: none; }}

/* Vít 21.5.2026: mobilní sticky lišta, Celkem + cena + Pokračovat (GymBeam styl) */
.cv3-mobile-bar {display: none;}
.cv3-mobile-trust {display: none;}
.cv3-footer {
  display: flex; align-items: center; justify-content: space-between;
  max-width: 1200px; margin: 0 auto; gap: 14px;
  padding: 20px 24px 30px; border-top: 1px solid var(--brand-gray-1);
}
.cv3-footer-copy {font-size: 12.5px; color: var(--brand-text-soft); font-weight: 500;}
.cv3-footer-mark {height: 24px; width: auto; opacity: 0.75;}
/* Vít 21.5.2026: košík se přepíná jen mezi PC (≥980) a mobil/tablet (≤979), nic mezitím */
@media (max-width: 979px) {
  .cv3-mobile-bar {
    display: flex; flex-direction: column; gap: 9px;
    /* sticky, drží se dole, ale na konci stránky se zastaví nad footerem (GymBeam styl) */
    position: sticky; bottom: 0; z-index: 300;
    width: 100%;
    background: #fff; border-top: 1px solid var(--brand-gray-1);
    padding: 10px 14px calc(10px + env(safe-area-inset-bottom));
  }
  .cv3-mobile-bar-row {display: flex; align-items: baseline; justify-content: space-between;}
  .cv3-mobile-bar-label {font-size: 16px; font-weight: 800; color: var(--brand-text);}
  .cv3-mobile-bar-price {text-align: right; line-height: 1.15;}
  .cv3-mobile-bar-price strong {font-size: 17px; font-weight: 800; color: var(--brand-warm);}
  .cv3-mobile-bar-price small {display: block; font-size: 11px; font-weight: 500; color: var(--brand-text-soft);}
  .cv3-mobile-bar-btn {
    width: 100%; background: var(--brand-primary); color: #fff; border: none;
    padding: 13px 16px; border-radius: 14px; line-height: 1.25;
    font-weight: 800; font-size: 15px; font-family: inherit; cursor: pointer;
  }
  .cv3-mobile-bar-btn:disabled {background: var(--brand-gray-1); color: var(--brand-text-soft);}
  .cv3-mobile-bar-actions {display: flex; gap: 8px;}
  .cv3-mobile-bar-actions .cv3-mobile-bar-btn {width: auto; flex: 1;}
  .cv3-mobile-bar-back {flex: 0 0 auto; background: #fff; color: var(--brand-text); border: 1.5px solid var(--brand-gray-2); padding: 13px 16px; border-radius: 14px; font-weight: 700; font-size: 14px; font-family: inherit; cursor: pointer;}
  /* lišta navazuje přímo na souhrn, žádná mezera pod boxem */
  .cv3-body {padding-bottom: 0 !important;}
  /* souhrn = plochý panel přes celou šířku (žádné kolečko) */
  .cv3-summary {
    padding: 16px 16px 10px;
    border-radius: 0; border-left: 0; border-right: 0; border-bottom: 0;
    box-shadow: none;
    width: 100%;
  }
  /* na mobilu jen sticky lišta, schovat duplicitní tlačítka (Pokračovat i Zpět), cenu i trust v souhrnu */
  .cv3-summary-next {display: none;}
  .cv3-nav {display: none;}
  .cv3-summary-total, .cv3-summary-vat {display: none;}
  .cv3-summary-trust {display: none !important;}
  /* trust řádek pod lištou, lišta se zastaví nad ním */
  .cv3-mobile-trust {
    display: flex; flex-wrap: wrap; justify-content: space-around;
    gap: 6px 14px; padding: 14px 16px 6px;
    font-size: 12px; color: var(--brand-text-soft);
  }
  .cv3-mobile-trust span {font-weight: 600;}
  .cv3-footer {padding: 10px 16px calc(16px + env(safe-area-inset-bottom));}
}
.cv3-summary-trust {
  display: flex; flex-wrap: wrap; gap: 6px;
  margin-top: 14px; padding-top: 12px;
  border-top: 1px dashed var(--brand-gray-1);
  font-size: 11.5px; color: var(--brand-text-soft);
  justify-content: space-around;
}
.cv3-summary-trust span {font-weight: 600;}
.cv3-consent-section {padding-top: 6px; border-top: 1px solid var(--brand-gray-1);}
/* Vít 17.6.2026: povinný souhlas = jemné oranžové zvýraznění celého rámečku (hodně lehké) */
.cv3-consent-required {
  background: rgba(248,150,31,0.06);
  border: 1px solid rgba(248,150,31,0.35);
  border-radius: 10px; padding: 12px 14px;
}
/* Vit 5.7.2026: povinny souhlas v2 - VELKA klikaci plocha (cely text prepina checkbox),
   odkazy az dole male, at se palcem netrefuje do linku; vetsi checkbox */
.cv3-terms-v2 { padding: 15px 16px; border-radius: 12px; -webkit-tap-highlight-color: transparent; }
.cv3-terms-v2 input { width: 24px; height: 24px; min-width: 24px; margin-top: 0; }
.cv3-terms-v2 .cv3-terms-txt { font-size: 14px; line-height: 1.55; color: var(--brand-text); }
.cv3-terms-v2 .cv3-terms-txt strong { font-weight: 700; }
.cv3-terms-links { display: block; margin-top: 9px; font-size: 12.5px; color: var(--brand-text-soft); }
.cv3-terms-links a { color: var(--brand-primary); font-weight: 600; text-decoration: underline; }

/* Hidden */
.hidden {display: none !important;}

/* Vít 17.6.2026: NÁŠ toast místo nativního alert() v košíku */
.cv3-toast-wrap {
  position: fixed; top: 16px; left: 50%; transform: translateX(-50%);
  z-index: 12000; display: flex; flex-direction: column; gap: 10px; align-items: center;
  width: min(92vw, 440px); pointer-events: none;
}
.cv3-toast {
  pointer-events: auto; background: var(--brand-text, #1A2332); color: #fff;
  border-radius: 12px; padding: 14px 18px; font-size: 14.5px; font-weight: 600;
  line-height: 1.35; box-shadow: 0 10px 30px rgba(0,0,0,0.18);
  border-left: 4px solid var(--brand-warm); cursor: pointer;
  opacity: 0; transform: translateY(-10px);
  transition: opacity .22s ease, transform .22s ease;
}
.cv3-toast.show { opacity: 1; transform: translateY(0); }
.cv3-toast-ok { border-left-color: var(--brand-primary); }
.cv3-toast-warn { border-left-color: var(--brand-warm); }
@media (max-width: 600px) { .cv3-toast-wrap { top: 10px; width: 94vw; } }

/* Mobile */
@media (max-width: 600px) {
  .container {padding: 16px 12px;}
  .question {padding: 24px 18px;}
  .question h2 {font-size: 20px;}
  .pricing-row {flex-direction: column; gap: 8px;}
  .pricing-option {padding: 12px;}
}

/* Focus states pro klávesnici (accessibility) */
button:focus-visible, .option:focus-visible, .input-field:focus-visible, .protocol-toggle:focus-visible {
  outline: 3px solid var(--brand-primary);
  outline-offset: 2px;
}

/* Print stylesheet, uživatel si může plán vytisknout */
@media print {
  body {background: white;}
  #landing, #quiz, #loading, #pricingFooter, #ageBlock,
  .vit-report-toggle, .product-remove-btn, .protocol-toggle, .results-hero-badges,
  button {display: none !important;}
  .results-hero {box-shadow: none; border: 1px solid #ddd; padding: 16px;}
  .vit-report-full {display: block !important; max-height: none !important;}
  .protocol-card {break-inside: avoid; box-shadow: none; border: 1px solid #ddd;}
  .priority-card {break-inside: avoid; box-shadow: none;}
  a[href]:after {content: " (" attr(href) ")"; font-size: 10px; color: #666;}
  .priority-cards {grid-template-columns: 1fr !important;}
}

/* ============================================================================
   MOBILE AUDIT FIX BLOCK, Vít 20.5.2026
   Konsolidovaný mobile fix: touch targets ≥44px, čitelné fonty, single-column,
   bez horizontal overflow. Inspirováno GymBeam/Mixit mobile-first standardům.
   ============================================================================ */

/* === Forms, iOS Safari auto-zoom prevention (input ≥16px) === */
input[type="text"], input[type="email"], input[type="tel"], input[type="search"],
input[type="number"], input[type="password"], select, textarea {
  font-size: 16px;
}

/* === KOŠÍK V3, kompletní mobile redesign === */
@media (max-width: 600px) {
  /* Header, menší logo, kruhy bez labels (kromě active), úzké čáry */
  .cv3-header {gap: 8px; padding: 10px 12px;}
  .cv3-logo img {height: 30px;}
  .cv3-steps {gap: 6px; align-items: flex-start;}
  .cv3-step {flex-direction: column; gap: 8px; text-align: center;}
  .cv3-step-label {display: block; font-size: 14px;}
  .cv3-step.active .cv3-step-label {font-weight: 700;}
  .cv3-step-line {flex: 1; width: auto; min-width: 20px; max-width: 64px; margin-top: 16px;} /* Vit 23.7.: cap ať kroky nejsou moc u krajů (dřív flex:1 roztáhl čáry na celou šířku) */
  .cv3-step-circle {width: 32px; height: 32px; font-size: 15px;}

  /* Body, single column, aside pod main */
  .cv3-body {padding: 14px 12px; gap: 14px;}
  .cv3-h1 {font-size: 22px; gap: 6px;}
  .cv3-h1-count {font-size: 13px;}

  /* Package, větší touch targets */
  .cv3-package {padding: 14px;}
  .cv3-pkg-remove {width: 32px; height: 32px; font-size: 17px;}
  .cv3-pkg-products {gap: 10px;}
  .cv3-pkg-prod-name {font-size: 11px;}
  .cv3-pkg-prod-price {font-size: 11.5px;}
  .cv3-pkg-prod-remove {width: 34px; height: 34px; top: -10px; left: -10px; font-size: 17px;}
  .cv3-period-title {font-size: 12.5px;}
  .cv3-period-price {font-size: 18px;} /* Vit 4.7.: stejne jako pricing na doporuceni */
  .cv3-period-sub {font-size: 10.5px;}

  /* Form fields, single column */
  .cv3-form-grid {grid-template-columns: 1fr; gap: 12px;}
  .cv3-field-full {grid-column: 1;}
  .cv3-field label {font-size: 13.5px;}
  .cv3-field input, .cv3-field select {padding: 12px 14px;}

  /* Radio rows shipping/payment, 4-col grid, větší info button */
  .cv3-radio-row {grid-template-columns: auto 1fr auto auto; gap: 8px; padding: 14px 14px;}
  .cv3-radio-label {min-width: 0; flex: 1;}
  .cv3-radio-label > span {min-width: 0; word-break: break-word;}
  .cv3-shipping-date {display: block; grid-column: 1 / -1; grid-row: 2; padding-left: 28px; font-size: 12px; white-space: normal; margin-top: 2px;}
  .cv3-info {width: 32px; height: 32px; font-size: 13px;}
  .cv3-radio-sub {font-size: 12px;}

  /* Billing tabs, flex 1 + center */
  .cv3-billing-section {padding: 14px;}
  .cv3-billing-type-tabs {gap: 6px;}
  .cv3-billing-tab {flex: 1; padding: 11px 8px; font-size: 13px; text-align: center;}

  /* Promo box */
  .cv3-promo-input-row input {padding: 13px 14px; font-size: 16px;}
  .cv3-promo-apply {padding: 0 18px; font-size: 15px;}

  /* Summary aside, full width, no sticky, no max-height scroll */
  .cv3-aside {position: static;}
  .cv3-summary-rows {max-height: none; overflow: visible;}
  .cv3-summary-trust {font-size: 12.5px; gap: 8px;}

  /* Nav buttons, větší + plná šíře */
  .cv3-nav {gap: 8px; flex-wrap: wrap;}
  .cv3-nav-back {padding: 13px 18px; font-size: 13.5px;}
  .cv3-nav-next {padding: 14px 22px; font-size: 14.5px; flex: 1;}

  /* Final CTA jen v jednom místě (skryjeme duplicitu v summary boxu) */
  .cv3-aside .cv3-final-cta {display: none;}
}

/* === Q23 searchable_checkbox, chip remove + skip btn === */
.sc-chip button {min-width: 32px !important; min-height: 32px !important; width: 32px !important; height: 32px !important; font-size: 14px !important;}
.sc-skip-btn, .q-skip-btn {padding: 12px 18px;}
@media (max-width: 600px) {
  .sc-item {padding: 14px 16px;}
  .sc-chip {padding: 6px 8px 6px 12px; font-size: 13.5px;}
}

/* === Drug input (Q25) === */
@media (max-width: 600px) {
  .drug-suggestion {padding: 12px 14px;}
  .drug-suggestions {max-height: 240px;}
  .drug-chip button {padding: 6px 10px; min-width: 32px; min-height: 32px;}
}

/* === Vit summary, bez margin-left 32px na mobilu === */
@media (max-width: 600px) {
  .vit-summary {padding: 22px 16px 16px;}
  .vit-summary-head, .vit-summary-text, .vit-summary-author {margin-left: 0;}
  .vit-summary::before {left: 14px; font-size: 56px;}
}

/* === Results hero + sáček + addons === */
@media (max-width: 480px) {
  .results-hero {padding: 22px 16px;}
  .sacek-wrap {max-width: 220px;}
  .sacek-img {max-height: 320px; object-fit: contain;}
  /* Addon card, image menší, action plná šíře */
  .addon-content {grid-template-columns: 70px 1fr; gap: 10px;}
  .addon-image-large {width: 70px; height: 70px;}
  .addon-action {grid-column: 1 / -1; flex-direction: row; justify-content: space-between; align-items: center; margin-top: 4px;}
  .addon-action .protocol-price {font-size: 17px;}
  /* Product card v all-products */
  .product-card-vetička {font-size: 12.5px; -webkit-line-clamp: 3; display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden;}
  .product-remove-btn {width: 36px; height: 36px;}
}
@media (max-width: 380px) {
  .product-grid {grid-template-columns: 1fr;}
}

/* === All-products modal sticky bar, column flex na úzkém === */
@media (max-width: 420px) {
  .all-products-modal-stickybar {flex-direction: column; align-items: stretch; gap: 8px;}
  .apmb-info {flex-direction: row; justify-content: space-between; align-items: baseline;}
  .apmb-actions {display: grid; grid-template-columns: auto 1fr; gap: 8px;}
  .apmb-cta {width: 100%;}
}

/* === Reviews modal + all-products modal close button === */
@media (max-width: 600px) {
  .reviews-modal-close, .all-products-modal-close {width: 44px; height: 44px; font-size: 22px;}
}

/* === Quiz options, align top pro multi-line === */
.option {align-items: flex-start; line-height: 1.4;}
.option-icon, .option-marker {flex-shrink: 0; margin-top: 2px;}

/* === Loading screen, ultra mobile (<380) === */
@media (max-width: 380px) {
  .loading-v3-split {grid-template-columns: 1fr; gap: 16px; min-height: 0;}
  .loading-v3-box img {max-width: 180px;}
  .loading-v3-cols {height: 220px;}
  .loading-v3-col-wrap {height: 220px;}
}

/* === Pricing CTA shipping, čitelný font === */
.pricing-cta-shipping {font-size: 11px;}

/* === Cart V3 brand confirm modal, Vít 21.5.2026 (místo confirm()) === */
.cv3-confirm-overlay {
  display: none; position: fixed; inset: 0;
  background: rgba(31,58,44,0.55);
  z-index: 99999;
  align-items: center; justify-content: center;
  padding: 20px;
}
.cv3-confirm-overlay.open { display: flex; }
.cv3-confirm-modal {
  background: white; border-radius: 20px;
  padding: 28px 24px 22px;
  max-width: 380px; width: 100%;
  text-align: center;
  box-shadow: 0 24px 60px rgba(0,0,0,0.28);
  animation: cv3ConfirmPop 0.22s ease-out;
}
@keyframes cv3ConfirmPop {
  from { transform: scale(0.92) translateY(10px); opacity: 0; }
  to { transform: scale(1) translateY(0); opacity: 1; }
}
.cv3-confirm-icon {
  width: 56px; height: 56px; margin: 0 auto 14px;
  background: #FFF1E0; border-radius: 16px;
  display: flex; align-items: center; justify-content: center;
  font-size: 28px;
}
.cv3-confirm-title {
  font-size: 19px; font-weight: 800; color: var(--brand-text);
  margin: 0 0 8px;
}
.cv3-confirm-text {
  font-size: 14px; color: var(--brand-text-soft);
  line-height: 1.55; margin: 0 0 20px;
  text-align: center; text-wrap: balance;
}
.cv3-confirm-title { text-wrap: balance; }
.cv3-confirm-buttons { display: flex; gap: 10px; }
.cv3-confirm-btn {
  flex: 1; padding: 13px 16px; border-radius: 12px;
  font-size: 14.5px; font-weight: 800; cursor: pointer;
  font-family: inherit; transition: all 0.15s; border: none;
}
.cv3-confirm-cancel {
  background: var(--brand-cream); color: var(--brand-text);
}@media (hover: hover) and (pointer: fine){
.cv3-confirm-cancel:hover { background: #ECE3D2; }}
.cv3-confirm-ok {
  background: var(--brand-primary); color: white;
  box-shadow: 0 6px 16px rgba(40,149,70,0.32);
}@media (hover: hover) and (pointer: fine){
.cv3-confirm-ok:hover { transform: translateY(-1px); }}
.cv3-confirm-ok.cv3-confirm-danger { background: #fff; color: var(--brand-red, #EE2E27); border: 2px solid var(--brand-red, #EE2E27); box-shadow: none; }@media (hover: hover) and (pointer: fine){
.cv3-confirm-ok.cv3-confirm-danger:hover { background: var(--brand-red, #EE2E27); color: #fff; }}

/* Reduced motion (a11y), vypnout animace, pokud uživatel preferuje */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* ========================================================================
   DOTAZNÍK LANDING V6, v rámci webu, bez fotky, krev-style barvy (Vít 21.5.2026)
   ======================================================================== */
.dotv2-landing-page { background: var(--brand-cream, #FFF9F0); }
.dotv2-container { max-width: 980px; margin: 0 auto; padding: 0 20px; }

/* HERO, centered, no image */
.dotv2-hero {
  padding: 40px 0 60px;
  background: linear-gradient(180deg, var(--brand-cream, #FFF9F0) 0%, #FFFEFA 100%);
}
@media (min-width: 880px) { .dotv2-hero { padding: 70px 0 80px; } }
.dotv2-hero-center {
  text-align: center;
  display: flex; flex-direction: column; align-items: center; gap: 18px;
  max-width: 760px; margin: 0 auto;
}
.dotv2-hero-eyebrow {
  display: inline-block;
  font-size: 12px; font-weight: 700; letter-spacing: 1.5px;
  text-transform: uppercase; color: var(--brand-warm, #F8961F);
}
.dotv2-hero-center h1 {
  font-size: clamp(34px, 5.5vw, 60px); font-weight: 800;
  line-height: 1.05; color: var(--brand-text, #1F3A2C);
  margin: 0;
}
.dotv2-hero-center h1 .green { color: var(--brand-primary, #289546); }
.dotv2-hero-lede {
  font-size: 17px; color: var(--brand-text-soft, #5F7268);
  line-height: 1.6; margin: 0;
  max-width: 640px;
}
.dotv2-hero-center strong { color: var(--brand-text, #1F3A2C); font-weight: 700; }

/* Personalizace stat, výrazný highlight (centered) */
.dotv2-perso-stat {
  background: white;
  border: 2px solid var(--brand-primary, #289546);
  border-radius: 16px;
  padding: 18px 24px;
  margin: 4px auto 0;
  max-width: 520px; width: 100%;
  display: flex; flex-direction: column; gap: 4px;
  box-shadow: 0 10px 28px rgba(40,149,70,0.10);
  text-align: center;
}
.dotv2-perso-stat-num {
  font-size: 30px; font-weight: 800;
  color: var(--brand-primary, #289546);
  line-height: 1;
}
.dotv2-perso-stat-label {
  font-size: 14px; font-weight: 700;
  color: var(--brand-text, #1F3A2C);
}
.dotv2-perso-stat-tip {
  font-size: 13px; color: var(--brand-text-soft, #5F7268);
  margin-top: 2px;
}

/* Trust checks row (hero) */
.dotv2-trust-checks {
  display: flex; flex-wrap: wrap; gap: 14px 20px;
  justify-content: center;
  font-size: 14px; font-weight: 600; color: var(--brand-text, #1F3A2C);
}
.dotv2-trust-checks .check {
  color: var(--brand-primary, #289546); font-weight: 800; margin-right: 4px;
}

/* GDPR */
.dotv2-gdpr {
  background: var(--brand-cream, #FFF9F0);
  border-radius: 12px;
  padding: 14px 16px;
  width: 100%;
}
.dotv2-gdpr label {
  display: flex; gap: 10px; cursor: pointer; align-items: flex-start;
  font-size: 13.5px; color: var(--brand-text-soft, #5F7268); line-height: 1.5;
  text-align: left;
}
.dotv2-gdpr input[type="checkbox"] {
  margin-top: 2px; flex-shrink: 0;
  width: 18px; height: 18px;
  accent-color: var(--brand-primary, #289546);
}
.dotv2-gdpr a { color: var(--brand-primary, #289546); font-weight: 600; }

/* CTA START button, Vít: do dotazníku se jde ZELENĚ (do košíku oranžově) */
.dotv2-start-btn {
  background: var(--brand-primary, #289546) !important;
  color: white !important;
  border: none;
  padding: 20px 40px;
  border-radius: 14px;
  font-size: 19px; font-weight: 800;
  cursor: pointer;
  transition: all 0.2s;
  font-family: inherit;
  box-shadow: 0 12px 32px rgba(40,149,70,0.32);
  text-decoration: none; display: inline-block;
  width: 100%; max-width: 440px;
}@media (hover: hover) and (pointer: fine){
.dotv2-start-btn:hover:not(:disabled) {
  transform: translateY(-2px);
  box-shadow: 0 16px 40px rgba(40,149,70,0.45);
  background: var(--brand-primary-dark, #1f6b39) !important;
}}

/* Google badge */
.dotv2-google-badge {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 8px 14px;
  background: white; border: 1px solid var(--brand-gray-1, #E6EDE8);
  border-radius: 999px;
  font-size: 13px; color: var(--brand-text, #1F3A2C);
  text-decoration: none;
  margin-top: 6px; align-self: flex-start;
}
.dotv2-google-badge .gtext { display: inline-flex; font-weight: 700; }
.dotv2-google-badge .gtext span:nth-child(1) { color: #4285F4; }
.dotv2-google-badge .gtext span:nth-child(2) { color: #EA4335; }
.dotv2-google-badge .gtext span:nth-child(3) { color: #FBBC04; }
.dotv2-google-badge .gtext span:nth-child(4) { color: #4285F4; }
.dotv2-google-badge .gtext span:nth-child(5) { color: #34A853; }
.dotv2-google-badge .gtext span:nth-child(6) { color: #EA4335; }
.dotv2-google-badge .stars { color: #FBBC04; letter-spacing: -1px; }

/* EXPERT QUOTE Vít */
.dotv2-expert { background: white; padding: 60px 0; }
.dotv2-expert-inner {
  display: grid; grid-template-columns: 1fr; gap: 24px;
  background: var(--brand-cream, #FFF9F0);
  border-radius: 20px; padding: 30px;
  align-items: center;
}
/* Vít 21.5.2026: jediný breakpoint 980px */
@media (min-width: 980px) {
  .dotv2-expert-inner { grid-template-columns: 200px 1fr; gap: 40px; padding: 40px 50px; }
}
.dotv2-expert-photo {
  width: 160px; height: 160px; margin: 0 auto;
  border-radius: 50%; overflow: hidden;
  border: 4px solid white;
  box-shadow: 0 12px 32px rgba(0,0,0,0.1);
}
/* Vít 21.5.2026: jediný breakpoint 980px */
@media (min-width: 980px) {
  .dotv2-expert-photo { width: 200px; height: 200px; margin: 0; }
}
.dotv2-expert-photo img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.dotv2-expert-quote { position: relative; }
.dotv2-quote-mark {
  font-size: 80px; line-height: 0.7;
  color: var(--brand-warm, #F8961F); font-weight: 800;
  display: block;
}
.dotv2-expert-quote p {
  font-size: 17px; color: var(--brand-text, #1F3A2C);
  line-height: 1.6; margin: 0 0 18px;
}
.dotv2-quote-author { display: flex; flex-direction: column; gap: 2px; }
.dotv2-quote-author strong { font-size: 15px; color: var(--brand-text, #1F3A2C); }
.dotv2-quote-author span { font-size: 13px; color: var(--brand-text-soft, #5F7268); }

/* FEATURES SECTION */
.dotv2-features-section {
  padding: 60px 0;
  background: linear-gradient(180deg, #FFFEFA 0%, var(--brand-cream, #FFF9F0) 100%);
}
.dotv2-section-head { text-align: center; margin-bottom: 40px; }
.dotv2-section-head .dotv2-eyebrow {
  display: inline-block;
  font-size: 12px; font-weight: 700; letter-spacing: 1.5px;
  text-transform: uppercase; color: var(--brand-warm, #F8961F);
  margin-bottom: 8px;
}
.dotv2-section-head h2 {
  font-size: clamp(26px, 4vw, 38px); font-weight: 800;
  color: var(--brand-text, #1F3A2C); line-height: 1.15;
  margin: 0;
}
.dotv2-features {
  display: grid; grid-template-columns: 1fr; gap: 16px;
}
/* Vít 21.5.2026: jediný breakpoint 980px, mobil 1 sloupec → desktop 4 sloupce */
@media (min-width: 980px) { .dotv2-features { grid-template-columns: repeat(4, 1fr); } }
.dotv2-feature {
  background: white;
  border: 1px solid var(--brand-gray-1, #E6EDE8);
  border-radius: 16px;
  padding: 24px 22px;
  display: flex; flex-direction: column; gap: 10px;
  transition: transform 0.2s, box-shadow 0.2s;
}@media (hover: hover) and (pointer: fine){
.dotv2-feature:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 32px rgba(0,0,0,0.06);
}}
.dotv2-feature-icon {
  width: 52px; height: 52px;
  border-radius: 14px;
  display: flex; align-items: center; justify-content: center;
}
.dotv2-feature-icon svg { width: 26px; height: 26px; }
.dotv2-icon-green { background: #E8F4EC; color: var(--brand-primary, #289546); }
.dotv2-icon-warm { background: #FFF1E0; color: var(--brand-warm, #F8961F); }
.dotv2-feature h3 {
  font-size: 16px; font-weight: 800; color: var(--brand-text, #1F3A2C);
  margin: 0;
}
.dotv2-feature p {
  font-size: 14px; color: var(--brand-text-soft, #5F7268);
  line-height: 1.55; margin: 0;
}

/* BIG CTA BLOCK, premium karta s gradient pozadím (jako krev) */
.dotv2-cta-block {
  padding: 60px 0 80px;
  background: var(--brand-cream, #FFF9F0);
}
.dotv2-cta-card {
  background: white;
  border-radius: 24px;
  padding: 36px 28px;
  max-width: 620px; margin: 0 auto;
  text-align: center;
  box-shadow: 0 20px 50px rgba(40,149,70,0.10);
  border: 1px solid var(--brand-gray-1, #E6EDE8);
  display: flex; flex-direction: column; gap: 14px;
  align-items: center;
}
@media (min-width: 720px) { .dotv2-cta-card { padding: 50px 50px; } }
.dotv2-cta-eyebrow {
  display: inline-block;
  font-size: 12px; font-weight: 700; letter-spacing: 1.5px;
  text-transform: uppercase; color: var(--brand-warm, #F8961F);
}
.dotv2-cta-card h2 {
  font-size: clamp(26px, 4vw, 38px); font-weight: 800;
  color: var(--brand-text, #1F3A2C); margin: 0;
  line-height: 1.15;
}
.dotv2-cta-lede {
  font-size: 15px; color: var(--brand-text-soft, #5F7268);
  margin: 0 0 8px;
}
.dotv2-cta-list {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-direction: column; gap: 10px;
  width: 100%; max-width: 460px;
  text-align: left;
}
.dotv2-cta-list li {
  font-size: 14.5px; color: var(--brand-text, #1F3A2C);
  display: flex; align-items: flex-start; gap: 10px;
  line-height: 1.45;
}
.dotv2-cta-list .check {
  color: var(--brand-primary, #289546); font-weight: 800;
  flex-shrink: 0; margin-top: 1px;
}
.dotv2-cta-alt-line {
  font-size: 13.5px; color: var(--brand-text-soft, #5F7268);
  margin: 6px 0 0; line-height: 1.5;
}
.dotv2-cta-alt-line a { color: var(--brand-primary, #289546); font-weight: 700; }

/* Common */
.dotv2-hero .muted { color: var(--brand-text-soft, #5F7268); }
.dotv2-hero-text strong { color: var(--brand-text, #1F3A2C); font-weight: 700; }
/* Vít 6.6.: hero fajfky pod sebou + zelené */
.dotv2-hero-checks { display: flex; flex-direction: column; align-items: flex-start; gap: 9px; font-size: 15.5px; font-weight: 600; color: var(--brand-text, #1A2332); margin: 2px auto; }
.dotv2-hero-checks .check { color: var(--brand-primary, #289546); font-weight: 800; margin-right: 7px; }
/* Komentář Víta — blok jako krevní testy (Tomáš Vebr) */
.expert-block { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 18px; background: white; border: 1px solid var(--brand-gray-1, #E5E7EB); border-radius: 18px; padding: 26px 22px; max-width: 880px; margin: 0 auto; }
.expert-photo { width: 116px; height: 116px; border-radius: 50%; overflow: hidden; flex-shrink: 0; border: 4px solid var(--brand-primary-soft, #E8F5E9); }
.expert-photo img { width: 100%; height: 100%; object-fit: cover; }
.expert-text { position: relative; background: var(--brand-cream, #FFF9F0); border-radius: 14px; padding: 22px; font-size: 15px; line-height: 1.7; color: var(--brand-text, #1A2332); font-style: italic; }
.expert-author { margin-top: 14px; font-style: normal; }
.expert-author strong { display: block; font-size: 15px; color: var(--brand-text, #1A2332); font-weight: 700; }
.expert-author span { font-size: 13px; color: var(--brand-text-soft, #6B7785); }

.why-list { list-style: none; margin: 8px 0 4px; padding: 0; }
.why-list li { position: relative; padding-left: 18px; font-size: 13px; line-height: 1.5; margin-bottom: 3px; color: var(--brand-text-soft, #6B7785); }
.why-list li::before { content: ""; position: absolute; left: 0; top: 6px; width: 9px; height: 5px; border-left: 2px solid var(--brand-primary, #289546); border-bottom: 2px solid var(--brand-primary, #289546); transform: rotate(-45deg); }
.why-list li.why-key { color: var(--brand-text, #1A2332); }

/* Vít 17.6.2026: SOUHRN OBJEDNÁVKY — jednotný „Shrnutí objednávky" (GymBeam styl, branded) */
.cv3-summary-title { font-size:16px; font-weight:700; color:var(--brand-text); margin:0 0 2px; }
.cv3-summary-sep { border:0; border-top:1px solid var(--brand-gray-1); margin:10px 0; }
.cv3-recap { margin-bottom:8px; padding:14px 20px; }
/* Sbalený recap: hlavička nemá spodní oddělovač/mezeru (nic pod ní není) → žádná velká díra */
.cv3-recap .cv3-summary-head-toggle:not(.is-open) { margin-bottom:0; padding-bottom:0; border-bottom:0; }
.cv3-summary-foot { margin-top:14px; }

/* Aplikované kupóny (řádek) */
.cv3-coupon-line { display:flex; justify-content:space-between; align-items:center; gap:10px; font-size:14px; padding:2px 0; }
.cv3-coupon-line.hidden { display:none; }
.cv3-coupon-label { color:var(--brand-text-soft); }
.cv3-coupon-val { display:inline-flex; align-items:center; gap:7px; }
.cv3-coupon-val strong { color:var(--brand-warm); font-weight:700; }
.cv3-coupon-pct { color:var(--brand-text); font-weight:600; }
.cv3-coupon-remove { background:none; border:0; padding:0; margin:0; color:var(--brand-text-soft); font-size:16px; line-height:1; cursor:pointer; opacity:.55; }@media (hover: hover) and (pointer: fine){
.cv3-coupon-remove:hover { opacity:1; color:var(--brand-red); }}

/* Způsob doručení (datum napravo) */
.cv3-summary-deliver { display:block; padding:2px 0; margin:0; }
.cv3-summary-deliver.hidden { display:none; }
.cv3-sd-label { display:block; font-weight:700; color:var(--brand-text); font-size:14px; margin-bottom:2px; }
.cv3-sd-row { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
.cv3-sd-method { display:flex; flex-direction:column; font-size:13.5px; color:var(--brand-text-soft); min-width:0; line-height:1.4; }
.cv3-sd-where { font-size:12.5px; color:var(--brand-text-soft); }
.cv3-sd-when { color:var(--brand-text); font-weight:700; font-size:13.5px; white-space:nowrap; }

/* malý × na řádku Sleva (legacy fallback) */
.cv3-discount-remove { background:none; border:0; padding:0 0 0 2px; margin:0; color:var(--brand-text-soft); font-size:15px; line-height:1; cursor:pointer; vertical-align:middle; opacity:.6; }@media (hover: hover) and (pointer: fine){
.cv3-discount-remove:hover { opacity:1; color:var(--brand-red); }}

/* === Telefon s předvolbou (Vít 19.6.) — stejné jako krevní testy === */
.cv3-tel { display: grid; grid-template-columns: 96px minmax(0,1fr); gap: 8px; }
.kt-prefix { position: relative; }
.kt-prefix-btn { width: 100%; height: 100%; min-height: 46px; display: flex; align-items: center; justify-content: space-between; gap: 4px; background: #fff; border: 1.5px solid var(--brand-gray-1); border-radius: 10px; padding: 0 10px; font-family: inherit; font-size: 16px; font-weight: 600; color: var(--brand-text); cursor: pointer; }
.kt-prefix-btn:focus { outline: none; border-color: var(--brand-primary); }
.kt-prefix.open .kt-prefix-btn { border-color: var(--brand-primary); }
.kt-prefix-chev { width: 16px; height: 16px; stroke: var(--brand-text-soft); flex: 0 0 auto; transition: transform .15s; }
.kt-prefix.open .kt-prefix-chev { transform: rotate(180deg); }
.kt-prefix-list { position: absolute; top: calc(100% + 6px); left: 0; min-width: 232px; background: #fff; border: 1.5px solid var(--brand-gray-1); border-radius: 12px; box-shadow: 0 12px 30px rgba(26,35,50,0.16); padding: 6px; z-index: 50; display: none; max-height: 300px; overflow-y: auto; }
.kt-prefix.open .kt-prefix-list { display: block; }
.kt-prefix-opt { display: flex; align-items: center; gap: 10px; padding: 9px 11px; border-radius: 8px; cursor: pointer; font-size: 14.5px; color: var(--brand-text); }@media (hover: hover) and (pointer: fine){
.kt-prefix-opt:hover { background: var(--brand-cream); }}
.kt-prefix-opt.sel { background: var(--brand-primary-soft); }
.kt-prefix-opt .code { font-weight: 700; min-width: 46px; }
.kt-prefix-opt.sel .code, .kt-prefix-opt.sel .nm { color: var(--brand-primary); }
.kt-prefix-opt .nm { color: var(--brand-text-soft); font-size: 13px; }
