/**
Theme Name: Astra Child GAPART
Author: techdoc.at – Michael Schneider
Author URI: https://www.techdoc.at
Description: Child Theme für den GAPART GmbH B2B-Produktkatalog. Farbschema Tiefgrün.
Version: 1.2.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: astra-child-gapart
Template: astra
*/

/* ==========================================================
   1 – Variablen   ·   FARBSCHEMA: TIEFGRÜN
   ==========================================================
   Zum Wechsel auf Anthrazit: style-anthrazit.css umbenennen
   in style.css. Nur dieser Block unterscheidet sich.
   ========================================================== */

:root {
    /* Markenfarbe aus dem Logo – bleibt in jeder Variante */
    --gapart-gelb:        #FED700;
    --gapart-gelb-dunkel: #D4B300;

    /* Zweitfarbe: Tiefgrün */
    --gapart-dunkel:      #1F4438;   /* Header, Hero, Footer */
    --gapart-dunkel-2:    #2E5A4B;   /* Topbar, Abstufung */
    --gapart-text:        #22332C;   /* Fließtext */
    --gapart-text-hell:   #6A7B72;   /* Sekundärtext */
    --gapart-linie:       #DDE4E0;   /* Trennlinien, Rahmen */
    --gapart-flaeche:     #F4F6F3;   /* Sektionshintergrund */

    /* Rückwärtskompatibel – alte Klassennamen zeigen auf die neuen */
    --gapart-anthrazit:   var(--gapart-dunkel);
    --gapart-anthrazit-2: var(--gapart-dunkel-2);

    /* Abstände */
    --gapart-abstand-s:   1rem;
    --gapart-abstand-m:   2rem;
    --gapart-abstand-l:   4rem;
    --gapart-abstand-xl:  4.5rem;
}


/* ==========================================================
   2 – Header
   ========================================================== */

/* ---------- Konto und Warenkorb ---------- */
.site-header .ast-header-account-wrap,
.site-header .wc-block-mini-cart__button {
    background: var(--gapart-gelb);
    border-radius: 4px;
    padding: .65rem .9rem;
    color: var(--gapart-dunkel) !important;
    transition: background .2s;
}
.site-header .ast-header-account-wrap:hover,
.site-header .wc-block-mini-cart__button:hover {
    background: var(--gapart-gelb-dunkel);
}
.site-header .ast-header-account-wrap svg,
.site-header .wc-block-mini-cart__button svg {
    fill: var(--gapart-dunkel);
    width: 20px;
    height: 20px;
}
.site-header .wc-block-mini-cart__badge {
    background: var(--gapart-dunkel);
    color: var(--gapart-gelb);
}

/* ---------- Produktsuche ---------- */
.site-header .widget_block .wp-block-search,
.site-header .wc-block-product-search {
    width: 100%;
    min-width: 320px;
    max-width: 520px;
    margin: 0;
}
.site-header .wp-block-search__inside-wrapper {
    background: #FFF;
    border: 0;
    border-radius: 4px;
    padding: 0;
}
.site-header .wp-block-search__input {
    border: 0;
    padding: .7rem 1rem;
    font-size: 15px;
    color: var(--gapart-text);
    background: transparent;
}
.site-header .wp-block-search__button {
    background: var(--gapart-gelb);
    border: 0;
    border-radius: 0 4px 4px 0;
    color: var(--gapart-dunkel);
    margin: 0;
    padding: 0 1rem;
}
.site-header .wp-block-search__button:hover {
    background: var(--gapart-gelb-dunkel);
}

@media (min-width: 922px) {
    .ast-primary-header-bar .site-header-primary-section-center {
        flex: 1 1 auto;
        justify-content: center;
    }
}

/* ---------- Mobiler Warenkorb-Zähler ---------- */
.gapart-mobil-zaehler {
    position: absolute;
    top: -6px;
    right: -6px;
    min-width: 18px;
    height: 18px;
    background: var(--gapart-dunkel);
    color: var(--gapart-gelb);
    border-radius: 9px;
    font-size: 11px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 4px;
}

@media (max-width: 921px) {
    .ast-mobile-header-wrap .ast-search-menu-icon .search-form {
        width: calc(100vw - 2rem);
        max-width: none;
    }
    .ast-mobile-header-wrap .search-field {
        font-size: 16px;   /* verhindert Zoom auf dem iPhone */
        padding: .7rem 1rem;
    }
}


/* ==========================================================
   3 – Max Mega Menu
   ========================================================== */

/* ---------- Menüleiste: Astras Gelb durchlassen ---------- */
#mega-menu-wrap-primary,
#mega-menu-wrap-primary #mega-menu-primary,
#mega-menu-primary > li.mega-menu-item > a.mega-menu-link {
    background: transparent !important;
    color: var(--gapart-dunkel) !important;
    font-weight: 600 !important;
}
#mega-menu-primary > li.mega-menu-item > a.mega-menu-link:hover,
#mega-menu-primary > li.mega-menu-item.mega-toggle-on > a.mega-menu-link {
    background: rgba(0, 0, 0, .08) !important;
    color: var(--gapart-dunkel) !important;
}

/* ---------- Panel: nur die oberste Ebene ---------- */
#mega-menu-primary > li.mega-menu-item > .mega-sub-menu {
    background: #FFF !important;
    border-top: 3px solid var(--gapart-gelb) !important;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .12) !important;
    padding: 2rem !important;
    width: 860px !important;
    max-width: 92vw !important;
}

/* ---------- Verschachtelte Listen ohne eigene Optik ---------- */
#mega-menu-primary .mega-sub-menu .mega-sub-menu {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
    width: auto !important;
    max-width: none !important;
}

/* ---------- Zeilen und Spalten ---------- */
#mega-menu-primary li.mega-menu-megamenu > .mega-sub-menu > li.mega-menu-row,
#mega-menu-primary li.mega-menu-megamenu > .mega-sub-menu > li.mega-menu-row > .mega-sub-menu {
    display: flex !important;
    width: 100% !important;
    float: none !important;
}
#mega-menu-primary li.mega-menu-column {
    width: 33.33% !important;
    padding: 0 1rem !important;
    float: none !important;
}
#mega-menu-primary li.mega-menu-column:first-child { padding-left: 0 !important; }
#mega-menu-primary li.mega-menu-column:last-child  { padding-right: 0 !important; }

/* ---------- Spaltenüberschriften ---------- */
#mega-menu-primary li.mega-menu-column > .mega-sub-menu > li.mega-menu-item > a.mega-menu-link {
    background: transparent !important;
    color: var(--gapart-dunkel) !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: .04em !important;
    border-bottom: 1px solid var(--gapart-linie) !important;
    padding: 0 0 .5rem 0 !important;
    margin-bottom: .75rem !important;
    white-space: normal !important;
    line-height: 1.3 !important;
    height: auto !important;
}
#mega-menu-primary li.mega-menu-column > .mega-sub-menu > li.mega-menu-item > a.mega-menu-link:hover {
    color: var(--gapart-gelb-dunkel) !important;
}

/* ---------- Unterkategorien ---------- */
#mega-menu-primary li.mega-menu-column .mega-sub-menu .mega-sub-menu > li.mega-menu-item > a.mega-menu-link {
    background: transparent !important;
    color: var(--gapart-text) !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    border: 0 !important;
    padding: .35rem 0 !important;
    margin: 0 !important;
    line-height: 1.4 !important;
    height: auto !important;
    white-space: normal !important;
}
#mega-menu-primary li.mega-menu-column .mega-sub-menu .mega-sub-menu > li.mega-menu-item > a.mega-menu-link:hover {
    color: var(--gapart-gelb-dunkel) !important;
}

/* ---------- Widget-Spalte ---------- */
#mega-menu-primary li.mega-menu-column .widget_text,
#mega-menu-primary li.mega-menu-column .textwidget {
    color: var(--gapart-text-hell) !important;
    font-size: 14px !important;
    line-height: 1.5 !important;
}

/* ---------- Mobil ---------- */
@media (max-width: 921px) {
    #mega-menu-primary li.mega-menu-column {
        width: 100% !important;
        padding: 0 !important;
    }
    #mega-menu-primary > li.mega-menu-item > .mega-sub-menu {
        width: 100% !important;
        padding: 1rem !important;
        box-shadow: none !important;
    }
    #mega-menu-primary li.mega-menu-megamenu > .mega-sub-menu > li.mega-menu-row,
    #mega-menu-primary li.mega-menu-megamenu > .mega-sub-menu > li.mega-menu-row > .mega-sub-menu {
        display: block !important;
    }
}


/* ==========================================================
   4 – Preislos-Modus
   ========================================================== */

/* ---------- Preisreste allgemein ---------- */
.woocommerce .price,
.woocommerce-Price-amount,
.cart-subtotal,
.order-total,
.woocommerce-shipping-totals {
    display: none !important;
}

/* ---------- Warenkorb-Summen-Box ---------- */
.cart-collaterals,
.cart_totals {
    display: none !important;
}

/* ---------- Preisspalten in der Warenkorbtabelle ---------- */
.woocommerce-cart table.cart th.product-price,
.woocommerce-cart table.cart td.product-price,
.woocommerce-cart table.cart th.product-subtotal,
.woocommerce-cart table.cart td.product-subtotal {
    display: none !important;
}

/* ---------- Block-Warenkorb: alle Preisangaben ---------- */
.wc-block-components-product-price,
.wc-block-components-totals-item,
.wc-block-cart-item__prices,
.wc-block-cart-item__total,
.wc-block-cart-item__total-price-and-sale-badge-wrapper,
.wc-block-mini-cart__footer-subtotal,
.wc-block-mini-cart__button .wc-block-mini-cart__amount {
    display: none !important;
}

/* ---------- Artikelnummer und Einheit ---------- */
.gapart-sku {
    color: var(--gapart-text-hell);
    font-size: .85em;
}
.gapart-einheit {
    display: inline-block;
    margin-left: .4rem;
    font-weight: 600;
    color: var(--gapart-text);
}
.gapart-cart-weiter {
    text-align: right;
    margin: 1.5rem 0;
}

/* Artikelnummer in der Bestellübersicht umbrechen */
.woocommerce-checkout-review-order-table td.product-name,
.woocommerce-cart table.cart td.product-name {
    flex-wrap: wrap;
}
.woocommerce-checkout-review-order-table td.product-name .gapart-sku,
.woocommerce-cart table.cart td.product-name .gapart-sku {
    flex: 0 0 100%;
    margin-top: .15rem;
}


/* ==========================================================
   5 – Warengruppen-Kacheln
   ========================================================== */

.gapart-wg-raster {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: 1.25rem;
    max-width: 1000px;
    margin: 0 auto;
}
.gapart-wg-kachel {
    display: block;
    text-align: center;
    text-decoration: none !important;
    color: inherit;
    padding: .5rem .5rem 1rem;
    background: #FFF;
    border: 1px solid var(--gapart-linie);
    border-radius: 6px;
    transition: border-color .2s, box-shadow .2s, transform .2s;
}
.gapart-wg-kachel:hover {
    border-color: var(--gapart-gelb);
    box-shadow: 0 6px 18px rgba(0, 0, 0, .10);
    transform: translateY(-2px);
}
.gapart-wg-kachel img,
.gapart-wg-platzhalter {
    display: block;
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    background: #F0F0F0;
    border-radius: 4px;
    margin-bottom: .75rem;
}
.gapart-wg-name {
    display: block;
    font-weight: 700;
    font-size: 1rem;
    line-height: 1.3;
    text-decoration: none !important;
    color: var(--gapart-text);
}
.gapart-wg-anzahl {
    display: block;
    font-size: .85rem;
    color: var(--gapart-text-hell);
    margin-top: .2rem;
    text-decoration: none !important;
}

/* ---------- Für nicht eingeloggte Besucher ---------- */
.gapart-wg-statisch { cursor: default; }
.gapart-wg-statisch:hover {
    border-color: var(--gapart-linie);
    box-shadow: none;
    transform: none;
}
.gapart-wg-hinweis {
    text-align: center;
    margin-top: 2rem;
    color: var(--gapart-text-hell);
}

/* ---------- Im Katalog (Sidebar vorhanden) ---------- */
.woocommerce .gapart-wg-raster,
.archive .gapart-wg-raster {
    max-width: 100%;
}

@media (max-width: 600px) {
    .gapart-wg-raster {
        grid-template-columns: repeat(2, 1fr);
        gap: .75rem;
    }
}


/* ==========================================================
   6 – Startseite
   ========================================================== */

/* ---------- Hero ---------- */
.gapart-hero-spalten {
    width: 100vw;
    max-width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw !important;
    margin-right: -50vw !important;
    gap: 0 !important;
    border-bottom: 5px solid var(--gapart-gelb);
    overflow: hidden;

    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    height: 480px;
}
.gapart-hero-spalten > .wp-block-column {
    margin: 0 !important;
    flex: 1 1 50% !important;
    width: 50% !important;
    max-width: 50% !important;
    min-width: 0 !important;
    height: 100%;
    display: flex !important;
    flex-direction: column;
    justify-content: center;
    overflow: hidden;
}

/* Bildspalte */
.gapart-hero-spalten > .wp-block-column:last-child {
    padding: 0 !important;
    display: block !important;
}
.gapart-hero-bild {
    height: 100%;
    margin: 0 !important;
}
.gapart-hero-bild img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    min-height: 0;
}

@media (max-width: 781px) {
    .gapart-hero-spalten {
        flex-wrap: wrap !important;
        height: auto;
    }
    .gapart-hero-spalten > .wp-block-column {
        flex: 1 1 100% !important;
        width: 100% !important;
        max-width: 100% !important;
        height: auto;
    }
    .gapart-hero-bild img { height: 240px; }
}

/* ---------- Vorteilskacheln ---------- */
.gapart-vorteil-zahl {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: var(--gapart-gelb);
    color: var(--gapart-dunkel);
    font-size: 1.3rem;
    font-weight: 700;
    margin-bottom: .75rem;
}

/* ---------- Partnerlogos ---------- */
.gapart-partner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 2.5rem;
}
.gapart-partner img {
    max-height: 54px;
    width: auto;
    filter: grayscale(100%);
    opacity: .55;
    transition: filter .25s, opacity .25s;
}
.gapart-partner img:hover {
    filter: none;
    opacity: 1;
}


/* ==========================================================
   7 – Produktseite
   ========================================================== */

.gapart-produkt-meta {
    color: var(--gapart-text-hell);
    font-size: .9rem;
    margin-bottom: 1.25rem;
}
.gapart-meta-sku {
    font-weight: 600;
    color: var(--gapart-text);
}

.gapart-einzelgebinde {
    background: var(--gapart-flaeche);
    padding: .6rem .9rem;
    border-left: 3px solid var(--gapart-gelb);
    margin-bottom: 1rem;
}
.woocommerce div.product form.cart .variations label {
    font-weight: 600;
}
.woocommerce div.product form.cart .variations select {
    min-height: 44px;
    font-size: 15px;
}

/* ---------- Nährwerttabelle ---------- */
.gapart-naehrwerte {
    width: 100%;
    max-width: 480px;
    border-collapse: collapse;
}
.gapart-naehrwerte th,
.gapart-naehrwerte td {
    text-align: left;
    padding: .6rem .8rem;
    border-bottom: 1px solid var(--gapart-linie);
}
.gapart-naehrwerte th {
    font-weight: 500;
}

/* ---------- Gebindetabelle ---------- */
.gapart-gebinde {
    width: 100%;
    max-width: 420px;
    border-collapse: collapse;
}
.gapart-gebinde th,
.gapart-gebinde td {
    text-align: left;
    padding: .6rem .8rem;
    border-bottom: 1px solid var(--gapart-linie);
}
.gapart-gebinde thead th {
    font-size: .8rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--gapart-text-hell);
    border-bottom: 2px solid var(--gapart-dunkel);
}
.gapart-gebinde tbody th {
    font-weight: 600;
    width: 45%;
}
.gapart-gebinde-hinweis {
    margin-top: 1rem;
    color: var(--gapart-text-hell);
}

.gapart-datenblatt {
    display: inline-block;
    margin-top: .5rem;
}


/* ==========================================================
   8 – Katalog: Filter ein- und ausklappen
   ========================================================== */

.gapart-filter-toggle {
    display: inline-flex !important;
    align-items: center;
    gap: .5rem;
    width: auto !important;
    height: auto !important;
    background: transparent !important;
    border: 1px solid var(--gapart-linie) !important;
    border-radius: 4px;
    padding: .45rem .9rem !important;
    font-size: 14px;
    color: var(--gapart-text) !important;
    cursor: pointer;
    margin-bottom: 1rem;
}
.gapart-filter-toggle:hover {
    border-color: var(--gapart-gelb) !important;
    background: transparent !important;
}
.gapart-ft-icon {
    width: 14px;
    height: 10px;
    border-top: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    position: relative;
}
.gapart-ft-icon::after {
    content: '';
    position: absolute;
    left: 0;
    top: 3px;
    width: 100%;
    border-top: 2px solid currentColor;
}

@media (min-width: 993px) {
    .gapart-filter-zu #secondary { display: none; }
    .gapart-filter-zu #primary   { width: 100%; }
}


/* ==========================================================
   9 – Suchergebnisse
   ========================================================== */

.search-results .entry-meta,
.search-results .ast-blog-meta-container,
.search-results .posted-by,
.search-results .posted-on {
    display: none !important;
}


/* ==========================================================
   10 – Mobile Eingabefelder
   ========================================================== */

@media (max-width: 782px) {
    .woocommerce .quantity input,
    .woocommerce button.single_add_to_cart_button {
        min-height: 46px;
        font-size: 16px;
    }
    /* 16px verhindert, dass iOS beim Fokus hineinzoomt */
    .woocommerce input[type="text"],
    .woocommerce input[type="email"],
    .woocommerce input[type="tel"],
    .woocommerce input[type="number"] {
        font-size: 16px;
    }
}
