/*
Theme Name: Skylinebrett
Author: Adrian
Description: Modern Commerce Theme (V3)
Version: 1.1.0
Text Domain: skylinebrett
*/

/* --- 1. BRANDING (Strict V3) --- */
:root {
    --bg-body: #fdfbf7;
    /* Warm-White Background */
    --bg-card: #ffffff;
    --black: #111111;
    /* Hard Black (Primary) */
    --gold: #a67c52;
    /* Accent Gold */
    --text-grey: #666666;
    --border: #e5e5e5;
    --success: #10b981;
    --container: 1300px;

    /* Legacy Compat */
    --bg-color: var(--bg-body);
    --white: #ffffff;
    --grey-light: #f4f4f4;
    --accent: var(--gold);
    --font-head: 'Montserrat', sans-serif;
    --font-body: 'Inter', sans-serif;
}

* {
    box-sizing: border-box;
}

.container {
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 40px;
    /* Consistent padding */
}

body {
    font-family: 'Inter', sans-serif;
    background-color: var(--bg-color);
    color: var(--black);
    margin: 0;
    padding: 0;
    line-height: 1.5;
}

h1,
h2,
h3,
h4,
.btn,
.nav-item {
    font-family: 'Montserrat', sans-serif;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

a {
    text-decoration: none;
    color: inherit;
}

/* --- 2. ANNOUNCEMENT BAR (Ticker) --- */
.announcement-bar {
    background: var(--black);
    color: white;
    padding: 10px 0;
    text-align: center;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 1px;
}

/* =========================================
   HEADER & NAVIGATION
   ========================================= */
.site-header {
    background: white;
    padding: 12px 40px;
    border-bottom: 1px solid var(--border);
    position: sticky;
    top: 0;
    z-index: 1000;
}

.header-inner {
    max-width: var(--container);
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.brand-logo-svg {
    width: 260px;
    height: auto;
    display: block;
    color: var(--black);
}

.brand-logo-svg .fil0 {
    fill: var(--gold) !important;
}

.brand-logo-svg .fil1 {
    fill: currentColor;
}

@media (max-width: 768px) {
    .brand-logo-svg {
        width: 160px;
    }
}

.header-actions {
    display: flex;
    align-items: center;
    gap: 20px;
}

.icon-btn {
    background: none;
    border: none;
    color: var(--black);
    font-size: 1.25rem;
    cursor: pointer;
    padding: 10px;
    min-width: 44px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: color 0.2s;
}

.icon-btn:hover {
    color: var(--gold);
}

/* Mobile Header Overrides */
@media (max-width: 768px) {
    .site-header {
        padding: 8px 12px;
    }

    .header-logo img {
        width: 160px;
    }

    .header-actions {
        gap: 10px;
    }

    .icon-btn {
        font-size: 1.15rem;
        padding: 4px;
    }
}
/* NEW Header Logo handled above in .header-logo img */

footer .brand-logo-svg {
    color: #ffffff;
}

.nav-center {
    display: none;
    gap: 40px;
}

.nav-item {
    font-weight: 700;
    font-size: 0.9rem;
    position: relative;
}

.nav-item::after {
    content: '';
    position: absolute;
    bottom: -5px;
    left: 0;
    width: 0;
    height: 2px;
    background: var(--black);
    transition: width 0.3s;
}

.nav-item:hover::after {
    width: 100%;
}

@media(min-width: 900px) {
    .nav-center {
        display: flex;
    }
}

/* --- 4. HERO SECTION (Plakativ) --- */
.hero {
    max-width: var(--container);
    margin: 0 auto;
    padding: 60px 40px 100px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 50px;
    align-items: center;
}

.hero-content h1 {
    font-size: 3.5rem;
    line-height: 1.1;
    font-weight: 800;
    margin-bottom: 25px;
}

.hero-content p {
    font-size: 1.1rem;
    color: #555;
    margin-bottom: 40px;
    max-width: 500px;
    font-weight: 400;
}

/* Shopify Style Button: Schwarz, rechteckig, Hover-Effekt */
.btn {
    display: inline-block;
    background: var(--black);
    color: white;
    padding: 18px 45px;
    font-weight: 700;
    font-size: 0.9rem;
    transition: all 0.3s ease;
    border: 1px solid var(--black);
}

.btn:hover {
    background: transparent;
    color: var(--black);
}

.hero-image-container {
    position: relative;
    background: #f0ebe5;
    /* Dezenter Kontrast-Hintergrund */
    border-radius: 4px;
    padding: 40px;
    text-align: center;
}

.hero-img {
    width: 100%;
    max-width: 500px;
    filter: drop-shadow(0 20px 40px rgba(0, 0, 0, 0.1));
    transform: rotate(-2deg);
}

@media(min-width: 1000px) {
    .hero {
        grid-template-columns: 1fr 1fr;
        padding: 100px 40px;
    }

    .hero-content h1 {
        font-size: 5rem;
    }
}

/* --- 5. ICONS STRIP --- */
.features-strip {
    border-top: 1px solid #eee;
    border-bottom: 1px solid #eee;
    padding: 40px 0;
    background: white;
}

.features-grid {
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 40px;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
    gap: 30px;
}

.feature-item {
    display: flex;
    align-items: center;
    gap: 15px;
    font-weight: 600;
    font-family: 'Montserrat', sans-serif;
    font-size: 0.9rem;
}

.feature-icon {
    font-size: 1.5rem;
}

/* --- 6. PRODUCT GRID (Clean Cards) --- */
.products-area {
    max-width: var(--container);
    margin: 0 auto;
    padding: 100px 40px;
}

.section-title {
    text-align: center;
    font-size: 2.5rem;
    font-weight: 800;
    margin-bottom: 60px;
    letter-spacing: -1px;
}

.p-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 40px 30px;
}

.p-card {
    cursor: pointer;
}

.p-image-wrap {
    position: relative;
    background: #f7f7f7;
    padding-bottom: 120%;
    /* Hochformat Ratio */
    margin-bottom: 20px;
    overflow: hidden;
}

.p-img {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 80%;
    transition: transform 0.5s;
}

.p-card:hover .p-img {
    transform: translate(-50%, -50%) scale(1.08);
}

/* "Badge" oben links */
.p-badge {
    position: absolute;
    top: 15px;
    left: 15px;
    background: white;
    padding: 5px 10px;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.p-details {
    text-align: left;
}

.p-title {
    font-weight: 700;
    font-size: 1.1rem;
    margin-bottom: 5px;
    font-family: 'Montserrat', sans-serif;
}

.p-price {
    color: #555;
    font-size: 1rem;
}


/* City Card - Inherits from Product Card */
.city-card {
    cursor: pointer;
}

/* Ensure city card images use same aspect ratio as products */
.city-card .card-img-wrapper {
    aspect-ratio: 4/3;
}

/* Ensure hover effect works for city cards */
.city-card:hover .hover-cta {
    opacity: 1;
    transform: translateY(0);
}


/* --- 7. FOOTER SKYLINE (Der Übergang) --- */
.skyline-separator {
    width: 100%;
    height: auto;
    display: block;
    margin-bottom: -1px;
    /* Lücken vermeiden */
    color: var(--black);
    /* Farbe der Skyline */
    pointer-events: none;
}

.footer-skyline-bg {
    width: 100%;
    height: 100px;
    /* Adjusted to 100px */
    background-image: url('assets/images/footer-skyline.svg');
    background-repeat: repeat-x;
    background-size: auto 100%;
    background-position: bottom left;
    display: block;
}

/* --- 8. FOOTER --- */
footer {
    background: var(--black);
    color: white;
    padding: 80px 40px 40px;
}

.footer-grid {
    max-width: var(--container);
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 60px;
    margin-bottom: 80px;
}

.f-col h4 {
    margin-bottom: 25px;
    font-size: 1rem;
    letter-spacing: 1px;
}

.f-col ul {
    list-style: none;
    padding: 0;
}

.f-col li {
    margin-bottom: 15px;
    color: #999;
    font-size: 0.9rem;
    cursor: pointer;
    transition: color 0.2s;
}

.f-col li:hover {
    color: white;
}

.footer-bottom {
    border-top: 1px solid #333;
    padding-top: 30px;
    text-align: center;
    color: #666;
    font-size: 0.8rem;
}

/* Footer: Newsletter link */
.footer-nl-link {
    display: inline-block;
    margin-top: 15px;
    color: var(--gold) !important;
    font-size: 0.85rem;
    text-decoration: none;
}
.footer-nl-link:hover { color: white !important; }

/* Footer: Versand USP list */
.footer-usp-list { margin-bottom: 20px; }
.footer-usp-list li {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
    color: #999;
    font-size: 0.9rem;
}
.footer-usp-list li .fas { color: var(--gold); width: 16px; flex-shrink: 0; }

/* Footer: Payment icons */
.footer-payment-icons {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 15px;
}
.footer-payment-icons .fab {
    font-size: 2rem;
    color: #777;
    transition: color 0.2s;
}
.footer-payment-icons .fab:hover { color: white; }

/* Footer: detail link */
.footer-detail-link { color: #999; font-size: 0.85rem; text-decoration: none; }
.footer-detail-link:hover { color: white; }

/* Footer: Trustami badge */
.trustami-badge {
    display: inline-block;
    background: rgba(255,255,255,0.07);
    border: 1px solid rgba(255,255,255,0.15);
    border-radius: 8px;
    padding: 16px 24px;
    text-align: center;
    text-decoration: none;
    margin: 8px 0 15px;
    transition: background 0.2s;
}
.trustami-badge:hover { background: rgba(255,255,255,0.12); }
.trustami-score {
    font-size: 2.4rem;
    font-weight: 900;
    color: white;
    line-height: 1;
}
.trustami-stars {
    color: #f5c518;
    font-size: 1.2rem;
    letter-spacing: 3px;
    margin: 5px 0;
}
.trustami-brand {
    color: white;
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 1px;
}
.trustami-brand span { color: var(--gold); }
.trustami-sub { color: #999; font-size: 0.75rem; margin-top: 4px; }
.footer-trust-note { color: #999; font-size: 0.85rem; }

/* Footer: WhatsApp button */
.footer-whatsapp-btn {
    display: flex;
    align-items: center;
    gap: 10px;
    background: #25D366;
    color: white !important;
    padding: 12px 18px;
    border-radius: 6px;
    font-weight: 600;
    font-size: 0.95rem;
    margin: 10px 0 15px;
    text-decoration: none;
    transition: background 0.2s;
}
.footer-whatsapp-btn:hover { background: #1ebe5d; }
.footer-whatsapp-btn .fab { font-size: 1.4rem; }

/* Footer: contact hours */
.footer-contact-hours { color: #999; font-size: 0.85rem; margin-bottom: 15px; }

/* --- UPDATED HEADER STYLES --- */

/* Reset button styles for icons */
button.icon-btn {
    background: none;
    border: none;
    padding: 0;
    color: inherit;
    display: flex;
    align-items: center;
    cursor: pointer;
}

/* Ensure SVG icons behave nicely */
.icon-btn svg {
    width: 24px;
    height: 24px;
    stroke-width: 1.8px;
    transition: transform 0.2s ease;
}

.icon-btn:hover svg {
    transform: scale(1.1);
}

/* Cart Icon Wrapper & Badge */
.cart-icon-wrap {
    position: relative;
    display: flex;
    align-items: center;
}

.cart-count {
    position: absolute;
    top: -5px;
    right: -8px;
    background: var(--black);
    color: white;
    font-size: 0.7rem;
    font-weight: 700;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* --- SEARCH OVERLAY --- */
.search-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: rgba(253, 251, 247, 0.98);
    /* Uses var(--bg-color) opacity */
    z-index: 2100; /* Über mobile-menu-overlay (2000) */
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
    backdrop-filter: blur(5px);
}

.search-overlay.active {
    opacity: 1;
    visibility: visible;
}

.search-close {
    position: absolute;
    top: 40px;
    right: 40px;
    background: none;
    border: none;
    cursor: pointer;
    color: var(--black);
    transition: transform 0.3s;
    padding: 12px;
    min-width: 44px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.search-close:hover {
    transform: rotate(90deg);
}

.search-container {
    width: 100%;
    max-width: 800px;
    padding: 0 40px;
    text-align: center;
}

.search-form {
    position: relative;
    border-bottom: 2px solid var(--black);
    display: flex;
    align-items: center;
}

.search-field {
    width: 100%;
    border: none;
    background: transparent;
    font-family: var(--font-head);
    font-size: 2rem;
    font-weight: 700;
    padding: 20px 0;
    color: var(--black);
    outline: none;
}

.search-field::placeholder {
    color: #ccc;
    font-weight: 400;
}

.search-submit {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    color: var(--black);
    margin-left: 10px;
}

.search-submit svg {
    width: 30px;
    height: 30px;
}

.search-note {
    margin-top: 20px;
    font-size: 0.9rem;
    color: #666;
    letter-spacing: 1px;
    text-transform: uppercase;
    font-weight: 600;
}

/* .search-container bekommt position:relative als Anker für Dropdown */
.search-container {
    position: relative;
}

/* ── Typ-Toggle: Städte / Bretter ───────────────────────────────────────── */
.search-type-toggle {
    display: inline-flex;
    align-items: center;
    background: #f0efea;
    border-radius: 50px;
    padding: 4px;
    margin-bottom: 32px;
    gap: 2px;
}

.search-type-btn {
    background: transparent;
    border: none;
    border-radius: 50px;
    padding: 8px 24px;
    font-family: var(--font-body);
    font-size: 0.85rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #888;
    cursor: pointer;
    transition: background 0.2s, color 0.2s;
    white-space: nowrap;
}

.search-type-btn.active {
    background: var(--black);
    color: #fff;
}

.search-type-btn:not(.active):hover {
    color: var(--black);
}

/* ── Live-Suggestions-Dropdown ──────────────────────────────────────────── */
.search-suggestions {
    position: absolute;
    top: calc(100% + 12px);
    left: 0;
    right: 0;
    background: #fff;
    border-radius: 18px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.13), 0 4px 16px rgba(0, 0, 0, 0.07);
    overflow: hidden;
    z-index: 100;
    text-align: left;
}

/* Einzelnes Ergebnis-Item */
.search-suggestion-item {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px 20px;
    text-decoration: none;
    color: var(--black);
    transition: background 0.15s;
    border-bottom: 1px solid #f5f5f3;
}

.search-suggestion-item:last-of-type {
    border-bottom: none;
}

.search-suggestion-item:hover,
.search-suggestion-item.focused {
    background: #faf9f6;
}

/* Thumbnail */
.suggestion-thumb {
    width: 48px;
    height: 48px;
    border-radius: 10px;
    object-fit: cover;
    flex-shrink: 0;
}

.suggestion-thumb-placeholder {
    width: 48px;
    height: 48px;
    border-radius: 10px;
    background: #eee;
    flex-shrink: 0;
}

/* Text */
.suggestion-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.suggestion-title {
    font-family: var(--font-head);
    font-weight: 700;
    font-size: 0.95rem;
    color: var(--black);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.suggestion-meta {
    font-family: var(--font-body);
    font-size: 0.78rem;
    color: #999;
}

/* "Alle anzeigen"-Footer */
.suggestion-footer {
    display: block;
    text-align: center;
    padding: 12px 20px;
    font-family: var(--font-body);
    font-size: 0.82rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: #666;
    text-decoration: none;
    border-top: 1px solid #f0f0ee;
    background: #fafaf8;
    transition: color 0.15s, background 0.15s;
}

.suggestion-footer:hover {
    color: var(--black);
    background: #f5f4f0;
}

/* Leer- / Ladezustand */
.suggestion-empty,
.suggestion-loading {
    padding: 22px 20px;
    text-align: center;
    font-family: var(--font-body);
    font-size: 0.9rem;
    color: #aaa;
}

/* --- MOBILE MENU --- */

.mobile-toggle {
    display: flex;
}

@media(min-width: 900px) {
    .mobile-toggle {
        display: none;
    }
}

.mobile-menu-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    z-index: 2000;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s;
}

.mobile-menu-overlay.active {
    opacity: 1;
    visibility: visible;
}

.mobile-menu {
    position: fixed;
    top: 0;
    left: 0;
    width: 85%;
    max-width: 400px;
    height: 100vh;
    background: var(--bg-color);
    z-index: 2001;
    padding: 80px 40px;
    transform: translateX(-100%);
    transition: transform 0.3s ease-in-out;
    box-shadow: 10px 0 30px rgba(0, 0, 0, 0.1);
}

.mobile-menu.active {
    transform: translateX(0);
}

.mobile-close {
    position: absolute;
    top: 20px;
    right: 20px;
    background: none;
    border: none;
    padding: 10px;
    cursor: pointer;
}

.mobile-nav {
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.mobile-link {
    font-size: 1.25rem;
    font-family: var(--font-head);
    font-weight: 800;
    text-transform: uppercase;
    color: var(--black);
    letter-spacing: 0.5px;
}

.no-scroll {
    overflow: hidden;
}

/* --- PAGINATION --- */
.pagination .nav-links {
    display: flex;
    justify-content: center;
    gap: 10px;
    align-items: center;
}

.pagination .page-numbers {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 40px;
    height: 40px;
    border: 1px solid #ddd;
    color: var(--black);
    font-weight: 600;
    font-family: var(--font-head);
    transition: all 0.3s;
}

.pagination .page-numbers.current,
.pagination .page-numbers:hover {
    background: var(--black);
    color: white;
    border-color: var(--black);
}

.pagination .prev,
.pagination .next {
    width: auto;
    padding: 0 20px;
}

/* --- SKYLINE CATALOG (NEW) --- */

/* Shop Header */
.shop-header {
    padding: 20px 20px 20px;
    max-width: var(--container);
    margin: 0 auto;
    text-align: center;
}

h1.page-title {
    font-size: 3rem;
    margin-bottom: 15px;
    font-weight: 800;
    color: var(--black);
    letter-spacing: -1px;
}

.header-subtitle {
    font-family: var(--font-body);
    font-size: 1.1rem;
    color: var(--text-grey);
    max-width: 600px;
    margin: 0 auto;
}

/* Shop Layout */
.shop-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 50px;
    max-width: var(--container);
    margin: 0 auto;
    padding: 20px 40px 100px;
}

/* Only use 2-column layout when sidebar is present */
@media(min-width: 1000px) {

    .shop-layout:has(.shop-sidebar),
    .shop-layout:has(.filters) {
        grid-template-columns: 250px 1fr;
        gap: 50px;
    }
}

/* Sidebar Filters */
.filters {
    position: sticky;
    top: 120px;
    align-self: start;
}

.filter-group {
    margin-bottom: 35px;
    border-bottom: 1px solid #eee;
    padding-bottom: 25px;
}

.filter-group:last-child {
    border: none;
}

.filter-title {
    font-family: var(--font-head);
    font-size: 0.85rem;
    font-weight: 700;
    margin-bottom: 20px;
    display: block;
    color: var(--black);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.filter-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.filter-list li {
    margin-bottom: 12px;
    font-size: 0.95rem;
    color: var(--text-grey);
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 10px;
    transition: color 0.2s;
}

.filter-list li:hover {
    color: var(--black);
}

.filter-list li.active,
.filter-list li.current-cat {
    font-weight: 700;
    color: var(--black);
}

.filter-list li a {
    color: inherit;
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 8px 4px;
}

/* Checkboxes (Visual) */
.cb {
    width: 18px;
    height: 18px;
    border: 1px solid #ccc;
    background: white;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
    flex-shrink: 0;
}

.filter-list li:hover .cb {
    border-color: var(--black);
}

.filter-list li.active .cb,
.filter-list li.current-cat .cb {
    background: var(--black);
    border-color: var(--black);
}

.filter-list li.active .cb::after,
.filter-list li.current-cat .cb::after {
    content: '✓';
    color: white;
    font-size: 12px;
    font-weight: bold;
}

/* Reset Filter (Alle Städte) - Make it more obvious */
.all-cities-filter .reset-filter {
    text-decoration: none;
    transition: all 0.2s;
    cursor: pointer;
}

.all-cities-filter .reset-filter:hover {
    color: var(--black);
    text-decoration: underline;
}

.all-cities-filter.active .reset-filter {
    font-weight: 700;
    color: var(--black);
}

/* Add cursor pointer to all filter links */
.filter-list a {
    cursor: pointer;
    text-decoration: none;
}

/* Live Search Styles */
.search-group {
    margin-bottom: 35px;
}

.search-wrapper {
    position: relative;
}

.city-search-input {
    width: 100%;
    padding: 10px 35px 10px 12px;
    border: 1px solid #ddd;
    font-family: var(--font-body);
    font-size: 0.95rem;
    transition: border-color 0.2s;
}

.city-search-input:focus {
    outline: none;
    border-color: var(--black);
}

.city-search-input::placeholder {
    color: #999;
}

.clear-search {
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    font-size: 24px;
    color: #999;
    cursor: pointer;
    padding: 0;
    width: 24px;
    height: 24px;
    line-height: 1;
    transition: color 0.2s;
}

.clear-search:hover {
    color: var(--black);
}

/* ── Hero Search Bar (Archiv-Seite) ───────────────────────────────────── */
.hero-search-wrapper {
    position: relative;
    max-width: 520px;
    margin: 28px auto 0;
    display: flex;
    align-items: center;
}

.hero-search-icon {
    position: absolute;
    left: 18px;
    top: 50%;
    transform: translateY(-50%);
    width: 18px;
    height: 18px;
    color: #aaa;
    pointer-events: none;
    flex-shrink: 0;
}

.hero-search-wrapper .city-search-input {
    width: 100%;
    padding: 15px 50px 15px 50px;
    border: 1.5px solid #e2e2e2;
    border-radius: 50px;
    font-family: var(--font-body);
    font-size: 1rem;
    background: #fff;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.07);
    transition: border-color 0.2s, box-shadow 0.2s;
}

.hero-search-wrapper .city-search-input:focus {
    outline: none;
    border-color: var(--black);
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.13);
}

.hero-search-wrapper .city-search-input::placeholder {
    color: #bbb;
}

.hero-search-wrapper .clear-search {
    position: absolute;
    right: 18px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 22px;
    background: none;
    border: none;
    color: #aaa;
    cursor: pointer;
    padding: 0;
    width: 24px;
    height: 24px;
    line-height: 1;
    transition: color 0.2s;
}

.hero-search-wrapper .clear-search:hover {
    color: var(--black);
}

/* Product Grid Override */
.product-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 40px 25px;
}

/* Product Card - Redesign V2 (Matching shop-preview.html) */
.product-card,
ul.products li.product {
    background: var(--bg-card);
    border-radius: 4px;
    overflow: hidden;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    cursor: pointer;
    text-decoration: none;
    color: inherit;
    display: flex;
    flex-direction: column;
    position: relative;
}

.product-card:hover,
ul.products li.product:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
}

/* Image Area & Hover CTA */
.card-img-wrapper {
    background: #fff;
    aspect-ratio: 4/3;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    position: relative;
    overflow: hidden;
}

.card-img-wrapper img,
.card-img-wrapper .woocommerce-loop-product__link img {
    width: 100%;
    height: auto;
    object-fit: contain;
    transition: transform 0.5s ease;
}

.product-card:hover .card-img-wrapper img,
ul.products li.product:hover .card-img-wrapper img {
    transform: scale(1.05);
}

/* Hover CTA Button */
.hover-cta {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: var(--black);
    color: white;
    text-align: center;
    padding: 12px;
    font-family: var(--font-head);
    font-size: 0.9rem;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    cursor: pointer;
    opacity: 0;
    transform: translateY(100%);
    transition: all 0.3s ease-in-out;
    z-index: 2;
}

/* Show button on product card hover */
.product-card:hover .hover-cta,
ul.products li.product:hover .hover-cta {
    opacity: 1;
    transform: translateY(0);
}

/* Content Area */
.card-info {
    padding: 20px;
    text-align: center;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.card-cat {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--text-grey);
    display: block;
    margin-bottom: 8px;
    font-weight: 600;
}

.card-title,
.card-info h2 {
    font-family: var(--font-head);
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--black);
    margin: 0 0 10px 0;
    line-height: 1.2;
}

/* Price & Prefix */
.card-price {
    font-family: var(--font-head);
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--gold);
    margin-bottom: 4px;
}

/* Hide all German Market tax info within card-price (we use card-tax instead) */
.card-price .wgm-info,
.card-price .woocommerce-price-suffix,
.card-price .tax_info {
    display: none !important;
}

/* Price wrapper should be inline-flex to keep prefix and price together */
.card-price>* {
    display: inline !important;
}

.card-price .price {
    display: inline-flex !important;
    align-items: baseline;
    gap: 4px;
}

.card-price .woocommerce-Price-amount {
    font-family: var(--font-head);
    font-weight: 600;
    color: var(--gold);
}

.price-prefix {
    font-size: 0.8em;
    font-weight: 500;
    color: var(--black);
}

.card-tax {
    font-size: 0.7rem;
    color: var(--text-grey);
    line-height: 1.4;
    margin-top: auto;
}

/* Hide default WooCommerce add to cart button */
ul.products li.product .button,
.product-card .button {
    display: none !important;
}

/* --- PRICE SLIDER (Dual Range) --- */
.price-slider-wrapper {
    position: relative;
    width: 100%;
    margin-top: 15px;
    margin-bottom: 25px;
    height: 30px;
}

.slider-track-container {
    position: relative;
    width: 100%;
    height: 6px;
    background: #e5e5e5;
    border-radius: 3px;
    top: 50%;
    transform: translateY(-50%);
}

.slider-track-fill {
    position: absolute;
    height: 100%;
    background: var(--black);
    border-radius: 3px;
    z-index: 1;
}

.range-inputs {
    position: relative;
    width: 100%;
    height: 0;
}

.range-inputs input[type="range"] {
    position: absolute;
    top: -15px;
    left: 0;
    width: 100%;
    height: 30px;
    -webkit-appearance: none;
    appearance: none;
    pointer-events: none;
    background: none;
    z-index: 2;
    margin: 0;
}

.range-inputs input[type="range"]::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--white);
    border: 2px solid var(--black);
    cursor: pointer;
    pointer-events: auto;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
    transition: transform 0.1s;
    margin-top: -9px;
}

.range-inputs input[type="range"]::-webkit-slider-thumb:hover {
    transform: scale(1.1);
    background: var(--black);
}

.range-inputs input[type="range"]::-moz-range-thumb {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--white);
    border: 2px solid var(--black);
    cursor: pointer;
    pointer-events: auto;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
    transition: transform 0.1s;
}

.range-inputs input[type="range"]::-moz-range-thumb:hover {
    transform: scale(1.1);
    background: var(--black);
}

.price-values {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
    font-size: 0.9rem;
    font-weight: 600;
}

.price-values span {
    display: flex;
    align-items: center;
    gap: 5px;
    background: #f9f9f9;
    padding: 6px 12px;
    border-radius: 4px;
    border: 1px solid transparent;
    transition: all 0.2s;
}

.price-values span:focus-within {
    background: white;
    border-color: var(--black);
    box-shadow: 0 0 0 1px var(--black);
}

.price-values input[type="number"] {
    width: 50px;
    padding: 0;
    border: none;
    background: transparent;
    font-family: var(--font-body);
    font-size: 0.9rem;
    font-weight: 600;
    text-align: right;
    color: var(--black);
    -moz-appearance: textfield;
    appearance: textfield;
    outline: none;
}

.price-values input[type="number"]::-webkit-outer-spin-button,
.price-values input[type="number"]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    appearance: none;
    margin: 0;
}

/* Badges */
.badge,
.onsale {
    position: absolute;
    top: 12px;
    left: 12px;
    background: var(--black);
    color: white;
    padding: 5px 10px;
    font-size: 0.65rem;
    font-weight: 700;
    z-index: 2;
    letter-spacing: 1px;
    text-transform: uppercase;
    font-family: var(--font-head);
}

.badge.gold {
    background: var(--gold);
}

.badge.sale,
.onsale {
    background: #d32f2f;
}

/* ================================================
   WOOCOMMERCE SHOP LAYOUT STYLES
   ================================================ */

/* WooCommerce Product Grid (ul.products) */
ul.products {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 40px 25px;
    list-style: none;
    margin: 0;
    padding: 0;
}

/* Remove clearfix pseudo-elements that interfere with grid */
ul.products::before,
ul.products::after {
    display: none !important;
}

@media(min-width: 768px) {
    ul.products {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media(min-width: 1200px) {
    ul.products {
        grid-template-columns: repeat(3, 1fr);
        gap: 40px 30px;
    }
}

/* Product List Item */
ul.products li.product {
    list-style: none;
    margin: 0;
    padding: 0;
    width: 100% !important;
    float: none !important;
}

/* Hide default WooCommerce elements we're replacing */
ul.products li.product .button {
    display: none;
}

ul.products li.product .star-rating {
    display: none;
}

/* Hide WGM tax/shipping info in card-price (we have our own .card-tax) */
.card-price .wgm-info,
.card-price .woocommerce-de_price_taxrate,
.card-price .woocommerce_de_versandkosten {
    display: none !important;
}

/* Shop Controls (Result Count + Ordering) */
.shop-controls {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 30px;
    padding-bottom: 20px;
    border-bottom: 1px solid #eee;
    flex-wrap: wrap;
    gap: 15px;
}

.woocommerce-result-count {
    font-size: 0.9rem;
    color: var(--text-grey);
    margin: 0;
}

.woocommerce-ordering {
    margin: 0;
}

.woocommerce-ordering select {
    padding: 10px 35px 10px 15px;
    border: 1px solid #ddd;
    background: white;
    font-family: var(--font-body);
    font-size: 0.9rem;
    cursor: pointer;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23333' d='M6 9L1 4h10z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
}

/* Mobile Sidebar Styles */
.filter-toggle {
    display: flex;
    align-items: center;
    gap: 8px;
    background: var(--black);
    color: white;
    border: none;
    padding: 12px 20px;
    font-family: var(--font-head);
    font-size: 0.85rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    cursor: pointer;
    margin-bottom: 20px;
    width: 100%;
    justify-content: center;
    transition: background 0.3s;
}

.filter-toggle:hover {
    background: #333;
}

.filter-toggle svg {
    stroke-width: 2.5px;
}

.filter-close {
    position: absolute;
    top: 20px;
    right: 20px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 10px;
    z-index: 10;
    display: none;
}

.filter-close svg {
    stroke: var(--black);
    stroke-width: 2px;
}

/* Filter Content - Mobile Off-Canvas */
.filter-content {
    position: relative;
}

@media(max-width: 999px) {
    .filter-toggle {
        display: flex;
    }

    .filter-content {
        position: fixed;
        top: 0;
        left: 0;
        width: 85%;
        max-width: 350px;
        height: 100vh;
        background: var(--bg-body);
        z-index: 9999;
        padding: 80px 30px 30px;
        transform: translateX(-100%);
        transition: transform 0.3s ease-in-out;
        overflow-y: auto;
        box-shadow: 10px 0 30px rgba(0, 0, 0, 0.1);
    }

    .filter-content.active {
        transform: translateX(0);
    }

    .filter-content.active~.filter-overlay {
        opacity: 1;
        visibility: visible;
    }

    .filter-close {
        display: block;
    }
}

/* Filter Overlay for Mobile */
.filter-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    z-index: 9998;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s;
    display: none;
}

@media(max-width: 999px) {
    .filter-overlay {
        display: block;
    }

    .filter-overlay.active {
        opacity: 1;
        visibility: visible;
    }
}

/* Desktop Sidebar */
@media(min-width: 1000px) {
    .filter-toggle {
        display: none;
    }

    .filter-close {
        display: none;
    }

    .filters {
        position: sticky;
        top: 120px;
        align-self: start;
    }
}

/* Widget Styling */
.shop-sidebar .widget {
    margin-bottom: 35px;
    border-bottom: 1px solid #eee;
    padding-bottom: 25px;
}

.shop-sidebar .widget:last-child {
    border: none;
}

.shop-sidebar .widget ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.shop-sidebar .widget ul li {
    margin-bottom: 12px;
    font-size: 0.95rem;
    color: var(--text-grey);
}

.shop-sidebar .widget ul li a {
    color: inherit;
    transition: color 0.2s;
    display: block;
}

.shop-sidebar .widget ul li a:hover {
    color: var(--black);
}

.shop-sidebar .widget ul li.current-cat>a,
.shop-sidebar .widget ul li.chosen>a {
    font-weight: 700;
    color: var(--black);
}

/* --- 8. WOOCOMMERCE NOTICES (Modern V3) --- */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 18px 25px !important;
    margin: 20px auto 30px !important;
    max-width: 1200px;
    width: 100%;
    background: #fff;
    border: none !important;
    border-left: 4px solid var(--black) !important;
    border-radius: 8px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
    font-size: 0.95rem;
    color: var(--black);
    list-style: none !important;
    line-height: 1.5;
    box-sizing: border-box;
}

.woocommerce-message {
    border-left-color: var(--success, #10b981) !important;
    background: #f0fdf4;
}

.woocommerce-error {
    border-left-color: #ef4444 !important;
    background: #fef2f2;
    color: #991b1b;
    flex-direction: column;
    align-items: flex-start;
}

.woocommerce-info {
    border-left-color: var(--gold) !important;
    background: #fffdfa;
}

/* Clear default icons if any */
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before {
    display: none !important;
}

/* Styled Action Buttons in Notices */
.woocommerce-message .button,
.woocommerce-info .button,
.woocommerce-error .button,
.woocommerce-message a.button,
.woocommerce-info a.button,
.woocommerce-error a.button {
    display: inline-flex;
    align-items: center;
    background: #1F1F1F !important;
    color: #fff !important;
    padding: 10px 22px !important;
    border-radius: 4px !important;
    font-size: 0.85rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    transition: all 0.2s ease;
    flex-shrink: 0;
    margin: 0 !important;
    float: none !important; /* Kill legacy floats */
}

.woocommerce-message .button:hover,
.woocommerce-info .button:hover,
.woocommerce-error .button:hover {
    background: var(--gold) !important;
    transform: translateY(-1px);
}

/* Responsive Handling */
@media (max-width: 768px) {
    .woocommerce-message,
    .woocommerce-info,
    .woocommerce-error {
        flex-direction: column;
        align-items: flex-start;
        gap: 15px;
        padding: 16px 20px !important;
    }

    .woocommerce-message .button,
    .woocommerce-info .button,
    .woocommerce-error .button {
        width: 100%;
        justify-content: center;
    }
}

/* Pagination */
.woocommerce-pagination {
    margin-top: 60px;
    text-align: center;
}

.woocommerce-pagination ul.page-numbers {
    display: flex;
    justify-content: center;
    gap: 10px;
    list-style: none;
    padding: 0;
    margin: 0;
}

.woocommerce-pagination .page-numbers {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    min-width: 40px;
    height: 40px;
    padding: 0 15px;
    border: 1px solid #ddd;
    color: var(--black);
    font-weight: 600;
    font-family: var(--font-head);
    transition: all 0.3s;
    text-decoration: none;
}

.woocommerce-pagination .page-numbers.current,
.woocommerce-pagination .page-numbers:hover {
    background: var(--black);
    color: white;
    border-color: var(--black);
}

/* No Products Found */
.woocommerce-info {
    text-align: center;
    padding: 40px 20px;
}

/* ================================================
   END WOOCOMMERCE SHOP LAYOUT STYLES
   ================================================ */

/* --- SINGLE PRODUCT (GOLD MASTER V3.2) --- */
.site-container {
    max-width: var(--container);
    margin: 0 auto;
    padding: 40px 20px;
}

.product-wrapper {
    display: grid;
    grid-template-columns: 1fr;
    gap: 50px;
    margin-bottom: 80px;
}

@media (min-width: 768px) and (max-width: 999px) {
    .product-wrapper {
        grid-template-columns: 1fr 1fr;
        gap: 32px;
        align-items: start;
    }
}

@media(min-width: 1000px) {
    .product-wrapper {
        grid-template-columns: 550px 1fr;
        gap: 40px;
        /* Gallery fixed at 550px, info takes remaining space with 40px gap */
        align-items: start;
    }
}

/* --- 3. GALLERY (Standard WC Wrapper) --- */
.product-gallery-wrapper {
    position: relative;
    width: 100%;
    max-width: 550px;
    overflow: hidden;
    /* Contains Swiper slides — prevents page-level horizontal overflow */
}

@media(min-width: 1000px) {
    /* No special grid columns needed for slider wrapper, just layout */
}

/* Ensure images fill container */
.woocommerce-product-gallery {
    opacity: 1 !important;
    /* Force visible in case JS slider delays */
}

.woocommerce-product-gallery img {
    width: 100%;
    height: auto;
    display: block;
}

/* Hide my old badges/items if any left */
.old-product-badges {
    display: none;
}

/* --- 4. STICKY INFO --- */
.product-info-sticky {
    position: relative;
}

@media(min-width: 1000px) {
    .product-info-sticky {
        position: sticky;
        top: 120px;
    }

    .variations_form {
        width: fit-content;
    }
}

h1.product-title,
h1.product_title {
    font-size: 2.6rem;
    line-height: 1.1;
    margin: 0;
    font-weight: 800;
    font-family: var(--font-head);
    color: var(--black);
}

.product-price,
p.price,
p.price>span,
.price bdi,
.price .amount {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--gold) !important;
    font-family: var(--font-head);
    margin-top: 0;
    margin-bottom: 5px;
}

/* Price Wrapper - Force ALL elements inline on one line */
.price-wrapper {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0;
    margin-bottom: 10px;
    line-height: 1.4;
}

/* Reset ALL children to inline - no exceptions */
.price-wrapper * {
    display: inline !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    clear: none !important;
}

/* Price styling */
.price-wrapper .price,
.price-wrapper p.price,
.price-wrapper .woocommerce-Price-amount {
    font-size: 1.5rem !important;
    font-weight: 700 !important;
    color: var(--gold) !important;
    font-family: var(--font-head) !important;
}

/* Tax, Shipping, Delivery - all small grey text */
.price-wrapper .wgm-info,
.price-wrapper .woocommerce-price-suffix,
.price-wrapper small,
.price-wrapper .wgm-tax,
.price-wrapper .wgm-shipping,
.price-wrapper .delivery-time-info,
.price-wrapper .wgm-delivery-time {
    font-size: 0.8rem !important;
    font-weight: 400 !important;
    color: #666 !important;
    margin-left: 3px !important;
}

.price-wrapper a {
    font-size: 0.8rem !important;
    font-weight: 400 !important;
    color: #666 !important;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
    margin-left: 0 !important;
    transition: color 0.2s, text-decoration-color 0.2s;
}

.price-wrapper a:hover {
    color: var(--black) !important;
    text-decoration-color: var(--black);
}

/* Separator between price and tax info */
.price-wrapper .price::after {
    content: ' ';
}

/* Hide delivery time in price area - show below button instead */
.price-wrapper .wgm-delivery-time,
.price-wrapper .delivery-time-info,
.price-wrapper .wgm-info.wgm-delivery-time-info {
    display: none !important;
}

/* Swiper Gallery Styles */
.main-gallery {
    width: 100%;
    margin-bottom: 10px;
}

.main-gallery .swiper-slide {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f8f8f8;
}

.main-gallery img {
    width: 100%;
    height: auto;
    display: block;
}

.thumbs-gallery {
    width: 100%;
    height: auto;
    padding-top: 10px;
    /* Space between main gallery and thumbnails */
}

.thumbs-gallery .swiper-slide {
    cursor: pointer;
    opacity: 0.6;
    transition: opacity 0.3s;
    aspect-ratio: 1 / 1;
    /* Keep thumbnails square */
    overflow: hidden;
    border-radius: 4px;
}

.thumbs-gallery .swiper-slide-thumb-active {
    opacity: 1;
    border: 2px solid var(--black);
}

.thumbs-gallery img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    /* Prevent distortion */
}

/* Swiper Navigation Arrows */
.swiper-button-next,
.swiper-button-prev {
    color: var(--black);
}



/* KEYFACTS (Short & Sweet) */
.keyfacts,
.woocommerce-product-details__short-description,
.keyfacts ul,
.p-short-desc ul {
    list-style: none;
    padding: 0;
    margin: 0 0 40px 0;
    /* Increased distance to variants */
    border-top: 1px solid #eee;
    padding-top: 12px;
}

.keyfacts strong,
.woocommerce-product-details__short-description strong {
    margin: 0 !important;
    padding: 0 !important;
    letter-spacing: normal !important;
    background: transparent !important;
    display: inline !important;
    word-spacing: normal !important;
}

.keyfacts ul li,
.p-short-desc ul li,
.woocommerce-product-details__short-description ul li {
    margin-bottom: 12px;
    font-size: 0.95rem;
    font-weight: 400;
    /* Reduced from 500 to let bold pop more naturally */
    display: block;
    position: relative;
    padding-left: 25px;
    color: var(--black);
    line-height: 1.4;
}

.keyfacts ul li::before,
.p-short-desc ul li::before,
.woocommerce-product-details__short-description ul li::before {
    content: '✓';
    color: var(--gold);
    font-weight: 900;
    position: absolute;
    left: 0;
    top: 1px;
}

/* Tax and Shipping Info - Single Line (Single Product Page Only) */
.single-product .wgm-info.woocommerce-de_price_taxrate,
.single-product .wgm-info.woocommerce_de_versandkosten {
    display: inline !important;
    color: #999 !important;
    font-size: 0.85rem;
}

.single-product .wgm-info.woocommerce-de_price_taxrate::after {
    content: ' ';
}

/* Delivery Time Styling with Status Indicators */
.shipping_de {
    display: flex !important;
    justify-content: center;
    align-items: center;
    margin-top: 15px;
    font-size: 0.9rem;
    color: #555;
}

.shipping_de small {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Status Indicator - Base Circle */
.shipping_de small::before {
    content: '';
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
}

/* Green Light - Fast Delivery (2-3 days) */
.shipping_de.delivery-time-ca-2-3-werktage small::before {
    background-color: #22c55e;
    box-shadow: 0 0 8px rgba(34, 197, 94, 0.5);
}

/* Orange Light - Medium Delivery (3-4, 3-5, 4-5 days) */
.shipping_de[class*="delivery-time-ca-3-4"] small::before,
.shipping_de[class*="delivery-time-ca-3-5"] small::before,
.shipping_de[class*="delivery-time-ca-4-5"] small::before {
    background-color: #f59e0b;
    box-shadow: 0 0 8px rgba(245, 158, 11, 0.5);
}

/* Orange Light - Long Delivery (5+ days, 8, 10, etc.) */
.shipping_de[class*="delivery-time-ca-5-"] small::before,
.shipping_de[class*="delivery-time-ca-6-"] small::before,
.shipping_de[class*="delivery-time-ca-7-"] small::before,
.shipping_de[class*="delivery-time-ca-8-"] small::before,
.shipping_de[class*="delivery-time-ca-9-"] small::before,
.shipping_de[class*="delivery-time-ca-10"] small::before,
.shipping_de[class*="delivery-time-10"] small::before,
.shipping_de[class*="delivery-time-8"] small::before,
.shipping_de[class*="delivery-time-9"] small::before {
    background-color: #f59e0b;
    box-shadow: 0 0 8px rgba(245, 158, 11, 0.5);
}

/* Red Light - Out of Stock */
.shipping_de[class*="nicht-vorratig"] small::before,
.shipping_de[class*="out-of-stock"] small::before {
    background-color: #ef4444;
    box-shadow: 0 0 8px rgba(239, 68, 68, 0.5);
}

/* Catch-all: any shipping_de with any delivery-time class gets at least an orange dot */
.shipping_de[class*="delivery-time-"] small::before {
    background-color: #f59e0b;
    box-shadow: 0 0 8px rgba(245, 158, 11, 0.5);
}

/* Override catch-all for green (must come AFTER catch-all) */
.shipping_de.delivery-time-ca-2-3-werktage small::before {
    background-color: #22c55e;
    box-shadow: 0 0 8px rgba(34, 197, 94, 0.5);
}

/* --- 5. VARIATION CARDS / FORM STYLING --- */
.form-label {
    font-size: 0.8rem;
    font-weight: 700;
    margin-bottom: 15px;
    display: block;
    color: #888;
    font-family: var(--font-head);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Custom Variation Grid */
.variations-custom-grid {
    margin-bottom: 30px;
}

.variation-row {
    margin-bottom: 20px;
}

/* Size Grid (Card Container) */
.size-grid {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

/* Hide the radio input */
.size-input {
    display: none;
}

/* Size Card Styling */
.size-card {
    position: relative;
    flex: 1;
    min-width: 120px;
    border: 2px solid #e0e0e0;
    background: #fff;
    padding: 20px;
    cursor: pointer;
    text-align: center;
    transition: all 0.2s ease;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    border-radius: 10px;
}

.size-card:hover {
    border-color: #999;
}

/* Selected State - Match Configurator */
.size-input:checked+.size-card {
    background: #e7f1ff;
    color: #111;
    border-color: #111;
    border-width: 2px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

/* Out of Stock State */
label.out-of-stock .size-card,
.size-card.out-of-stock {
    opacity: 0.5;
    pointer-events: none;
    filter: grayscale(100%);
    background-color: #fafafa;
}

label.out-of-stock:hover .size-card,
.size-card.out-of-stock:hover {
    border-color: #e0e0e0;
}

/* Checkmark Icon */
.size-card .check-mark {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 18px;
    height: 18px;
    background-color: #111;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.2s ease;
}

.size-card .check-mark svg {
    width: 10px;
    height: 10px;
    color: #fff;
    stroke: #fff;
}

/* Show checkmark when selected */
.size-input:checked+.size-card .check-mark {
    opacity: 1;
}

/* Card Title */
.sc-title {
    font-weight: 800;
    font-size: 0.9rem;
    font-family: var(--font-head);
    line-height: 1.2;
    text-transform: uppercase;
}

/* Card Dimensions */
.sc-dim {
    font-size: 0.75rem;
    opacity: 0.8;
    display: block;
}

/* Card Price */
.sc-price {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--gold);
    margin-top: 2px;
}

/* Price in selected state */
.size-input:checked+.size-card .sc-price {
    color: var(--gold);
}

/* "ab" prefix styling */
.sc-price small {
    font-size: 0.65rem;
    font-weight: 600;
    color: #767676;
    margin-right: 4px;
    vertical-align: middle;
}

/* Delivery time text below price */
.sc-delivery {
    font-size: 0.7rem;
    color: #999;
    display: block;
    margin-top: 3px;
}

/* Hide default WC variations table when using custom grid */
.variations_form .variations {
    display: none;
}

/* Force standard WC Variations specific styles (fallback) */
.variations_form {
    margin-bottom: 30px;
}

.variations {
    display: block;
    width: 100%;
    border: none;
    margin-bottom: 20px;
}

.variations tbody {
    display: block;
}

.variations tr {
    display: block;
    margin-bottom: 15px;
}

.variations td.label {
    display: block;
    padding: 0;
    margin-bottom: 5px;
    color: #888;
    font-weight: 700;
    font-size: 0.8rem;
    text-transform: uppercase;
}

.variations td.value {
    display: block;
    padding: 0;
}

.variations select {
    width: 100%;
    padding: 10px;
    border: 1px solid #ddd;
    font-family: var(--font-body);
}

/* --- 6. CTA BUTTON (Overrides standard WC) --- */
/* Style for both button and anchor elements */
.cta-button,
.single_add_to_cart_button {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    background: var(--black);
    color: #fff;
    border: none;
    padding: 20px 25px;
    font-family: var(--font-head);
    font-weight: 800;
    font-size: 1rem;
    cursor: pointer;
    transition: all 0.3s ease;
    letter-spacing: 1px;
    height: auto;
    text-transform: uppercase;
    text-decoration: none;
    box-sizing: border-box;
}

.cta-button:hover,
.single_add_to_cart_button:hover {
    background: #333;
    padding-right: 35px;
    transform: none;
    color: #fff;
}

/* Arrow styling */
.cta-button .cta-arrow,
.single_add_to_cart_button::after {
    content: '→';
    font-weight: 800;
    flex-shrink: 0;
}

.shipping-hint {
    font-size: 0.8rem;
    color: #666;
    margin-top: 12px;
    text-align: center;
    display: flex;
    justify-content: center;
    gap: 5px;
    align-items: center;
    padding-top: 0;
    border: none;
}

/* --- Express Info Tooltip --- */
.express-info-wrap {
    position: relative;
    display: inline-block;
    vertical-align: middle;
    margin-left: 6px;
    line-height: 1;
}

.express-info-icon {
    color: var(--gold);
    cursor: help;
    font-size: 0.9rem;
    opacity: 0.8;
    transition: opacity 0.2s ease;
}

.express-info-wrap:hover .express-info-icon {
    opacity: 1;
}

.express-tooltip {
    position: absolute;
    bottom: 125%;
    left: 50%;
    transform: translateX(-50%);
    background: #fff;
    border: 1px solid #eee;
    padding: 15px;
    border-radius: 8px;
    box-shadow: 0 10px 25px rgba(0,0,0,0.1);
    z-index: 100;
    width: 260px;
    opacity: 0;
    visibility: hidden;
    transition: all 0.3s ease;
    pointer-events: none;
}

.express-info-wrap:hover .express-tooltip {
    opacity: 1;
    visibility: visible;
    bottom: 150%;
}

.express-tooltip-item {
    margin-bottom: 20px;
}

.express-tooltip-item:last-child {
    margin-bottom: 0;
}

.express-item-head {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
}

.express-item-head i {
    color: var(--gold);
    font-size: 1.1rem;
}

.express-item-head strong {
    color: var(--black);
    font-family: var(--font-head);
    font-size: 0.9rem;
}

.express-item-body {
    padding-left: 31px; /* Align with head text */
}

.express-row {
    display: flex;
    justify-content: space-between;
    margin-bottom: 6px;
    font-size: 0.8rem;
    line-height: 1.4;
}

.express-label {
    color: #888;
    font-weight: 500;
}

.express-value {
    color: #444;
    font-weight: 600;
    text-align: right;
}

.express-tooltip-item.is-active {
    background: #fdfaf0;
    border: 1px solid var(--gold);
    border-radius: 8px;
    padding: 15px;
    margin-left: -10px;
    margin-right: -10px;
}

.express-tooltip-item.is-active strong {
    color: var(--gold);
}

.express-tooltip-item.is-active .express-value {
    color: var(--black);
}

.express-tooltip-item:not(.is-active) {
    opacity: 0.45;
    filter: grayscale(1);
    transition: all 0.3s ease;
}

.express-tooltip-item:not(.is-active) strong,
.express-tooltip-item:not(.is-active) .express-value {
    font-weight: 500;
}

/* --- Mobile Express Tooltip: fixed-position modal + tap trigger --- */
@media (max-width: 600px) {
    /* Disable CSS hover on touch — JS handles open/close via .is-open */
    .express-info-wrap:hover .express-tooltip {
        opacity: 0;
        visibility: hidden;
        bottom: 125%;
    }

    /* Tooltip becomes a centered fixed modal */
    .express-info-wrap .express-tooltip {
        position: fixed !important;
        left: 20px !important;
        right: 20px !important;
        width: auto !important;
        top: 50% !important;
        transform: translateY(-50%) !important;
        bottom: auto !important;
        z-index: 9999 !important;
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.2s ease;
        pointer-events: auto;
    }

    .express-info-wrap.is-open .express-tooltip {
        opacity: 1;
        visibility: visible;
    }

    /* Invisible backdrop — captures taps outside tooltip to close it, no visual dimming */
    .express-tooltip-backdrop {
        display: none;
        position: fixed;
        inset: 0;
        background: transparent;
        z-index: 9998;
    }
    .express-tooltip-backdrop.is-visible {
        display: block;
    }

    /* Close (×) button injected by JS */
    .express-tooltip-close {
        display: block;
        text-align: right;
        font-size: 1.3rem;
        line-height: 1;
        cursor: pointer;
        margin-bottom: 10px;
        color: var(--text-grey, #888);
    }

    /* iOS Safari only fires click on non-interactive elements with cursor:pointer */
    .express-info-icon {
        font-size: 1.1rem !important;
        padding: 6px;
        cursor: pointer !important;
    }
}

.cart-item-delivery-time {
    margin-top: 8px;
    font-size: 0.85rem;
    color: #444;
    display: flex;
    gap: 5px;
}

.delivery-time-label {
    color: #888;
    font-weight: 500;
}

.delivery-time-value {
    color: #222;
    font-weight: 600;
}

/* Tooltip Arrow */
.express-tooltip::after {
    content: '';
    position: absolute;
    top: 100%;
    left: 50%;
    margin-left: -8px;
    border-width: 8px;
    border-style: solid;
    border-color: #fff transparent transparent transparent;
}

/* Hide standard German Market delivery time (usually hooked separately) to use ours */
.delivery-time-info,
.wgm-delivery-time {
    display: none !important;
}

.dot {
    width: 8px;
    height: 8px;
    background: #4caf50;
    border-radius: 50%;
}

/* --- 7. TABS (Bottom) --- */
.woocommerce-tabs.custom-v3-tabs {
    margin-top: 60px;
    border-top: 1px solid #eee;
    padding-top: 50px;
}

ul.tabs {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 0 40px 0 !important;
    display: flex;
    gap: 30px;
    border-bottom: 2px solid #eee;
    background: transparent !important;
    border-top: none !important;
    border-left: none !important;
    border-right: none !important;
}

ul.tabs li {
    padding-bottom: 15px !important;
    margin-bottom: -2px !important;
    cursor: pointer;
    background: transparent !important;
    border: none !important;
}

ul.tabs li.active {
    border-bottom: 2px solid var(--black) !important;
    color: var(--black);
}

ul.tabs li a {
    font-family: var(--font-head);
    font-weight: 700;
    font-size: 0.85rem;
    color: #999;
    text-transform: uppercase;
    letter-spacing: 1px;
    padding: 0 !important;
}

ul.tabs li.active a {
    color: var(--black);
}

.panel {
    display: none;
    max-width: 800px;
}

.panel.active {
    display: block;
    animation: fadeIn 0.3s;
}

@keyframes fadeIn {
    from {
        opacity: 0
    }

    to {
        opacity: 1
    }
}

/* Table Styles Override */
.shop_attributes {
    width: 100%;
    border-collapse: collapse;
    border: none;
}

.shop_attributes th,
.shop_attributes td {
    padding: 12px 0;
    border-bottom: 1px solid #eee;
    text-align: left;
    background: transparent;
    font-style: normal;
}

.shop_attributes th {
    width: 30%;
    font-weight: 700;
    color: var(--black);
}

.shop_attributes tr:nth-child(even) td,
.shop_attributes tr:nth-child(even) th {
    background: transparent;
}

/* Legal Hooks / Meta Section */
.legal-hooks {
    margin-top: 20px;
    font-size: 0.8rem;
    color: #888;
}

/* Share Icons SVG global */
.share-icons svg {
    width: 14px;
    height: 14px;
    fill: currentColor;
    position: relative;
    top: 1px;
}

/* Mobile Responsive Tabs */
@media (max-width: 768px) {
    ul.tabs {
        flex-wrap: wrap;
        gap: 15px;
    }

    ul.tabs li {
        flex: 1 1 auto;
        text-align: center;
    }

    ul.tabs li a {
        font-size: 0.75rem;
    }

    .woocommerce-tabs.custom-v3-tabs {
        margin-top: 40px;
        padding-top: 30px;
    }

    h1.product-title,
    h1.product_title {
        font-size: 1.8rem;
    }

    .product-price,
    p.price {
        font-size: 1.2rem;
    }

    /* Mobile Product Layout */
    .product-wrapper {
        grid-template-columns: 1fr;
        gap: 30px;
        padding: 20px 15px;
        align-items: start;
        /* Safety for Swiper height calculation */
    }

    /* Mobile Gallery Optimization (Atomion Style) */
    .product-gallery-wrapper {
        width: 100%;
        max-width: 100%;
        margin-bottom: 20px;
    }

    /* Thumbnail strip: fixed height so Swiper can calculate slide sizes */
    .swiper.thumbs-gallery {
        height: 80px;
    }

    /* Hide prev/next arrows on touch — swipe is the interaction model */
    .swiper-button-next,
    .swiper-button-prev {
        display: none;
    }

    /* Safety: prevent any Swiper overflow from widening the page */
    .product-wrapper {
        overflow-x: hidden;
    }

    .woocommerce-product-gallery {
        opacity: 1 !important;
        width: 100% !important;
    }

    .woocommerce-product-gallery .woocommerce-product-gallery__wrapper {
        /* Let Flexslider handle width */
        margin: 0 !important;
    }



    .woocommerce-product-gallery img {
        width: 100% !important;
        height: auto !important;
        object-fit: cover;
    }

    /* Gallery Thumbnails - Horizontal scroll on mobile */
    .woocommerce-product-gallery .flex-control-thumbs,
    .woocommerce-product-gallery ol.flex-control-nav {
        display: flex;
        flex-wrap: nowrap;
        overflow-x: auto;
        gap: 8px;
        padding: 10px 0;
        margin: 0 !important;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: thin;
    }

    .woocommerce-product-gallery .flex-control-thumbs li,
    .woocommerce-product-gallery ol.flex-control-nav li {
        flex: 0 0 auto;
        width: 60px !important;
        padding: 0 !important;
    }

    .woocommerce-product-gallery .flex-control-thumbs li img,
    .woocommerce-product-gallery ol.flex-control-nav li img {
        width: 60px !important;
        height: 60px !important;
        object-fit: cover;
        border: 2px solid transparent;
        transition: border-color 0.2s;
    }

    .woocommerce-product-gallery .flex-control-thumbs li img.flex-active,
    .woocommerce-product-gallery .flex-control-thumbs li img:hover {
        border-color: var(--black);
    }

    /* Hide zoom trigger on mobile (touch devices use pinch) */
    .woocommerce-product-gallery__trigger {
        display: none;
    }

    /* Mobile Product Info */
    .product-info-sticky {
        position: relative !important;
        top: auto !important;
        padding: 0 9px;
        max-width: 100%;
        overflow-wrap: break-word;
        word-break: break-word;
    }

    /* Compact Price on Mobile */
    .price-wrapper {
        gap: 3px;
        margin-bottom: 5px;
    }

    /* Keyfacts Mobile */
    .keyfacts,
    .woocommerce-product-details__short-description {
        padding-top: 10px;
        margin-bottom: 15px;
    }

    .keyfacts ul li,
    .woocommerce-product-details__short-description ul li {
        font-size: 0.9rem;
        margin-bottom: 8px;
    }

    /* Size Cards Mobile — Grid für gleichmäßige Breite */
    .size-grid {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(90px, 1fr));
        gap: 8px;
    }

    .size-card {
        min-width: unset;
        width: 100%;
        padding: 20px 8px 12px;
    }

    .sc-title {
        font-size: 0.8rem;
    }

    /* CTA Button Mobile */
    .cta-button,
    .single_add_to_cart_button {
        padding: 16px 20px;
        font-size: 0.9rem;
    }

    /* Share Box Mobile */
    .share-box {
        flex-wrap: wrap;
        gap: 10px;
    }

    .share-icons {
        width: 100%;
        justify-content: flex-start;
    }


}

/* --- Desktop Gallery Restoration (min-width) --- */
@media(min-width: 769px) {

    /* Reset gallery wrapper for desktop */
    .product-gallery-wrapper {
        width: 100%;
        margin-bottom: 0;
    }

    .woocommerce-product-gallery {
        opacity: 1 !important;
        width: 100% !important;
    }

    .woocommerce-product-gallery .woocommerce-product-gallery__wrapper {
        width: 100% !important;
    }

    /* Gallery thumbnails - grid layout on desktop */
    .woocommerce-product-gallery .flex-control-thumbs,
    .woocommerce-product-gallery ol.flex-control-nav {
        display: flex;
        flex-wrap: wrap;
        overflow-x: visible;
        gap: 10px;
        padding: 15px 0;
        margin: 0 !important;
    }

    .woocommerce-product-gallery .flex-control-thumbs li,
    .woocommerce-product-gallery ol.flex-control-nav li {
        flex: 0 0 auto;
        width: auto !important;
        padding: 0 !important;
    }

    .woocommerce-product-gallery .flex-control-thumbs li img,
    .woocommerce-product-gallery ol.flex-control-nav li img {
        width: 80px !important;
        height: 80px !important;
        object-fit: cover;
        border: 2px solid transparent;
        cursor: pointer;
        transition: border-color 0.2s;
    }

    .woocommerce-product-gallery .flex-control-thumbs li img.flex-active,
    .woocommerce-product-gallery .flex-control-thumbs li img:hover {
        border-color: var(--black);
    }

    /* Show zoom trigger on desktop */
    .woocommerce-product-gallery__trigger {
        display: block;
    }

    /* Sticky info on desktop */
    .product-info-sticky {
        position: sticky;
        top: 120px;
        padding: 0;
    }

    /* Product wrapper grid */
    .product-wrapper {
        padding: 40px 20px;
    }
}

/* --- HOMEPAGE REDESIGN (V3.1 - Modern Heritage) --- */

/* 1. HERO MODERN */
.hero-modern {
    background: var(--bg-body);
    padding: 80px 40px;
    /* min-height: 80vh; */
    display: flex;
    align-items: center;
}

.hero-modern-inner {
    max-width: var(--container);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr;
    gap: 60px;
    align-items: center;
}

.hero-text {
    text-align: left;
}

.hero-modern .eyebrow {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--gold);
    letter-spacing: 2px;
    text-transform: uppercase;
    display: block;
    margin-bottom: 20px;
    font-family: var(--font-head);
}

.hero-modern h1 {
    font-size: 2.8rem;
    line-height: 1.1;
    font-weight: 900;
    margin-bottom: 30px;
    color: var(--black);
}

.hero-sub {
    font-size: 1.1rem;
    color: #555;
    margin-bottom: 50px;
    max-width: 500px;
    line-height: 1.6;
}

.hero-buttons {
    display: flex;
    gap: 20px;
    align-items: center;
    flex-wrap: wrap;
}

.hero-buttons .btn {
    display: inline-block !important;
    width: auto !important;
    flex: 0 0 auto;
}

.btn-primary {
    background: var(--black);
    color: white;
    padding: 16px 28px;
    font-weight: 700;
    font-family: var(--font-head);
    border: 1px solid var(--black);
    transition: all 0.3s ease;
}

.btn-primary:hover {
    background: transparent;
    color: var(--black);
}

.btn-text {
    background: none;
    border: none;
    color: var(--black);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 5px;
    padding: 0;
}

.hero-visual {
    position: relative;
    display: flex;
    justify-content: center;
}

.hero-img-blobs {
    position: relative;
    z-index: 1;
}

.hero-main-img {
    width: 100%;
    max-width: 500px;
    border-radius: 20px;
    /* Soft modern corners */
    box-shadow: 0 30px 60px rgba(0, 0, 0, 0.1);
    transform: rotate(2deg);
    transition: transform 0.5s ease;
}

.hero-main-img:hover {
    transform: rotate(0deg) scale(1.02);
}

.blob-badge {
    position: absolute;
    bottom: -30px;
    left: -30px;
    width: 120px;
    height: 120px;
    background: var(--gold);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-weight: 800;
    text-align: center;
    line-height: 1.2;
    transform: rotate(-15deg);
    box-shadow: 0 10px 30px rgba(166, 124, 82, 0.4);
    animation: floatBadge 4s ease-in-out infinite;
}

@keyframes floatBadge {

    0%,
    100% {
        transform: translateY(0) rotate(-15deg);
    }

    50% {
        transform: translateY(-10px) rotate(-15deg);
    }
}

@media(min-width: 1000px) {
    .hero-modern-inner {
        grid-template-columns: 1fr 1fr;
    }

    .hero-modern h1 {
        font-size: 3.2rem;
    }
}

/* 2. TRUST BAR */
.trust-bar {
    background: white;
    padding: 40px 0;
    border-bottom: 1px solid #eee;
}

.trust-grid {
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 40px;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
    gap: 30px;
}

.trust-item {
    display: flex;
    align-items: center;
    gap: 15px;
    font-weight: 600;
    font-family: var(--font-head);
    font-size: 0.85rem;
    color: var(--black);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.trust-icon {
    font-size: 1.4rem;
}

/* 3. STEPS SECTION */
.steps-section {
    padding: 100px 40px;
    background: #fdfbf7;
}

.steps-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 40px;
    margin-top: 60px;
}

.step-card {
    background: white;
    padding: 40px;
    border-radius: 8px;
    border: 1px solid #eee;
    transition: transform 0.3s;
}

.step-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
}

.step-number {
    font-size: 4rem;
    font-weight: 900;
    color: #f0ebe5;
    line-height: 1;
    margin-bottom: 20px;
    font-family: var(--font-head);
}

.step-card h3 {
    margin-bottom: 15px;
    font-size: 1.2rem;
}

.step-card p {
    color: #666;
    font-size: 0.95rem;
}

/* 4. PRODUCTS AREA (Uses existing classes mostly, added btn-secondary) */
.btn-secondary {
    display: inline-block;
    padding: 15px 40px;
    border: 2px solid var(--black);
    color: var(--black);
    background: transparent;
    font-weight: 700;
    text-transform: uppercase;
    font-family: var(--font-head);
    transition: all 0.3s;
}

.btn-secondary:hover {
    background: var(--black);
    color: white;
}

/* 5. HIGHLIGHT SECTION */
.highlight-section {
    padding: 100px 40px;
    background: white;
}

.highlight-inner {
    max-width: var(--container);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr;
    gap: 80px;
    align-items: center;
}

.highlight-content h2 {
    font-size: 3rem;
    margin-bottom: 30px;
    font-weight: 800;
}

.highlight-content p {
    font-size: 1.1rem;
    color: #555;
    margin-bottom: 40px;
    line-height: 1.7;
}

.check-list {
    list-style: none;
    padding: 0;
}

.check-list li {
    margin-bottom: 15px;
    font-size: 1rem;
    font-weight: 600;
    color: var(--black);
}

@media(min-width: 1000px) {
    .highlight-inner {
        grid-template-columns: 1fr 1fr;
    }
}

.highlight-image img {
    width: 100%;
    height: auto;
    border-radius: 20px;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08);
    display: block;
}

/* 6. B2B TEASER */
.b2b-teaser {
    background: var(--black);
    color: white;
    padding: 100px 40px;
    text-align: center;
}

.b2b-inner {
    max-width: 700px;
    margin: 0 auto;
}

.b2b-inner h2 {
    font-size: 2.5rem;
    margin-bottom: 20px;
    color: white;
}

.b2b-inner p {
    color: #aaa;
    font-size: 1.1rem;
    margin-bottom: 40px;
}

.btn-outline-white {
    display: inline-block;
    padding: 15px 40px;
    border: 2px solid white;
    color: white;
    font-weight: 700;
    text-transform: uppercase;
    font-family: var(--font-head);
    transition: all 0.3s;
}

.btn-outline-white:hover {
    background: white;
    color: var(--black);
}

/* 7. SEO CONTENT */
.seo-content-area {
    padding: 80px 40px;
    background: #fafafa;
    text-align: center;
}

.seo-content-area h3 {
    margin-bottom: 20px;
    font-size: 1.5rem;
}

.seo-content-area p {
    max-width: 800px;
    margin: 0 auto 20px;
    color: #777;
    line-height: 1.8;
}

/* --- PRODUCT ACCORDION (Atomion Style) --- */
.product-page-accordion {
    margin-top: 60px;
    border-top: 1px solid #eee;
}

.product-section {
    border-bottom: 1px solid #eee;
}

.accordion-header {
    padding: 20px 0;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: transparent;
    transition: all 0.2s;
}

.accordion-header:hover {
    color: var(--gold);
}

.accordion-header h2.section-heading {
    margin: 0;
    font-size: 1rem;
    font-weight: 700;
    text-transform: uppercase;
    font-family: var(--font-head);
    letter-spacing: 1px;
}

.accordion-icon {
    font-size: 1rem;
    color: #ccc;
    transition: transform 0.3s;
}

.accordion-header.open .accordion-icon {
    color: var(--black);
    /* Icon rotation handled by class swap or we can rotate */
}

.accordion-content {
    padding-bottom: 30px;
    animation: slideDown 0.3s ease-out;
}

.accordion-content--hidden {
    display: none;
}

.accordion-content .entry-content {
    font-size: 0.95rem;
    line-height: 1.6;
    color: #555;
    max-width: 800px;
}

@keyframes slideDown {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Hide old tabs if present */
.woocommerce-tabs.custom-v3-tabs {
    display: none !important;
}

/* --- PRODUCT META & SHARE (Atomion Style) --- */
.product_meta {
    border-top: 1px solid #eee;
    margin-top: 30px;
    padding-top: 20px;
    font-size: 0.85rem;
    color: #888;
    line-height: 1.8;
    text-transform: uppercase;
    font-family: var(--font-head);
}

.product_meta>span {
    display: block;
    margin-bottom: 5px;
}

/* Labels (SKU:, Categories:, etc.) */
.sku_wrapper,
.posted_in,
.tagged_as {
    font-weight: 700;
    color: var(--black);
    display: block;
}

.sku_wrapper span,
.posted_in a,
.tagged_as a {
    font-weight: 400;
    color: #666;
    margin-left: 5px;
}

.posted_in a:hover,
.tagged_as a:hover {
    color: var(--gold);
}

/* Share Box */
.share-box {
    border-top: 1px solid #eee;
    margin-top: 20px;
    padding-top: 20px;
    display: flex;
    align-items: center;
    gap: 15px;
}

.share-title {
    font-size: 0.85rem;
    font-weight: 800;
    text-transform: uppercase;
    font-family: var(--font-head);
    color: var(--black);
}

.share-icons {
    display: flex;
    gap: 15px;
}

.share-icons a {
    color: #999;
    font-size: 1.1rem;
    transition: color 0.2s;
}

.share-icons a:hover {
    color: var(--black);
}

/* --- Swiper Gallery Styles --- */
.product-gallery-swiper-wrapper {
    width: 100%;
    overflow: hidden;
    /* CRITICAL: Prevents infinite loop */
    position: relative;
    display: block;
}

/* Main Gallery Square Ratio */
.swiper.main-gallery {
    width: 100% !important;
    max-width: 100% !important;
    aspect-ratio: 1 / 1;
    height: auto;
    max-height: 80vh;
    /* Safety limit */
    margin-bottom: 10px;
    background: #f9f9f9;
    overflow: hidden !important;
    position: relative !important;
}

.swiper.main-gallery .swiper-wrapper {
    display: flex;
    /* Ensure flex behavior */
    width: 100%;
    height: 100%;
}

.swiper.main-gallery .swiper-slide {
    width: 100%;
    /* Force slide to fill container */
    height: 100%;
    flex-shrink: 0;
    /* Prevent shrinking */
}

.swiper.main-gallery .swiper-slide img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
    cursor: zoom-in;
}

/* Navigation Arrows */
.swiper-button-next,
.swiper-button-prev {
    color: var(--black, #111) !important;
    background: rgba(255, 255, 255, 0.8);
    width: 40px !important;
    height: 40px !important;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s;
}

.swiper-button-next::after,
.swiper-button-prev::after {
    font-size: 18px !important;
    font-weight: 800;
}

.swiper-button-next {
    right: 15px !important;
}

.swiper-button-prev {
    left: 15px !important;
}

.swiper-button-next:hover,
.swiper-button-prev:hover {
    background: #fff;
    transform: scale(1.1);
}

/* Thumbs Gallery */
.swiper.thumbs-gallery {
    box-sizing: border-box;
    padding: 12px 0;
}

.swiper.thumbs-gallery .swiper-slide {
    height: 100%;
    opacity: 0.4;
    cursor: pointer;
    transition: all 0.2s;
    border: 1px solid transparent;
}

.swiper.thumbs-gallery .swiper-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Active Thumb State */
.swiper.thumbs-gallery .swiper-slide-thumb-active {
    opacity: 1;
    border-color: var(--black, #111);
}

/* Active Thumb State */
.swiper.thumbs-gallery .swiper-slide-thumb-active {
    opacity: 1;
    border: 2px solid var(--black, #111);
}

/* ---------------------------------------------------------
   SIMPLE PRODUCT CONFIGURATOR STYLES
--------------------------------------------------------- */
/* Hide standard elements on simple product pages to prioritize configurator */
.product-type-simple .cart .quantity,
.product-type-simple .cart .single_add_to_cart_button,
.product-type-simple #wc-stripe-payment-request-wrapper,
.product-type-simple .wc-stripe-payment-request-wrapper,
.product-type-simple #wc-stripe-payment-request-button-separator,
.product-type-simple iframe[name*="__privateStripeFrame"],
.product-type-simple #wc-stripe-express-checkout-element {
    display: none !important;
}

/* ==========================================================================
   🛍️ WARENKORB V3 REDESIGN (CART)
   ========================================================================== */

/* Hide WooCommerce Defaults */
.woocommerce-cart table.cart,
.woocommerce-cart .cart-collaterals h2:first-of-type,
.woocommerce-cart .woocommerce-shipping-calculator,
.woocommerce-cart-form__contents thead {
    display: none !important;
}

/* Base Layout */
.skyline-cart-container {
    padding: 40px 20px;
}

.skyline-cart-container h1 {
    font-family: 'Montserrat', sans-serif;
    font-size: 2rem;
    margin-bottom: 30px;
    text-transform: uppercase;
    letter-spacing: -0.5px;
}

.cart-layout {
    display: grid;
    grid-template-columns: 1.8fr 1fr;
    gap: 40px;
    align-items: start;
}

@media (max-width: 900px) {
    .cart-layout {
        grid-template-columns: 1fr;
    }
}

/* WARENKORB ITEMS (LEFT LIST) */
.cart-items-wrapper {
    background: var(--white);
    border-radius: 12px;
    padding: 30px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03);
}

.cart-header {
    display: grid;
    grid-template-columns: 120px 1fr 150px 130px;
    gap: 20px;
    font-size: 0.8rem;
    text-transform: uppercase;
    font-weight: 600;
    color: #777;
    border-bottom: 1px solid var(--border);
    padding-bottom: 15px;
    margin-bottom: 20px;
}

.cart-header>div:first-child {
    grid-column: 1 / 3;
}

.cart-item {
    display: grid;
    grid-template-columns: 120px 1fr 150px 130px;
    gap: 20px;
    align-items: start;
    padding-bottom: 25px;
    border-bottom: 1px solid var(--border);
    margin-bottom: 25px;
}

.cart-item:last-child {
    border-bottom: none;
    padding-bottom: 0;
    margin-bottom: 0;
}

/* Item Image */
.item-image-wrap {
    width: 100px;
    height: 100px;
    background: #f4f4f4;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px;
    box-sizing: border-box;
}

.item-image-wrap img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* Item Details */
.item-details h3 {
    font-family: 'Montserrat', sans-serif;
    font-size: 1.1rem;
    margin: 0 0 5px 0;
}

.item-details h3 a {
    color: var(--black);
}

.item-price-mobile {
    display: none;
    color: var(--black);
    font-weight: 600;
    margin-bottom: 10px;
}

.item-price-mobile .per-piece {
    font-weight: 400;
    color: #777;
    margin-left: 2px;
}

/* Clean Custom Meta Data (Variations) */
.item-meta {
    list-style: none;
    padding: 12px 15px;
    margin: 10px 0 0;
    font-size: 0.85rem;
    color: #555;
    background: var(--grey-light);
    border-radius: 6px;
}

.item-meta li {
    margin-bottom: 5px;
    display: flex;
}

.item-meta li:last-child {
    margin-bottom: 0;
}

.item-meta li span {
    font-weight: 600;
    color: var(--black);
    width: 90px;
    flex-shrink: 0;
}

dl.variation {
    background: var(--grey-light);
    padding: 12px 15px;
    border-radius: 6px;
    font-size: 0.85rem;
    margin-top: 10px;
}

dl.variation dt {
    font-weight: 700;
    float: left;
    clear: left;
    margin-right: 5px;
}

dl.variation dd {
    margin: 0 0 5px 0;
}

dl.variation p {
    margin: 0 !important;
}

.backorder_notification {
    color: #e53e3e;
    font-size: 0.85rem;
    margin-top: 10px;
}

/* Quantity & Action */
.item-quantity-actions {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.qty-selector {
    display: flex;
    align-items: center;
    border: 1px solid var(--border);
    border-radius: 6px;
    overflow: hidden;
    height: 44px;
    width: 110px;
}

.qty-btn {
    background: #fff;
    border: none;
    width: 44px;
    height: 44px;
    min-height: 44px;
    cursor: pointer;
    font-size: 1.2rem;
    transition: background 0.2s;
    color: var(--black);
    display: flex;
    justify-content: center;
    align-items: center;
}

.qty-btn:hover {
    background: #f0f0f0;
}

.qty-input {
    width: 40px !important;
    height: 40px !important;
    text-align: center;
    border: none !important;
    border-left: 1px solid var(--border) !important;
    border-right: 1px solid var(--border) !important;
    font-family: 'Inter', sans-serif;
    font-weight: 600;
    padding: 0 !important;
    margin: 0 !important;
    -moz-appearance: textfield;
    appearance: textfield;
}

.qty-input::-webkit-outer-spin-button,
.qty-input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.remove-btn {
    color: #999;
    text-decoration: underline;
    font-size: 0.8rem;
    cursor: pointer;
    margin-top: 10px;
    display: inline-flex;
    align-items: center;
    padding: 10px 6px;
    min-height: 44px;
    transition: color 0.2s;
}

.remove-btn:hover {
    color: #e53e3e;
}

/* Subtotal */
.item-total {
    font-weight: 700;
    font-size: 1.1rem;
    text-align: right;
}

/* Legal Info Text (German Market) */
.cart-items-wrapper .wc-gzd-cart-info,
.cart-items-wrapper>p:last-of-type,
.woocommerce-shipping-calculator {
    font-size: 0.75rem;
    color: var(--text-grey);
    margin-top: 15px;
    padding-top: 20px;
    border-top: 1px solid var(--border);
    margin-bottom: 0;
}

.cart-items-wrapper .wc-gzd-cart-info a,
.cart-items-wrapper>p:last-of-type a,
.woocommerce-shipping-calculator a {
    text-decoration: underline;
    color: var(--text-grey);
    cursor: pointer;
    transition: color 0.2s;
    font-weight: 600;
}

.cart-items-wrapper .wc-gzd-cart-info a:hover,
.cart-items-wrapper>p:last-of-type a:hover,
.woocommerce-shipping-calculator a:hover {
    color: var(--black);
}

/* 3. Fix Unclickable Links */
.coupon-toggle,
.woocommerce-shipping-calculator .shipping-calculator-button {
    font-size: 13px;
    color: var(--text-grey);
    text-decoration: underline !important;
    text-underline-offset: 3px;
    cursor: pointer;
    transition: color 0.2s;
    background: none;
    border: none;
    padding: 0;
}

.coupon-toggle:hover,
.woocommerce-shipping-calculator .shipping-calculator-button:hover {
    color: var(--black);
}

/* Style the legal text box discreetly */
.cart-items-wrapper .woocommerce-shipping-calculator {
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid var(--border);
    font-size: 12px;
    color: var(--text-grey);
}

/* WARENKORB SUMMARY (RIGHT) */
.cart-summary {
    background: var(--white);
    border-radius: 12px;
    padding: 30px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03);
    position: sticky;
    top: 40px;
    min-width: 0;
    z-index: 10;
    box-sizing: border-box;
}

/* Shipping Progress Bar Styling (Moved from functions.php) */
.shipping-progress-wrap {
    background: #FCF9F5;
    border: 1px solid #EBE4D8;
    padding: 18px 20px;
    border-radius: 8px;
    margin-bottom: 30px;
    text-align: center;
    width: 100%;
    box-sizing: border-box;
}

.shipping-progress-wrap .shipping-text {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--gold);
    margin-bottom: 12px;
}

.shipping-progress-wrap.is-free .shipping-text {
    margin-bottom: 0;
}

.shipping-progress-wrap .progress-bar {
    width: 100%;
    height: 6px;
    background: #EBE4D8;
    border-radius: 10px;
    overflow: hidden;
}

.shipping-progress-wrap .progress-fill {
    height: 100%;
    background: var(--gold);
    transition: width 0.4s ease;
    border-radius: 10px;
}

.woocommerce-cart .cart-collaterals .cart_totals {
    float: none !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* ==============================
   Shipping Cards Layout (NEW)
   ============================== */

/* German Market legal text below cart items
   The text + links are loose text nodes directly in the form,
   so we set font-size on the form itself and reset it on the table */
.woocommerce-cart-form {
    font-size: 0.72rem;
    color: var(--text-grey);
    line-height: 1.5;
}

/* Reset font-size for the actual cart items table inside the form */
.woocommerce-cart-form .cart-items-wrapper,
.woocommerce-cart-form table,
.woocommerce-cart-form .shop_table {
    font-size: 1rem;
    color: var(--black, #111);
}

.woocommerce-cart-form a.wgm-versandkosten,
.woocommerce-cart-form a.wgm-zahlungsarten,
.woocommerce-cart-form a.wgm-widerruf {
    color: var(--black);
    text-decoration: underline;
    text-underline-offset: 2px;
    transition: color 0.2s;
}

.woocommerce-cart-form a.wgm-versandkosten:hover,
.woocommerce-cart-form a.wgm-zahlungsarten:hover,
.woocommerce-cart-form a.wgm-widerruf:hover {
    color: var(--gold);
}

/* The shipping row uses colspan=2, so we need a full-width td */
.cart-summary table.shop_table tr.shipping td[colspan="2"] {
    text-align: left !important;
    padding: 0;
}

/* Suppress WooCommerce smallscreen data-title pseudo-label for shipping row */
.cart-summary table.shop_table tr.shipping td::before {
    display: none !important;
}

.shipping-section-title {
    font-size: 0.95rem;
    font-weight: 600;
    margin: 10px 0 8px;
    color: var(--black);
}

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

.shipping-card {
    border: 1px solid var(--border, #ddd);
    border-radius: 8px;
    margin-bottom: 8px;
    transition: border-color 0.2s;
}

.shipping-card--active {
    border-color: var(--accent);
    background-color: #FCF9F5;
}

.shipping-card:last-child {
    margin-bottom: 0;
}

.shipping-card__label {
    display: flex !important;
    align-items: center;
    padding: 12px 14px;
    cursor: pointer;
    margin: 0;
    font-size: 0.88rem;
    color: var(--black);
    gap: 10px;
    width: 100%;
    box-sizing: border-box;
}

.shipping-card__radio {
    display: inline-block !important;
    appearance: auto !important;
    -webkit-appearance: auto !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    flex-shrink: 0;
    accent-color: var(--black, #111);
}

/* Remove WooCommerce fake radio pseudo-elements */
.shipping-card__radio+.shipping-card__name::before,
.woocommerce-page input[type=radio].shipping_method+label::before,
.woocommerce input[type=radio].shipping_method+label::before {
    display: none !important;
}

/* Override WooCommerce theme-compat hiding radio buttons */
.woocommerce-page input[type=radio].shipping_method,
.woocommerce input[type=radio].shipping_method {
    display: inline-block !important;
    appearance: auto !important;
    -webkit-appearance: auto !important;
    width: auto !important;
    height: auto !important;
}

.shipping-card__name {
    flex: 1;
    font-weight: 400;
}

.shipping-card__cost {
    text-align: right;
    font-weight: 600;
    white-space: nowrap;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    color: var(--black);
}

.shipping-card__tax {
    display: block;
    font-size: 0.72rem;
    font-weight: 400;
    color: var(--text-grey, #888);
    margin-top: 2px;
}

.shipping-card__free {
    font-weight: 400;
    color: var(--text-grey, #888);
}

p.woocommerce-shipping-destination,
.cart-summary table.shop_table td small.woocommerce-shipping-contents {
    display: none !important;
}

/* Coupon form hidden by default */
.coupon-form-wrap {
    display: none;
}

/* ==============================
   Coupon Toggle & Form Fixes
   ============================== */
.coupon-toggle-wrap {
    text-align: center;
}

.coupon-toggle {
    cursor: pointer;
    text-decoration: underline;
    font-size: 0.85rem;
    color: var(--black, #111);
}

.coupon-form-wrap {
    margin-top: 12px;
}

.coupon-form-wrap form {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: stretch;
}

.coupon-form-wrap input.input-text {
    flex: 1;
    min-width: 0;
    padding: 10px 12px !important;
    border: 1px solid var(--border, #ddd) !important;
    border-radius: 6px !important;
    font-size: 0.85rem;
    box-sizing: border-box;
    height: auto !important;
}

.coupon-form-wrap button.button {
    padding: 10px 18px !important;
    background: var(--black, #111) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 6px !important;
    cursor: pointer;
    font-size: 0.82rem;
    font-weight: 600;
    white-space: nowrap;
    height: auto !important;
}

/* Contextual Overrides for Coupon & Summary (Smaller) */
.coupon-form-wrap .woocommerce-error,
.coupon-form-wrap .woocommerce-message,
.coupon-form-wrap .woocommerce-info,
.cart-summary .woocommerce-error,
.cart-summary .woocommerce-message,
.cart-summary .woocommerce-info {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 8px !important;
    margin: 10px 0 !important;
    padding: 12px 14px !important;
    font-size: 0.78rem !important;
    border-radius: 6px !important;
    width: 100% !important;
    box-shadow: none !important; /* Flat for nested areas */
    border: 1px solid var(--border) !important;
    border-left: 3px solid var(--gold) !important;
}

.cart-summary .woocommerce-message .button {
    font-size: 0.7rem !important;
    padding: 6px 12px !important;
    width: 100%;
    justify-content: center;
}

.summary-title {
    font-family: 'Montserrat', sans-serif;
    font-size: 1.2rem;
    border-bottom: 1px solid var(--border);
    padding-bottom: 15px;
    margin-top: 0;
    margin-bottom: 20px;
}

/* Override default Woo Cart Totals */
.cart-summary table.shop_table {
    width: 100% !important;
    border: none !important;
    margin: 0 !important;
    border-collapse: collapse !important;
    table-layout: fixed !important; /* Ensure columns respect percentages precisely */
}

.cart-summary table.shop_table th,
.cart-summary table.shop_table td {
    padding: 12px 0 !important;
    border: none !important;
    font-size: 1rem !important;
    vertical-align: middle !important;
    line-height: 1.2 !important;
}

.cart-summary table.shop_table th {
    font-weight: 600 !important;
    text-align: left !important;
    width: 40% !important;
    padding-left: 0 !important;
}

.cart-summary table.shop_table td {
    text-align: right !important;
    font-weight: 700 !important;
    width: 60% !important;
    padding-right: 0 !important;
}

/* Shipping row now uses colspan=2, hide the th */
.cart-summary table.shop_table tr.shipping th {
    display: none;
}

.cart-summary table.shop_table tr.shipping td {
    padding: 5px 0 15px;
    text-align: left;
}

/* Tax Output – single line */
.cart-summary small.includes_tax,
.cart-summary .tax_label,
.cart-summary .woocommerce-price-suffix {
    display: block;
    font-size: 12px !important;
    font-weight: 400 !important;
    color: var(--text-grey) !important;
    margin-top: 4px;
    text-align: right;
}

/* Also keep generic fallback */
.cart-summary table.shop_table td small,
.cart-summary table.shop_table td .tax_label,
.includes_tax,
.tax_label,
.cart-subtotal small {
    display: block;
    font-size: 12px !important;
    font-weight: 400 !important;
    color: var(--text-grey);
    margin-top: 4px;
}

.cart-summary table.shop_table tr.order-total th,
.cart-summary table.shop_table tr.order-total td {
    border-top: 1px solid var(--border) !important;
    padding-top: 25px !important;
    font-family: 'Montserrat', sans-serif !important;
}

.cart-summary table.shop_table tr.order-total th {
    text-transform: uppercase !important;
    color: #000 !important;
    font-size: 1.1rem !important;
    font-weight: 700 !important;
}

.cart-summary table.shop_table tr.order-total td {
    color: var(--gold) !important;
    font-size: 1.55rem !important;
    font-weight: 800 !important;
}

.cart-summary .woocommerce-shipping-destination {
    display: none;
    /* Clean up summary */
}

/* Tax Info (German Market compat) */
.tax-info,
p.includes_tax,
.wc-gzd-additional-info {
    font-size: 0.75rem;
    color: #777;
    text-align: right;
    margin-top: -5px;
    margin-bottom: 25px;
    display: block !important;
}

/* Keep tax % inline with tax amount */
.cart-summary table.shop_table tr.order-total td small {
    display: inline !important;
    font-size: 12px !important;
    font-weight: 400 !important;
    color: var(--text-grey) !important;
}

/* German Market injects a <br> that splits the tax info — hide it */
.cart-summary table.shop_table tr.order-total td br.wgm-break {
    display: none;
}

.cart-summary table.shop_table tr.order-total td .wgm-tax {
    display: block;
    font-size: 12px !important;
    font-weight: 400 !important;
    color: var(--text-grey) !important;
    margin-top: 4px;
    white-space: nowrap;
}

/* Checkout Button & Express Checkout Order */
.cart-summary .wc-proceed-to-checkout,
.wc-proceed-to-checkout {
    padding: 0;
}

/* Hide the PayPal Pay Later message ("Bezahlen Sie 30 Tage später") globally */
.paypal-messages,
[data-pp-message],
.wc-ppcp-checkout-payment-messaging,
.ppc-messaging,
#wc-ppcp-express-checkout-messaging-cart {
    display: none !important;
}

.cart-summary .checkout-button {
    display: block;
    width: 100%;
    background: #111111 !important;
    color: #ffffff !important;
    text-align: center;
    padding: 16px !important;
    border-radius: 6px;
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    text-transform: uppercase;
    text-decoration: none;
    letter-spacing: 1px;
    transition: background 0.3s, transform 0.2s;
    border: none;
    cursor: pointer;
    margin-bottom: 25px;
}

.cart-summary .checkout-button:hover {
    background: #333 !important;
    transform: translateY(-2px);
}

/* Express Checkout & Trust Badges */
.express-checkout {
    text-align: center;
    border-top: 1px solid var(--border);
    margin-top: 15px;
    padding-top: 20px;
}

.express-title {
    font-size: 0.75rem;
    text-transform: uppercase;
    color: #999;
    margin-bottom: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.express-title::before,
.express-title::after {
    content: '';
    height: 1px;
    width: 40px;
    background: #e0e0e0;
    margin: 0 15px;
}

@media (max-width: 600px) {
    .express-title::before,
    .express-title::after {
        width: 25px;
        margin: 0 10px;
    }
}

@media (max-width: 600px) {
    .express-title::before,
    .express-title::after {
        width: 25px;
        margin: 0 10px;
    }
}

/* Hide the PayPal plugin "— or —" separator completely */
.wc-ppcp-cart-or,
p.wc-ppcp-cart-or {
    display: none !important;
}

.express-buttons {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.btn-express {
    padding: 12px;
    border-radius: 4px;
    border: none;
    cursor: pointer;
    display: flex;
    justify-content: center;
    align-items: center;
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    font-size: 0.9rem;
    transition: mix-blend-mode 0.2s;
}

.btn-express:hover {
    filter: brightness(0.9);
}

.btn-link {
    background: #00c06a;
    color: #ffffff;
}

.btn-paypal {
    background: #ffc439;
    color: #111111;
}

.btn-gpay {
    background: #f0f0f0;
    color: #111111;
}

.btn-applepay {
    background: #111111;
    color: #ffffff;
}

.trust-badges {
    margin-top: 20px;
    display: flex;
    justify-content: center;
    gap: 25px;
    text-align: center;
}

.trust-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    font-size: 0.7rem;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    color: #555;
}

.trust-icon {
    font-size: 1.3rem;
    color: var(--gold);
}

/* Coupon Link & Global Links */
.coupon-toggle,
a.remove {
    text-decoration: underline !important;
    color: var(--text-grey) !important;
    cursor: pointer;
    transition: color 0.2s;
}

.coupon-toggle:hover,
a.remove:hover {
    color: var(--black) !important;
}

.coupon-toggle {
    font-size: 0.85rem;
    text-align: center;
    margin-top: 20px;
    display: block;
}

/* Mobile Responsive Adjustments */
@media (max-width: 768px) {
    .cart-header {
        display: none;
    }

    .cart-item {
        grid-template-columns: 80px 1fr;
        gap: 15px;
        padding: 20px;
        background: #fff;
        border-radius: 12px;
        border: 1px solid var(--border);
        margin-bottom: 20px;
        display: grid;
        align-items: start;
        position: relative;
    }

    .item-image-wrap {
        grid-column: 1;
        width: 80px;
        height: 80px;
        padding: 5px;
    }

    .item-details {
        grid-column: 2;
    }

    .item-details h3 {
        font-size: 1rem;
        margin-bottom: 5px;
    }

    .item-price-mobile {
        display: block;
        font-size: 0.95rem;
        margin-bottom: 10px;
    }

    /* Meta and Delivery always in new line on mobile */
    .item-meta-wrapper,
    .cart-item-delivery-time {
        grid-column: 1 / -1;
        width: 100%;
    }

    /* Meta text (Configuration) */
    ul.variation,
    dl.variation {
        font-size: 0.8rem;
        padding: 12px 15px;
        margin-top: 10px;
        background: #f8f8f8;
        border-radius: 8px;
    }

    .item-quantity-actions {
        grid-column: 1 / -1;
        display: flex;
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
        padding-top: 15px;
        border-top: 1px solid var(--border);
        margin-top: 15px;
    }

    .qty-selector {
        transform: scale(0.9);
        transform-origin: left center;
    }

    .item-total {
        grid-column: 1 / -1;
        display: block !important;
        text-align: right;
        font-size: 1.15rem;
        font-weight: 800;
        color: var(--black);
        margin-top: 10px;
        line-height: 1.3;
    }

    .item-total .amount {
        color: var(--gold);
    }

    /* Target nested amounts (like tax info) to keep them grey */
    .item-total small,
    .item-total .wc-gzd-cart-info,
    .item-total .wc-gzd-cart-info .amount {
        color: #888 !important;
        font-size: 0.7rem;
        font-weight: 400;
        display: block;
        margin-top: 4px;
        text-transform: none;
    }

    .remove-btn {
        margin-top: 0;
        padding: 8px 0;
        font-size: 0.75rem;
    }
}

/* ==========================================================================
   CHECKOUT PAGE — WooCommerce Blocks Redesign
   ========================================================================== */

/* Page Title */
.woocommerce-checkout .wp-block-woocommerce-checkout-fields-block {
    max-width: var(--container, 1300px);
    margin: 0 auto;
}

/* Grid Layout — wider gap */
.wc-block-checkout.is-large .wc-block-components-sidebar-layout {
    gap: 60px !important;
    max-width: var(--container, 1300px);
    margin: 0 auto;
    align-items: start;
}

/* Section Headings */
.wc-block-checkout .wc-block-components-checkout-step .wc-block-components-title,
.wc-block-checkout .wc-block-components-checkout-step>legend {
    font-family: var(--font-head, 'Montserrat', sans-serif);
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--black);
    border-bottom: 1px solid var(--border);
    padding-bottom: 10px;
    margin-bottom: 20px;
    display: block;
    width: 100%;
}

/* Form Inputs */
.wc-block-checkout .wc-block-components-text-input input,
.wc-block-checkout .wc-block-components-text-input textarea,
.wc-block-checkout select {
    border: 1px solid var(--border) !important;
    border-radius: 6px !important;
    background: var(--white) !important;
    font-size: 0.95rem;
    transition: border-color 0.2s ease;
}

.wc-block-checkout .wc-block-components-text-input input:focus,
.wc-block-checkout .wc-block-components-text-input textarea:focus,
.wc-block-checkout select:focus {
    border-color: var(--gold) !important;
    outline: none !important;
    box-shadow: 0 0 0 1px var(--gold) !important;
}

/* Input Labels */
.wc-block-checkout .wc-block-components-text-input label {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--text-grey);
    text-transform: uppercase;
}

/* Checkboxes */
.wc-block-checkout .wc-block-components-checkbox__input[type="checkbox"]:checked {
    background-color: var(--black) !important;
    border-color: var(--black) !important;
}

/* ================================
   RIGHT COLUMN — Sidebar / Order Summary
   ================================ */

.wc-block-checkout .wc-block-components-sidebar {
    background: var(--white);
    border-radius: 12px;
    padding: 30px !important;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.05);
    position: sticky;
    top: 40px;
}

/* Remove native Blocks borders inside sidebar */
.wc-block-checkout .wc-block-components-sidebar .wp-block-woocommerce-checkout-order-summary-block {
    border: none !important;
}

.wc-block-checkout .wc-block-components-sidebar .wp-block-woocommerce-checkout-order-summary-totals-block {
    border-top: none !important;
}

.wc-block-checkout .wc-block-components-sidebar .wc-block-components-totals-wrapper {
    border-top: none !important;
    border-bottom: none !important;
}

.wc-block-checkout .wc-block-components-sidebar .wc-block-components-order-summary .wc-block-components-panel {
    border-bottom: none !important;
}

/* Order Summary heading */
.wp-block-woocommerce-checkout-order-summary-block .wc-block-components-title {
    font-family: var(--font-head, 'Montserrat', sans-serif) !important;
    font-size: 1.1rem !important;
    font-weight: 700 !important;
    margin-bottom: 20px !important;
    padding-bottom: 0;
    border-bottom: none;
}

/* Order Summary Items */
.wc-block-components-order-summary .wc-block-components-order-summary-item {
    border-bottom: 1px dashed var(--border);
    padding-bottom: 15px;
    margin-bottom: 15px;
}

.wc-block-components-order-summary-item .wc-block-components-product-name {
    font-family: var(--font-head, 'Montserrat', sans-serif);
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--black);
}

.wc-block-components-order-summary-item .wc-block-components-product-metadata {
    font-size: 0.75rem;
    color: var(--text-grey);
    line-height: 1.4;
}

.wc-block-components-order-summary-item .wc-block-components-product-price {
    font-weight: 600;
    color: var(--black);
}

/* Hide coupon toggle on checkout (handled in cart) */
.wc-block-checkout .wc-block-components-totals-coupon {
    display: none !important;
}

/* Totals Rows */
.wc-block-checkout .wc-block-components-totals-wrapper {
    border-color: var(--border) !important;
}

.wc-block-checkout .wc-block-components-totals-item__label {
    font-size: 0.9rem;
    color: var(--text-grey);
}

.wc-block-checkout .wc-block-components-totals-item__value {
    font-weight: 600;
    color: var(--black);
}

/* Grand Total Row */
.wc-block-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
    font-family: var(--font-head, 'Montserrat', sans-serif);
    font-size: 1.2rem !important;
    font-weight: 800;
    color: var(--black);
    text-transform: uppercase;
}

.wc-block-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
    font-family: var(--font-head, 'Montserrat', sans-serif);
    font-size: 1.3rem !important;
    font-weight: 800;
    color: var(--gold) !important;
}

/* Tax info under total */
.wc-block-checkout .wc-block-components-totals-footer-item-tax {
    font-size: 0.75rem !important;
    color: var(--text-grey) !important;
}

/* ================================
   PAYMENT SECTION
   ================================ */

.wc-block-checkout__payment-method {
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 20px !important;
}

.wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-option {
    border-color: var(--border) !important;
    border-radius: 6px;
    margin-bottom: 8px;
}

.wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-option--checked-option-highlighted {
    border-color: var(--black) !important;
    background: #faf9f6;
}

/* Payment radio labels */
.wc-block-checkout__payment-method .wc-block-components-radio-control__label {
    font-weight: 600;
    font-size: 0.9rem;
}

/* ================================
   EXPRESS CHECKOUT (Link / PayPal)
   ================================ */

.wc-block-checkout .wc-block-components-express-payment {
    border: 1px solid var(--border) !important;
    border-radius: 8px !important;
    padding: 20px !important;
    text-align: center;
    background: var(--white);
    margin-bottom: 30px;
}

/* Remove all nested / inner borders inside express payment */
.wc-block-checkout .wc-block-components-express-payment *:not(button):not(input) {
    border: none !important;
    box-shadow: none !important;
}

/* Spacing between title and button */
.wc-block-checkout .wc-block-components-express-payment__content {
    padding-top: 15px !important;
}

.wc-block-checkout .wc-block-components-express-payment__title-container {
    font-size: 0.8rem;
    color: var(--text-grey);
    text-transform: uppercase;
    font-weight: 600;
}

/* "Oder fahren Sie unten fort" divider */
.wc-block-checkout .wc-block-components-express-payment-continue-rule {
    color: var(--text-grey);
    font-size: 0.8rem;
}

.wc-block-checkout .wc-block-components-express-payment-continue-rule::before,
.wc-block-checkout .wc-block-components-express-payment-continue-rule::after {
    border-color: var(--border) !important;
}

/* ================================
   SHIPPING METHOD
   ================================ */

.wc-block-checkout .wc-block-components-shipping-rates-control .wc-block-components-radio-control__option {
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 14px 14px 14px 48px;
    margin-bottom: 8px;
    background: var(--white);
    transition: border-color 0.2s;
    position: relative;
}

/* Radio button positioning inside shipping cards */
.wc-block-checkout .wc-block-components-shipping-rates-control .wc-block-components-radio-control__input {
    position: absolute;
    left: 16px;
    top: 50%;
    transform: translateY(-50%);
}

.wc-block-checkout .wc-block-components-shipping-rates-control .wc-block-components-radio-control__option--checked {
    border-color: var(--black);
    background: #faf9f6;
}

/* ================================
   PLACE ORDER BUTTON — Conversion Driver
   ================================ */

.wc-block-checkout .wc-block-components-checkout-place-order-button {
    width: 100% !important;
    padding: 18px 24px !important;
    background: var(--black) !important;
    color: var(--white) !important;
    font-family: var(--font-head, 'Montserrat', sans-serif) !important;
    font-weight: 700 !important;
    font-size: 1rem !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    border: none !important;
    border-radius: 6px !important;
    cursor: pointer;
    transition: background 0.2s, transform 0.2s;
}

.wc-block-checkout .wc-block-components-checkout-place-order-button:hover {
    background: #333 !important;
    transform: translateY(-2px);
}

/* Hide the "Return to Cart" link */
.wc-block-checkout .wc-block-components-checkout-return-to-cart-button {
    display: none;
}

/* On all devices, hide original actions in the main column 
   because we use the ones in the sidebar/bottom box */
.wc-block-checkout .wc-block-checkout__actions,
.wc-block-checkout .wc-block-checkout__actions_row {
    display: none !important;
}

/* Redundant checkboxes in main column are only hidden on desktop 
   because mobile sidebar summary doesn't always include them correctly. */
@media (min-width: 769px) {
    .wc-block-checkout .wc-block-components-checkout-step--payment .wc-block-checkout__terms-and-conditions {
        display: none !important;
    }
}

/* ================================
   SIDEBAR: Cloned Button + Trust Icons
   ================================ */

.checkout-sidebar-cta {
    margin-top: 25px;
    padding-top: 20px;
    border-top: 1px solid var(--border);
}

/* Hide original German Market checkboxes in main content but keep them interactive for React */
.german-market-block-checkout-checkboxes:not(.gm-sidebar-clone) {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

/* Ensure clones in sidebar are fully visible */
.checkout-sidebar-cta .german-market-block-checkout-checkboxes {
    opacity: 1 !important;
    pointer-events: auto !important;
    position: static !important;
    width: auto !important;
    height: auto !important;
    overflow: visible !important;
}

.checkout-sidebar-cta .german-market-block-checkout-checkboxes {
    margin-bottom: 18px;
    font-size: 0.78rem;
    line-height: 1.5;
    color: var(--text-grey);
}

/* Custom Checkbox Design matching WooCommerce Blocks premium style */
.checkout-sidebar-cta .german-market-block-checkout-checkboxes p {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

.checkout-sidebar-cta .german-market-block-checkout-checkboxes input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;
    background: #fff;
    margin: 2px 0 0 0;
    font: inherit;
    color: currentColor;
    width: 20px;
    height: 20px;
    border: 1px solid #ccc;
    border-radius: 4px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: relative;
    cursor: pointer;
    transition: all 0.2s ease;
    flex-shrink: 0;
}

.checkout-sidebar-cta .german-market-block-checkout-checkboxes input[type="checkbox"]:hover {
    border-color: #888;
}

.checkout-sidebar-cta .german-market-block-checkout-checkboxes input[type="checkbox"]:checked {
    background-color: var(--black, #000);
    border-color: var(--black, #000);
}

.checkout-sidebar-cta .german-market-block-checkout-checkboxes input[type="checkbox"]:checked::after {
    content: '';
    position: absolute;
    top: 3px;
    left: 7px;
    width: 5px;
    height: 9px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

.checkout-sidebar-cta .german-market-block-checkout-checkboxes a {
    color: var(--black);
    text-decoration: underline;
}

.checkout-sidebar-cta .wc-block-components-checkout-place-order-button {
    width: 100% !important;
    padding: 18px 24px !important;
    background: var(--black) !important;
    color: var(--white) !important;
    font-family: var(--font-head, 'Montserrat', sans-serif) !important;
    font-weight: 700 !important;
    font-size: 1rem !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    border: none !important;
    border-radius: 6px !important;
    cursor: pointer !important;
    pointer-events: auto !important;
    transition: background 0.2s, transform 0.2s;
    display: block;
}

.checkout-sidebar-cta .wc-block-components-checkout-place-order-button:hover {
    background: #333 !important;
    transform: translateY(-2px);
}

.checkout-trust-line {
    margin-top: 15px;
    text-align: center;
    font-size: 0.75rem;
    color: var(--text-grey);
    display: flex;
    justify-content: center;
    gap: 20px;
}

.checkout-trust-line span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

/* ================================
   TERMS & CONDITIONS
   ================================ */

.wc-block-checkout .wc-block-checkout__terms {
    font-size: 0.78rem;
    color: var(--text-grey);
}

.wc-block-checkout .wc-block-checkout__terms a {
    color: var(--black);
    text-decoration: underline;
}

/* ================================
   ORDER NOTES
   ================================ */

.wc-block-checkout .wc-block-checkout__add-note .wc-block-components-textarea {
    border: 1px solid var(--border);
    border-radius: 6px;
    font-size: 0.9rem;
}

/* ================================
   MOBILE RESPONSIVE
   ================================ */

@media (max-width: 768px) {
    .wc-block-checkout .wc-block-components-sidebar {
        position: static;
        box-shadow: none;
        border: 1px solid var(--border);
        margin-top: 30px;
    }

    .wc-block-checkout .wc-block-components-express-payment {
        margin-bottom: 20px;
    }
}


/* ================================================================
   ORDER RECEIVED / THANK YOU PAGE
   ================================================================ */

/* Main container */
.woocommerce-order {
    max-width: 900px;
    margin: 0 auto;
    padding: 40px 20px 60px;
}

/* Success notice banner (Custom HTML via functions.php) */
.woocommerce-thankyou-order-received {
    display: none !important;
    /* Hide the default WooCommerce wrapper since we inject our own HTML entirely via the filter */
}

.skyline-order-success-hero {
    text-align: center;
    margin-bottom: 40px;
    padding: 20px 0;
}

.skyline-order-success-hero .success-icon {
    width: 64px;
    height: 64px;
    color: var(--success, #22c55e);
    /* fallback to green if var missing */
    margin: 0 auto 20px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.skyline-order-success-hero .success-icon svg {
    width: 100%;
    height: 100%;
}

.skyline-order-success-hero .success-headline {
    font-family: var(--font-head, 'Montserrat', sans-serif);
    font-size: 2rem;
    font-weight: 800;
    color: var(--black);
    margin-bottom: 15px;
    letter-spacing: -0.02em;
    text-transform: uppercase;
}

.skyline-order-success-hero .success-subline {
    font-size: 1.1rem;
    color: var(--text-grey);
    max-width: 600px;
    margin: 0 auto;
    line-height: 1.6;
}

/* 3-Step Process List */
.skyline-order-steps {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    gap: 30px;
    margin-bottom: 50px;
    position: relative;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
}

/* Connecting Line */
.skyline-order-steps::before {
    content: '';
    position: absolute;
    top: 20px;
    left: 15%;
    right: 15%;
    height: 2px;
    background: var(--border);
    z-index: 1;
}

.order-step {
    flex: 1;
    text-align: center;
    position: relative;
    z-index: 2;
    background: var(--bg-body, #f7f6f2);
    /* Match background to hide line behind number */
    padding: 0 10px;
}

.order-step .step-num {
    width: 40px;
    height: 40px;
    background: var(--white);
    border: 2px solid var(--border);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 15px;
    font-family: var(--font-head, 'Montserrat', sans-serif);
    font-weight: 700;
    font-size: 1.1rem;
    color: var(--black);
}

/* Make first step active/checked looking */
.order-step:first-child .step-num {
    border-color: var(--success, #22c55e);
    color: var(--success, #22c55e);
}

.order-step .step-text {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--black);
    line-height: 1.4;
}


/* Order overview bar (Receipt Box) */
.woocommerce-order-overview.order_details {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    list-style: none !important;
    padding: 20px !important;
    margin: 0 0 50px !important;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 8px;
}

/* Hide Zahlungsart from overview — it's shown in the order details table */
.woocommerce-order-overview.order_details li.method {
    display: none !important;
}

/* Kill clearfix pseudo-elements that become ghost grid items */
.woocommerce-order-overview.order_details::before,
.woocommerce-order-overview.order_details::after {
    display: none !important;
}

.woocommerce-order-overview.order_details li {
    padding: 10px 24px !important;
    margin: 0 !important;
    border-right: 1px solid var(--border) !important;
    border-bottom: none !important;
    float: none !important;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: 600;
    color: var(--text-grey);
    font-family: var(--font-head, 'Montserrat', sans-serif);
}

.woocommerce-order-overview.order_details li:last-child {
    border-right: none !important;
}

.woocommerce-order-overview.order_details li::before {
    display: none !important;
}

.woocommerce-order-overview.order_details li strong {
    display: block;
    font-size: 1.1rem;
    color: var(--black);
    font-weight: 700;
    margin-top: 8px;
    text-transform: none;
    letter-spacing: 0;
}

/* Order details section */
.woocommerce-order-details {
    margin-bottom: 40px;
}

.woocommerce-order-details__title {
    font-family: var(--font-head, 'Montserrat', sans-serif) !important;
    font-size: 1.15rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em;
    color: var(--black);
    margin-bottom: 20px !important;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--gold);
    display: inline-block;
}

/* Order details table */
.woocommerce-order table.shop_table {
    border: 1px solid var(--border) !important;
    border-radius: 12px !important;
    border-collapse: separate !important;
    border-spacing: 0;
    overflow: hidden;
    width: 100%;
    font-size: 0.92rem;
}

.woocommerce-order table.shop_table thead {
    background: var(--bg-body, #f7f6f2);
}

.woocommerce-order table.shop_table thead th {
    font-family: var(--font-head, 'Montserrat', sans-serif);
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-grey);
    padding: 14px 20px;
    border-bottom: 1px solid var(--border) !important;
    background: transparent;
}

.woocommerce-order table.shop_table tbody td,
.woocommerce-order table.shop_table tbody th {
    padding: 18px 20px;
    border-bottom: 1px solid var(--border) !important;
    border-top: none !important;
    vertical-align: top;
    color: var(--black);
}

.woocommerce-order table.shop_table tbody tr:last-child td,
.woocommerce-order table.shop_table tbody tr:last-child th {
    border-bottom: 1px solid var(--border) !important;
}

/* Product meta in table */
.woocommerce-order table.shop_table .wc-item-meta {
    margin-top: 10px !important;
    padding-left: 0;
    list-style: none;
}

.woocommerce-order table.shop_table .wc-item-meta li {
    font-size: 0.82rem;
    color: var(--text-grey);
    margin-bottom: 3px;
    padding-left: 0 !important;
}

.woocommerce-order table.shop_table .wc-item-meta li::before {
    display: none !important;
}

.woocommerce-order table.shop_table .wc-item-meta li strong,
.woocommerce-order table.shop_table .wc-item-meta li p {
    display: inline;
}

/* Footer rows (subtotal, shipping, total) */
.woocommerce-order table.shop_table tfoot th {
    font-family: var(--font-head, 'Montserrat', sans-serif);
    font-weight: 600;
    padding: 14px 20px;
    color: var(--black);
    background: transparent;
    border-top: 1px solid var(--border) !important;
}

.woocommerce-order table.shop_table tfoot td {
    padding: 14px 20px;
    text-align: right;
    border-top: 1px solid var(--border) !important;
}

/* Total row — bold gold accent */
.woocommerce-order table.shop_table tfoot tr:last-child th,
.woocommerce-order table.shop_table tfoot tr:last-child td {
    font-size: 1.1rem;
    font-weight: 700 !important;
    background: var(--bg-body, #f7f6f2);
    border-top: 2px solid var(--gold) !important;
}

.woocommerce-order table.shop_table tfoot tr:last-child td .woocommerce-Price-amount {
    color: var(--gold);
    font-weight: 700;
    font-size: 1.15rem;
}

/* Customer details section */
.woocommerce-customer-details {
    margin-top: 40px;
}

.woocommerce-customer-details .col2-set,
.woocommerce-customer-details .woocommerce-columns--2,
.woocommerce-order .col2-set.addresses,
section.woocommerce-columns.woocommerce-columns--2.col2-set {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 30px !important;
    float: none !important;
    clear: both !important;
    width: 100% !important;
}

/* Kill clearfix pseudo-elements that become ghost grid items */
.woocommerce-order .col2-set::before,
.woocommerce-order .col2-set::after {
    display: none !important;
}

.woocommerce-customer-details .col2-set .woocommerce-column,
.woocommerce-order .col2-set.addresses .woocommerce-column,
.woocommerce-order .woocommerce-columns--2>div,
.woocommerce-order .col-1,
.woocommerce-order .col-2 {
    float: none !important;
    clear: none !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
}

.woocommerce-customer-details .woocommerce-column h2,
.woocommerce-customer-details .woocommerce-column h3 {
    font-family: var(--font-head, 'Montserrat', sans-serif) !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em;
    color: var(--black);
    margin-bottom: 15px;
    padding-bottom: 10px;
    border-bottom: 2px solid var(--gold);
    display: inline-block;
}

.woocommerce-customer-details address {
    background: var(--white) !important;
    border: 1px solid var(--border) !important;
    border-radius: 8px !important;
    padding: 24px !important;
    font-style: normal !important;
    font-size: 0.95rem;
    line-height: 1.6;
    color: var(--black);
    box-shadow: none;
}

.woocommerce-customer-details address p {
    margin-bottom: 8px;
}

/* Trust line at bottom */
.woocommerce-order::after {
    content: '🔒 SSL-Verschlüsselt  •  🛡️ Käuferschutz  •  🇩🇪 Made in Munich';
    display: block;
    text-align: center;
    font-size: 0.78rem;
    color: var(--text-grey);
    margin-top: 40px;
    padding-top: 25px;
    border-top: 1px solid var(--border);
    letter-spacing: 0.02em;
}

/* ---- Responsive: Order Received ---- */
@media (max-width: 768px) {
    .woocommerce-order {
        padding: 25px 15px 40px;
    }

    .woocommerce-thankyou-order-received {
        font-size: 1.15rem;
        padding: 22px 15px !important;
    }

    .woocommerce-order-overview.order_details {
        grid-template-columns: 1fr 1fr;
    }

    .woocommerce-order-overview.order_details li {
        border-bottom: 1px solid var(--border) !important;
        padding: 15px 18px !important;
    }

    .woocommerce-customer-details .col2-set {
        grid-template-columns: 1fr;
        gap: 20px;
    }
}

@media (max-width: 480px) {
    .woocommerce-order-overview.order_details {
        grid-template-columns: 1fr;
    }

    .woocommerce-order-overview.order_details li {
        border-right: none !important;
    }
}

/* =========================================
   PAGE CONTENT (page.php – Datenschutz, Impressum, etc.)
   ========================================= */

.page-content-wrap {
    padding: 40px 0 60px;
}

@media (max-width: 768px) {
    .page-content-wrap {
        padding-top: 0;
    }
}

.page-content-wrap h1,
.page-content-wrap h2,
.page-content-wrap h3,
.page-content-wrap h4 {
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
}

.page-content-wrap p,
.page-content-wrap li {
    overflow-wrap: break-word;
    word-break: break-word;
}

/* =========================================
   THEME MOBILE OPTIMIERUNGEN (max-width)
   Desktop-Layouts bleiben unberührt.
   ========================================= */

/* --- H. Globaler Container Padding --- */
@media (max-width: 600px) {
    .container {
        padding: 0 16px;
    }
}

/* --- I. Homepage & Hero Optimierungen --- */
@media (max-width: 768px) {
    /* Hero Modern */
    .hero-modern {
        padding: 40px 16px;
    }

    .hero-modern h1 {
        font-size: 2.2rem;
        margin-bottom: 20px;
    }

    .hero-sub {
        font-size: 1rem;
        margin-bottom: 30px;
    }

    .hero-buttons {
        flex-direction: column;
        align-items: stretch;
        gap: 15px;
    }

    .btn-primary {
        text-align: center;
        padding: 16px;
    }

    /* Hero Visual */
    .hero-main-img {
        max-width: 320px;
    }

    .blob-badge {
        width: 100px;
        height: 100px;
        font-size: 0.8rem;
        left: -10px;
        bottom: -10px;
    }

    /* Sections Padding */
    .steps-section,
    .highlight-section,
    .b2b-teaser,
    .seo-content-area,
    .products-area {
        padding: 60px 16px;
    }

    .section-title {
        font-size: 1.8rem;
        margin-bottom: 40px;
    }

    .highlight-content h2 {
        font-size: 2rem;
    }
}

/* --- J. Shop & Catalog Optimierungen --- */
@media (max-width: 768px) {
    .shop-layout {
        padding: 10px 16px 60px;
        gap: 30px;
    }

    h1.page-title {
        font-size: 2.2rem;
    }

    .header-subtitle {
        font-size: 0.95rem;
    }

    /* Better spacing for product grid on mobile */
    ul.products {
        gap: 30px 15px;
    }

    .p-title {
        font-size: 1rem;
    }
}

/* Announcement Bar Font Size — Minimum 0.75rem für Lesbarkeit */
@media (max-width: 480px) {
    .announcement-bar {
        font-size: 0.75rem;
        padding: 8px 10px;
    }
}

/* --- P. Cart Shipping Table Fix (Modern Cards, No Radios) --- */
@media (max-width: 600px) {
    /* Prevent overall horizontal scroll at page level (not on table — that would clip the express tooltip) */
    .skyline-cart-container {
        overflow-x: hidden;
    }

    .cart-summary, .cart-summary table.shop_table {
        width: 100% !important;
        max-width: 100%;
        box-sizing: border-box;
    }

    /* Convert table to block layout so width:100% behaves as block width, not table-column width */
    /* Note: NO overflow:hidden here — the express tooltip is position:absolute inside this table */
    .cart-summary .cart_totals table.shop_table {
        display: block !important;
    }
    .cart-summary .cart_totals table.shop_table tbody {
        display: block !important;
        width: 100%;
    }

    .cart-summary table.shop_table tr.shipping td {
        display: block;
        width: 100% !important;
        padding: 10px 0 20px !important;
        box-sizing: border-box !important;
        text-align: left !important;
    }

    /* Shipping card list: stack vertically, full width */
    ul#shipping_method {
        display: flex;
        flex-direction: column;
        gap: 8px;
        padding: 0;
        margin: 0;
        list-style: none;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    /* Cards: just constrain width – desktop .shipping-card CSS handles the rest */
    ul#shipping_method li {
        width: 100% !important;
        box-sizing: border-box !important;
        margin: 0 !important;
    }

    /* Active selection state */
    ul#shipping_method li:has(input:checked) {
        border-color: var(--gold) !important;
        background: #fff !important;
        box-shadow: 0 4px 12px rgba(166, 124, 82, 0.12) !important;
    }

    /* Totals rows: flex layout (label left, value right) – bypasses WC float/block approach */
    .cart-summary table.shop_table tr.cart-subtotal,
    .cart-summary table.shop_table tr.order-total {
        display: flex !important;
        justify-content: space-between;
        align-items: flex-start;
        width: 100%;
    }

    /* Show th again (WC smallscreen hides it inside tbody) */
    .cart-summary table.shop_table tr.cart-subtotal th,
    .cart-summary table.shop_table tr.order-total th {
        display: block !important;
        flex: 1;
        text-align: left !important;
        padding-top: 25px !important;
    }

    /* td: natural width, right-aligned, no ::before label */
    .cart-summary table.shop_table tr.cart-subtotal td,
    .cart-summary table.shop_table tr.order-total td {
        flex: 0 0 auto !important;
        width: auto !important;
        text-align: right !important;
        padding-top: 25px !important;
    }

    .cart-summary table.shop_table tr.cart-subtotal td::before,
    .cart-summary table.shop_table tr.order-total td::before {
        display: none !important;
    }

    /* Gesamtsumme: large gold price */
    .cart-summary table.shop_table tr.order-total th {
        font-size: 1.1rem !important;
    }
    .cart-summary table.shop_table tr.order-total td {
        font-size: 1.3rem !important;
        color: var(--gold) !important;
    }

    /* MwSt note inside total: small and grey, not gold */
    .cart-summary table.shop_table tr.order-total td small {
        color: var(--text-grey, #888) !important;
        font-size: 0.72rem !important;
        font-weight: 400 !important;
        text-align: right;
    }
}

/* --- Q. Checkout Order Summary Reordering (Bottom Sidebar) --- */
@media (max-width: 768px) {
    .wc-block-checkout .wc-block-components-sidebar-layout {
        display: flex;
        flex-direction: column;
    }
    .wc-block-checkout .wc-block-components-main { order: 1; }
    .wc-block-checkout .wc-block-components-sidebar {
        order: 2;
        margin-top: 40px !important;
        border-top: 1px solid var(--border);
        padding: 30px 12px !important;
    }
}

/* --- R. Definitive Fix for Duplicate Mobile Summary --- */
@media (max-width: 768px) {
    /* Hide the native "toggle" summary block at the top */
    .wp-block-woocommerce-checkout-order-summary-block:not(.wc-block-components-sidebar .wp-block-woocommerce-checkout-order-summary-block) {
        display: none !important;
    }
    /* Specific class used by some Blocks versions */
    .wc-block-checkout__order-summary {
        display: none !important;
    }
}

/* Shipping Rates Control Overlay Fix (Inside Checkout) */
.wc-block-checkout .wc-block-components-shipping-rates-control .wc-block-components-radio-control__label {
    display: flex;
    justify-content: space-between;
    width: 100%;
    align-items: center;
}
@media (max-width: 480px) {
    .wc-block-checkout .wc-block-components-shipping-rates-control .wc-block-components-radio-control__label {
        flex-direction: column;
        align-items: flex-start;
        gap: 4px;
    }
}

/* ── Mobile UX Audit Batch 2 ─────────────────────────────────────────────── */

/* K7 · Produktkarten als <a>-Tags: keine Browser-Standard-Link-Styles */
a.product-card.city-card {
    display: block;
    text-decoration: none;
    color: inherit;
}

/* K6 · Mobile Filter-Toggle Button (nur sichtbar unter 900px) */
.mobile-filter-toggle {
    display: none;
}

@media (max-width: 900px) {
    /* Sidebar standardmäßig ausblenden */
    .filters {
        display: none;
        position: static;
    }

    /* Sidebar eingeblendet wenn aktiv */
    .filters.show-filters {
        display: block;
        background: var(--white);
        border: 1px solid var(--border);
        border-radius: 12px;
        padding: 20px;
        margin-bottom: 20px;
    }

    /* Toggle-Button einblenden */
    .mobile-filter-toggle {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        background: var(--white);
        border: 1px solid var(--border);
        border-radius: 8px;
        padding: 10px 16px;
        font-size: 0.9rem;
        font-weight: 600;
        cursor: pointer;
        margin-bottom: 16px;
        min-height: 44px;
        transition: background 0.2s, border-color 0.2s;
    }

    .mobile-filter-toggle:hover {
        border-color: var(--black);
    }

    .mobile-filter-toggle[aria-expanded="true"] {
        background: var(--black);
        color: var(--white);
    }

    /* Sidebar im mobile Layout über den Grid legen */
    .shop-layout {
        display: block;
        padding: 20px 20px 80px;
    }
}

/* K8 · Warenkorb: Zwischenbreakpoint 650px — Moved to unified 768px block */
@media (max-width: 650px) {
    /* Rules unified above */
}

/* ── Mobile UX Audit Batch 3 ─────────────────────────────────────────────── */

/* U1 · Such-Overlay Eingabefeld: Schriftgröße auf Mobile skalieren */
@media (max-width: 768px) {
    .search-field {
        font-size: 1.25rem;
        padding: 14px 0;
    }
}

/* U2 · Steps-Grid: Gap auf Mobile reduzieren */
@media (max-width: 767px) {
    .steps-grid {
        gap: 20px;
    }
}

/* U3 · Highlight-Section Flex-Container: Gap + Mobile-Stack */
.highlight-flex-inner {
    display: flex;
    flex-wrap: wrap;
    gap: 50px;
    align-items: center;
}

@media (max-width: 768px) {
    .highlight-flex-inner {
        gap: 24px;
        flex-direction: column;
    }

    .highlight-flex-inner > div {
        min-width: 0;
        width: 100%;
    }
}

/* U4 · B2B-Teaser: Padding + H2 auf Mobile anpassen */
@media (max-width: 768px) {
    .b2b-teaser {
        padding: 60px 20px;
    }

    .b2b-inner h2 {
        font-size: 1.75rem;
    }
}

/* U10 · Checkout Sidebar: kein sticky auf Mobile */
@media (max-width: 768px) {
    .wc-block-checkout .wc-block-components-sidebar {
        position: static;
    }
}

/* ── Mobile UX Audit Batch 1 ─────────────────────────────────────────────── */

/* K3 · Such-Container: Seitenabstand auf Mobile reduzieren */
@media (max-width: 600px) {
    .search-container {
        padding: 0 20px;
    }
}

/* K4 · Hero-Such-Wrapper: kein Overflow auf schmalen Screens */
@media (max-width: 600px) {
    .hero-search-wrapper {
        max-width: 100%;
        padding: 0 16px;
    }
}

/* K5 · Hero-Headline: Schriftgröße auf Mobile skalieren */
@media (max-width: 768px) {
    .hero-content h1 {
        font-size: 2rem;
    }
}

/* === Single Product Page — Mobile UX Fixes === */

/* U1 · Haupt-Galerie: max-height auf Mobile reduzieren */
@media (max-width: 600px) {
    .main-gallery {
        max-height: 60vh;
    }
}

/* U2 · Größen-Swatches: min-width auf kleinen Phones reduzieren */
@media (max-width: 480px) {
    .size-card {
        min-width: 68px;
        font-size: 0.78rem;
    }
}

/* U4 · Accordion-Schriftgröße: Mindestlesbarkeit auf kleinen Phones */
@media (max-width: 480px) {
    ul.tabs li a,
    .accordion-header h2.section-heading {
        font-size: 0.85rem;
    }
}

/* U5 · Accordion-Abstand: margin-top auf Mobile reduzieren */
@media (max-width: 768px) {
    .product-page-accordion {
        margin-top: 32px;
    }
}

/* U6 · Sticky Info: auf Tablets (769–999px) deaktivieren */
@media (min-width: 769px) and (max-width: 999px) {
    .product-info-sticky {
        position: relative;
        top: auto;
    }
}

/* === U7 · Sticky Mobile CTA Bar === */
.mobile-sticky-cta {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 1500;
    padding: 12px 20px;
    background: #fff;
    border-top: 1px solid #e8e8e8;
    box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.08);
    visibility: hidden;
    pointer-events: none;
    transform: translateY(100%);
    transition: transform 0.3s ease, visibility 0.3s ease;
}

.mobile-sticky-cta.is-visible {
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}

.mobile-sticky-cta__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    padding: 14px 20px;
    background: var(--black, #111);
    color: #fff;
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 1px;
    text-decoration: none;
    border-radius: 4px;
    min-height: 44px;
}

/* Nur auf Mobile — ab 1000px ist .product-info-sticky bereits sticky */
@media (min-width: 1000px) {
    .mobile-sticky-cta {
        display: none !important;
    }
}

/* =========================================
   CHECKOUT & PAYMENT METHODS (Blocks UI)
   ========================================= */

/* 0. Hide Original Place Order Button */
.wc-block-checkout .wc-block-components-checkout-place-order-button:not(.checkout-sidebar-cta .wc-block-components-checkout-place-order-button) {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

/* 1. Stripe/Payment Content Area */
.wc-block-components-radio-control-accordion-content {
    padding-bottom: 30px !important; /* Grounding the content */
}

/* 2. Stripe Element Field Spacing */
.wc-stripe-payment-element {
    margin-bottom: 25px !important;
}

/* 3. "Save Info" Checkbox (Specific to the screenshot) */
.wc-block-components-payment-methods__save-card-info {
    margin-top: 20px !important;
    padding-top: 20px !important;
    border-top: 1px solid rgba(0,0,0,0.06);
    display: block !important;
}

/* 4. Fine-tuning the checkbox label */
.wc-block-components-checkbox__label {
    font-size: 0.88rem !important;
    line-height: 1.4 !important;
    color: var(--text-grey);
}

/* 5. Improve spacing between input blocks */
.wc-block-components-form .wc-block-components-text-input {
    margin-bottom: 15px !important;
}

/* 6. Checkout Sidebar CTA (Mobile/Premium) */
.checkout-sidebar-cta {
    background: #fff;
    padding: 20px;
    border: 1px solid #eee;
    border-radius: 12px;
    margin-top: 25px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.05);
}

.checkout-sidebar-cta .wc-block-components-checkout-place-order-button {
    width: 100% !important;
    margin-top: 15px !important;
    background: #000 !important;
    color: #fff !important;
    font-weight: 700 !important;
    padding: 18px !important;
    border-radius: 8px !important;
    transition: all 0.3s ease !important;
}

.checkout-sidebar-cta .wc-block-components-checkout-place-order-button.is-disabled {
    background: #ccc !important;
}

.checkout-sidebar-cta .german-market-block-checkout-checkboxes {
    padding: 0 !important;
    margin-bottom: 15px !important;
    border: none !important;
}

.checkout-sidebar-cta .checkout-trust-line {
    display: flex;
    justify-content: space-between;
    margin-top: 15px;
    font-size: 0.75rem;
    color: #666;
}

/* 7. Field Highlight Pulse (Validation Feedback) */
.field-highlight-pulse {
    animation: fieldPulse 1s ease-in-out infinite;
    padding: 10px;
    border-radius: 8px;
    border: 2px solid transparent;
}

@keyframes fieldPulse {
    0% { border-color: transparent; background: transparent; }
    50% { border-color: rgba(192, 57, 43, 0.4); background: rgba(192, 57, 43, 0.05); }
    100% { border-color: transparent; background: transparent; }
}

.wc-block-components-checkbox.field-highlight-pulse label {
    color: #c0392b !important;
    font-weight: 700 !important;
}

/* ── Mein Konto ─────────────────────────────────────────────────────────────
   .woocommerce-account body class
   ──────────────────────────────────────────────────────────────────────── */

.woocommerce-account .woocommerce {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 32px;
    align-items: start;
}

/* WooCommerce layout-Floats + Breiten zurücksetzen, Grid-Spalten explizit zuweisen */
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content {
    float: none !important;
    width: 100% !important;
}

.woocommerce-account .woocommerce-MyAccount-navigation {
    grid-column: 1;
    grid-row: 1;
}

.woocommerce-account .woocommerce-MyAccount-content {
    grid-column: 2;
    grid-row: 1;
}

/* Notices-Wrapper über beide Grid-Spalten spannen (sonst verschiebt er nav+content) */
.woocommerce-account .woocommerce > .woocommerce-notices-wrapper {
    grid-column: 1 / -1;
}

/* ── Navigation Sidebar ── */

.woocommerce-MyAccount-navigation {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 12px;
    overflow: hidden;
    position: sticky;
    top: 100px;
}

.woocommerce-MyAccount-navigation ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.woocommerce-MyAccount-navigation li {
    border-bottom: 1px solid var(--border);
}

.woocommerce-MyAccount-navigation li:last-child {
    border-bottom: none;
}

.woocommerce-MyAccount-navigation li a {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 13px 18px;
    font-size: 13px;
    font-weight: 500;
    color: var(--text-grey);
    text-decoration: none;
    transition: color 0.15s, background 0.15s;
}

.woocommerce-MyAccount-navigation li a:hover {
    color: var(--black);
    background: var(--bg-body);
}

.woocommerce-MyAccount-navigation li.is-active a {
    color: var(--gold);
    background: #faf5ef;
    font-weight: 600;
}

/* Icons via Font Awesome Solid */
.woocommerce-MyAccount-navigation li a::before {
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    font-size: 12px;
    width: 16px;
    text-align: center;
    flex-shrink: 0;
    opacity: 0.6;
}

.woocommerce-MyAccount-navigation li.is-active a::before {
    opacity: 1;
}

.woocommerce-MyAccount-navigation-link--dashboard a::before        { content: '\f015'; } /* house */
.woocommerce-MyAccount-navigation-link--orders a::before            { content: '\f290'; } /* bag-shopping */
.woocommerce-MyAccount-navigation-link--downloads a::before         { content: '\f019'; } /* download */
.woocommerce-MyAccount-navigation-link--edit-address a::before      { content: '\f3c5'; } /* location-dot */
.woocommerce-MyAccount-navigation-link--payment-methods a::before   { content: '\f09d'; } /* credit-card */
.woocommerce-MyAccount-navigation-link--edit-account a::before      { content: '\f007'; } /* user */
.woocommerce-MyAccount-navigation-link--customer-logout a::before   { content: '\f2f5'; } /* right-from-bracket */

.woocommerce-MyAccount-navigation-link--customer-logout a {
    color: #aaa;
    font-size: 12px;
}

.woocommerce-MyAccount-navigation-link--customer-logout a:hover {
    color: #b91c1c;
    background: #fff5f5;
}

/* ── Content Area ── */

.woocommerce-MyAccount-content {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 28px 32px;
    min-width: 0;
}

.woocommerce-MyAccount-content p {
    font-size: 14px;
    line-height: 1.6;
    color: var(--text-grey);
}

.woocommerce-MyAccount-content h2,
.woocommerce-MyAccount-content h3 {
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--black);
    margin-bottom: 16px;
}

/* ── Orders Table ── */

.woocommerce-orders-table,
table.woocommerce-MyAccount-orders {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

.woocommerce-orders-table th,
table.woocommerce-MyAccount-orders th {
    text-align: left;
    padding: 9px 12px;
    border-bottom: 2px solid var(--border);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--black);
}

.woocommerce-orders-table td,
table.woocommerce-MyAccount-orders td {
    padding: 12px;
    border-bottom: 1px solid var(--border);
    color: var(--text-grey);
    vertical-align: middle;
}

table.woocommerce-MyAccount-orders tr:last-child td {
    border-bottom: none;
}

/* Status badges */
mark.order-status {
    border-radius: 99px;
    padding: 3px 10px;
    font-size: 11px;
    font-weight: 600;
    background: none;
}

mark.order-status.status-completed  { color: var(--success); background: #f0fdf4; }
mark.order-status.status-processing { color: var(--gold);    background: #faf5ef; }
mark.order-status.status-on-hold,
mark.order-status.status-pending    { color: #888;           background: #f5f5f5; }
mark.order-status.status-cancelled  { color: #b91c1c;        background: #fff5f5; }

/* ── Buttons ── */

.woocommerce-MyAccount-content .button,
.woocommerce-MyAccount-content .woocommerce-Button,
.woocommerce-MyAccount-content a.button {
    display: inline-block;
    background: var(--gold);
    color: #fff;
    border: none;
    padding: 8px 18px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
    transition: opacity 0.15s;
    font-family: inherit;
}

.woocommerce-MyAccount-content .button:hover,
.woocommerce-MyAccount-content .woocommerce-Button:hover,
.woocommerce-MyAccount-content a.button:hover {
    opacity: 0.85;
    color: #fff;
}

/* ── Form Fields ── */

.woocommerce-MyAccount-content .woocommerce-form-row label,
.woocommerce-MyAccount-content label {
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--black);
    margin-bottom: 4px;
    display: block;
}

.woocommerce-MyAccount-content input[type="text"],
.woocommerce-MyAccount-content input[type="email"],
.woocommerce-MyAccount-content input[type="password"],
.woocommerce-MyAccount-content input[type="tel"] {
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 9px 12px;
    font-size: 14px;
    width: 100%;
    max-width: 420px;
    font-family: inherit;
    transition: border-color 0.15s;
}

.woocommerce-MyAccount-content input[type="text"]:focus,
.woocommerce-MyAccount-content input[type="email"]:focus,
.woocommerce-MyAccount-content input[type="password"]:focus {
    border-color: var(--gold);
    outline: none;
}

/* ── Mobile ── */

@media (max-width: 768px) {
    .woocommerce-account .woocommerce {
        grid-template-columns: 1fr;
        gap: 16px;
        margin-top: 24px;
    }

    .woocommerce-MyAccount-navigation {
        position: static;
    }

    .woocommerce-MyAccount-navigation li a {
        padding: 12px 16px;
    }

    .woocommerce-MyAccount-content {
        padding: 20px;
    }

    table.woocommerce-MyAccount-orders {
        font-size: 12px;
    }

    table.woocommerce-MyAccount-orders th,
    table.woocommerce-MyAccount-orders td {
        padding: 8px;
    }

    .woocommerce-account .woocommerce-MyAccount-navigation {
        grid-column: auto;
        grid-row: auto;
    }

    .woocommerce-account .woocommerce-MyAccount-content {
        grid-column: auto;
        grid-row: auto;
    }
}

/* ── Login-Seite (nicht eingeloggt) ── */

.woocommerce-account:not(.logged-in) .woocommerce {
    display: block;
    max-width: 480px;
    margin: 48px auto 64px;
}

.woocommerce-account:not(.logged-in) .woocommerce > h2 {
    font-size: 18px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 20px;
    color: var(--black);
}

.woocommerce-form-login,
.woocommerce-form-register {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 28px 32px;
}

.woocommerce-form-login .woocommerce-form-row,
.woocommerce-form-register .woocommerce-form-row {
    margin-bottom: 14px;
}

.woocommerce-form-login label,
.woocommerce-form-register label {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--black);
    margin-bottom: 4px;
    display: block;
}

.woocommerce-form-login input[type="text"],
.woocommerce-form-login input[type="email"],
.woocommerce-form-login input[type="password"],
.woocommerce-form-register input[type="text"],
.woocommerce-form-register input[type="email"],
.woocommerce-form-register input[type="password"] {
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 9px 12px;
    font-size: 14px;
    width: 100%;
    font-family: inherit;
    box-sizing: border-box;
    transition: border-color 0.15s;
}

.woocommerce-form-login input:focus,
.woocommerce-form-register input:focus {
    border-color: var(--gold);
    outline: none;
}

.woocommerce-form-login .form-row:last-of-type,
.woocommerce-form-register .form-row:last-of-type {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 4px;
}

.woocommerce-form-login__rememberme {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: var(--text-grey);
    cursor: pointer;
}

.woocommerce-form-login__rememberme input[type="checkbox"] {
    width: auto;
    margin: 0;
}

.woocommerce-form-login button[type="submit"],
.woocommerce-form-register button[type="submit"] {
    background: var(--gold) !important;
    color: #fff !important;
    border: none !important;
    padding: 10px 24px !important;
    border-radius: 6px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    cursor: pointer;
    font-family: inherit !important;
    transition: opacity 0.15s;
    white-space: nowrap;
}

.woocommerce-form-login button[type="submit"]:hover,
.woocommerce-form-register button[type="submit"]:hover {
    opacity: 0.85;
}

.woocommerce-LostPassword {
    margin-top: 14px;
    text-align: center;
}

.woocommerce-LostPassword a {
    font-size: 12px;
    color: var(--text-grey);
    text-decoration: underline;
}

.woocommerce-LostPassword a:hover {
    color: var(--gold);
}

/* Falls Registrierung aktiviert (col2-set nebeneinander) */
.woocommerce-account:not(.logged-in) .woocommerce #customer_login {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    max-width: 900px;
    margin: 0 auto;
}

.woocommerce-account:not(.logged-in) .woocommerce #customer_login .u-column1,
.woocommerce-account:not(.logged-in) .woocommerce #customer_login .u-column2 {
    float: none !important;
    width: 100% !important;
}

@media (max-width: 640px) {
    .woocommerce-account:not(.logged-in) .woocommerce {
        max-width: 100%;
        margin: 24px auto 40px;
    }

    .woocommerce-account:not(.logged-in) .woocommerce #customer_login {
        grid-template-columns: 1fr;
    }

    .woocommerce-form-login,
    .woocommerce-form-register {
        padding: 20px;
    }
}

/* ── Kontodetails bearbeiten (/mein-konto/edit-account/) ── */

.woocommerce-EditAccountForm .woocommerce-form-row {
    margin-bottom: 14px;
}

.woocommerce-EditAccountForm .woocommerce-form-row label {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--black);
    margin-bottom: 4px;
    display: block;
}

.woocommerce-EditAccountForm input[type="text"],
.woocommerce-EditAccountForm input[type="email"],
.woocommerce-EditAccountForm input[type="password"] {
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 9px 12px;
    font-size: 14px;
    width: 100%;
    max-width: 420px;
    font-family: inherit;
    box-sizing: border-box;
    transition: border-color 0.15s;
}

.woocommerce-EditAccountForm input:focus {
    border-color: var(--gold);
    outline: none;
}

.woocommerce-EditAccountForm .form-row-first,
.woocommerce-EditAccountForm .form-row-last {
    width: 48% !important;
}

.woocommerce-EditAccountForm fieldset {
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 20px 20px 12px;
    margin: 20px 0 16px;
}

.woocommerce-EditAccountForm fieldset legend {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--black);
    padding: 0 8px;
}

.woocommerce-EditAccountForm fieldset input[type="password"] {
    max-width: 100%;
}

.woocommerce-EditAccountForm > p:last-of-type {
    margin-top: 8px;
}

.woocommerce-EditAccountForm button[type="submit"] {
    background: var(--gold) !important;
    color: #fff !important;
    border: none !important;
    padding: 10px 24px !important;
    border-radius: 6px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    cursor: pointer;
    font-family: inherit !important;
    transition: opacity 0.15s;
}

.woocommerce-EditAccountForm button[type="submit"]:hover {
    opacity: 0.85;
}

/* ── Adressen Übersicht (/mein-konto/edit-address/) ── */

.woocommerce-account .woocommerce-Addresses {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.woocommerce-account .woocommerce-Addresses::before,
.woocommerce-account .woocommerce-Addresses::after {
    display: none;
}

.woocommerce-account .u-column1,
.woocommerce-account .u-column2 {
    float: none !important;
    width: 100% !important;
}

.woocommerce-Address {
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 20px 22px;
}

.woocommerce-Address-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--border);
}

.woocommerce-Address-title h2 {
    font-size: 13px !important;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin: 0 !important;
}

.woocommerce-Address-title a.edit {
    font-size: 12px;
    font-weight: 500;
    color: var(--gold);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.woocommerce-Address-title a.edit:hover {
    opacity: 0.75;
}

.woocommerce-Address address {
    font-size: 13px;
    line-height: 1.7;
    color: var(--text-grey);
    font-style: normal;
}

@media (max-width: 600px) {
    .woocommerce-account .woocommerce-Addresses {
        grid-template-columns: 1fr;
    }
}

/* ── Adresse bearbeiten (/mein-konto/edit-address/billing/) ── */

.woocommerce-address-fields .form-row {
    margin-bottom: 14px;
}

.woocommerce-address-fields .form-row label {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--black);
    margin-bottom: 4px;
    display: block;
}

.woocommerce-address-fields .form-row input[type="text"],
.woocommerce-address-fields .form-row input[type="email"],
.woocommerce-address-fields .form-row input[type="tel"],
.woocommerce-address-fields .form-row select {
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 9px 12px;
    font-size: 14px;
    width: 100%;
    font-family: inherit;
    background: #fff;
    transition: border-color 0.15s;
    box-sizing: border-box;
}

.woocommerce-address-fields .form-row input:focus,
.woocommerce-address-fields .form-row select:focus {
    border-color: var(--gold);
    outline: none;
}

.woocommerce-address-fields p.form-row-first,
.woocommerce-address-fields p.form-row-last {
    width: 48% !important;
}

.woocommerce-address-fields .woocommerce-address-fields__field-wrapper::after {
    content: '';
    display: table;
    clear: both;
}

.woocommerce-address-fields .button[type="submit"],
.woocommerce-address-fields .woocommerce-Button {
    background: var(--gold) !important;
    color: #fff !important;
    border: none !important;
    padding: 10px 24px !important;
    border-radius: 6px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    cursor: pointer;
    transition: opacity 0.15s;
    font-family: inherit !important;
    margin-top: 8px;
}

.woocommerce-address-fields .button[type="submit"]:hover {
    opacity: 0.85;
}