/* Bloky [zapalnice_produkty], [zapalnice_hodnoceni], [zapalnice_sdeleni], [zapalnice_vyzvednuti]. */
.zof-blok {
    font-family: inherit;
}

.zof-produkty .zof-product-title {
    font-size: 18px;
}

.zof-produkty .zof-meta-tag {
    font-size: 12px;
}

.zof-produkty .zof-product-video a {
    font-size: 13px;
    padding: 8px 0;
}

.zof-produkty .zof-product-price {
    font-size: 18px;
}

.zof-produkty .zof-poptat {
    display: inline-block;
    min-height: 44px;
    padding: 14px 28px;
    box-sizing: border-box;
    text-align: center;
    text-decoration: none;
}

.zof-stav {
    margin: 16px 0 0;
    font-size: 13px;
    opacity: 0.8;
}

.zof-sdeleni {
    padding: 12px 16px;
    border: 2px solid #dc37c1;
    border-radius: 8px;
    font-weight: 700;
}

.zof-hodnoceni h3 {
    margin: 0 0 12px;
}

.zof-hodnoceni .zof-hod-zdroje,
.zof-hodnoceni .zof-hod-citace {
    display: grid;
    gap: 12px;
    margin: 0 0 12px;
}

.zof-hodnoceni .zof-hod-zdroje {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.zof-hodnoceni .zof-hod-citace {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-bottom: 0;
}

.zof-hodnoceni .zof-hod-zdroj,
.zof-hodnoceni .zof-hod-karta {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 12px 16px;
    border: 2px solid rgba(163, 35, 142, 0.5);
    border-radius: 5px;
    font-size: 14px;
    line-height: 1.4;
}

.zof-hodnoceni .zof-hod-zdroj {
    align-items: center;
    text-align: center;
    border-color: #a3238e;
    background: rgba(163, 35, 142, 0.18);
}

.zof-hodnoceni .zof-hod-cislo {
    font-size: 34px;
    line-height: 1;
}

.zof-hodnoceni .zof-hod-hvezdy {
    color: #dc37c1;
    font-size: 20px;
    letter-spacing: 2px;
}

.zof-hodnoceni .zof-hod-sr {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

.zof-hodnoceni .zof-hod-zdroj a {
    color: #dc37c1;
    font-weight: 700;
}

.zof-hodnoceni small {
    font-size: 12px;
    opacity: 0.7;
}

.zof-hodnoceni .zof-hod-karta p {
    margin: 0;
    font-size: 16px;
    line-height: 1.5;
    color: #fff;
}

.zof-hodnoceni .zof-hod-karta small {
    margin-top: auto;
    padding-top: 6px;
}

@media (max-width: 768px) {
    .zof-hodnoceni .zof-hod-citace {
        grid-template-columns: 1fr;
    }

    /* Dva odznaky se vejdou vedle sebe i na telefon. */
    .zof-hodnoceni .zof-hod-zdroj {
        padding: 12px 8px;
    }
}

/* Mobil: kompaktní řádková karta (fotka vlevo, údaje vpravo). Formulář má jiný kontejner, tohle se ho netýká. */
@media (max-width: 768px) {
    .zof-produkty .zof-product-grid {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .zof-produkty .zof-product-card {
        display: grid;
        grid-template-columns: 92px minmax(0, 1fr);
        column-gap: 12px;
        align-content: start;
        height: auto;
        padding: 10px;
    }

    .zof-produkty .zof-product-card:hover {
        transform: none;
    }

    .zof-produkty .zof-product-image {
        grid-column: 1;
        grid-row: 1 / span 4;
        align-self: start;
        margin: 0;
        border-radius: 6px;
    }

    .zof-produkty .zof-product-title,
    .zof-produkty .zof-meta-container,
    .zof-produkty .zof-product-video,
    .zof-produkty .zof-product-footer {
        grid-column: 2;
    }

    .zof-produkty .zof-product-title {
        font-size: 15px;
        margin: 0 0 4px;
    }

    .zof-produkty .zof-meta-container {
        flex-wrap: nowrap;
        gap: 6px;
        margin: 0 0 2px;
    }

    .zof-produkty .zof-meta-tag {
        padding: 3px 8px;
        font-size: 12px;
        white-space: nowrap;
    }

    .zof-produkty .zof-product-video a {
        margin: 0;
        padding: 4px 0;
    }

    .zof-produkty .zof-product-footer {
        margin-top: 2px;
        padding-top: 0;
        border-top: 0;
        gap: 8px;
    }

    .zof-produkty .zof-poptat {
        padding: 10px 18px;
    }
}

/* [zapalnice_vyzvednuti]: karty míst, kroky, dlaždice. */
.zof-vyzvednuti h3 {
    margin: 0 0 12px;
}

.zof-vyzvednuti .zof-vyz-mista,
.zof-vyzvednuti .zof-vyz-kroky,
.zof-vyzvednuti .zof-vyz-info {
    display: grid;
    gap: 12px;
    margin: 0 0 16px;
    padding: 0;
    list-style: none;
}

.zof-vyzvednuti .zof-vyz-mista {
    grid-template-columns: 3fr 2fr;
}

.zof-vyzvednuti .zof-vyz-kroky,
.zof-vyzvednuti .zof-vyz-info {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.zof-vyzvednuti .zof-vyz-info {
    margin-bottom: 0;
}

.zof-vyzvednuti .zof-vyz-misto,
.zof-vyzvednuti .zof-vyz-info > div {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 12px 16px;
    border: 2px solid rgba(163, 35, 142, 0.5);
    border-radius: 5px;
    font-size: 14px;
    line-height: 1.4;
}

.zof-vyzvednuti .zof-vyz-hlavni {
    border-color: #a3238e;
    background: rgba(163, 35, 142, 0.18);
}

.zof-vyzvednuti .zof-vyz-nazev {
    font-size: 16px;
}

.zof-vyzvednuti .zof-vyz-adresa {
    font-weight: 700;
}

.zof-vyzvednuti .zof-vyz-tl {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 16px;
    margin-top: 6px;
}

.zof-vyzvednuti .zof-vyz-zavolat {
    display: inline-block;
    padding: 10px 20px;
    border-radius: 5px;
    background: #a3238e;
    color: #fff;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
}

.zof-vyzvednuti .zof-vyz-zavolat:hover {
    background: #dc37c1;
}

.zof-vyzvednuti .zof-vyz-mapa {
    color: #dc37c1;
    font-weight: 700;
}

.zof-vyzvednuti .zof-vyz-kroky {
    counter-reset: zof-krok;
}

.zof-vyzvednuti .zof-vyz-kroky li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin: 0;
    font-size: 14px;
    line-height: 1.4;
}

.zof-vyzvednuti .zof-vyz-kroky li::before {
    counter-increment: zof-krok;
    content: counter(zof-krok);
    flex: 0 0 32px;
    height: 32px;
    border-radius: 50%;
    background: #a3238e;
    color: #fff;
    font-weight: 700;
    line-height: 32px;
    text-align: center;
}

.zof-vyzvednuti .zof-vyz-info strong {
    font-size: 14px;
    color: #dc37c1;
}

@media (max-width: 768px) {
    .zof-vyzvednuti .zof-vyz-mista,
    .zof-vyzvednuti .zof-vyz-kroky,
    .zof-vyzvednuti .zof-vyz-info {
        grid-template-columns: 1fr;
    }
}

/* [zapalnice_sady]: karty sad (základ karty ze style.css). */
.zof-sady-uvod {
    margin: 0 0 16px;
    padding: 12px 16px;
    border: 2px solid #dc37c1;
    border-radius: 8px;
    font-weight: 700;
}

/* Koláž: první dlaždice (ohňostroj) vlevo přes 2 řádky, ostatní vpravo v mřížce 2×2; čtverec jako běžná fotka karty. */
.zof-kolaz {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: repeat(2, 1fr);
    gap: 3px;
    width: 100%;
    aspect-ratio: 1 / 1;
    border-radius: 8px;
    overflow: hidden;
    margin-bottom: 15px;
    background: #d9d9d9;
}

.zof-kolaz-dlazdice {
    position: relative;
    min-width: 0;
    min-height: 0;
    background: #fff;
}

.zof-kolaz-dlazdice img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

.zof-kolaz-dlazdice:first-child {
    grid-column: 1 / 3;
    grid-row: 1 / 3;
}

.zof-kolaz--1 .zof-kolaz-dlazdice:first-child {
    grid-column: 1 / 5;
}

.zof-kolaz--2 .zof-kolaz-dlazdice:nth-child(2) {
    grid-column: 3 / 5;
    grid-row: 1 / 3;
}

.zof-kolaz--3 .zof-kolaz-dlazdice:nth-child(n+2) {
    grid-column: 3 / 5;
}

.zof-kolaz--4 .zof-kolaz-dlazdice:last-child {
    grid-column: 3 / 5;
}

.zof-kolaz-darek {
    position: absolute;
    left: 0;
    top: 0;
    padding: 3px 8px;
    border-radius: 0 0 6px 0;
    background: #a3238e;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.3;
}

.zof-sada .zof-sada-pro {
    margin: 0 0 10px;
    opacity: 0.85;
}

.zof-sada .zof-sada-polozky {
    margin: 0 0 15px;
    padding-left: 20px;
    font-size: 14px;
}

/* Pruh dárku úplně nahoře v kartě (přes celou šířku, přes padding karty). */
.zof-sada .zof-sada-pruh {
    margin: -20px -20px 15px;
    padding: 10px 16px;
    border-radius: 11px 11px 0 0;
    background: #a3238e;
    color: #fff;
    text-align: center;
    line-height: 1.3;
}

.zof-sada .zof-sada-pruh strong {
    display: block;
    font-size: 16px;
}

.zof-sada .zof-sada-pruh span {
    display: block;
    font-size: 13px;
}

/* Štítek nad názvem. */
.zof-sada .zof-sada-stitek {
    align-self: flex-start;
    margin: 0 0 8px;
    padding: 3px 12px;
    border-radius: 999px;
    background: #a3238e;
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.4;
}

/* Grid: při 4 sadách 4 v řadě na PC, 2 a 2 na tabletu, jinak 1. */
@media (min-width: 640px) and (max-width: 999px) {
    .zof-sady .zof-sady-4 {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1000px) {
    .zof-sady .zof-sady-4 {
        grid-template-columns: repeat(4, 1fr);
    }

    /* Úzké karty: cena nad tlačítkem, obojí na jeden řádek. */
    .zof-sady .zof-sady-4 .zof-product-footer {
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
        text-align: center;
    }

    .zof-sady .zof-sady-4 .zof-product-price,
    .zof-sady .zof-sady-4 .zof-poptat {
        white-space: nowrap;
    }
}

/* Zvýrazněná sada (fialově) a zlatá sada. */
.zof-sada.zof-sada--zvyraznena {
    border: 3px solid #dc37c1;
    box-shadow: 0 0 22px rgba(220, 55, 193, 0.35);
}

.zof-sada.zof-sada--zlata {
    border: 2px solid #d4a020;
}

.zof-sada--zlata .zof-sada-pruh,
.zof-sada--zlata .zof-sada-stitek {
    background: linear-gradient(135deg, #f5d36b, #d4a020 55%, #b8860b);
    color: #2b1a00;
}

.zof-sada.zof-sada--tyrkys {
    border: 2px solid #1f9e93;
}

.zof-sada--tyrkys .zof-sada-pruh,
.zof-sada--tyrkys .zof-sada-stitek {
    background: linear-gradient(135deg, #5fd3c6, #1f9e93);
    color: #062b28;
}

.zof-sada--zlata .zof-sada-pruh {
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.45);
}

.zof-sada .zof-poptat {
    display: inline-block;
    min-height: 44px;
    padding: 14px 28px;
    box-sizing: border-box;
    text-align: center;
    text-decoration: none;
}

/* [zapalnice_hodnoceni styl="radek"]: kompaktní řádek pod hlavní CTA. */
.zof-hod-radek {
    margin: 4px 0 12px;
    font-size: 14px;
    line-height: 1.5;
    text-align: inherit; /* zarovnání podle okolního textu (úvod na střed, podstránky vlevo) */
}

.zof-hod-radek .zof-hod-hvezdy {
    color: #dc37c1;
    font-size: 18px;
    letter-spacing: 2px;
}

.zof-hod-radek a {
    color: inherit;
    text-decoration: underline;
    white-space: nowrap;
}

.zof-hod-radek .zof-hod-oddelovac {
    margin: 0 4px;
    opacity: 0.6;
}

/* [zapalnice_vyzva]: řádek Zavolat · Poptat online. */
.zof-vyzva--stred {
    text-align: center;
}

.zof-vyzva--vlevo {
    text-align: left;
}

/* Dlaždice odkazů (výběr podle rozpočtu, kotvy podle druhu): <div class="zof-odkazy"><a href="#…"><strong>…</strong><span>…</span></a>…</div> */
.zof-odkazy {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 12px;
    margin: 0 0 24px;
}

.zof-odkazy a {
    display: block;
    padding: 14px 12px;
    border: 2px solid #a3238e;
    border-radius: 8px;
    background: rgba(163, 35, 142, 0.18);
    color: inherit;
    text-align: center;
    text-decoration: none;
    line-height: 1.3;
}

.zof-odkazy a:hover,
.zof-odkazy a:focus {
    background: rgba(163, 35, 142, 0.4);
}

.zof-odkazy strong {
    display: block;
    font-size: 18px;
}

.zof-odkazy span {
    display: block;
    margin-top: 4px;
    font-size: 14px;
    opacity: 0.9;
}

/* Cíl kotvy nezakryje pevná hlavička. */
.zof-kotva {
    scroll-margin-top: 100px;
}
