/* ---------------------------------------------------------------
 * TsunamiProductVars — styly přestavěného výběru variant
 *
 * Patří k JS/prestarter_variants.js. Skript sám žádné styly nevkládá,
 * tenhle soubor musí být na stránce načtený samostatně
 * (stejně jako truhlarstvi.css).
 *
 * Značková zlatá #BC9D6C je vytěžená z bannerů shop.truhlarstvi-sedivy.cz.
 * Pro text se používá ztmavená varianta #8A6D3B — čistá zlatá má na bílé
 * kontrast jen ~2,6:1 a jako text by byla špatně čitelná (WCAG AA
 * vyžaduje 4,5:1; ztmavená má 4,85:1).
 *
 * Barvu stačí měnit na jednom místě — v proměnných níže.
 * --------------------------------------------------------------- */

/* ------------------------- Wrapper + barvy ------------------------- */

.tsunami-variants-wrapper {
    --tsunami-accent: #BC9D6C;              /* dekorace: pruh výběru, radio, rámečky */
    --tsunami-accent-text: #8A6D3B;         /* text: cena, hover tlačítek v hlavičce */
    --tsunami-accent-soft: rgba(188, 157, 108, .14); /* #BC9D6C na 14 % — pozadí vybraného řádku */
    --tsunami-fill: #F6F6F6;                /* jemné podbarvení převzaté z ostrého e-shopu
                                               (sidebar, lišta záložek, tlačítka množství) */
    margin: 16px 0;
}

/* ---------------------------- Box variant --------------------------- */

.tsunami-variants {
    border: 1px solid #e5e5e5;
    border-radius: 6px;
    overflow: hidden;
    background: #fff;
}

/* ------------- Hlavička: popisky parametrů + přepínač detailů ------- */

.tsunami-variants__head {
    display: flex;
    /* Tlačítka spadnou na vlastní řádek, jakmile se vedle popisků nevejdou.
       Řídí se šířkou BOXU, ne okna — informační sloupec je úzký (~440 px)
       i na širokém desktopu, takže media query by tenhle případ minula. */
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 6px 10px;
    padding: 6px 14px;
    background: var(--tsunami-fill);
    border-bottom: 1px solid #e5e5e5;
    font-size: .85em;
    color: #555;
    line-height: 1.4;
}

.tsunami-variants__head-content {
    flex: 1 1 auto;
    min-width: 0;
}

/* Tlačítka vpravo v hlavičce: velikost obrázků + detaily */
.tsunami-variants__head-actions {
    flex: 0 0 auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 6px;
    /* Drží je vpravo i po zalomení na vlastní řádek — automatický okraj
       pohltí volné místo dřív, než se k němu dostane justify-content,
       které na samostatném řádku řeší jen jednu položku. */
    margin-left: auto;
}

.tsunami-variants__head-content strong {
    color: #222;
    margin-right: 6px;
}

/* Název parametru se nesmí lámat uprostřed („Rozteč/“ + „Průměr“) —
   zalomí se jen mezi jednotlivými parametry. */
.tsunami-variants__head-label {
    white-space: nowrap;
}

.tsunami-variants__head-label + .tsunami-variants__head-label:before {
    content: " · ";
    color: #bbb;
}

.tsunami-variants__details-btn {
    flex: 0 0 auto;
    white-space: nowrap;
    background: transparent;
    border: 1px solid #d0d0d0;
    border-radius: 4px;
    padding: 5px 10px;
    font-size: .85em;
    font-weight: 600;
    color: #555;
    cursor: pointer;
    line-height: 1;
    transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}

.tsunami-variants__details-btn:hover {
    background: #fff;
    border-color: var(--tsunami-accent);
    color: var(--tsunami-accent-text);
}

/* ---------------------------- Řádek varianty ------------------------ */

.tsunami-variants__row {
    display: grid;
    grid-template-columns: auto 45px minmax(0, 1fr) auto;
    gap: 4px 16px;
    align-items: center;
    padding: 5px 14px;
    /* Řádek je <label> a Shoptet labelům dává spodní margin — bez tohohle
       resetu vznikají 4px bílé mezery mezi řádky i kolem vybraného řádku. */
    margin: 0;
    cursor: pointer;
    border-bottom: 1px solid #f0f0f0;
    transition: background-color .15s ease;
}

.tsunami-variants__row:last-of-type {
    border-bottom: 0;
}

.tsunami-variants__row:hover {
    background: #fafafa;
}

.tsunami-variants__row--selected {
    background: var(--tsunami-accent-soft);
    box-shadow: inset 4px 0 0 var(--tsunami-accent);
}

/* ----------------------------- Text varianty ------------------------ */

.tsunami-variants__info {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.tsunami-variants__name {
    font-weight: 600;
    line-height: 1.2;
}

.tsunami-variants__avail {
    font-size: .85em;
    color: #2e7d32;
}

/* S rozkliknutými detaily řádek zhoustne o Kód a EAN — teprve tam si
   dostupnost bere tučnost, aby se v tom neztratila. Bez detailů je řádek
   řídký a zůstává normální. */
.tsunami-variants--details-shown .tsunami-variants__avail {
    font-weight: 600;
}

/* Kód/EAN — skryté, dokud uživatel nerozklikne „Více detailů“ */
.tsunami-variants__meta {
    display: none;
    font-size: .85em;
    color: #666;
    line-height: 1.3;
}

.tsunami-variants--details-shown .tsunami-variants__meta {
    display: flex;
    flex-wrap: wrap;
}

/* Kód/EAN se musí zalomit jen jako celek (label + hodnota spolu) */
.tsunami-variants__meta > span {
    white-space: nowrap;
}

.tsunami-variants__meta span + span:before {
    content: " · ";
    color: #bbb;
}

/* ------------------ Radio — force render proti Shoptet resetu ------- */

.tsunami-variants__radio-cell {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 2px;
}

.tsunami-variants__radio,
input[type="radio"].tsunami-variants__radio {
    appearance: radio !important;
    -webkit-appearance: radio !important;
    -moz-appearance: radio !important;
    opacity: 1 !important;
    visibility: visible !important;
    position: static !important;
    display: inline-block !important;
    width: 22px !important;
    height: 22px !important;
    min-width: 22px !important;
    min-height: 22px !important;
    margin: 0 !important;
    padding: 0 !important;
    clip: auto !important;
    clip-path: none !important;
    border: 1px solid #888 !important;
    background: #fff !important;
    pointer-events: auto !important;
    box-shadow: none !important;
    accent-color: var(--tsunami-accent);
    cursor: pointer;
    flex-shrink: 0;
}

/* -------------------------------- Obrázek --------------------------- */

.tsunami-variants__image {
    display: flex;
    align-items: center;
    justify-content: center;
}

.tsunami-variants__image a {
    display: block;
    line-height: 0;
    /* Shoptet dává odkazu pevný max-width (76 px) — zvětšený obrázek by
       z něj vyčníval doprava a rozhodil vycentrování. */
    width: auto;
    max-width: none;
}

/* Náhledy variant jsou průhledné PNG — bílé pozadí je drží jednotné
   i na zvýrazněném řádku, kde by jinak prosvítalo béžové podbarvení. */
.tsunami-variants__image .variant-image,
.tsunami-variants__image a,
.tsunami-variants__image img {
    background: #fff;
}

/* Shoptetí obal náhledu má pevnou šířku, která neodpovídá obrázku — bez
   tohohle sedí obrázek v bílém bloku nastranu a po zvětšení z něj dokonce
   přetéká. Šířku vážeme na sloupec, aby byly bílé bloky napříč řádky
   stejné a obrázek v nich vždy na středu. */
.tsunami-variants__image .variant-image {
    display: flex;
    align-items: center;
    justify-content: center;
    width: auto;
    min-width: 100%;
    margin: 0;
    padding: 0;
}

.tsunami-variants__image img {
    max-width: 40px;
    max-height: 40px;
    width: auto;
    height: auto;
    display: block;
}

/* Zvětšené obrázky (přepínač v hlavičce, volba se pamatuje v localStorage).
   Dvojnásobek — sloupec i obrázek. */
.tsunami-variants--big-images .tsunami-variants__row {
    grid-template-columns: auto 90px minmax(0, 1fr) auto;
}

.tsunami-variants--big-images .tsunami-variants__image img {
    max-width: 80px;
    max-height: 80px;
}

/* --------------------------------- Cena ----------------------------- */

.tsunami-variants__price {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
    white-space: nowrap;
}

.tsunami-variants__price-old {
    color: #999;
    text-decoration: line-through;
    font-size: .85em;
}

.tsunami-variants__price-final {
    font-weight: 700;
    font-size: 1.1em;
    color: var(--tsunami-accent-text);
}

.tsunami-variants__price-unit {
    font-size: .8em;
    color: #888;
}

/* ---------------------- Akce: množství + Do košíku ------------------ */

.tsunami-variants__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
    margin: 14px 0 4px;
    padding: 12px 14px;
    background: var(--tsunami-fill);
    border-radius: 6px;
}

.tsunami-variants__qty {
    display: inline-flex;
    align-items: stretch;
    border: 1px solid #d0d0d0;
    border-radius: 4px;
    overflow: hidden;
    background: #fff;
    min-height: 54px;
    box-sizing: border-box;
}

.tsunami-variants__qty button {
    background: transparent;
    border: 0;
    width: 42px;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
    color: #333;
    box-sizing: border-box;
}

.tsunami-variants__qty button:hover {
    background: #f0f0f0;
}

.tsunami-variants__qty input {
    width: 60px !important;
    height: 54px !important;
    line-height: 54px !important;
    border: 0;
    border-left: 1px solid #e5e5e5;
    border-right: 1px solid #e5e5e5;
    text-align: center !important;
    padding: 0 4px !important;
    margin: 0 !important;
    font-size: 1.05em;
    -moz-appearance: textfield;
    box-sizing: border-box !important;
    background: #fff !important;
    vertical-align: middle !important;
}

.tsunami-variants__qty input::-webkit-outer-spin-button,
.tsunami-variants__qty input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.tsunami-variants__add {
    flex: 1 1 auto;
    min-width: 180px;
    min-height: 54px;
    padding-top: 14px;
    padding-bottom: 14px;
    box-sizing: border-box;
}

/* ------------------------------- Mobil ------------------------------ *
 * Radio + obrázek vlevo, cena vpravo, text varianty pod tím.
 * -------------------------------------------------------------------- */

@media (max-width: 720px) {

    /* Pozor na velikosti písma: řádek varianty je <label> a Shoptet mu
       nastavuje font-size natvrdo v px. Jakékoli zvětšení přes em na
       wrapperu se tedy k řádkům vůbec nedostane — projevilo by se jen na
       hlavičce, která by pak byla větší než název varianty. Proto se tu
       velikosti neupravují a box drží stejné proporce jako na desktopu. */

    .tsunami-variants__row {
        display: flex !important;
        flex-wrap: wrap;
        gap: 4px 10px !important;
        padding: 10px 12px;
        align-items: flex-start;
        grid-template-columns: none !important;
    }

    .tsunami-variants__radio-cell {
        order: 1;
        flex-shrink: 0;
        align-self: center;
    }

    .tsunami-variants__image {
        order: 2;
        flex-shrink: 0;
        align-self: center;
    }

    .tsunami-variants__image img {
        max-width: 48px;
        max-height: 48px;
    }

    .tsunami-variants--big-images .tsunami-variants__image img {
        max-width: 96px;
        max-height: 96px;
    }

    .tsunami-variants__price {
        order: 3;
        margin-left: auto;
        flex-shrink: 0;
        align-self: center;
    }

    .tsunami-variants__info {
        order: 4;
        flex: 1 1 100%;
        min-width: 0;
    }

    /* Množství + Do košíku musí zůstat v jednom řádku i na mobilu */
    .tsunami-variants__actions {
        flex-wrap: nowrap !important;
        gap: 10px !important;
        padding: 10px 12px;
    }

    .tsunami-variants__add {
        min-width: 0 !important;
        padding-left: 8px !important;
        padding-right: 8px !important;
    }
}
