/**
 * Galeski plugin stylesheet (both sites).
 *
 * Single place for custom CSS (marketing/schlachtplan-redesign.md, Phase 1, 11.10.2026).
 * Uses the Elementor kit variables (--e-global-color-*); global design (colors, fonts, buttons,
 * breakpoints) stays in the Elementor kit.
 */

/* ------------------------------------------------------------------
 * 1. Previously inline in wp_footer (Asset::printScriptsAndStyles)
 * ------------------------------------------------------------------ */
.woocommerce .galeski-legacy {
    margin-top: 3rem;
}
.woocommerce .galeski-legacy .products .product::after {
    display: none;
}
a.button.product_type_variable {
    display: none !important;
}
.elementor-widget.elementor-widget-woocommerce-products ul.products li.product a.button.add_to_cart_button {
    display: none;
}
.elementor-widget.elementor-widget-woocommerce-products ul.products li.product a.button.add_to_cart_button.galeski {
    display: block;
    padding: 10px 0;
}
.g-badge {
    display: inline-block;
    padding: 5px 10px;
    margin-right: 5px;
    background: var(--e-global-color-secondary);
    color: var(--e-global-color-accent);
    content: ' ';
}

/* ------------------------------------------------------------------
 * 2. Previously "Custom CSS" of the Elementor kit 64 (DE), moved 1:1.
 *    After deploy the kit CSS is emptied on both sites.
 * ------------------------------------------------------------------ */
body {
   font-family: "Open Sans", sans-serif;
}

.galeski-product-details__short_description_extra {
    font-size: large;
}

.woocommerce:where(body:not(.woocommerce-uses-block-theme)) ul.products li.product .price {
    color: var(--e-global-color-text) !important;
    font-size: 18px;
}
body[data-elementor-device-mode="desktop"] > header > header {
    padding: 0 1rem;
}
.elementor-button-icon {
    /* NO TEXT-SHADOW on header icons! */
    text-shadow: none !important;
}
li.product a.button.product_type_grouped {
    display: none !important;
}
/* White background for "zoomed" gallery pictures. */
.elementor-lightbox .elementor-lightbox-image {
    background-color: var(--e-global-color-c696dce);
}
/* Remove add-to-cart-button but show "Details" button. */
.woocommerce-loop-product__buttons,
.woocommerce .products .product a.button.add_to_cart_button {
    display: none;
}
.woocommerce .products .product a.button.add_to_cart_button.galeski {
    display: block;
    text-align: center;
    font-family: var(--e-global-typography-secondary-font-family), Sans-serif;
    font-weight: var(--e-global-typography-accent-font-weight);
    margin: .5rem -1rem 0 -1rem;
    border-radius: 0 0 4px 4px;
    color: #515151;
    background-color: #e9e6ed;
}
.woocommerce .products .product .woocommerce-loop-product__link span.price {
    color: var(--e-global-color-text);
    font-size: 18px;
    font-family: var(--e-global-typography-secondary-font-family), Sans-serif;
}
.woocommerce .products .product .woocommerce-loop-product__link h2.woocommerce-loop-product__title {
    color: var(--e-global-color-primary);
    font-weight: bold;
    font-size: 24px;
    padding: 12px 0;
    font-family: var(--e-global-typography-secondary-font-family), Sans-serif;
}

/* Animate product loop item (scale + shadow) */
.woocommerce .products .product {
    transition: transform 300ms;
    background-color: var(--e-global-color-c696dce);
    padding: 0 1rem !important;
    list-style: none;
}
.woocommerce .products .product:hover {
    -webkit-box-shadow: 2px 2px 6px -3px #333333CC;
    box-shadow: 2px 2px 7px -3px #333333CC;
    border-radius: 4px;
    transform: scale(1.05);
}

/* Fix "OnSale" Badge size */
.woocommerce .products .product .woocommerce-LoopProduct-link.woocommerce-loop-product__link span.onsale {
    margin: 0;
    padding: 0 15px;
    min-height: auto;
}

/* Fix "message (added to cart ...)" rendering */
body.e-wc-message-notice .woocommerce-message {
    /*border: none;*/
    outline: none;
    line-height: 2.6rem;
    margin-top: 1rem !important;
}

/* -------------------------
 * FIX NUMBER OF COLUMNS FOR
 * "ARCHIVE PRODUCTS" ON 
 * DIFFERENT BREAKPOINTS
 * -------------------------
 */
/* for desktop view */ 
body[data-elementor-device-mode="desktop"] .elementor-widget-wc-archive-products .products {
    grid-template-columns: repeat(4, 1fr) !important;
} 
/* for tablet view */ 
body[data-elementor-device-mode="tablet"] .elementor-widget-wc-archive-products .products {
    grid-template-columns: repeat(2, 1fr) !important;
} 
/* for mobile view */ 
body[data-elementor-device-mode="mobile"] .elementor-widget-wc-archive-products .products {
    grid-template-columns: repeat(1, 1fr) !important;
}
.hidden {
    display: none !important;
}

/* ------------------------------------------------------------------
 * 3. Variant data (ProductSpecs, widget "Galeski Variant Data")
 *    Key facts rectangular (info, not clickable – rule R11), colours from the kit.
 * ------------------------------------------------------------------ */
/* Stable size: full width, fixed columns – switching variations must not resize the block. */
.elementor-widget-galeski_variant_data,
.galeski-variant-data {
    width: 100%;
}
.galeski-specs {
    width: 100%;
    table-layout: fixed;
    border-collapse: collapse;
    margin: 0;
}
.galeski-specs td {
    overflow-wrap: anywhere;
}
.galeski-specs th,
.galeski-specs td {
    padding: .5rem .75rem;
    border-bottom: 1px solid var(--e-global-color-secondary);
    text-align: left;
    vertical-align: top;
    background: transparent;
}
.galeski-specs th {
    width: 40%;
    font-weight: 400;
    color: var(--e-global-color-text);
}
.galeski-facts {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
    margin: 0;
    padding: 0;
    list-style: none;
}
.galeski-facts li {
    padding: .2rem .6rem;
    border-radius: 2px;
    background: var(--e-global-color-secondary);
    color: var(--e-global-color-primary);
    font-weight: 600;
    font-size: .9rem;
}
.galeski-datasheet::before {
    content: "↓ ";
}
@media (max-width: 767px) {
    .galeski-specs th {
        width: 50%;
    }
}

/* ------------------------------------------------------------------
 * 4. Product cards (UpsellWidget, layout "cards")
 *    Price + German Market hint + button always at the bottom, same height in a row (rule R14).
 *    Columns per breakpoint via the widget control.
 * ------------------------------------------------------------------ */
.galeski-cards {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin: 0;
    padding: 0;
    list-style: none;
}
.galeski-card {
    display: flex;
    flex-direction: column;
    gap: .5rem;
    min-width: 0;
    padding: .75rem;
    border: 1px solid var(--e-global-color-secondary);
    background: var(--e-global-color-c696dce, #fff);
}
.galeski-card__image img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1;
    object-fit: contain;
}
.galeski-card__title {
    color: var(--e-global-color-primary);
    font-weight: 700;
    line-height: 1.3;
}
.galeski-card__buy {
    margin-top: auto;
    display: flex;
    flex-direction: column;
    gap: .35rem;
}
.galeski-card__buy .price {
    margin: 0;
    font-weight: 700;
    color: var(--e-global-color-primary);
}
.galeski-card__buy .wgm-info,
.galeski-card__buy .wgm-info a {
    font-size: .8rem;
    line-height: 1.3;
}
.galeski-card .galeski-card__button {
    display: block;
    text-align: center;
    margin-top: auto;
}
.galeski-card__subtitle {
    margin: 0;
    font-size: .85rem;
    color: #767676;
}
.galeski-card__count {
    margin: 0;
    font-size: .85rem;
    color: var(--e-global-color-text);
}
/* Magenta = click (rule R16), square like the kit buttons (F7). Beats WooCommerce's grey .woocommerce a.button. */
.woocommerce .galeski-card__buy a.button.galeski-card__button,
.galeski-card__buy a.button.galeski-card__button {
    border-radius: 0;
    background-color: var(--e-global-color-accent);
    color: #fff;
}
.woocommerce .galeski-card__buy a.button.galeski-card__button:hover,
.galeski-card__buy a.button.galeski-card__button:hover {
    background-color: var(--e-global-color-primary);
    color: #fff;
}
/* Shop filter (Elementor taxonomy filter): hide technical categories. */
.e-filter-item[data-filter="shop"],
.e-filter-item[data-filter="uncategorized"],
.e-filter-item[data-filter="export"],
.e-filter-item[data-filter="export-tool"] {
    display: none;
}
@media (max-width: 1024px) {
    .galeski-cards {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
@media (max-width: 767px) {
    .galeski-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .5rem;
    }
}

/* ------------------------------------------------------------------
 * 5. Shop toolbar (widget "Galeski Shop Toolbar", wireframe Shop Var. 2)
 *    Chips are interactive → pills (R11), magenta = click (R16). Filter column: CSS class galeski-shop-filters,
 *    on tablet/mobile closed until the filter button opens it.
 * ------------------------------------------------------------------ */
.galeski-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem 1rem;
    margin: 0 0 1rem;
    font-size: .9rem;
}
.galeski-toolbar__toggle {
    display: none;
    border: 0;
    border-radius: 0;
    padding: .4rem 1rem;
    background: var(--e-global-color-accent);
    color: #fff;
    cursor: pointer;
}
.galeski-toolbar__chips {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
}
.galeski-chip {
    border: 1px solid var(--e-global-color-accent);
    border-radius: 999px;
    padding: .15rem .7rem;
    background: transparent;
    color: var(--e-global-color-accent);
    font-size: .85rem;
    cursor: pointer;
}
.galeski-chip:hover {
    background: var(--e-global-color-accent);
    color: #fff;
}
.galeski-toolbar__count {
    color: var(--e-global-color-text);
}
.galeski-toolbar__sort {
    margin-left: auto;
    color: var(--e-global-color-text);
}
.galeski-toolbar__sort select {
    margin-left: .35rem;
    padding: .25rem .5rem;
    border: 1px solid var(--e-global-color-secondary);
    border-radius: 0;
    background: #fff;
}
@media (max-width: 1024px) {
    .galeski-toolbar__toggle {
        display: inline-block;
    }
    .galeski-shop-filters.e-con,
    .galeski-shop-filters {
        --display: none;
        display: none;
    }
    .galeski-shop-filters.e-con.is-open,
    .galeski-shop-filters.is-open {
        --display: flex;
        display: flex;
    }
}

/* ------------------------------------------------------------------
 * 6. Product page blocks (wireframe P1): features, scope of delivery, CEE hint (Variant Data), series widget.
 * ------------------------------------------------------------------ */
.galeski-features {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin: 0;
    padding: 0;
    list-style: none;
}
.galeski-features li {
    display: flex;
    flex-direction: column;
    gap: .35rem;
    padding: 1rem;
    border: 1px solid var(--e-global-color-secondary);
}
.galeski-features strong {
    color: var(--e-global-color-primary);
}
.galeski-scope {
    margin: 0;
    padding-left: 1.2rem;
}
.galeski-scope li {
    margin: .2rem 0;
}
.galeski-cee {
    margin: .5rem 0 0;
    padding: .5rem .75rem;
    border-left: 3px solid var(--e-global-color-accent);
    background: var(--e-global-color-secondary);
    font-size: .9rem;
}
.galeski-series-eyebrow {
    margin: 0;
    font-size: .75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .07em;
}
.galeski-series-eyebrow a {
    color: var(--e-global-color-text);
}
.galeski-series-eyebrow a:hover {
    color: var(--e-global-color-accent);
}
/* Eyebrow row: series · subtitle (template container class galeski-eyebrow-row) */
.galeski-eyebrow-row .galeski-card__subtitle {
    font-size: .75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .07em;
}
.galeski-eyebrow-row .galeski-series-eyebrow + .galeski-card__subtitle::before,
.galeski-eyebrow-row .elementor-widget-galeski_series + .elementor-widget-galeski_card_subtitle .galeski-card__subtitle::before {
    content: "· ";
}
.galeski-series-link,
.galeski-note {
    margin: 0;
    font-size: .9rem;
    color: var(--e-global-color-text);
}
.galeski-series-link a,
.galeski-note a {
    color: var(--e-global-color-accent);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}
/* Model bar (wireframe P1 block 2): tiles, current model outlined */
.galeski-models {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 150px), 1fr));
    gap: .5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}
.galeski-model a {
    display: flex;
    flex-direction: column;
    gap: .25rem;
    height: 100%;
    padding: .6rem;
    border: 1px solid var(--e-global-color-secondary);
    border-radius: 6px;
    color: var(--e-global-color-text);
    font-size: .85rem;
}
.galeski-model a:hover {
    border-color: var(--e-global-color-accent);
}
.galeski-model__image {
    width: 64px;
    height: 64px;
    object-fit: contain;
}
.galeski-model__name {
    font-weight: 700;
    color: var(--e-global-color-primary);
}
.galeski-model__price {
    margin-top: auto;
    font-size: .8rem;
}
.galeski-model.is-current a {
    outline: 2px solid var(--e-global-color-accent);
    background: #fbe8f1;
}
/* Variation choice as buttons (galeski-variants.js); the select stays hidden as source of truth */
/* Visually hidden for real: WooCommerce/Elementor give selects a width (260 px) that made phones scroll sideways */
.galeski-options__select {
    position: absolute !important;
    width: 1px !important;
    min-width: 0 !important;
    height: 1px !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden;
    clip-path: inset(50%);
    opacity: 0;
    pointer-events: none;
}
.galeski-buybox table.variations td.value {
    position: relative;
}
.galeski-options {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem;
}
/* Selectors beat the kit's global button style (filled magenta, large padding). */
.woocommerce div.product form.variations_form .galeski-option {
    margin: 0;
    border: 1px solid #d6d0d3;
    border-radius: 999px;
    padding: .3rem .85rem;
    background: #fff;
    color: var(--e-global-color-text);
    font-size: .85rem;
    font-weight: 400;
    line-height: 1.4;
    text-transform: none;
    box-shadow: none;
    cursor: pointer;
}
.woocommerce div.product form.variations_form .galeski-option:hover:not(:disabled),
.woocommerce div.product form.variations_form .galeski-option:focus-visible {
    border-color: var(--e-global-color-accent);
    background: #fff;
    color: var(--e-global-color-accent);
}
.woocommerce div.product form.variations_form .galeski-option[aria-pressed="true"] {
    border-color: var(--e-global-color-accent);
    background: #fbe8f1;
    color: var(--e-global-color-accent);
    font-weight: 700;
}
.woocommerce div.product form.variations_form .galeski-option:disabled {
    opacity: .4;
    cursor: not-allowed;
}
/* Buy box (template class galeski-buybox): variation text duplicates the key facts; price + qty + button in one row */
.galeski-buybox .woocommerce-variation-description,
.galeski-buybox .reset_variations {
    display: none !important;
}
.galeski-buybox .woocommerce-variation-add-to-cart {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
}
.galeski-buybox table.variations th.label {
    width: 9rem;
    vertical-align: middle;
}
/* Card prices: WooCommerce colours prices on product pages olive (.woocommerce div.product span.price) */
.woocommerce div.product .galeski-card__buy .price,
.woocommerce div.product .galeski-model__price .amount {
    color: var(--e-global-color-primary);
}
/* Product safety (template class galeski-gpsr): two boxes like wireframe P1 block 6 */
.galeski-gpsr .elementor-shortcode {
    height: 100%;
    padding: .75rem 1rem;
    border: 1px solid var(--e-global-color-secondary);
    border-left: 3px solid var(--e-global-color-accent);
    border-radius: 6px;
    font-size: .9rem;
}
@media (max-width: 1024px) {
    .galeski-features {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 767px) {
    .galeski-features {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* Card titles dark, not link colour (wireframe tiles) */
.galeski-card a.galeski-card__title {
    color: var(--e-global-color-primary);
}
.galeski-card a.galeski-card__title:hover {
    color: var(--e-global-color-accent);
}
/* Empty GPSR field (e.g. no responsible person) shows no empty box */
.galeski-gpsr .elementor-widget-shortcode:not(:has(.elementor-shortcode *)) {
    display: none;
}
/* Product tabs (template widget class galeski-tabs): underline tabs like wireframe P1 block 4 */
.galeski-tabs .e-n-tabs-heading {
    justify-content: flex-start;
    gap: 0;
    border-bottom: 1px solid var(--e-global-color-secondary);
}
.galeski-tabs .e-n-tab-title {
    --n-tabs-title-color: var(--e-global-color-text);
    --n-tabs-title-color-hover: var(--e-global-color-accent);
    --n-tabs-title-color-active: var(--e-global-color-accent);
    flex-grow: 0;
    margin-bottom: -1px;
    border: 0;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    background: transparent !important;
    color: var(--e-global-color-text);
}
.galeski-tabs .e-n-tab-title[aria-selected="true"] {
    border-bottom-color: var(--e-global-color-accent);
    color: var(--e-global-color-accent);
    font-weight: 700;
}
/* Series page (wireframe A): block titles, „Welches Modell passt?“, comparison table (mobile: one card per model) */
.galeski-series-page__title {
    margin: 0 0 .75rem;
    font-size: 1.5rem;
}
.galeski-pitch {
    display: grid;
    gap: .5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}
.galeski-pitch li {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .25rem 1rem;
    padding: .6rem .8rem;
    border: 1px solid var(--e-global-color-secondary);
    border-left: 3px solid var(--e-global-color-accent);
    border-radius: 6px;
}
.galeski-pitch__model,
.galeski-compare__details {
    color: var(--e-global-color-accent);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.galeski-compare__scroll {
    overflow-x: auto;
}
.galeski-compare table {
    width: 100%;
    margin: 0;
    border-collapse: collapse;
    font-size: .9rem;
}
.galeski-compare th,
.galeski-compare td {
    padding: .5rem .6rem;
    border: 0;
    border-bottom: 1px solid var(--e-global-color-secondary);
    text-align: left;
    vertical-align: top;
}
.galeski-compare thead th {
    background: #faf8f9;
    font-weight: 600;
}
.galeski-compare tbody th a {
    color: var(--e-global-color-primary);
    font-weight: 700;
}
.woocommerce div.product .galeski-compare .price,
.woocommerce div.product .galeski-compare .amount {
    color: var(--e-global-color-primary);
}
.galeski-compare__note {
    margin: .5rem 0 0;
    font-size: .8rem;
}
@media (max-width: 767px) {
    .galeski-compare thead {
        display: none;
    }
    .galeski-compare tr {
        display: block;
        margin-bottom: .5rem;
        padding: .4rem .7rem;
        border: 1px solid var(--e-global-color-secondary);
        border-radius: 6px;
    }
    .galeski-compare th,
    .galeski-compare td {
        display: flex;
        justify-content: space-between;
        gap: 1rem;
        padding: .2rem 0;
        border: 0;
    }
    .galeski-compare td[data-label]::before {
        content: attr(data-label);
        font-weight: 600;
    }
}
/* Upsell card badge „Nötig bei CEE“ (wireframe P1): rectangular legend style, orange = hint (R16) */
.galeski-card__badge {
    align-self: flex-start;
    padding: .1rem .4rem;
    border: 1px solid var(--e-global-color-secondary);
    border-left: 3px solid #E95212;
    border-radius: 2px;
    font-size: .75rem;
    font-weight: 600;
}
/* Tool/accessory pages without variation data (yet): no empty tab bar, no empty „Produktsicherheit“ heading
   (template classes galeski-tabs, galeski-gpsr-section) */
.galeski-tabs:not(:has(.galeski-specs, .galeski-scope, .galeski-datasheet)) {
    display: none;
}
.galeski-gpsr-section:not(:has(.elementor-shortcode *)) {
    display: none;
}
/* Videos „Im Einsatz“ (rule R9): link cards only, nothing loaded from YouTube */
.galeski-videos {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr));
    gap: .5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}
.galeski-video {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .1rem .75rem;
    align-items: center;
    height: 100%;
    padding: .75rem;
    border: 1px solid var(--e-global-color-secondary);
    border-radius: 6px;
    color: var(--e-global-color-text);
}
.galeski-video:hover {
    border-color: var(--e-global-color-accent);
}
.galeski-video__play {
    grid-row: span 2;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    background: var(--e-global-color-accent);
    position: relative;
}
.galeski-video__play::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 55%;
    transform: translate(-50%, -50%);
    border-style: solid;
    border-width: .45rem 0 .45rem .75rem;
    border-color: transparent transparent transparent #fff;
}
.galeski-video__title {
    font-weight: 700;
    color: var(--e-global-color-primary);
}
.galeski-video__hint {
    font-size: .8rem;
    color: var(--e-global-color-accent);
    text-decoration: underline;
}
/* Video card with self-hosted still: image on top, play button over it */
.galeski-video--image {
    position: relative;
    grid-template-columns: 1fr;
    padding: 0 0 .75rem;
    overflow: hidden;
    container-type: inline-size;
}
.galeski-video--image .galeski-video__image {
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}
.galeski-video--image .galeski-video__play {
    position: absolute;
    top: calc(100cqw * 9 / 32);
    left: 50%;
    transform: translate(-50%, -50%);
}
.galeski-video--image .galeski-video__title,
.galeski-video--image .galeski-video__hint {
    padding: 0 .75rem;
}
/* FAQ „Häufige Fragen“ (wireframe A block 7): one line per question, „+“ in magenta, answer below */
.galeski-faq {
    border-top: 1px solid var(--e-global-color-secondary);
}
.galeski-faq__item {
    border-bottom: 1px solid var(--e-global-color-secondary);
}
.galeski-faq__question {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: .75rem 0;
    font-weight: 600;
    color: var(--e-global-color-primary);
    cursor: pointer;
    list-style: none;
}
.galeski-faq__question::-webkit-details-marker {
    display: none;
}
.galeski-faq__question::after {
    content: "+";
    flex: none;
    font-weight: 700;
    color: var(--e-global-color-accent);
}
.galeski-faq__item[open] > .galeski-faq__question::after {
    content: "–";
}
.galeski-faq__answer {
    padding: 0 2rem .75rem 0;
}
.galeski-faq__answer > :last-child {
    margin-bottom: 0;
}

/* ------------------------------------------------------------------
 * 9. Harmony pass (wireframe v3.6, Achim 11.10.2026): one scale for all single product templates
 *    (machine 8989, series 9010, tools 9013, accessories 9014). Template root: .elementor-location-single.product.
 *    Elementor writes per-element sizes into its post CSS (specificity 0,3,0) – hence !important on the few
 *    properties that have to win. Scale: body 1rem, section title 1.375rem/700, page title 2.25rem/700,
 *    section spacing 2.5rem (mobile 2rem).
 * ------------------------------------------------------------------ */
.elementor-location-single.product {
    --galeski-panel: #faf8f9;
    --galeski-line: #e3dde0;
    --galeski-muted: #6b6569;
}
/* Sections: same distance everywhere, empty sections (no widget output) take no space */
.elementor-location-single.product > .e-con {
    --padding-top: 0 !important;
    --padding-bottom: 0 !important;
    --margin-top: 2.5rem !important;
    --margin-bottom: 0 !important;
}
.elementor-location-single.product > .e-con:first-child {
    --margin-top: 1rem !important;
}
.elementor-location-single.product > .e-con:last-child {
    --margin-bottom: 3rem !important;
}
.elementor-location-single.product > .e-con:not(:has(.elementor-widget)),
.elementor-location-single.product > .e-con:has(.galeski-variant-data--features:empty):not(:has(.galeski-videos)) {
    display: none;
}

/* Titles */
.elementor-location-single.product .product_title.elementor-heading-title {
    font-size: clamp(1.75rem, 1.2rem + 1.4vw, 2.25rem) !important;
    font-weight: 700 !important;
    line-height: 1.15 !important;
    letter-spacing: 0 !important;
}
.elementor-location-single.product :is(.galeski-series-page__title, .galeski-models__title),
.elementor-location-single.product .elementor-widget-galeski_upsell_widget h2,
.elementor-location-single.product > .e-con > .e-con-inner > .elementor-widget-heading .elementor-heading-title,
.elementor-location-single.product .elementor-widget-woocommerce-product-content :is(h2, h3, .elementor-heading-title):not(.elementor-icon-box-title) {
    margin: 0 0 .75rem !important;
    font-size: 1.375rem !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    letter-spacing: 0 !important;
    text-align: left !important;
    text-transform: none !important;
    color: var(--e-global-color-primary);
}
.elementor-location-single.product .elementor-widget-woocommerce-product-content h4 {
    margin: 1rem 0 .35rem;
    font-size: 1.05rem;
    font-weight: 700;
}

/* Hero: short description in body size, buttons compact and not capitalised by the kit */
.elementor-location-single.product .woocommerce-product-details__short-description p,
.elementor-location-single.product .galeski-product-details__short_description_extra {
    font-size: 1rem;
    line-height: 1.55;
}
.galeski-series-hero .elementor-button,
.galeski-buybox .single_add_to_cart_button.button {
    padding: .6rem 1.1rem !important;
    border-radius: 0;
    font-size: .95rem !important;
    font-weight: 600 !important;
    line-height: 1.3 !important;
    text-transform: none !important;
}
.galeski-series-hero .galeski-note a {
    display: inline-block;
    padding: calc(.6rem - 1px) 1.1rem;
    border: 1px solid var(--e-global-color-accent);
    font-size: .95rem;
    line-height: 1.3;
    text-decoration: none;
}
.galeski-series-hero .galeski-note a:hover {
    background: #fbe8f1;
}
.galeski-buybox .quantity .qty {
    height: 2.6rem;
}
/* Price dark, not magenta: magenta only for what can be clicked (R16, wireframe P1) */
.woocommerce div.product .galeski-buybox p.price,
.woocommerce div.product .galeski-buybox span.price,
.woocommerce div.product .galeski-buybox .price :is(.amount, bdi) {
    color: var(--e-global-color-primary) !important;
}
.woocommerce div.product .galeski-buybox :is(p.price, span.price) {
    font-size: 1.75rem !important;
    line-height: 1.2 !important;
}
/* Price in line with the rest of the buy box (template had 10 px indent) */
.galeski-buybox .elementor-widget-woocommerce-product-price,
.galeski-buybox .woocommerce-variation-price {
    padding-left: 0 !important;
    margin-left: 0 !important;
}
/* Variation rows: small grey label left, buttons right (wireframe P1) */
.galeski-buybox table.variations {
    margin-bottom: .5rem;
}
.galeski-buybox table.variations th.label,
.galeski-buybox table.variations td.value {
    padding: .2rem 0;
}
.galeski-buybox table.variations th.label {
    width: 8.5rem;
    padding-right: .75rem;
}
.woocommerce div.product .galeski-buybox table.variations th.label label {
    font-size: .85rem !important;
    font-weight: 400 !important;
    color: var(--galeski-muted) !important;
}

/* „Welches Modell passt“: quiet grey rows, model on the right (wireframe A block 2) */
.galeski-pitch li {
    border: 0;
    border-radius: 6px;
    background: var(--galeski-panel);
}
.galeski-pitch__text {
    flex: 1 1 20rem;
}
.galeski-pitch__model {
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: .02em;
}

/* Comparison table: compact, framed, price on one line, details as small outline button */
.galeski-compare__scroll {
    border: 1px solid var(--galeski-line);
    border-radius: 6px;
}
.galeski-compare table {
    font-size: .875rem;
}
.galeski-compare thead th {
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--galeski-muted);
    white-space: nowrap;
}
.galeski-compare tbody tr:last-child > * {
    border-bottom: 0;
}
.galeski-compare tbody th a {
    white-space: nowrap;
    text-transform: uppercase;
}
.galeski-compare td[data-label]:nth-last-child(2) {
    white-space: nowrap;
    font-weight: 700;
}
.galeski-compare__details,
.galeski-pitch__model:hover {
    text-decoration: none;
}
.galeski-compare__details {
    display: inline-block;
    padding: .2rem .6rem;
    border: 1px solid var(--e-global-color-accent);
    font-size: .8rem;
    white-space: nowrap;
}
.galeski-compare__details:hover {
    background: #fbe8f1;
}

/* Cards: choosing (variants, series) = outline button, only „In den Warenkorb“ filled (wireframe A block 5) */
.woocommerce .galeski-card__buy a.button.galeski-card__button,
.galeski-card__buy a.button.galeski-card__button {
    padding: .45rem .6rem;
    font-size: .85rem;
    font-weight: 600;
    line-height: 1.3;
    text-transform: none;
}
.woocommerce .galeski-card__buy a.button.galeski-card__button:not(.add_to_cart_button),
.galeski-card__buy a.button.galeski-card__button:not(.add_to_cart_button) {
    padding: calc(.45rem - 1px) .6rem;
    border: 1px solid var(--e-global-color-accent);
    background: #fff;
    color: var(--e-global-color-accent);
}
.woocommerce .galeski-card__buy a.button.galeski-card__button:not(.add_to_cart_button):hover,
.galeski-card__buy a.button.galeski-card__button:not(.add_to_cart_button):hover {
    background: #fbe8f1;
    color: var(--e-global-color-accent);
}
.galeski-card {
    border-color: var(--galeski-line);
    border-radius: 6px;
}
.galeski-card__buy .price {
    font-size: 1.05rem;
}
.galeski-card__title {
    font-size: .95rem;
}
/* Further series: tiles over the full width like the wireframe */
.galeski-models {
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 170px), 1fr));
}

/* Product safety: two equally high grey boxes, magenta edge, label as line (wireframe P1 block 6, R19) */
.galeski-gpsr > .e-con {
    flex: 1 1 0;
}
.galeski-gpsr .elementor-widget-shortcode {
    flex-grow: 1;
}
.galeski-gpsr .elementor-shortcode {
    padding: 1rem 1.25rem;
    border: 0;
    border-left: 3px solid var(--e-global-color-accent);
    border-radius: 0 6px 6px 0;
    background: var(--galeski-panel);
    font-size: .875rem;
    line-height: 1.55;
}
.galeski-gpsr .german-market-gpsr-label {
    display: block;
    margin-bottom: .35rem;
    font-weight: 700;
    color: var(--e-global-color-primary);
}
.galeski-gpsr .german-market-gpsr-content p {
    margin: 0 0 .4rem;
}
.galeski-gpsr .german-market-gpsr-content p:last-child {
    margin-bottom: 0;
}

/* Old product descriptions (product's own Elementor content, built from the new-product blueprint): same look as
   the new blocks – left aligned, no grey band with floating picture, icon boxes as tiles, accordion like the FAQ.
   Only styles; the content itself stays untouched. */
.elementor-widget-woocommerce-product-content [data-elementor-type="product-post"] .e-con {
    --padding-top: 0 !important;
    --padding-bottom: 0 !important;
    --padding-left: 0 !important;
    --padding-right: 0 !important;
    --margin-top: 0 !important;
    --margin-bottom: 0 !important;
    --min-height: 0 !important;
    background: none !important;
}
.elementor-widget-woocommerce-product-content [data-elementor-type="product-post"] > .e-con + .e-con {
    --margin-top: 1.5rem !important;
}
.elementor-widget-woocommerce-product-content [data-elementor-type="product-post"] > .e-con:has(> .elementor-widget-heading:only-child) + .e-con {
    --margin-top: 0 !important;
}
.elementor-widget-woocommerce-product-content .elementor-widget-heading {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    --align-self: stretch !important;
}
.elementor-widget-woocommerce-product-content .elementor-widget-text-editor {
    margin: 0 !important;
    max-width: 75ch;
}
/* picture + text: picture small on the left in a quiet box, text next to it */
.elementor-widget-woocommerce-product-content .elementor-widget-image {
    margin: 0 !important;
    --align-self: flex-start !important;
    background: none !important;
}
.elementor-widget-woocommerce-product-content .elementor-widget-image img {
    border-radius: 6px;
    background: var(--galeski-panel);
    box-shadow: none !important;
}
.elementor-widget-woocommerce-product-content .e-con:has(.e-con > .elementor-widget-image:only-child) {
    --gap: 1.5rem !important;
    --align-items: flex-start !important;
}
@media (min-width: 768px) {
    .elementor-widget-woocommerce-product-content .e-con:has(> .elementor-widget-image:only-child) {
        --width: 30% !important;
    }
    .elementor-widget-woocommerce-product-content .e-con:has(> .elementor-widget-image:only-child) ~ .e-con {
        --width: calc(70% - 1.5rem) !important;
        --align-self: flex-start !important;
        --justify-content: flex-start !important;
        --padding-left: 1.5rem !important;
    }
}
@media (max-width: 767px) {
    .elementor-widget-woocommerce-product-content .e-con:has(> .elementor-widget-image:only-child) {
        display: none;
    }
}
/* icon boxes → tiles (wireframe A block 4) */
.elementor-widget-woocommerce-product-content .e-con.e-grid:has(> .elementor-widget-icon-box) {
    --gap: .75rem !important;
    --row-gap: .75rem !important;
    --column-gap: .75rem !important;
}
.elementor-widget-woocommerce-product-content .elementor-widget-icon-box {
    margin: 0 !important;
    padding: 1rem !important;
    border-radius: 6px;
    background: var(--galeski-panel);
}
.elementor-widget-woocommerce-product-content .elementor-icon-box-wrapper {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: .5rem !important;
    text-align: left !important;
}
.elementor-widget-woocommerce-product-content .elementor-icon-box-icon {
    margin: 0 !important;
}
.elementor-widget-woocommerce-product-content .elementor-icon-box-icon .elementor-icon {
    padding: 0 !important;
    border: 0 !important;
    font-size: 1.5rem !important;
    color: var(--e-global-color-accent) !important;
    fill: var(--e-global-color-accent) !important;
}
.elementor-widget-woocommerce-product-content .elementor-icon-box-icon .elementor-icon svg {
    width: 1.5rem;
    height: 1.5rem;
}
.elementor-widget-woocommerce-product-content .elementor-icon-box-title {
    margin: 0 0 .25rem !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
}
.elementor-widget-woocommerce-product-content .elementor-icon-box-description {
    font-size: .9rem !important;
    line-height: 1.5 !important;
}
/* accordion → lines like the FAQ, „+“ on the right */
.elementor-widget-woocommerce-product-content .elementor-widget-n-accordion {
    --n-accordion-title-font-size: 1rem !important;
}
.elementor-widget-woocommerce-product-content .e-n-accordion {
    border-top: 1px solid var(--galeski-line);
}
.elementor-widget-woocommerce-product-content .e-n-accordion-item {
    border-bottom: 1px solid var(--galeski-line);
}
.elementor-widget-woocommerce-product-content .e-n-accordion-item-title {
    padding: .75rem 0 !important;
    border: 0 !important;
    background: none !important;
    justify-content: space-between !important;
}
.elementor-widget-woocommerce-product-content .e-n-accordion-item-title-text {
    font-size: 1rem !important;
    font-weight: 600 !important;
    color: var(--e-global-color-primary);
}
.elementor-widget-woocommerce-product-content .e-n-accordion-item-title-icon {
    order: 2;
    margin-left: auto;
    color: var(--e-global-color-accent);
    fill: var(--e-global-color-accent);
}
.elementor-widget-woocommerce-product-content .e-n-accordion-item-title-icon :is(i, svg) {
    color: var(--e-global-color-accent) !important;
    fill: var(--e-global-color-accent) !important;
}
.elementor-widget-woocommerce-product-content .e-n-accordion-item > .e-con {
    --padding-bottom: .75rem !important;
    border: 0 !important;
}

/* Series description „Was alle … gemeinsam haben“: list → tiles, closing paragraph → hint box (wireframe A block 4) */
.elementor-location-single.product-type-grouped .elementor-widget-woocommerce-product-content ul {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 210px), 1fr));
    gap: .75rem;
    margin: 1rem 0;
    padding: 0;
    list-style: none;
}
.elementor-location-single.product-type-grouped .elementor-widget-woocommerce-product-content li {
    padding: 1rem;
    border-radius: 6px;
    background: var(--galeski-panel);
    font-size: .9rem;
    line-height: 1.5;
}
.elementor-location-single.product-type-grouped .elementor-widget-woocommerce-product-content li > strong:first-child {
    display: block;
    margin-bottom: .2rem;
    font-size: 1rem;
    color: var(--e-global-color-primary);
}
.elementor-location-single.product-type-grouped .elementor-widget-woocommerce-product-content ul ~ p {
    padding: .75rem 1rem;
    border: 1px solid var(--galeski-line);
    border-left: 3px solid var(--e-global-color-accent);
    border-radius: 0 6px 6px 0;
    font-size: .9rem;
}
.elementor-location-single.product-type-grouped .elementor-widget-woocommerce-product-content .elementor-widget-text-editor {
    max-width: none;
}

/* Phones: a bit tighter */
@media (max-width: 767px) {
    .elementor-location-single.product > .e-con {
        --margin-top: 2rem !important;
    }
    .elementor-location-single.product :is(.galeski-series-page__title, .galeski-models__title),
    .elementor-location-single.product .elementor-widget-galeski_upsell_widget h2,
    .elementor-location-single.product > .e-con > .e-con-inner > .elementor-widget-heading .elementor-heading-title,
    .elementor-location-single.product .elementor-widget-woocommerce-product-content :is(h2, h3, .elementor-heading-title):not(.elementor-icon-box-title) {
        font-size: 1.2rem !important;
    }
    .galeski-gpsr {
        --flex-direction: column !important;
    }
    .galeski-compare__scroll {
        border: 0;
    }
    .galeski-compare tr {
        border-color: var(--galeski-line);
        background: #fff;
    }
    .galeski-compare tr > * {
        background: none !important;
    }
    /* Tabs become stacked titles on phones: left aligned lines like the FAQ */
    .galeski-tabs .e-n-tab-title {
        justify-content: flex-start;
        width: 100%;
        padding: .75rem 0;
        border-bottom: 1px solid var(--galeski-line);
    }
    .galeski-tabs .e-n-tab-title[aria-selected="true"] {
        border-bottom: 2px solid var(--e-global-color-accent);
    }
    /* Variation rows: label above the buttons */
    .galeski-buybox table.variations tr,
    .galeski-buybox table.variations th.label,
    .galeski-buybox table.variations td.value {
        display: block;
        width: auto;
    }
    .galeski-buybox table.variations td.value {
        padding-bottom: .5rem;
    }
    .galeski-compare td[data-label]:nth-last-child(2) {
        white-space: normal;
    }
    .galeski-compare th,
    .galeski-compare td {
        justify-content: flex-start;
        gap: .3rem;
    }
    .galeski-compare td[data-label]::before {
        margin-right: auto;
        padding-right: 1rem;
        font-weight: 400;
        color: var(--galeski-muted);
    }
}

/* ------------------------------------------------------------------
 * 10. Shop go-live (wireframe Shop Var. 2, Achim 12.10.2026): loop grid, filter column as checkbox list, cards.
 * ------------------------------------------------------------------ */
/* Columns may shrink below the image width (1fr alone let 400 px thumbnails push the grid out of the page) */
.elementor-widget-loop-grid .elementor-loop-container {
    grid-template-columns: repeat(var(--grid-columns, 3), minmax(0, 1fr)) !important;
}
@media (max-width: 767px) {
    .elementor-widget-loop-grid .elementor-loop-container {
        --grid-columns: 2 !important;
        gap: .5rem !important;
    }
}
/* Technical categories and spare parts never as filter (beats the loop filter's own display rule) */
.elementor-widget-taxonomy-filter .e-filter-item:is([data-filter="shop"], [data-filter="uncategorized"], [data-filter="export"], [data-filter="export-tool"], [data-filter="spare-parts"]) {
    display: none !important;
}
/* Filter column: groups with a line, items as checkboxes (wireframe) */
.galeski-shop-filters .elementor-widget-heading .elementor-heading-title {
    margin: 0;
    padding-top: .75rem;
    border-top: 1px solid var(--galeski-line, #e3dde0);
    font-size: .9rem !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    color: var(--e-global-color-primary);
}
.galeski-shop-filters .elementor-widget-heading:first-child .elementor-heading-title {
    padding-top: 0;
    border-top: 0;
}
.galeski-shop-filters .e-filter {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .15rem;
}
.galeski-shop-filters .e-filter-item {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    margin: 0;
    padding: .15rem 0;
    border: 0;
    background: none;
    color: var(--e-global-color-text);
    font-size: .9rem;
    font-weight: 400;
    line-height: 1.4;
    text-transform: none;
    cursor: pointer;
}
.galeski-shop-filters .e-filter-item::before {
    content: "";
    flex: none;
    width: .95rem;
    height: .95rem;
    border: 1.5px solid #b9b1b5;
    border-radius: 2px;
    background: #fff center / .7rem no-repeat;
}
.galeski-shop-filters .e-filter-item:hover {
    background: none;
    color: var(--e-global-color-accent);
}
.galeski-shop-filters .e-filter-item[aria-pressed="true"] {
    font-weight: 700;
    color: var(--e-global-color-primary);
}
.galeski-shop-filters .e-filter-item[aria-pressed="true"]::before {
    border-color: var(--e-global-color-accent);
    background-color: var(--e-global-color-accent);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 6.5l2.5 2.5L10 3.5' fill='none' stroke='%23fff' stroke-width='2'/%3E%3C/svg%3E");
}
/* Page title like the product pages */
.galeski-shop-filters ~ .e-con > .elementor-widget-heading .elementor-heading-title,
.galeski-shop-filters ~ .e-con > .e-con-inner > .elementor-widget-heading .elementor-heading-title {
    font-size: clamp(1.75rem, 1.2rem + 1.4vw, 2.25rem) !important;
    font-weight: 700 !important;
    line-height: 1.15 !important;
}
/* Filter button (tablet/mobile) as outline button like the wireframe */
.galeski-toolbar__toggle {
    border: 1px solid var(--e-global-color-accent);
    background: #fff;
    color: var(--e-global-color-accent);
    font-weight: 600;
}
/* Cards: picture in a calm 4:3 box instead of a full square, frame like the product page cards */
.galeski-card-loop {
    border: 1px solid var(--galeski-line, #e3dde0) !important;
    border-radius: 6px;
}
.galeski-card-loop .elementor-widget-theme-post-featured-image img {
    width: 100%;
    max-width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    object-fit: contain;
}
.galeski-card-loop .elementor-heading-title {
    font-size: 1rem !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
}
/* „Mehr laden“ as outline button, centred */
.elementor-widget-loop-grid .e-loop__load-more {
    text-align: center;
}
.elementor-widget-loop-grid .e-loop__load-more .elementor-button {
    border: 1px solid var(--e-global-color-accent) !important;
    border-radius: 0 !important;
    background: #fff !important;
    color: var(--e-global-color-accent) !important;
    font-weight: 600 !important;
    text-transform: none !important;
}
.elementor-widget-loop-grid .e-loop__load-more .elementor-button:hover {
    background: #fbe8f1 !important;
}

/* ------------------------------------------------------------------
 * 11. Front page (wireframe „Home Var. 1“, script phase7-home.php): hero keeps the full-width photo, text box on the
 *     left where it always was (Achim 12.10.2026); tiles, finder, why, FAQ.
 * ------------------------------------------------------------------ */
.galeski-home-hero .galeski-home-hero__box {
    --width: min(100%, 34rem) !important;
    width: min(100%, 34rem) !important;
    margin-right: auto !important;
    --padding-top: 2rem !important;
    --padding-bottom: 2rem !important;
    --padding-left: 2rem !important;
    --padding-right: 2rem !important;
    --gap: .75rem !important;
}
.galeski-home-eyebrow .elementor-heading-title {
    font-size: .75rem !important;
    font-weight: 700 !important;
    letter-spacing: .09em !important;
    text-transform: uppercase !important;
    color: var(--e-global-color-text) !important;
}
.galeski-home-h1 .elementor-heading-title {
    font-size: clamp(1.75rem, 1.2rem + 1.4vw, 2.25rem) !important;
    font-weight: 700 !important;
    line-height: 1.15 !important;
    text-transform: none !important;
    color: var(--e-global-color-primary) !important;
}
.galeski-home-hero__box .elementor-widget-text-editor p {
    margin: 0;
    font-size: 1rem;
    line-height: 1.55;
}
.galeski-home-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    margin: .25rem 0 0;
}
.galeski-home-buttons a.galeski-home-button,
.galeski-home-box a.galeski-home-button {
    display: inline-block;
    padding: .6rem 1.1rem;
    border: 1px solid var(--e-global-color-accent);
    background: var(--e-global-color-accent);
    color: #fff;
    font-size: .95rem;
    font-weight: 600;
    line-height: 1.3;
    text-decoration: none;
}
.galeski-home-buttons a.galeski-home-button:hover,
.galeski-home-box a.galeski-home-button:hover {
    background: var(--e-global-color-primary);
    border-color: var(--e-global-color-primary);
    color: #fff;
}
.galeski-home-buttons a.galeski-home-button--outline,
.galeski-home-box a.galeski-home-button--outline {
    border: 1px solid var(--e-global-color-accent);
    background: #fff;
    color: var(--e-global-color-accent);
}
.galeski-home-buttons a.galeski-home-button--outline:hover,
.galeski-home-box a.galeski-home-button--outline:hover {
    background: #fbe8f1;
    border-color: var(--e-global-color-accent);
    color: var(--e-global-color-accent);
}
/* Sections: same scale as the product pages */
.galeski-home-section.e-con {
    --padding-left: 1rem !important;
    --padding-right: 1rem !important;
    --margin-top: 2.5rem !important;
    --padding-top: 0 !important;
    --padding-bottom: 0 !important;
    --gap: .75rem !important;
}
.galeski-home-title .elementor-heading-title,
.galeski-home-subtitle {
    margin: 0 !important;
    font-size: 1.375rem !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    text-transform: none !important;
    color: var(--e-global-color-primary);
}
.galeski-home-subtitle {
    margin: 1.5rem 0 .5rem !important;
    font-size: 1.1rem !important;
}
.galeski-home-tiles {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr));
    gap: .75rem;
    margin: 0;
    padding: 0;
    list-style: none;
}
.galeski-home-tiles--series {
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 170px), 1fr));
}
.galeski-home-tiles--tech {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
}
.galeski-home-tiles a.galeski-home-tile {
    display: flex;
    flex-direction: column;
    gap: .2rem;
    height: 100%;
    padding: .75rem;
    border: 1px solid var(--galeski-line, #e3dde0);
    border-radius: 6px;
    color: var(--e-global-color-text);
    font-size: .875rem;
}
.galeski-home-tile:hover {
    border-color: var(--e-global-color-accent);
}
.galeski-home-tile strong {
    margin-top: .35rem;
    font-size: 1rem;
    color: var(--e-global-color-primary);
}
.galeski-home-tile__image {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    object-fit: contain;
}
.galeski-home-tile__image--empty {
    background: #faf8f9;
}
.galeski-home-tiles a.galeski-home-tile--wide {
    display: grid;
    grid-template-columns: 7rem 1fr;
    grid-template-rows: auto 1fr;
    gap: .15rem 1rem;
    align-items: start;
    background: #faf8f9;
    border-color: transparent;
}
.galeski-home-tiles a.galeski-home-tile--wide .galeski-home-tile__image {
    grid-row: span 2;
}
.galeski-home-tiles a.galeski-home-tile--wide strong {
    margin-top: .5rem;
}
.galeski-home-finder {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
    gap: .75rem;
}
.galeski-home-box {
    padding: 1rem 1.25rem;
    border: 1px solid var(--galeski-line, #e3dde0);
    border-left: 3px solid var(--e-global-color-accent);
    border-radius: 0 6px 6px 0;
    background: #faf8f9;
    font-size: .9rem;
}
.galeski-home-box p {
    margin: .35rem 0 .75rem;
}
.galeski-home-box p:last-child {
    margin-bottom: 0;
}
.galeski-home-box select {
    width: 100%;
    padding: .5rem .6rem;
    border: 1px solid var(--galeski-line, #e3dde0);
    border-radius: 6px;
    background: #fff;
}
.galeski-home-why {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 210px), 1fr));
    gap: .75rem;
    margin: 0;
    padding: 0;
    list-style: none;
}
.galeski-home-why li a {
    display: flex;
    flex-direction: column;
    gap: .2rem;
    height: 100%;
    padding: 1rem;
    border-radius: 6px;
    background: #faf8f9;
    color: var(--e-global-color-text);
    font-size: .875rem;
}
.galeski-home-why a:hover strong {
    color: var(--e-global-color-accent);
}
.galeski-home-why strong {
    font-size: 1rem;
    color: var(--e-global-color-primary);
}
@media (max-width: 767px) {
    .galeski-home-hero .galeski-home-hero__box {
        --padding-left: 1.25rem !important;
        --padding-right: 1.25rem !important;
    }
    .galeski-home-section.e-con {
        --margin-top: 2rem !important;
    }
    .galeski-home-title .elementor-heading-title {
        font-size: 1.2rem !important;
    }
    .galeski-home-tiles--work,
    .galeski-home-tiles--series {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .5rem;
    }
}

/* ------------------------------------------------------------------
 * 12. Description blocks (script desc-accordion.php, Achim 12.10.2026): former accordion items as heading + text.
 *     Clear distance between blocks, heading close to its text, paragraphs and lists with air.
 * ------------------------------------------------------------------ */
.elementor-widget-woocommerce-product-content .e-con.galeski-desc-block {
    --gap: .5rem !important;
    --margin-top: 2rem !important;
}
.elementor-widget-woocommerce-product-content .e-con.galeski-desc-block .elementor-heading-title {
    margin: 0 !important;
    font-size: 1.15rem !important;
}
.elementor-widget-woocommerce-product-content .galeski-desc-block .elementor-widget-text-editor {
    padding: 0 !important;
    margin: 0 !important;
}
.elementor-widget-woocommerce-product-content .galeski-desc-block .elementor-widget-text-editor p {
    margin: 0 0 .75rem;
    line-height: 1.6;
}
.elementor-widget-woocommerce-product-content .galeski-desc-block .elementor-widget-text-editor :is(ul, ol) {
    margin: 0 0 .75rem;
    padding-left: 1.25rem;
}
.elementor-widget-woocommerce-product-content .galeski-desc-block .elementor-widget-text-editor li {
    margin-bottom: .4rem;
    line-height: 1.55;
}
.elementor-widget-woocommerce-product-content .galeski-desc-block .elementor-widget-text-editor > :last-child,
.elementor-widget-woocommerce-product-content .galeski-desc-block .elementor-widget-text-editor :is(p, ul, ol, li):last-child {
    margin-bottom: 0;
}
