/* ========================================= */
/* 1. SCHRIFTART LOKAL LADEN (DSGVO-Konform) */
/* ========================================= */

/* Roboto Regular (400) */
@font-face {
    font-family: 'Roboto';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('/fonts/roboto-v50-latin-regular.woff2') format('woff2');
}

/* Roboto Medium (500) */
@font-face {
    font-family: 'Roboto';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url('/fonts/roboto-v50-latin-500.woff2') format('woff2');
}

/* Roboto Bold (700) */
@font-face {
    font-family: 'Roboto';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('/fonts/roboto-v50-latin-700.woff2') format('woff2');
}

/* ========================================= */
/* 2. GLOBALE SCHRIFTART ZUWEISEN */
/* ========================================= */

/* WICHTIG: KEIN !important hier, sonst gehen Icons kaputt! */
body {
    font-family: 'Roboto', sans-serif;
    color: #333;
    line-height: 1.6;
    font-size: 16px;
}

/* ========================================= */
/* HEADER SICHTBARKEIT (Mobile vs Desktop)   */
/* ========================================= */

.desktop-header-force {
    display: none !important;
}

@media (min-width: 1024px) {
    .desktop-header-force {
        display: flex !important;
        min-height: 60px !important; 
        align-items: center !important;
    }
}

header a img {
    height: 50px !important;       
    width: auto !important;        
    max-height: unset !important;  
    max-width: unset !important;
}

header .flex {
    min-height: auto !important;
}

/* -------------------------------------------------------- */
/* TEXT-FORMATIERUNG (LANGE BESCHREIBUNG & CMS)             */
/* -------------------------------------------------------- */
/* Gilt für die Tabs und normale Seiteninhalte */

#descritpion-tab, 
.mobile-long-description,
.page-content,
#main > .container {
    text-align: left; /* KEIN Blocksatz mehr */
}

#descritpion-tab h1, .mobile-long-description h1, .page-content h1 {
    font-size: 28px !important;
    font-weight: 700 !important;
    margin: 30px 0 20px 0 !important;
    line-height: 1.2 !important;
    color: #111 !important;
    border-bottom: 2px solid #eee; 
    padding-bottom: 10px;
}

#descritpion-tab h2, .mobile-long-description h2, .page-content h2 {
    font-size: 22px !important;
    font-weight: 500 !important; 
    margin: 25px 0 12px 0 !important;
    color: #222 !important;
}

#descritpion-tab h3, .mobile-long-description h3, .page-content h3 {
    font-size: 18px !important;
    font-weight: 700 !important;
    margin: 20px 0 8px 0 !important;
    color: #333 !important;
}

#descritpion-tab ul, .mobile-long-description ul, .page-content ul {
    list-style-type: disc !important;
    padding-left: 20px !important;
    margin-bottom: 15px !important;
}

#descritpion-tab ol, .mobile-long-description ol, .page-content ol {
    list-style-type: decimal !important;
    padding-left: 20px !important;
    margin-bottom: 15px !important;
}

#descritpion-tab li, .mobile-long-description li, .page-content li {
    margin-bottom: 6px !important;
}

#descritpion-tab p, .mobile-long-description p, .page-content p {
    margin-bottom: 15px !important;
}

#descritpion-tab strong, .mobile-long-description strong, .page-content strong {
    font-weight: 700 !important;
}

#descritpion-tab a, .mobile-long-description a, .page-content a {
    color: #02836c !important; 
    text-decoration: underline !important;
    font-weight: 500;
}

/* -------------------------------------------------------- */
/* SHORT DESCRIPTION STYLING (exklusiv)                     */
/* -------------------------------------------------------- */

.custom-short-description {
    display: block !important;
    color: #333 !important;
    font-size: 16px !important;
    line-height: 1.6 !important;
    text-align: left !important; /* Blocksatz hier deaktiviert */
    margin-top: 20px !important;
    width: 100% !important;
}

/* WICHTIG: Überschreibe Schriftarten nur für Texte, NICHT für Icons */
.custom-short-description *:not(.fa-solid):not(.fa-regular):not(.fa-brands):not(i):not(span.fa) {
    font-family: 'Roboto', sans-serif !important;
    color: #333 !important;
}

.custom-short-description h1 {
    font-size: 24px !important;
    font-weight: 700 !important;
    margin: 20px 0 10px 0 !important;
    border-bottom: 1px solid #eee;
    padding-bottom: 5px;
}

.custom-short-description h3 {
    font-size: 18px !important;
    font-weight: 700 !important;
    margin: 15px 0 8px 0 !important;
}

.custom-short-description ul {
    list-style-type: disc !important;
    padding-left: 20px !important;
    margin-bottom: 10px !important;
}

.custom-short-description li {
    margin-bottom: 4px !important;
    display: list-item !important;
}

.custom-short-description strong, .custom-short-description b {
    font-weight: 700 !important;
}

/* -------------------------------------------------------- */
/* FONT AWESOME FIX (Damit Icons angezeigt werden)          */
/* -------------------------------------------------------- */

/* 1. Basis-Reset für alle Icons in der Short-Description */
.custom-short-description i,
.custom-short-description span.fa-solid,
.custom-short-description span.fa-regular,
.custom-short-description span.fa-brands,
.custom-short-description em.fa-solid {
    display: inline-block !important;
    font-style: normal !important;
    font-variant: normal !important;
    text-rendering: auto !important;
    line-height: 1 !important;
    text-align: center !important;
    width: 25px !important; /* Einheitliche Breite */
    margin-right: 5px !important;
    color: #333 !important; /* Farbe erzwingen */
}

/* 2. SOLID ICONS (fa-solid) - ZWINGEND Weight 900 */
.custom-short-description .fa-solid,
.custom-short-description .fas {
    font-family: "Font Awesome 6 Free" !important;
    font-weight: 900 !important;
}

/* 3. REGULAR ICONS (fa-regular) - ZWINGEND Weight 400 */
.custom-short-description .fa-regular,
.custom-short-description .far {
    font-family: "Font Awesome 6 Free" !important;
    font-weight: 400 !important;
}

/* 4. BRANDS (fa-brands) - Eigene Font Family */
.custom-short-description .fa-brands,
.custom-short-description .fab {
    font-family: "Font Awesome 6 Brands" !important;
    font-weight: 400 !important;
}

/* -------------------------------------------------------- */
/* BRANDING & FOOTER (Unverändert)                          */
/* -------------------------------------------------------- */

:root {
    --brand-color: #02836c;
    --brand-color-hover: #026b58;
}

.bg-navyBlue, .primary-button, button[type="submit"].primary-button, .rounded-full.bg-navyBlue, p.bg-navyBlue {
    background-color: var(--brand-color) !important;
    border-color: var(--brand-color) !important;
}

.bg-navyBlue:hover, .primary-button:hover {
    background-color: var(--brand-color-hover) !important;
    opacity: 1 !important;
}

.text-navyBlue, .text-blue-700, .icon-cart, .icon-heart, .icon-compare, .icon-users, .icon-star-fill.text-navyBlue, .icon-search {
    color: var(--brand-color) !important;
    background-color: transparent !important; 
}

.border-navyBlue, .secondary-button, .hover\:border-navyBlue:hover {
    border-color: var(--brand-color) !important;
}

.secondary-button {
    color: var(--brand-color) !important;
    background-color: #fff !important;
}

.secondary-button:hover {
    background-color: #f9f9f9 !important;
    color: var(--brand-color-hover) !important;
    border-color: var(--brand-color-hover) !important;
}

#description-tab-button.border-navyBlue, #review-tab-button.border-navyBlue {
    border-bottom-color: var(--brand-color) !important;
    color: #000 !important;
}

input[type="text"]:focus-within, .icon-search + input:focus {
    border-color: var(--brand-color) !important;
    box-shadow: 0 0 0 1px var(--brand-color) !important;
}

/* Footer */
#kf-footer {
    background-color: #787878;
    color: #ffffff;
    margin-top: 60px;
    width: 100%;
    box-sizing: border-box;
    position: relative;
    z-index: 10; 
}

.kf-container {
    max-width: 1280px;
    margin: 0 auto;
    padding: 60px 20px;
    box-sizing: border-box;
}

.kf-grid {
    display: grid;
    grid-template-columns: 1fr; 
    gap: 40px;
}

@media (min-width: 1024px) {
    .kf-grid {
        grid-template-columns: repeat(4, 1fr) !important;
    }
}

.kf-headline {
    text-transform: uppercase;
    font-weight: 800;
    letter-spacing: 1px;
    font-size: 14px;
    margin-bottom: 15px;
    color: #fff;
    display: block;
}

.kf-divider {
    height: 2px;
    width: 40px;
    background-color: #b0b0b0;
    margin-bottom: 25px;
}

.kf-ul {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.kf-li {
    border-bottom: 1px solid rgba(255,255,255,0.15);
    padding: 12px 0;
    margin: 0 !important; 
}
.kf-li:last-child { border-bottom: none; }

.kf-a {
    text-decoration: none !important;
    color: #f0f0f0 !important;
    font-size: 13px;
    transition: 0.2s;
    display: block;
}
.kf-a:hover {
    color: #ffffff !important;
    text-decoration: underline !important;
    padding-left: 5px;
}

.kf-input {
    width: 100%;
    padding: 12px;
    border-radius: 4px;
    border: none;
    margin-bottom: 10px;
    font-size: 14px;
    color: #333;
    box-sizing: border-box;
}

.kf-submit {
    width: 100%;
    background-color: #333;
    color: #fff;
    font-weight: 800;
    text-transform: uppercase;
    font-size: 12px;
    padding: 12px;
    border: 1px solid #555;
    border-radius: 4px;
    cursor: pointer;
    transition: 0.2s;
}
.kf-submit:hover {
    background-color: #000;
    border-color: #fff;
}

#kf-bottom {
    background-color: #000;
    padding: 20px 0;
    border-top: 1px solid #444;
}

.kf-bottom-content {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
}

@media (min-width: 768px) {
    .kf-bottom-content {
        flex-direction: row;
        justify-content: space-between;
    }
}

.kf-badge {
    background: #222;
    border: 1px solid #444;
    color: #ccc;
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 10px;
    font-weight: bold;
}

.kf-image-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 15px; 
    margin-bottom: 20px;
}

@media (min-width: 768px) {
    .kf-image-grid {
        grid-template-columns: 1fr 1fr; 
    }
}

/* ========================================= */
/* FONT AWESOME LOKAL MANUELL LADEN          */
/* ========================================= */
/* Da der direkte Link funktioniert, binden wir ihn hier hart ein */

@font-face {
    font-family: 'Font Awesome 6 Free';
    font-style: normal;
    font-weight: 900;
    font-display: block;
    src: url('/fontawesome/webfonts/fa-solid-900.woff2') format('woff2');
}

@font-face {
    font-family: 'Font Awesome 6 Free';
    font-style: normal;
    font-weight: 400;
    font-display: block;
    src: url('/fontawesome/webfonts/fa-regular-400.woff2') format('woff2');
}

@font-face {
    font-family: 'Font Awesome 6 Brands';
    font-style: normal;
    font-weight: 400;
    font-display: block;
    src: url('/fontawesome/webfonts/fa-brands-400.woff2') format('woff2');
}

/* ========================================= */
/* BACK TO TOP BUTTON                        */
/* ========================================= */

/* Finales Styling für den Back-to-Top Button */
#kf-back-to-top-btn {
    position: fixed !important;
    bottom: 40px !important; 
    right: 30px !important;
    left: auto !important;
    width: 50px !important;
    height: 50px !important;
    background-color: #02836c !important; /* Dein Navy Blue */
    color: #ffffff !important;
    border-radius: 50% !important;
    z-index: 99999 !important;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer !important;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3) !important;
    transition: transform 0.2s ease, opacity 0.3s ease !important;
    border: none !important;
}

/* Hover-Effekt */
#kf-back-to-top-btn:hover {
    transform: scale(1.1) !important;
    background-color: #026b58 !important; /* Etwas helleres Navy beim Hover */
}

/* Anpassung für Mobile */
@media (max-width: 768px) {
    #kf-back-to-top-btn {
        bottom: 25px !important;
        right: 20px !important;
        width: 42px !important;
        height: 42px !important;
    }
}

/* Vue Transition Fade-Effekt */
.v-fade-enter-active, .v-fade-leave-active {
    transition: opacity 0.4s ease;
}
.v-fade-enter-from, .v-fade-leave-to {
    opacity: 0;
}

/* ======================================================== */
/* 1. CMS-SEITEN STYLING (Inhaltsverzeichnis & Normal)      */
/* ======================================================== */

/* Haupt-Container (Zentriert den Text, wenn kein TOC da ist) */
.cms-page-wrapper,
#cms-content-render {
    line-height: 1.7 !important;
    color: #333 !important;
    text-align: left !important;
}

/* Fallback-Breite für Seiten ohne neues Layout */
.cms-page-wrapper:not(#cms-content-render) {
    max-width: 1000px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* --- Überschriften (H1, H2, H3, H4) --- */
.cms-page-wrapper h1, #cms-content-render h1,
.cms-page-wrapper h2, #cms-content-render h2 {
    font-size: 28px !important;
    font-weight: 700 !important;
    margin: 40px 0 20px 0 !important;
    line-height: 1.3 !important;
    color: #111 !important;
    border-bottom: 2px solid #eee; 
    padding-bottom: 10px;
}

/* H1 ganz oben braucht keinen riesigen Top-Margin */
.cms-page-wrapper > h1:first-child, 
#cms-content-render > h1:first-child {
    margin-top: 0 !important;
}

.cms-page-wrapper h3, #cms-content-render h3 {
    font-size: 22px !important;
    font-weight: 600 !important;
    margin: 30px 0 15px 0 !important;
    color: #222 !important;
}

.cms-page-wrapper h4, #cms-content-render h4 {
    font-size: 18px !important;
    font-weight: 600 !important;
    margin: 20px 0 10px 0 !important;
    color: #333 !important;
}

/* --- Fließtext und Listen --- */
.cms-page-wrapper p, #cms-content-render p {
    margin-bottom: 15px !important;
}

.cms-page-wrapper strong, #cms-content-render strong,
.cms-page-wrapper b, #cms-content-render b {
    font-weight: 700 !important;
    color: #111 !important;
}

.cms-page-wrapper ul, #cms-content-render ul {
    list-style-type: disc !important;
    padding-left: 25px !important;
    margin-bottom: 20px !important;
}

.cms-page-wrapper ol, #cms-content-render ol {
    list-style-type: decimal !important;
    padding-left: 25px !important;
    margin-bottom: 20px !important;
}

.cms-page-wrapper li, #cms-content-render li {
    margin-bottom: 8px !important;
    display: list-item !important; /* Wichtig für Tailwind */
}

/* --- Links im Text --- */
.cms-page-wrapper a, #cms-content-render a:not(.toc-link) {
    color: var(--brand-color) !important;
    text-decoration: underline !important;
    font-weight: 500;
}

.cms-page-wrapper a:hover, #cms-content-render a:not(.toc-link):hover {
    color: var(--brand-color-hover) !important;
}

/* Tabellen in CMS Seiten (z.B. Versandkosten) */
#cms-content-render table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 20px;
}
#cms-content-render th, #cms-content-render td {
    border: 1px solid #ddd;
    padding: 12px;
    text-align: left;
}
#cms-content-render th {
    background-color: #f9f9f9;
    font-weight: 600;
}

/* ======================================================== */
/* 2. SHOP-RESTORE (Kategorien, Badges, Breadcrumbs)        */
/* ======================================================== */

/* Wir stellen sicher, dass alle normalen Container volle Breite haben */
#main .container:not(.cms-page-wrapper) {
    max-width: 1440px !important;
    width: 100% !important;
}

/* Fix für das "Neu"-Badge (image_c0a0e7.png) 
   Es darf keinen margin-bottom von CMS-Paragraphs erben */
.product-card p.absolute, 
.grid p.absolute {
    margin: 0 !important;
    line-height: normal !important;
    width: auto !important;
}

/* Breadcrumbs Fix (Bleiben links am Raster) */
#main .container.mt-4 {
    max-width: 1440px !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* ======================================================== */
/* 3. MOBILE OPTIMIERUNG (Screenshot image_c11605.png Fix)  */
/* ======================================================== */

@media (max-width: 768px) {
    /* Verhindert das "Zusammenquetschen" der Produkte */
    #main .container {
        padding-left: 5px !important;
        padding-right: 5px !important;
    }

    /* CMS-Seiten mobil auch mit weniger Abstand */
    .cms-page-wrapper {
        padding-left: 5px !important;
        padding-right: 5px !important;
        margin-top: 20px !important;
    }

    /* Breadcrumbs mobil sicherstellen */
    .container.mt-4 {
        display: block !important;
    }
}

/* ======================================================== */
/* 4. KATEGORIE BESCHREIBUNG STYLING                        */
/* ======================================================== */
/* Gilt für die ans untere Ende verschobenen Kategorie-Texte */

#main .container.mb-10 {
    line-height: 1.7 !important;
    color: #333 !important;
    text-align: left !important;
}

#main .container.mb-10 h1,
#main .container.mb-10 h2 {
    font-size: 28px !important;
    font-weight: 700 !important;
    margin: 40px 0 20px 0 !important;
    line-height: 1.3 !important;
    color: #111 !important;
    border-bottom: 2px solid #eee; 
    padding-bottom: 10px;
}

/* Erstes h1/h2 ohne riesigen Top-Margin */
#main .container.mb-10 > h1:first-child,
#main .container.mb-10 > h2:first-child {
    margin-top: 10px !important;
}

#main .container.mb-10 h3 {
    font-size: 22px !important;
    font-weight: 600 !important;
    margin: 30px 0 15px 0 !important;
    color: #222 !important;
}

#main .container.mb-10 h4 {
    font-size: 18px !important;
    font-weight: 600 !important;
    margin: 20px 0 10px 0 !important;
    color: #333 !important;
}

#main .container.mb-10 p {
    margin-bottom: 15px !important;
    font-size: 16px !important;
}

#main .container.mb-10 strong,
#main .container.mb-10 b {
    font-weight: 700 !important;
    color: #111 !important;
}

#main .container.mb-10 ul {
    list-style-type: disc !important;
    padding-left: 25px !important;
    margin-bottom: 20px !important;
}

#main .container.mb-10 ol {
    list-style-type: decimal !important;
    padding-left: 25px !important;
    margin-bottom: 20px !important;
}

#main .container.mb-10 li {
    margin-bottom: 8px !important;
    display: list-item !important; 
}

#main .container.mb-10 a {
    color: var(--brand-color) !important;
    text-decoration: underline !important;
    font-weight: 500;
}

#main .container.mb-10 a:hover {
    color: var(--brand-color-hover) !important;
}

/* ======================================================== */
/* 5. BLOG CONTENT STYLING - MIT ERHÖHTER SPEZIFITÄT        */
/* ======================================================== */
/* Durch das Voranstellen von ".main " werden diese Regeln
   spezifischer und sollten die Theme-Standards überschreiben. */

/* Blog Post Content Allgemein */
.main .blog-post-content,
.main .card-text {
    line-height: 1.7 !important;
    color: #333 !important;
    text-align: left !important;
}

/* Blog Überschriften */
.main .blog-post-content h1 {
    font-size: 32px !important;
    font-weight: 700 !important;
    margin: 40px 0 24px 0 !important;
    line-height: 1.3 !important;
    color: #111 !important;
    border-bottom: 3px solid #02836c !important; 
    padding-bottom: 12px !important;
}

.main .blog-post-content h2 {
    font-size: 26px !important;
    font-weight: 700 !important;
    margin: 35px 0 18px 0 !important;
    line-height: 1.3 !important;
    color: #111 !important;
    border-bottom: 2px solid #eee !important;
    padding-bottom: 10px !important;
}

/* HIER WAR DAS PROBLEM - JETZT GEFIXT */
.main .blog-post-content h3 {
    font-size: 22px !important;
    font-weight: 600 !important;
    margin: 30px 0 15px 0 !important;
    color: #222 !important;
}

.main .blog-post-content h4 {
    font-size: 18px !important;
    font-weight: 600 !important;
    margin: 20px 0 10px 0 !important;
    color: #333 !important;
}

/* Blog Fließtext */
.main .blog-post-content p {
    margin-bottom: 18px !important;
    font-size: 16px !important;
    line-height: 1.7 !important;
}

.main .blog-post-content strong,
.main .blog-post-content b {
    font-weight: 700 !important;
    color: #111 !important;
}

/* Blog Listen */
.main .blog-post-content ul {
    list-style-type: disc !important;
    padding-left: 28px !important;
    margin-bottom: 20px !important;
}

.main .blog-post-content ol {
    list-style-type: decimal !important;
    padding-left: 28px !important;
    margin-bottom: 20px !important;
}

.main .blog-post-content li {
    margin-bottom: 10px !important;
    display: list-item !important;
    line-height: 1.6 !important;
}

/* Blog Links */
/* Beachte: .main muss auch hier vorangestellt werden */
.main .blog-post-content a:not(.toc-link):not(.category-tag):not(.cat-link) {
    color: var(--brand-color) !important;
    text-decoration: underline !important;
    font-weight: 500 !important;
}

.main .blog-post-content a:not(.toc-link):not(.category-tag):not(.cat-link):hover {
    color: var(--brand-color-hover) !important;
}

/* Blog Tabellen */
.main .blog-post-content table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 24px;
}

.main .blog-post-content th,
.main .blog-post-content td {
    border: 1px solid #ddd;
    padding: 12px;
    text-align: left;
}

.main .blog-post-content th {
    background-color: #f9f9f9;
    font-weight: 600;
    color: #111;
}

/* Blog Bilder */
.main .blog-post-content img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
    margin: 24px 0;
}

/* Blog Blockquotes */
.main .blog-post-content blockquote {
    border-left: 4px solid #02836c;
    padding-left: 20px;
    margin: 24px 0;
    color: #666;
    font-style: italic;
}

/* Blog Code Blocks */
.main .blog-post-content code {
    background: #f5f5f5;
    padding: 2px 6px;
    border-radius: 4px;
    font-family: 'Courier New', monospace;
    font-size: 14px;
}

.main .blog-post-content pre {
    background: #f5f5f5;
    padding: 16px;
    border-radius: 8px;
    overflow-x: auto;
    margin-bottom: 20px;
}

.main .blog-post-content pre code {
    background: none;
    padding: 0;
}