/*
 Theme Name:   GeneratePress Child
 Theme URI:    https://generatepress.com
 Description:  Default GeneratePress child theme
 Author:       Tom Usborne
 Author URI:   https://tomusborne.com
 Template:     generatepress
 Version:      0.1
*/
/* ===== HERO STYLING ===== */

.hero-section {
    position: relative !important;
    overflow: hidden !important;
}

/* Hintergrund-Akzent (Kreis) */
.hero-section::before {
    content: "" !important;
    position: absolute !important;
    top: 30% !important;
    left: 0 !important;
    width: 600px !important;
    height: 600px !important;
    background: rgba(141, 164, 144, 0.25) !important;
    border-radius: 50% !important;
    z-index: 0 !important;
    pointer-events: none !important;
    filter: blur(80px) !important;
}

/* Dekorative Linie über Überschrift */
.hero-section h1::before,
.hero-title::before {
    content: "" !important;
    display: block !important;
    width: 60px !important;
    height: 3px !important;
    background-color: #8da490 !important;
    margin-bottom: 20px !important;
}

.inside-header {border-bottom:solid 1px #ecedec;}

/* Video Circle Wrapper - äußerer Ring */
.video-circle-wrapper {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    background-color: #ecedec !important;
    border-radius: 50% !important;
    padding: 5% !important;
    width: 100% !important;
    max-width: 500px !important;
    margin: 0 auto !important;
    box-sizing: border-box !important;
}

/* Video als Kreis */
.video-circle-wrapper video {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 1 / 1 !important;
    object-fit: cover !important;
    border-radius: 50% !important;
    display: block !important;
}

.menu-bar-item.cart .cart-contents,
.menu-bar-item.wc-menu-item .cart-contents {
    background-color: transparent;
    border: 2px solid #8da490;
    border-radius: 50%;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #8da490;
    font-size: 20px;
}
.menu-bar-item.cart:hover .cart-contents,
.menu-bar-item.wc-menu-item:hover .cart-contents {
    background-color: rgba(141, 164, 144, 0.15);
}

@media (max-width: 1058px) {
    .menu-bar-item.cart,
    .menu-bar-item.wc-menu-item {
        display: none !important;
    }
}

.offside-panel .menu-item a {
    display: flex;
    align-items: center;
    gap: 10px;
}
.menu-button-half > a {
    border: 2px solid #8da490;
    border-radius: 35px;
    padding: 0.3em 1.4em;
    margin-top: 3em;
    display: inline-block;
    color: #8da490;
}
.menu-button-half > a:hover {
    background-color: #8da490;
    color: #fff;
}




#site-navigation,
#site-navigation .inside-navigation,
#site-navigation.stuckElement,
#site-navigation.stuckElement .inside-navigation {
    background: transparent !important;
    transition: background 0.3s ease !important;
}



html.lenis, html.lenis body {
    height: auto;
}

.lenis.lenis-smooth {
    scroll-behavior: auto !important;
}

.lenis.lenis-smooth [data-lenis-prevent] {
    overscroll-behavior: contain;
}

.lenis.lenis-stopped {
    overflow: hidden;
}

.lenis.lenis-scrolling iframe {
    pointer-events: none;
}



#comments,
#respond {
    max-width: 750px;
    margin-left: auto;
    margin-right: auto;
    padding: 40px;
    background: #f9f9f9;
    border-radius: 10px;
}
 
#commentform {
    max-width: 600px;
    margin: 0 auto;
}
 
#commentform input[type="text"],
#commentform input[type="email"],
#commentform input[type="url"],
#commentform textarea {
    width: 100%;
    padding: 15px;
    border: 1px solid #ddd;
    border-radius: 5px;
}

.form-submit {
    text-align: center;
}
/* Formular Container */
.kontakt-formular {
    max-width: 100%;
    padding: 30px;
    background: #f9f9f9;
    border-radius: 8px;
}

/* Labels */
.kontakt-formular label {
    display: block;
    margin-bottom: 8px;
    font-weight: 600;
    color: var(--contrast);
}

/* Eingabefelder - erbt GeneratePress Styles */
.kontakt-formular input[type="text"],
.kontakt-formular input[type="email"],
.kontakt-formular input[type="tel"],
.kontakt-formular input[type="number"],
.kontakt-formular textarea {
    width: 100%;
    padding: 12px 15px;
    border: 1px solid var(--border-color, #ddd);
    border-radius: 4px;
    font-family: inherit;
    font-size: inherit;
}

/* Focus State */
.kontakt-formular input:focus,
.kontakt-formular textarea:focus {
    border-color: var(--accent, #0073aa);
    outline: none;
}

/* Absenden Button - mit festen Farben */
.kontakt-formular button {
    background-color: #8da490 !important;
    color: #fff !important;
    padding: 12px 30px;
    border: none;
    border-radius: 4px;
    font-size: 16px;
    cursor: pointer;
    transition: background-color 0.3s ease;
}

.kontakt-formular button:hover {
    background-color: #0a0a0a !important;
}

/* Abstände */
.kontakt-formular p {
    margin-bottom: 20px;
}

/* Checkbox */
.kontakt-formular input[type="checkbox"] {
    margin-right: 8px;
}

/* Erfolgsmeldung */
#formular-meldung p {
    padding: 15px;
    border-radius: 4px;
    margin-top: 20px;
}




/* Alle Seiten ausser Startseite und Blog - Desktop */
body.page:not(.home):not(.blog) .site-main {
    padding-top: 60px;
    padding-bottom: 60px;
}

body.page:not(.home):not(.blog) .inside-article {
    max-width: 1300px;
    margin: 0 auto;
}

/* Tablet */
@media (max-width: 1024px) {
    body.page:not(.home):not(.blog) .site-main {
        padding-top: 50px;
        padding-bottom: 50px;
    }
    
    body.page:not(.home):not(.blog) .inside-article {
        max-width: 100%;
        padding-left: 30px;
        padding-right: 30px;
    }
}

/* Handy */
@media (max-width: 768px) {
    body.page:not(.home):not(.blog) .site-main {
        padding-top: 40px;
        padding-bottom: 40px;
    }
    
    body.page:not(.home):not(.blog) .inside-article {
        padding-left: 20px;
        padding-right: 20px;
    }
}




/* ===== WOOCOMMERCE SHOP - VOLLSTÄNDIGES STYLING ===== */

/* Farben: #8da490 (Grün), #ecedec (Hellgrau), #0a0a0a (Schwarz) */

/* ===== ABSTÄNDE OBEN/UNTEN ===== */

/* ===== WARENKORB HINWEIS LEISTE ===== */

/* Desktop: Preis neben Icon im Menü */
.cart-contents .woocommerce-Price-amount,
.cart-contents .amount {
    display: none !important;
}

.cart-contents .count,
.shopping-cart .number-of-items {
    position: absolute !important;
    top: -8px !important;
    right: -8px !important;
    background: #8da490 !important;
    color: #fff !important;
    font-size: 11px !important;
    min-width: 18px !important;
    height: 18px !important;
    line-height: 18px !important;
    text-align: center !important;
    border-radius: 50% !important;
}

/* Shop-Übersicht */
.post-type-archive-product .site-main,
.tax-product_cat .site-main {
    padding-top: 60px;
    padding-bottom: 60px;
}

/* Einzelprodukt */
body.single-product .site-main {
    padding-top: 60px !important;
    padding-bottom: 60px !important;
}

/* ===== BREADCRUMBS ===== */

.woocommerce .woocommerce-breadcrumb {
    font-size: 14px;
    color: #666;
    margin-bottom: 10px;
    padding: 0;
    text-align: left;
}

/* Breadcrumbs Einzelprodukt - im Content-Bereich */
.single-product .woocommerce-breadcrumb {
    max-width: 1200px;
    margin: 0 auto 20px;
    padding: 0 20px;
    text-align: left;
}

.woocommerce .woocommerce-breadcrumb a {
    color: #8da490;
}

.woocommerce .woocommerce-breadcrumb a:hover {
    color: #0a0a0a;
}

/* ===== SHOP TITEL ===== */

.woocommerce-products-header__title {
    font-size: 32px;
    font-weight: 400;
    margin-bottom: 30px;
    color: #0a0a0a;
}

/* ===== PRODUKT-GRID ===== */

.woocommerce ul.products {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
}

/* ===== PRODUKT-KARTEN ===== */

.woocommerce ul.products li.product {
    text-align: center;
    padding: 0;
    margin: 0;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-size: 16px;
    font-weight: 400;
    color: #0a0a0a;
}

.woocommerce ul.products li.product .price {
    color: #8da490;
    font-size: 14px;
}

.woocommerce ul.products li.product .star-rating {
    margin: 5px auto 10px;
}

/* ===== PRODUKT-BILDER HOVER-EFFEKT - MODERN ===== */

.woocommerce ul.products li.product a img {
    transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.woocommerce ul.products li.product a:hover img {
    transform: translateY(-5px);
}

.related.products ul.products li.product a img,
.upsells.products ul.products li.product a img {
    transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.related.products ul.products li.product a:hover img,
.upsells.products ul.products li.product a:hover img {
    transform: translateY(-5px);
}



/* ===== BUTTONS ===== */

.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .add_to_cart_button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
    background: #8da490;
    color: #fff;
    border: none;
    border-radius: 3px;
    padding: 10px 20px;
    font-size: 13px;
    text-transform: none;
    transition: background 0.3s ease;
}

.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product .add_to_cart_button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover {
    background: #0a0a0a;
    color: #fff;
}

/* Warenkorb-Button Einzelprodukt */
.single-product .single_add_to_cart_button {
    background: #8da490 !important;
    color: #fff !important;
    border: none;
    border-radius: 3px;
    padding: 12px 25px;
}

.single-product .single_add_to_cart_button:hover {
    background: #0a0a0a !important;
}

/* ===== ANGEBOT-BADGE ===== */

.woocommerce span.onsale {
    background: #0a0a0a;
    color: #fff;
    border-radius: 0;
    padding: 5px 10px;
    font-size: 11px;
    text-transform: uppercase;
}

/* ===== EINZELPRODUKT SEITE ===== */

.single-product div.product {
    max-width: 1200px;
    margin: 0 auto;
}

.single-product .woocommerce-product-gallery {
    width: 45%;
}

.single-product .summary {
    width: 50%;
}

.single-product .product_title {
    font-size: 28px;
    font-weight: 400;
    margin-bottom: 10px;
    color: #0a0a0a;
}

.single-product .price {
    color: #8da490;
    font-size: 20px;
}

/* ===== TABS ===== */

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
    color: #666;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
    color: #8da490 !important;
}

/* ===== ÄHNLICHE PRODUKTE ===== */

.related.products h2,
.upsells.products h2 {
    font-size: 24px;
    font-weight: 400;
    color: #0a0a0a;
}

/* ===== WARENKORB & CHECKOUT ===== */

.woocommerce .cart .button,
.woocommerce .checkout .button,
.woocommerce #payment #place_order {
    background: #8da490;
    color: #fff;
}

.woocommerce .cart .button:hover,
.woocommerce .checkout .button:hover,
.woocommerce #payment #place_order:hover {
    background: #0a0a0a;
}

/* ===== RESPONSIVE - TABLET ===== */

@media (max-width: 1024px) {
    .post-type-archive-product .site-main,
    .tax-product_cat .site-main {
        padding-top: 50px;
        padding-bottom: 50px;
    }
    
    body.single-product .site-main {
        padding-top: 50px !important;
        padding-bottom: 50px !important;
						padding-left: 20px !important;
		padding-right: 20px !important;
    }
    
    .woocommerce ul.products {
        grid-template-columns: repeat(2, 1fr);
        gap: 30px;
    }
    
    .single-product .woocommerce-breadcrumb {
        padding: 0 30px;
    }
}

/* ===== RESPONSIVE - HANDY ===== */

@media (max-width: 768px) {
    .post-type-archive-product .site-main,
    .tax-product_cat .site-main {
        padding-top: 40px;
        padding-bottom: 40px;
    }
    
    body.single-product .site-main {
        padding-top: 40px !important;
        padding-bottom: 40px !important;
		padding-left: 20px !important;
		padding-right: 20px !important;
    }
    
    .woocommerce ul.products {
        grid-template-columns: 1fr;
    }
    
    .single-product .woocommerce-product-gallery,
    .single-product .summary {
        width: 100%;
    }
    
    .woocommerce-products-header__title {
        font-size: 26px;
    }
    
    .single-product .woocommerce-breadcrumb {
        padding: 0 20px;
    }
}

/* ===== REZENSIONEN FORMATIERUNG ===== */

/* Rezensionen Container */
.woocommerce-Reviews {
    max-width: 700px;
}

/* Rezensionen Titel */
.woocommerce-Reviews-title {
    font-size: 24px;
    font-weight: 400;
    color: #0a0a0a;
    margin-bottom: 20px;
}

/* Keine Rezensionen Box */
.woocommerce-noreviews {
    background: #f9f9f9;
    padding: 20px;
    border-radius: 5px;
    color: #666;
}

/* Rezension Formular */
#review_form_wrapper {
    margin-top: 30px;
}

#review_form_wrapper .comment-reply-title {
    font-size: 18px;
    font-weight: 400;
    color: #0a0a0a;
    margin-bottom: 15px;
}

/* Sterne Bewertung */
.comment-form-rating {
    margin-bottom: 20px;
}

.comment-form-rating label {
    display: block;
    margin-bottom: 8px;
    font-weight: 600;
}

/* Textarea */
#review_form textarea {
    width: 100%;
    padding: 15px;
    border: 1px solid #ddd;
    border-radius: 5px;
    min-height: 120px;
    margin-bottom: 15px;
}

/* Senden Button */
#review_form .submit {
    background: #8da490;
    color: #fff;
    border: none;
    border-radius: 3px;
    padding: 12px 25px;
    cursor: pointer;
    transition: background 0.3s ease;
}

#review_form .submit:hover {
    background: #0a0a0a;
}

/* ===== ABSTAND TABS ZU ÄHNLICHE PRODUKTE ===== */

.woocommerce div.product .woocommerce-tabs {
    margin-bottom: 60px;
}

.related.products,
.upsells.products {
    margin-top: 40px;
}

/* ===== WARENKORB SEITE BUTTONS ===== */

/* Weiter zur Kasse Button */
.wc-proceed-to-checkout .checkout-button,
.woocommerce .checkout-button {
    background-color: #8da490 !important;
    color: #fff !important;
}

.wc-proceed-to-checkout .checkout-button:hover,
.woocommerce .checkout-button:hover {
    background-color: #0a0a0a !important;
    color: #fff !important;
}

/* Gutschein Link */
.woocommerce-form-coupon-toggle .woocommerce-info a,
.showcoupon {
    color: #8da490 !important;
}

.woocommerce-form-coupon-toggle .woocommerce-info a:hover,
.showcoupon:hover {
    color: #0a0a0a !important;
}

/* Warenkorb aktualisieren Button */
.woocommerce button[name="update_cart"],
.woocommerce input[name="update_cart"] {
    background-color: #8da490 !important;
    color: #fff !important;
}

.woocommerce button[name="update_cart"]:hover,
.woocommerce input[name="update_cart"]:hover {
    background-color: #0a0a0a !important;
    color: #fff !important;
}

/* Deaktivierter Aktualisieren Button */
.woocommerce button[name="update_cart"]:disabled,
.woocommerce input[name="update_cart"]:disabled {
    background-color: #8da490 !important;
    color: #fff !important;
    opacity: 0.6 !important;
}

/* ===== GUTSCHEIN HINWEIS BOX - KASSE ===== */

/* Blaue Box zu grün ändern */
.woocommerce-info {
    background-color: #8da490 !important;
    border-top-color: #8da490 !important;
    color: #fff !important;
}

.woocommerce-info::before {
    color: #fff !important;
}

/* Link in der Box */
.woocommerce-info a,
.woocommerce-info a.showcoupon {
    color: #fff !important;
    text-decoration: underline !important;
}

.woocommerce-info a:hover,
.woocommerce-info a.showcoupon:hover {
    color: #ecedec !important;
}

/* ===== KASSE SEITE RESPONSIVE ===== */

/* Container volle Breite */
.woocommerce-checkout,
.woocommerce-checkout .woocommerce {
    max-width: 100% !important;
    overflow-x: hidden !important;
}

/* Zwei-Spalten Layout auf Tablet anpassen */
@media (max-width: 1024px) {
    .woocommerce-checkout .col2-set,
    .woocommerce-checkout #customer_details {
        width: 100% !important;
        float: none !important;
    }
    
    .woocommerce-checkout .col-1,
    .woocommerce-checkout .col-2 {
        width: 100% !important;
        float: none !important;
        margin-bottom: 30px !important;
    }
    
    .woocommerce-checkout #order_review,
    .woocommerce-checkout #order_review_heading {
        width: 100% !important;
        float: none !important;
    }
    
    .woocommerce-checkout .woocommerce-checkout-review-order-table {
        width: 100% !important;
    }
}

/* Tabelle nicht abschneiden */
.woocommerce table.shop_table {
    width: 100% !important;
    table-layout: fixed !important;
}

.woocommerce table.shop_table td,
.woocommerce table.shop_table th {
    word-wrap: break-word !important;
}
/* ===== WARENKORB-SUMME TABLET ===== */

@media (max-width: 1024px) {
    .woocommerce .cart-collaterals,
    .woocommerce-page .cart-collaterals {
        width: 100% !important;
        float: none !important;
    }
    
    .woocommerce .cart-collaterals .cart_totals,
    .cart_totals {
        width: 100% !important;
        float: none !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
    
    .cart_totals h2 {
        text-align: left !important;
    }
    
    .cart_totals table {
        width: 100% !important;
    }
    
    .wc-proceed-to-checkout {
        width: 100% !important;
    }
    
    .wc-proceed-to-checkout .checkout-button {
        width: 100% !important;
        text-align: center !important;
    }
}
/* ===== ALLE WOOCOMMERCE HINWEISE IN GRÜN ===== */

/* Erfolg/Info Meldungen (grüner Hintergrund) */
.woocommerce-message,
.woocommerce-info {
    background-color: #8da490 !important;
    border-top-color: #8da490 !important;
    color: #fff !important;
}

.woocommerce-message::before,
.woocommerce-info::before {
    color: #fff !important;
}

.woocommerce-message a,
.woocommerce-info a {
    color: #fff !important;
}

.woocommerce-message a:hover,
.woocommerce-info a:hover {
    color: #ecedec !important;
}

/* Fehler Meldungen (dunkel) */
.woocommerce-error {
    background-color: #0a0a0a !important;
    border-top-color: #0a0a0a !important;
    color: #fff !important;
}

.woocommerce-error::before {
    color: #fff !important;
}

.woocommerce-error a {
    color: #8da490 !important;
}

/* Button in Meldungen */
.woocommerce-message .button,
.woocommerce-info .button {
    background-color: #fff !important;
    color: #8da490 !important;
}

.woocommerce-message .button:hover,
.woocommerce-info .button:hover {
    background-color: #0a0a0a !important;
    color: #fff !important;
}


/* ===== REZENSION KOMPLETT LINKSBÜNDIG ===== */

/* Gesamter Formular-Bereich */
#review_form_wrapper,
#review_form,
#respond {
    text-align: left !important;
}

/* Titel "Schreibe die erste Rezension..." */
#reply-title {
    text-align: left !important;
}

/* Sterne */
.comment-form-rating {
    text-align: left !important;
}

.comment-form-rating label {
    text-align: left !important;
    display: block !important;
}

.comment-form-rating p.stars {
    text-align: left !important;
    display: block !important;
}

.comment-form-rating p.stars span {
    display: inline-flex !important;
    justify-content: flex-start !important;
}

/* Textarea Label */
.comment-form-comment {
    text-align: left !important;
}

.comment-form-comment label {
    text-align: left !important;
    display: block !important;
}

/* Textarea */
.comment-form-comment textarea {
    text-align: left !important;
}

/* Button Container */
p.form-submit,
.form-submit {
    text-align: left !important;
}

/* Button */
#review_form #submit,
#review_form input[type="submit"],
.form-submit .submit {
    float: none !important;
    margin-left: 0 !important;
    margin-right: auto !important;
    display: inline-block !important;
}
.single-product .site-content {
    display: block !important;
}
/* Rezension Formular linksbündig - Fix */
#review_form_wrapper,
#review_form_wrapper * {
    text-align: left !important;
    margin-left: 0 !important;
    padding-left: 0 !important;
    transform: none !important;
}

/* Button Text zentriert */
#review_form #submit {
    text-align: center !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
}


/* Preis-Zeile Block Styles */

.preis-zeile-wrapper {
    margin-bottom: 30px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    max-width: 100% !important;
}

.preis-zeile {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 20px !important;
    position: relative !important;
    margin-bottom: 25px !important;
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.preis-zeile > .wp-block-group__inner-container,
.preis-zeile.wp-block-group {
    padding-left: 0 !important;
    padding-right: 0 !important;
    gap: 20px !important;
}

.preis-zeile-wrapper > .wp-block-group__inner-container,
.preis-zeile-wrapper.wp-block-group {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.preis-zeile::after {
    content: "" !important;
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    top: 50% !important;
    border-bottom: 2px dotted #8da490 !important;
    z-index: 0 !important;
}

.preis-zeile .preis-label,
.preis-zeile .preis-wert {
    background: #fff !important;
    padding: 0 15px !important;
    margin: 0 !important;
    position: relative !important;
    z-index: 1 !important;
    font-weight: 600 !important;
}

.preis-zeile .preis-label {
    padding-left: 0 !important;
}

.preis-zeile .preis-wert {
    padding-right: 0 !important;
}

/* Kontakt Button */
.wp-block-buttons.wp-block-buttons {
    margin-top: 60px !important;
}

.kontakt-button .wp-block-button__link {
    background-color: #8da490 !important;
    color: #fff !important;
    border-radius: 25px !important;
    padding: 14px 35px !important;
    font-weight: 500 !important;
    font-size: 18px !important;
    transition: background-color 0.3s ease !important;
    border: none !important;
}

.kontakt-button .wp-block-button__link:hover {
    background-color: #0a0a0a !important;
    color: #fff !important;
}

