/* Dokelu Objednávky – konfigurátor Zlož si šalát a Môj účet. */
.dokelu-configurator { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 32px; align-items: start; font-family: var(--dk-font-body); }
@media (max-width: 960px) { .dokelu-configurator { grid-template-columns: minmax(0, 1fr); } }
/* Stĺpce mriežky sa nesmú roztiahnuť podľa riadku s krokmi (na mobile pretekal konfigurátor doprava). */
.dokelu-configurator > * { min-width: 0; }

.dokelu-configurator-intro { grid-column: 1 / -1; }
.dokelu-configurator-intro h2 { font-family: var(--dk-font-head); margin: 0 0 6px; }

/* Navigácia krokov */
.dokelu-steps-nav { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 24px; }
.dokelu-step-link { display: inline-flex; align-items: center; gap: 8px; padding: 8px 16px 8px 8px; border-radius: 30px; background: var(--dk-cream); color: var(--dk-black) !important; text-decoration: none !important; font-family: "GT Walsheim Pro Black", var(--dk-font-head); font-weight: 400; font-size: 14px; text-transform: uppercase; border: 1px solid transparent; transition: all .3s ease; }
.dokelu-step-link:hover { border-color: var(--dk-black); }
.dokelu-step-link .dokelu-step-num { display: inline-flex; width: 24px; height: 24px; border-radius: 50%; background: var(--dk-white); align-items: center; justify-content: center; font-size: 12px; }
.dokelu-step-link.is-active { background: var(--dk-green); color: var(--dk-black) !important; }
.dokelu-step-link.is-active .dokelu-step-num { background: var(--dk-cream); color: var(--dk-black); }
.dokelu-step-link.has-items:not(.is-active) .dokelu-step-num { background: var(--dk-green); }

/* Krok */
.dokelu-step { display: none; }
.dokelu-step.is-active { display: block; }
.dokelu-step-title { font-family: var(--dk-font-head); font-size: 26px; margin: 0 0 6px; display: flex; align-items: baseline; gap: 12px; }
.dokelu-step-count { font-size: 14px; color: var(--dk-black); background: var(--dk-cream); padding: 4px 10px; border-radius: 8px; font-family: var(--dk-font-body); }
.dokelu-step-desc { margin: 0 0 20px; color: #444; }
.dokelu-step-nav { display: flex; justify-content: space-between; gap: 12px; margin: 24px 0 0; }

/* Karty ingrediencií */
.dokelu-items { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 14px; }
.dokelu-item { position: relative; background: var(--dk-cream); border: 2px solid transparent; border-radius: 15px; padding: 14px 10px 12px; text-align: center; cursor: pointer; transition: all .3s ease; outline: none; }
.dokelu-item:hover, .dokelu-item:focus-visible { border-color: var(--dk-black); }
.dokelu-item.is-selected { background: var(--dk-green); border-color: var(--dk-green); color: var(--dk-black); }
.dokelu-item.is-selected:hover { border-color: var(--dk-black); }
.dokelu-item-image img { width: 100%; max-width: 120px; height: auto; aspect-ratio: 1; object-fit: cover; border-radius: 50%; margin: 0 auto 8px; display: block; transition: transform .2s; }
.dokelu-item.is-selected .dokelu-item-image img { transform: scale(1.05); }
.dokelu-item-title { font-family: "GT Walsheim Pro Black", var(--dk-font-head); font-weight: 400; font-size: 15px; margin: 0 0 4px; line-height: 1.25; }
.dokelu-item-price { display: block; font-weight: 900; font-size: 15px; color: var(--dk-green-dark); min-height: 20px; }
.dokelu-item.is-selected .dokelu-item-price, .dokelu-item.is-selected .dokelu-free-left { color: var(--dk-black); }
.dokelu-free-left { color: var(--dk-green-dark); }
.dokelu-item-weight { position: absolute; top: 8px; left: 8px; background: var(--dk-beige); color: var(--dk-black); font-size: 11px; padding: 2px 8px; border-radius: 999px; }
.dokelu-item-qty { display: none; align-items: center; justify-content: center; gap: 10px; margin-top: 8px; }
.dokelu-item.is-selected .dokelu-item-qty { display: flex; }
.dokelu-step[data-behavior="base"] .dokelu-item-qty { display: none !important; }
.dokelu-item-qty button { width: 28px; height: 28px; border-radius: 50%; border: 0; background: var(--dk-cream); color: var(--dk-black); padding: 0; font-weight: 700; font-size: 16px; line-height: 1; cursor: pointer; }
.dokelu-item-qty span { font-weight: 700; min-width: 16px; }
.dokelu-step.is-full .dokelu-item:not(.is-selected) { opacity: .45; }
.dokelu-step[data-behavior="base"].is-full .dokelu-item:not(.is-selected) { opacity: 1; }

/* Bočný panel */
.dokelu-sidebar { position: sticky; top: 110px; background: var(--dk-cream); border-radius: 15px; padding: 22px 20px; transition: opacity .2s; }
.dokelu-sidebar.is-loading { opacity: .6; }
.dokelu-clear { display: block; text-align: right; font-size: 13px; color: #a33; text-decoration: none; margin-bottom: 8px; }
.dokelu-price-row { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.dokelu-price-base { font-size: 13px; color: #555; }
.dokelu-price-total { font-family: var(--dk-font-head); font-size: 20px; margin: 4px 0 14px; padding-bottom: 12px; border-bottom: 2px solid var(--dk-beige); }
.dokelu-price-total .dokelu-total { font-size: 28px; font-weight: 900; color: var(--dk-green); }
.dokelu-summary-group { margin: 0 0 12px; }
.dokelu-summary-group h4 { font-family: var(--dk-font-head); font-size: 14px; margin: 0 0 4px; display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; }
.dokelu-summary-count { color: #666; font-weight: 400; font-size: 12px; }
.dokelu-summary-subtotal { margin-left: auto; font-size: 13px; color: var(--dk-green-dark); }
.dokelu-summary-empty { margin: 0; font-size: 13px; color: #999; font-style: italic; }
.dokelu-summary ul { list-style: none; margin: 0; padding: 0; }
.dokelu-summary li { display: flex; align-items: center; gap: 8px; font-size: 14px; padding: 3px 0; }
.dokelu-summary-controls button { width: 22px; height: 22px; border-radius: 50%; border: 1px solid var(--dk-black); background: transparent; color: var(--dk-black); font-size: 14px; line-height: 1; cursor: pointer; padding: 0; }
.dokelu-summary-controls button:hover { background: var(--dk-green); }
.dokelu-summary-qty { margin-left: auto; font-size: 12px; color: #666; }
.dokelu-errors { background: #fde8e8; color: #a33; padding: 8px 12px; border-radius: var(--dk-radius-sm); font-size: 13px; margin: 8px 0; }
.dokelu-add-to-cart { margin: 14px 0 10px; }
.dokelu-save { display: flex; gap: 8px; margin: 0 0 16px; }
.dokelu-save input { flex: 1; min-width: 0; padding: 10px 14px; border-radius: 50px; border: 1px solid var(--dk-beige); background: var(--dk-white); }
.dokelu-save-hint { font-size: 13px; color: #555; }
.dokelu-nutrition h4 { font-family: var(--dk-font-head); font-size: 13px; text-transform: uppercase; margin: 14px 0 6px; display: flex; align-items: center; gap: 6px; }
.dokelu-tip { display: inline-flex; width: 16px; height: 16px; border-radius: 50%; background: var(--dk-black); color: var(--dk-white); font-size: 10px; align-items: center; justify-content: center; cursor: help; font-style: italic; }

/* Môj účet */
.dokelu-my-salad { background: var(--dk-cream); border-radius: var(--dk-radius); padding: 18px 20px; margin: 0 0 16px; }
.dokelu-my-salad h3 { font-family: var(--dk-font-head); margin: 0 0 8px; display: flex; justify-content: space-between; }
.dokelu-my-salad ul { margin: 0 0 12px; padding-left: 18px; font-size: 14px; }

/* Ochrana pred globálnymi štýlmi nadpisov Avady (h2/h3/h4 majú veľké písmo a verzálky). */
.dokelu-configurator h2.dokelu-step-title { font-size: clamp(26px, 3.2vw, 40px) !important; line-height: 1.1 !important; letter-spacing: 0 !important; margin: 0 0 8px !important; }
.dokelu-configurator .dokelu-configurator-intro h2 { font-size: clamp(22px, 2.6vw, 32px) !important; line-height: 1.15 !important; margin: 0 0 6px !important; }
.dokelu-configurator h3.dokelu-item-title { font-size: 15px !important; line-height: 1.25 !important; text-transform: none !important; letter-spacing: 0 !important; margin: 0 0 4px !important; word-break: normal; overflow-wrap: anywhere; hyphens: auto; }
.dokelu-configurator .dokelu-sidebar h4 { font-size: 13px !important; line-height: 1.3 !important; letter-spacing: 0 !important; margin: 0 0 4px !important; }
.dokelu-configurator .dokelu-sidebar .dokelu-nutrition h4 { margin: 14px 0 6px !important; }
.dokelu-configurator p, .dokelu-configurator li, .dokelu-configurator td { font-size: 14px; }
.dokelu-configurator .dokelu-step-desc { font-size: 16px; }
.dokelu-item-image { min-height: 60px; }
.dokelu-item-image:empty::before { content: ""; display: block; width: 100%; max-width: 120px; aspect-ratio: 1; margin: 0 auto 8px; border-radius: 50%; background: var(--dk-cream); }
.dokelu-my-salad h3, .dokelu-product-info h3, .dokelu-upsell h3, .dokelu-branch h3, .dokelu-modal-box h3 { text-transform: none !important; letter-spacing: 0 !important; }
.dokelu-product-info h3 { font-size: 16px !important; }
.dokelu-my-salad h3 { font-size: 20px !important; }

.dokelu-sidebar.is-loading .dokelu-total { font-size: 16px; color: #777; }
.dokelu-sidebar.is-loading .dokelu-add-to-cart { pointer-events: none; opacity: .6; }

/* Nadpis a úvod konfigurátora v štýle stránky Menu */
.dokelu-configurator .dokelu-configurator-intro { text-align: center; margin-bottom: 8px; }
.dokelu-configurator .dokelu-configurator-intro h2 { font-family: "GT Walsheim Pro Ultra Bold", var(--dk-font-head) !important; font-size: clamp(34px, 5vw, 50px) !important; text-transform: uppercase; }
.dokelu-configurator h2.dokelu-step-title { font-family: "GT Walsheim Pro Ultra Bold", var(--dk-font-head) !important; text-transform: uppercase; }
.dokelu-steps-nav { justify-content: flex-start; }
.dokelu-configurator .dokelu-sidebar h4 { font-family: "GT Walsheim Pro Black", var(--dk-font-head) !important; font-weight: 400 !important; text-transform: uppercase; }
@media (max-width: 960px) { .dokelu-steps-nav { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; } .dokelu-step-link { flex: 0 0 auto; } }
.dokelu-item:not(.is-selected) .dokelu-item-image img { mix-blend-mode: multiply; }
.dokelu-configurator .dokelu-configurator-intro { margin-top: 0; }
/* Dnes nemáme */
.dokelu-item.is-out-today:not(.is-selected) { opacity: .6; }
.dokelu-item-today { display: inline-block; margin: 0 0 4px; padding: 2px 8px; border-radius: 999px; background: #fde8e8; color: #8a2a2a; font-size: 11px; font-weight: 700; }
