/**
Theme Name: Lechner IT-Dienstleistungen (CHILD ASTRA)
Author: Lechner IT-Dienstleistungen
Author URI: https://www.tobias-lechner.com/
Description: LITD is the fastest, fully customizable & beautiful theme suitable for blogs, personal portfolios and business websites. It is very lightweight (less than 50KB on frontend) and offers unparalleled speed. Built with SEO in mind, Astra comes with schema.org code integrated so search engines will love your site. Astra offers plenty of sidebar options and widget areas giving you a full control for customizations. Furthermore, we have included special features and templates so feel free to choose any of your favorite page builder plugin to create pages flexibly. Some of the other features: # WooCommerce Ready # Responsive # Compatible with major plugins # Translation Ready # Extendible with premium addons # Regularly updated # Designed, Developed, Maintained & Supported by Brainstorm Force. Looking for a perfect base theme? Look no further. Astra is fast, fully customizable and beautiful theme!
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: lechner-it-dienstleistungen-child-astra
Template: astra
*/

/* Fallback: enforce 3-column grid on search results if theme styles don't hook */
.search-archive.shop-grid ul.products {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}
.search-archive.shop-grid ul.products li.product {
  width: auto !important;
  margin: 0 !important;
}
/* Make images consistent */
.search-archive.shop-grid ul.products li.product .astra-shop-thumbnail-wrap img {
  width: 100%;
  height: auto;
  display: block;
}
@media (max-width: 1024px){
  .search-archive.shop-grid ul.products { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 640px){
  .search-archive.shop-grid ul.products { grid-template-columns: 1fr; }
}

/* Clean Shop Grid 1A – 4 columns */
.search-archive.shop-grid ul.products {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
}
.search-archive.shop-grid ul.products li.product {
  width: auto !important;
  margin: 0 !important;
}

@media (max-width: 1280px){
  .search-archive.shop-grid ul.products { grid-template-columns: repeat(3, minmax(0,1fr)); }
}
@media (max-width: 900px){
  .search-archive.shop-grid ul.products { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 560px){
  .search-archive.shop-grid ul.products { grid-template-columns: 1fr; }
}

/* === Einheitliche Grid-Gaps für alle Produktlisten (Bestseller, Kategorie, Suche, Widgets) === */
:root { --prod-gap: 24px; }       /* hier einmal die Wunsch-Lücke definieren */

/* 1) Grid aktivieren und Spalten setzen */
.woocommerce ul.products,
.woocommerce-page ul.products,
.elementor .woocommerce ul.products,
.elementor .products {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--prod-gap);
  /* falls irgendwo noch column-gap/row-gap gesetzt ist, überschreiben: */
  column-gap: var(--prod-gap) !important;
  row-gap: var(--prod-gap) !important;
}

/* 2) Standard-Margins der Produkt-Karten entfernen, damit nur das Grid die Abstände steuert */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
  margin: 0 !important;
}

/* 3) Kleine Qualitätsverbesserungen: gleichmäßige Kartenhöhen & Bildrahmen */
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap {
  /* quadratischer Bildbereich; verhindert „springende“ Kartenhöhen */
  aspect-ratio: 1 / 1;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
}
.woocommerce ul.products li.product .astra-shop-summary-wrap {
  margin-top: 10px;
  display: flex; flex-direction: column; gap: 8px;
}

/* 4) Breakpoints wie bei Astra/Elementor üblich – Spalten & Gaps responsiv */
@media (max-width: 1024px) {
  .woocommerce ul.products,
  .woocommerce-page ul.products,
  .elementor .woocommerce ul.products,
  .elementor .products {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
  }
}
@media (max-width: 768px) {
  .woocommerce ul.products,
  .woocommerce-page ul.products,
  .elementor .woocommerce ul.products,
  .elementor .products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
  }
}
@media (max-width: 544px) {
  .woocommerce ul.products,
  .woocommerce-page ul.products,
  .elementor .woocommerce ul.products,
  .elementor .products {
    grid-template-columns: 1fr;
    gap: 14px;
  }
}

/* 5) Falls ein Theme/Plugin Zeilenabstände per nth-child o.ä. erzwingt – neutralisieren */
.woocommerce ul.products::before,
.woocommerce ul.products::after {
  content: none !important;
}

/**************
  Einheitliche Produktkarten – wie "Ähnliche Produkte"
  Gilt für: Startseite (Bestseller), Kategorieseiten, (optional) Suche
**************/

/* 1) Grid-Gaps konsistent (falls nicht schon aktiviert) */
:root { --prod-gap: 24px; }

.woocommerce ul.products,
.woocommerce-page ul.products,
.elementor .woocommerce ul.products,
.elementor .products {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--prod-gap);
  column-gap: var(--prod-gap) !important;
  row-gap: var(--prod-gap) !important;
}

/* Responsive Spalten */
@media (max-width: 1024px){ .woocommerce ul.products{ grid-template-columns: repeat(3,1fr); gap:20px; } }
@media (max-width: 768px){  .woocommerce ul.products{ grid-template-columns: repeat(2,1fr); gap:16px; } }
@media (max-width: 544px){  .woocommerce ul.products{ grid-template-columns: 1fr; gap:14px; } }

/* 2) Karten Layout: vertikale Struktur wird fixiert */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
  margin: 0 !important;                 /* nur Grid steuert Abstände */
  display: flex;                         /* gesamte Karte = Flex-Spalte */
  flex-direction: column;
}

/* Bildbereich: einheitliche Höhe, kein Springen */
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap{
  aspect-ratio: 4 / 4;                   /* konsistente Bildkacheln */
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
}

/* Inhaltsbereich als Flex-Spalte – wir steuern Abstände manuell */
.woocommerce ul.products li.product .astra-shop-summary-wrap{
  display: flex; flex-direction: column;
  gap: 10px;                             /* gleichmäßige Innenabstände */
  flex: 1 1 auto;                        /* Inhalt füllt die Karte */
  padding: 12px 14px 16px !important;    /* identisch zu deiner Card-Basis */
}

/* Titel: exakt 2 Zeilen (wie Ähnliche Produkte) */
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  display: -webkit-box;
  -webkit-line-clamp: 3;                 /* max. 2 Zeilen */
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 44px;                      /* 2 Zeilen @ ~22px Zeilenhöhe */
  margin: 4px 0 4px !important;
  line-height: 1.3 !important;
}

/* Preisblock: einheitliche Darstellung + kein Zeilen-Springen */
.woocommerce ul.products li.product .price{
  line-height: 1.2;
  margin-top: 1px !important;
}

/* Sterne/Rating: fester Abstand unter dem Button */
.woocommerce ul.products li.product .review-rating,
.woocommerce ul.products li.product .star-rating{
  margin-top: 5px !important;
}

/* Button: immer nach unten – gleicht die Karten vertikal */
.woocommerce ul.products li.product a.button{
  margin-top: auto;                      /* drückt Button an Kartenende */
  padding: 10px 16px !important;         /* identische Buttonhöhe */
  min-height: 42px;                      /* optisch gleich hoch */
  display: inline-flex; align-items: center; justify-content: center;
}

/* Hinweise, die in Karten stören, ausblenden (bereits bei dir, hier zur Sicherheit) */
.woocommerce ul.products li.product .woocommerce-price-suffix,
.woocommerce ul.products li.product .woocommerce-shipping-tax,
.woocommerce ul.products li.product p.wc-gzd-additional-info,
.woocommerce ul.products li.product .mwst-hinweis { display: none !important; }

/* 3) Bestseller-Widget (Startseite) – falls eigene Elementor-ID/Gitter: Selektor absichern */
.elementor .elementor-element-6d2e38c .products { gap: var(--prod-gap) !important; }
.elementor .elementor-element-6d2e38c .products li.product { margin: 0 !important; }

/* 4) Ähnliche Produkte – gleiche Innenabstände wie Karten oben (vereinheitlicht) */
.single-product .related ul.products{
  gap: var(--prod-gap);
}
.single-product .related ul.products li.product .astra-shop-summary-wrap{
  padding: 12px 14px 16px !important;
}
.single-product .related ul.products li.product .woocommerce-loop-product__title{
  -webkit-line-clamp: 3;
  min-height: 44px;
}

/* Produktseite: Produkttitel stärker/fetter */
.single-product .product_title.entry-title {
    font-weight: 700;           /* 600 = Semibold, 700 = Bold */
    color: #0f172a;             /* optional: sattere Farbe */
    line-height: 1.25;          /* kompakter, wirkt hochwertiger */
}

/* Sterne über dem Button platzieren */
.woocommerce ul.products li.product {
  display: flex;
  flex-direction: column;
}

.woocommerce ul.products li.product .astra-shop-summary-wrap {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
}

/* Reihenfolge der Elemente innerhalb der Card neu sortieren */
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  order: 1;
}

.woocommerce ul.products li.product .price {
  order: 2;
}

.woocommerce ul.products li.product .star-rating {
  order: 3;
  margin: 6px 0 4px !important;
}

.woocommerce ul.products li.product a.button {
  order: 4;
  margin-top: auto; /* Button weiterhin nach unten drücken */
}

/* ============================
   Produktkarten – Preis + Sterne kompakter & sauber ausrichten
============================ */

/* Inhalt enger setzen */
.woocommerce ul.products li.product .astra-shop-summary-wrap {
  display: flex;
  flex-direction: column;
  gap: 6px; /* vorher 10px → kompakter */
  padding: 12px 14px 14px !important;
}

/* Titel kompakter */
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  margin: 0 0 2px !important;
  line-height: 1.25 !important;
  -webkit-line-clamp: 3;
  min-height: 48px; /* 3-Zeiler fix */
}

/* Preis direkt unter dem Titel, etwas kräftiger */
.woocommerce ul.products li.product .price {
  font-weight: 600;
  margin: 0 !important;
  line-height: 1.2;
}

/* Sterne direkt unter dem Preis – kleinerer Abstand */
.woocommerce ul.products li.product .star-rating {
  order: 3; /* Preis = 1, Sterne = 3 */
  margin: 0 !important;
  font-size: 13px;
}

/* Button bleibt unten kleben */
.woocommerce ul.products li.product a.button {
  margin-top: auto;
  margin-bottom: 0;
  min-height: 40px;
  padding: 9px 14px !important;
  border-radius: 6px;
}

/* Ähnliche Produkte: 4 Spalten in einer Reihe auf Desktop */
.single-product .related ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px !important;
}

/* Responsive: 3 Spalten auf Tablets */
@media (max-width: 1024px){
    .single-product .related ul.products {
        grid-template-columns: repeat(3, 1fr);
    }
}

/* Responsive: 2 Spalten auf kleineren Tablets & Smartphones */
@media (max-width: 768px){
    .single-product .related ul.products {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* Responsive: 1 Spalte auf sehr kleinen Geräten */
@media (max-width: 544px){
    .single-product .related ul.products {
        grid-template-columns: 1fr;
    }
}

/* Optik/Abstand Sternchen nach Preis einheitlich */
.price-asterisk {
  font-weight: 700;
  margin-left: 2px;
  line-height: 1;
  position: relative;
  top: -0.02em; /* minimal an die Grundlinie angepasst */
}

/* Warenkorb: gleiche Optik beibehalten */
.woocommerce-cart .price .price-asterisk,
.woocommerce-cart .product-subtotal .price-asterisk {
  margin-left: 2px;
}

/* ============================================
   Slide-Out-Warenkorb (Astra Cart Drawer)
   Lieferzeit-Text kleiner & grau
   ============================================ */

/* Grundstil für den Lieferzeit-Text im Mini-Cart */
.astra-cart-drawer .woocommerce-mini-cart .wc-gzd-cart-info.delivery-time-info {
  font-size: 13px !important;
  line-height: 1.3 !important;
  color: #6b7280 !important;       /* dezentes Grau */
  margin: 2px 0 0 !important;
}

/* Auch den inneren Span + die Daten anpassen */
.astra-cart-drawer .woocommerce-mini-cart .wc-gzd-cart-info.delivery-time-info .delivery-time-inner,
.astra-cart-drawer .woocommerce-mini-cart .wc-gzd-cart-info.delivery-time-info .delivery-time-data {
  font-size: 13px !important;
  line-height: 1.3 !important;
  color: #6b7280 !important;
}

/* Variante, wenn Germanized die Lieferzeit im <dd> der Variation ausgibt */
.astra-cart-drawer .woocommerce-mini-cart dl.variation .wc-gzd-cart-info.delivery-time-info {
  font-size: 13px !important;
  line-height: 1.3 !important;
  color: #6b7280 !important;
  margin: 0 !important;
}

/* Kategorien über dem Produkttitel auf Produktdetailseite ausblenden */
.single-product .single-product-category {
  display: none !important;
}

/* Produktseite: Kategorien in der Meta-Zeile ausblenden, Marke behalten */
.single-product .product_meta .sku_wrapper + .posted_in {
  display: none !important;
}






/*******************************
 * Warenkorb: Produkt-Cards wie „Bestseller“
 * Gilt für WooCommerce Blocks auf /warenkorb/
 *******************************/
body.woocommerce-cart .wc-block-grid__products {
  gap: 24px !important;                /* gleicher Grid-Abstand wie Startseite */
}

/* Card-Grundstil */
body.woocommerce-cart .wc-block-grid__product {
  background: #fff;
  border: 2px solid rgba(0,0,0,.06);
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 2px 10px rgb(0 0 0 / .05);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background-color .18s ease;
  display: flex;
  flex-direction: column;
}

/* Hover-Effekt wie Startseite */
body.woocommerce-cart .wc-block-grid__product:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgb(0 0 0 / .10);
  border-color: rgb(0 0 0 / .08);
  background: #f2f2f2;
}

/* Bild – sanft zoomen wie auf Startseite */
body.woocommerce-cart .wc-block-grid__product-image img {
  transition: transform .25s ease;
}
body.woocommerce-cart .wc-block-grid__product:hover .wc-block-grid__product-image img {
  transform: scale(1.02);
}

/* Innenabstände wie auf Startseite */
body.woocommerce-cart .wc-block-grid__product .wc-block-grid__product-title,
body.woocommerce-cart .wc-block-grid__product .price,
body.woocommerce-cart .wc-block-grid__product .wp-block-button.wc-block-grid__product-add-to-cart {
  padding-left: 14px;
  padding-right: 14px;
}

/* Titel exakt wie Bestseller */
body.woocommerce-cart .wc-block-grid__product .wc-block-grid__product-title {
  font-size: 17px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  color: #0f172a !important;
  margin: 10px 0 8px !important;
  min-height: 42px;                    /* 2 Zeilen */
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Preis exakt wie Bestseller */
body.woocommerce-cart .wc-block-grid__product .wc-block-grid__product-price,
body.woocommerce-cart .wc-block-grid__product .price,
body.woocommerce-cart .wc-block-grid__product .woocommerce-Price-amount {
  font-size: 18px !important;
  font-weight: 600 !important;
  color: #0f172a !important;
}

/* Zusätzliche Infos (MwSt., Versand, Lieferzeit) in den Karten ausblenden – wie auf Startseite */
body.woocommerce-cart .wc-block-grid__product p.wc-gzd-additional-info,
body.woocommerce-cart .wc-block-grid__product p.wc-gzd-additional-info-loop {
  display: none !important;
}

/* Button-Styling exakt wie Startseite */
body.woocommerce-cart .wc-block-grid__product .wp-block-button.wc-block-grid__product-add-to-cart {
  margin-top: auto;                    /* Button nach unten drücken */
  padding-bottom: 16px;
}
body.woocommerce-cart .wc-block-grid__product .wp-block-button__link {
  background: #0E2675 !important;
  color: #fff !important;
  font-weight: 700 !important;
  border-radius: 10px !important;
  padding: 10px 16px !important;
  box-shadow: none !important;
  text-decoration: none !important;
  transition: filter .15s ease;
}
body.woocommerce-cart .wc-block-grid__product .wp-block-button__link:hover {
  filter: brightness(1.1);
}

/* Focus-Zustand (Tastatur/Barrierefreiheit) – wie auf Startseite */
body.woocommerce-cart .wc-block-grid__product:focus-within {
  outline: 2px solid #0E2675;
  outline-offset: 2px;
}

/* Abstand ober/unter dem Titel minimieren (Block-Defaults überschreiben) */
body.woocommerce-cart .wc-block-grid__product .wc-block-grid__product-title + .wc-block-grid__product-price {
  margin-top: 0 !important;
}




