/*
 *
 * @author David Mrózek
 * @contact <admin@valasinec.cz>
 * @since 2015
 * @copyright Copyright (c) 2015 - 2026 David Mrózek
 *
 * @link https://prestashop.valasinec.cz/content/2-obchodni-podminky
 * @license https://prestashop.valasinec.cz/content/3-licencni-podminky
 *
 * Tento kód je chráněn autorským právem a nesmí být šířen bez předchozího písemného souhlasu autora.
 * V rámci licenčních podmínek můžete tento kód používat a upravovat pouze pro vlastní potřeby.
 * Pro jakékoli dotazy nebo další informace nás kontaktujte.
 *
*/

/* ==============================================================
   PROMO BOOST - všechny prvky mají předponu .dmpb a vlastní typografii,
   tlačítka a odkazy, aby je šablona ani jiné moduly nepřebily a promo
   vypadalo v každé šabloně stejně. Pravidla jsou zapsaná jako
   ".dmpb .dmpb-xxx" (vyšší specifičnost než obecná pravidla šablon).
   Proměnné: --dmpb-main (hlavní barva), --dmpb-bg (podklad).
   ============================================================== */

.dmpb {
    --dmpb-main: #DF8A30;
    --dmpb-bg: #FFF7E2;
    --dmpb-red: #d12c00;
    --dmpb-red-dark: #9c2000;
    --dmpb-ok: #1d8a3a;
    --dmpb-err: #b42318;
    --dmpb-ink: #232323;
    --dmpb-muted: #6f6f6f;
    display: block;
    box-sizing: border-box;
    margin: 14px 0;
    padding: 0;
    color: var(--dmpb-ink);
    font-size: 14px;
    font-weight: 400;
    font-style: normal;
    line-height: 1.35;
    letter-spacing: normal;
    text-transform: none;
    text-align: left;
    text-shadow: none;
}

.dmpb *,
.dmpb *::before,
.dmpb *::after {
    box-sizing: border-box;
}

.dmpb .dmpb-item + .dmpb-item {
    margin-top: 12px;
}

/* --- společné prvky --- */
.dmpb .dmpb-tag {
    display: inline-flex;
    align-items: center;
    background: var(--dmpb-main);
    color: #fff;
    padding: 5px 11px;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
    margin: 0;
}

.dmpb .dmpb-code {
    font-weight: 700;
    font-size: 17px;
    letter-spacing: .02em;
    color: var(--dmpb-ink);
    white-space: nowrap;
}

.dmpb .dmpb-price {
    color: var(--dmpb-red);
    font-weight: 700;
    font-size: 18px;
    white-space: nowrap;
}

.dmpb .dmpb-copy {
    -webkit-appearance: none;
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    height: auto;
    min-width: 0;
    min-height: 0;
    margin: 0;
    padding: 2px 4px;
    border: 0;
    border-radius: 4px;
    background: transparent;
    box-shadow: none;
    color: #333;
    font-size: 0;
    line-height: 0;
    vertical-align: middle;
    cursor: pointer;
}

.dmpb .dmpb-copy > span { display: inline-flex; line-height: 0; }

.dmpb .dmpb-copy svg {
    width: 17px;
    height: 17px;
    fill: currentColor;
    transition: transform .15s ease;
}

.dmpb .dmpb-copy:hover svg { transform: scale(1.15); }
.dmpb .dmpb-copy:focus-visible { outline: 2px solid var(--dmpb-main); outline-offset: 1px; }
.dmpb .dmpb-copy .dmpb-ico-ok { display: none; }
.dmpb .dmpb-copy.is-copied { color: var(--dmpb-ok); }
.dmpb .dmpb-copy.is-copied .dmpb-ico-copy { display: none; }
.dmpb .dmpb-copy.is-copied .dmpb-ico-ok { display: inline-flex; }

.dmpb a.dmpb-buy-link,
.dmpb a.dmpb-buy-link:visited {
    color: var(--dmpb-red);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
    background: none;
    border: 0;
    padding: 0;
    white-space: nowrap;
}

.dmpb a.dmpb-buy-link:hover,
.dmpb a.dmpb-buy-link:focus {
    color: var(--dmpb-red-dark);
    text-decoration: underline;
}

.dmpb a.dmpb-buy-link.is-done {
    color: var(--dmpb-ok);
    text-decoration: none;
}

.dmpb a.dmpb-buy-btn,
.dmpb a.dmpb-buy-btn:visited {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--dmpb-main);
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
    text-transform: none;
    border: 0;
    border-radius: 6px;
    padding: 10px 16px;
    white-space: nowrap;
    box-shadow: none;
}

.dmpb a.dmpb-buy-btn:hover,
.dmpb a.dmpb-buy-btn:focus {
    color: #fff;
    text-decoration: none;
    filter: brightness(.94);
}

.dmpb .dmpb-buy.is-busy { opacity: .7; cursor: progress; }

/* --- odpočet (dlaždice) --- */
.dmpb .dmpb-cd {
    display: block;
    width: 100%;
    margin-top: 10px;
    padding-top: 8px;
    border-top: 1px solid rgba(0, 0, 0, .06);
    text-align: center;
}

.dmpb .dmpb-cd-title {
    font-size: 13px;
    font-weight: 700;
    color: var(--dmpb-muted);
    margin: 0 0 6px;
}

.dmpb .dmpb-cd-box {
    display: flex;
    gap: 6px;
    width: 100%;
}

.dmpb .dmpb-cd-box > div {
    flex: 1;
    background: var(--dmpb-main);
    color: #fff;
    border-radius: 6px;
    padding: 7px 0;
    font-size: 17px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    text-align: center;
}

.dmpb .dmpb-cd-box small {
    font-size: 12px;
    font-weight: 400;
    margin-left: 3px;
    opacity: .9;
}

/* odpočet v řádku (Kupón, Srovnání, Řádek, Banner) */
.dmpb .dmpb-cd.dmpb-cd--inline {
    display: inline;
    width: auto;
    margin: 0;
    padding: 0;
    border: 0;
    text-align: left;
    font-variant-numeric: tabular-nums;
}

/* --- stav po kliknutí na Koupit s kódem (vkládám / v košíku / chyba) --- */
.dmpb .dmpb-state {
    display: none;
    width: 100%;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    font-size: 14px;
}

.dmpb .dmpb-item.is-busy .dmpb-body,
.dmpb .dmpb-item.is-done .dmpb-body,
.dmpb .dmpb-item.is-error .dmpb-body { display: none; }

.dmpb .dmpb-item.is-busy .dmpb-state,
.dmpb .dmpb-item.is-done .dmpb-state,
.dmpb .dmpb-item.is-error .dmpb-state { display: flex !important; }

.dmpb .dmpb-item:not(.dmpb-frame) .dmpb-state {
    padding: 10px 12px;
    border-radius: 8px;
    background: var(--dmpb-bg);
    border: 2px solid var(--dmpb-main);
}

.dmpb .dmpb-state-tag {
    background: var(--dmpb-main);
    color: #fff;
    padding: 5px 11px;
    border-radius: 4px;
    font-weight: 700;
}

.dmpb .dmpb-item.is-done .dmpb-state-tag { background: var(--dmpb-ok); }
.dmpb .dmpb-item.is-error .dmpb-state-tag { background: var(--dmpb-err); }
.dmpb .dmpb-item.is-done.dmpb-frame,
.dmpb .dmpb-item.is-done:not(.dmpb-frame) .dmpb-state { border-color: var(--dmpb-ok); }
.dmpb .dmpb-item.is-error:not(.dmpb-frame) .dmpb-state { border-color: var(--dmpb-err); }
.dmpb .dmpb-state-text { flex: 1 1 200px; min-width: 0; }
.dmpb .dmpb-state a { color: var(--dmpb-ink); font-weight: 600; text-decoration: underline; }
.dmpb .dmpb-state-price { margin-left: auto; color: var(--dmpb-red); font-size: 18px; font-weight: 700; }

/* ==============================================================
   VZHLEDY DETAILU
   ============================================================== */

/* rámeček (Box, Proužek) */
.dmpb .dmpb-frame {
    border: 2px dashed var(--dmpb-main);
    background: var(--dmpb-bg);
    border-radius: 8px;
    padding: 14px;
}

.dmpb .dmpb-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px 12px;
    width: 100%;
}

.dmpb .dmpb-info {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    min-width: 0;
}

/* --- Box s kódem --- */
.dmpb--box .dmpb-info .dmpb-label { color: var(--dmpb-muted); }

/* --- Proužek s odkazem --- */
.dmpb--strip .dmpb-frame { padding: 10px 14px; }
.dmpb--strip .dmpb-info { flex: 1 1 160px; }
.dmpb--strip .dmpb-row > .dmpb-price { margin-left: auto; }

@media (max-width: 480px) {
    .dmpb--strip .dmpb-row { row-gap: 6px; }
    .dmpb--strip .dmpb-row > .dmpb-price { order: 2; }
    .dmpb--strip .dmpb-info { order: 3; flex: 1 1 100%; }
    .dmpb--strip .dmpb-desc--inline { order: 4; }
}

/* --- Srovnání cen --- */
.dmpb--compare .dmpb-body { display: flex; flex-direction: column; gap: 8px; }
.dmpb .dmpb-cmp-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 8px; }
.dmpb .dmpb-cmp-old,
.dmpb .dmpb-cmp-new { border-radius: 8px; padding: 10px 12px; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.dmpb .dmpb-cmp-old { background: #f3f3f3; color: #777; }
.dmpb .dmpb-cmp-old s { font-size: 18px; font-weight: 600; }
.dmpb .dmpb-cmp-new { background: var(--dmpb-bg); border: 2px solid var(--dmpb-main); }
.dmpb .dmpb-cmp-new .dmpb-price { font-size: 22px; line-height: 1.1; }
.dmpb .dmpb-cmp-label { font-size: 12px; font-weight: 600; color: var(--dmpb-muted); display: inline-flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.dmpb .dmpb-cmp-new .dmpb-cmp-label { color: var(--dmpb-main); }
.dmpb .dmpb-cmp-new .dmpb-code { font-size: 13px; }
.dmpb .dmpb-cmp-foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.dmpb .dmpb-cmp-save { color: var(--dmpb-ok); font-weight: 600; font-size: 14px; }
.dmpb .dmpb-cmp-time { color: var(--dmpb-muted); font-weight: 400; font-size: 13px; }

/* --- Kupón (vstupenka) --- */
.dmpb--ticket .dmpb-body { display: grid; grid-template-columns: auto minmax(0, 1fr); filter: drop-shadow(0 1px 1px rgba(0, 0, 0, .08)); }
.dmpb .dmpb-tk-stub { background: var(--dmpb-main); color: #fff; padding: 12px 16px; border-radius: 10px 0 0 10px; display: flex; flex-direction: column; justify-content: center; align-items: center; min-width: 88px; text-align: center; }
.dmpb .dmpb-tk-stub b { font-size: 22px; line-height: 1.05; font-weight: 700; }
.dmpb .dmpb-tk-stub span { font-size: 11px; text-transform: uppercase; letter-spacing: .06em; opacity: .9; margin-top: 4px; }
.dmpb .dmpb-tk-body { background: var(--dmpb-bg); border: 2px dashed var(--dmpb-main); border-left: 0; border-radius: 0 10px 10px 0; padding: 10px 14px; display: flex; flex-direction: column; gap: 4px; position: relative; min-width: 0; }
.dmpb .dmpb-tk-body::before { content: ""; position: absolute; left: -9px; top: 50%; width: 16px; height: 16px; border-radius: 50%; background: #fff; transform: translateY(-50%); }
.dmpb .dmpb-tk-l1 { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.dmpb .dmpb-tk-l1 .dmpb-price { margin-left: auto; }
.dmpb .dmpb-tk-l2 { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; font-size: 13px; color: #555; }

/* --- Decentní řádek --- */
.dmpb--line .dmpb-body { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; padding: 6px 0 6px 12px; border-left: 3px solid var(--dmpb-main); font-size: 15px; }
.dmpb--line .dmpb-code { font-size: 16px; }
.dmpb .dmpb-line-time { flex: 1 1 100%; color: var(--dmpb-muted); font-size: 13px; }

/* --- Banner s odpočtem --- */
.dmpb--banner .dmpb-body { background: var(--dmpb-main); color: #fff; border-radius: 8px; padding: 12px 14px; display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.dmpb .dmpb-bn-big { font-size: 22px; font-weight: 700; line-height: 1; }
.dmpb .dmpb-bn-mid { flex: 1 1 170px; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.dmpb .dmpb-bn-chip { display: inline-flex; align-items: center; gap: 6px; background: rgba(255, 255, 255, .18); border: 1px dashed rgba(255, 255, 255, .75); border-radius: 5px; padding: 2px 8px; width: max-content; max-width: 100%; }
.dmpb--banner .dmpb-code,
.dmpb--banner .dmpb-copy { color: #fff; }
.dmpb .dmpb-bn-time { font-size: 13px; opacity: .95; }
.dmpb--banner a.dmpb-buy-btn,
.dmpb--banner a.dmpb-buy-btn:visited { background: #fff; color: var(--dmpb-red); }
.dmpb--banner a.dmpb-buy-btn:hover,
.dmpb--banner a.dmpb-buy-btn:focus { color: var(--dmpb-red-dark); }

@media (max-width: 480px) {
    .dmpb--banner a.dmpb-buy-btn,
    .dmpb--compare a.dmpb-buy-btn { flex: 1 1 100%; }
}

/* --- Popis kupónu (pole Popis u kupónu v BO, volba „Popis kupónu“) --- */
.dmpb .dmpb-desc {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.35;
    color: var(--dmpb-ink);
}

.dmpb .dmpb-desc-ico {
    width: 20px;
    height: 20px;
    flex: none;
    fill: var(--dmpb-main);
}

.dmpb .dmpb-desc-text { min-width: 0; overflow-wrap: anywhere; }

/* krátký popis v řádku: jen odsazení a ikona dárku (bez svislé čáry - při zalomení řádku by zůstala viset na začátku) */
.dmpb .dmpb-desc--inline { margin-left: 6px; }

/* delší popis: celý řádek pod kódem, tlumenější */
.dmpb .dmpb-desc--block {
    display: flex;
    align-items: flex-start;
    width: 100%;
    flex: 1 1 100%;
    margin-top: 8px;
    font-size: 13.5px;
    color: var(--dmpb-muted);
}

.dmpb .dmpb-desc--block .dmpb-desc-ico { margin-top: -1px; }

/* vzhledy s vlastním rozložením */
.dmpb--compare .dmpb-desc--block { margin-top: 0; }
.dmpb--ticket .dmpb-desc--block { margin-top: 2px; font-size: 13px; }
.dmpb--line .dmpb-desc--block { margin-top: 2px; }
.dmpb--banner .dmpb-desc--block { margin-top: 2px; font-size: 13px; color: #fff; opacity: .95; }
.dmpb--banner .dmpb-desc-ico { fill: #fff; }

@media (max-width: 480px) {
    .dmpb .dmpb-desc--inline { flex: 1 1 100%; margin-left: 0; font-size: 13.5px; }
}

/* ==============================================================
   VÝPIS PRODUKTŮ (kategorie, vyhledávání, úvodní stránka)
   ============================================================== */
.dmpb.dmpb--listing {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    margin: 6px 0 0;
    flex: 0 0 auto;      /* ve sloupcových kartách se neroztahovat na výšku */
    width: 100%;
    min-width: 0;
    max-width: 100%;
    font-size: 12px;
    line-height: 1.3;
}

.product-miniature .dmpb.dmpb--listing { align-items: center; }

.dmpb .dmpb-pill {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 3px 5px;
    max-width: 100%;
    border: 1px dashed var(--dmpb-main);
    background: var(--dmpb-bg);
    color: var(--dmpb-ink);
    border-radius: 14px;
    padding: 3px 10px;
    font-size: 11.5px;
    font-weight: 600;
    text-align: left;
}

.dmpb .dmpb-pill .dmpb-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--dmpb-main); flex: none; }
.dmpb .dmpb-pill .dmpb-code { font-size: 11.5px; }
.dmpb .dmpb-pill .dmpb-days { font-weight: 400; color: var(--dmpb-muted); }
.dmpb .dmpb-pill s { color: #999; font-weight: 400; }
.dmpb .dmpb-pill em,
.dmpb .dmpb-mini-line em { font-style: normal; color: var(--dmpb-red); font-weight: 700; }
.dmpb .dmpb-pill--solid { background: var(--dmpb-main); border-style: solid; color: #fff; }
.dmpb .dmpb-pill--solid .dmpb-code { color: #fff; }
.dmpb .dmpb-pill--solid a.dmpb-buy-link,
.dmpb .dmpb-pill--solid a.dmpb-buy-link:hover { color: #fff; }

.dmpb .dmpb-mini-ticket { display: inline-flex; align-items: stretch; border: 1px dashed var(--dmpb-main); border-radius: 6px; overflow: hidden; font-size: 11.5px; font-weight: 600; max-width: 100%; }
.dmpb .dmpb-mini-ticket > b { background: var(--dmpb-main); color: #fff; padding: 3px 7px; display: inline-flex; align-items: center; white-space: nowrap; }
.dmpb .dmpb-mini-ticket > span { background: var(--dmpb-bg); padding: 3px 8px; display: inline-flex; align-items: center; gap: 5px; flex-wrap: wrap; min-width: 0; }
.dmpb .dmpb-mini-ticket .dmpb-code { font-size: 11.5px; }
.dmpb .dmpb-mini-line { display: inline-flex; align-items: center; gap: 5px; flex-wrap: wrap; border-left: 3px solid var(--dmpb-main); padding-left: 7px; font-size: 12px; font-weight: 600; }
.dmpb .dmpb-mini-line .dmpb-code { font-size: 12px; }

.dmpb .dmpb-pill-error { display: block; margin-top: 4px; font-size: 11.5px; line-height: 1.3; color: var(--dmpb-err); white-space: normal; text-align: left; }

/* proužek „Kupón“ na fotce (vzhled Banner) - JS ho přesune do kontejneru obrázku */
.dmpb-ribbon {
    --dmpb-main: #DF8A30;
    display: none;
    position: absolute;
    left: 0;
    bottom: 10px;
    z-index: 2;
    background: var(--dmpb-main);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: .02em;
    text-transform: uppercase;
    padding: 4px 9px 4px 10px;
    border-radius: 0 4px 4px 0;
    white-space: nowrap;
}

.dmpb-ribbon.is-on-photo { display: inline-block; }

/* Classic: popis miniatury má pevnou výšku (1.7: absolutně u spodku, 8: ořez) -> s promem doroste */
.product-miniature:has(.dmpb--listing) .product-description,
.product-miniature:has(.dmpb--listing) .product-price-and-shipping {
    height: auto !important;
    min-height: 0;
    overflow: visible;
}

/* Hummingbird: štítek pod přeškrtnou cenou; JS ho přesune těsně nad řádek s košíkem (stejná výška ve všech kartách) */
.product-miniature__prices .dmpb--listing { order: 99; margin-top: 8px; }
.product-miniature__bottom > .dmpb--listing { margin-top: auto; padding: 8px 0; }
.product-miniature__bottom > .dmpb--listing + .product-miniature__actions { margin-top: 0; }
