/* ============================================================
   DartHost WooCommerce Enhancer — Main Stylesheet
   www.darthost.eu
   ============================================================ */

/* ── Reset / Base ── */
.dh-grid-wrap * { box-sizing: border-box; }

/* ── Section Header ── */
.dh-grid-header {
    text-align: center;
    margin-bottom: 2rem;
}
.dh-grid-title {
    font-size: 2rem;
    font-weight: 700;
    margin: 0 0 .5rem;
    color: #2c2c2c;
}
.dh-grid-subtitle {
    color: #666;
    font-size: .95rem;
    margin: 0;
}

/* ── Product Grid ── */
.dh-grid {
    display: grid;
    gap: 1.5rem;
}
.dh-grid--cols-1 { grid-template-columns: repeat(1, 1fr); }
.dh-grid--cols-2 { grid-template-columns: repeat(2, 1fr); }
.dh-grid--cols-3 { grid-template-columns: repeat(3, 1fr); }
.dh-grid--cols-4 { grid-template-columns: repeat(4, 1fr); }
.dh-grid--cols-5 { grid-template-columns: repeat(5, 1fr); }
.dh-grid--cols-6 { grid-template-columns: repeat(6, 1fr); }

@media (max-width: 1024px) {
    .dh-grid--cols-4,
    .dh-grid--cols-5,
    .dh-grid--cols-6 { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 768px) {
    .dh-grid--cols-3,
    .dh-grid--cols-4,
    .dh-grid--cols-5,
    .dh-grid--cols-6 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
    .dh-grid { grid-template-columns: 1fr !important; }
}

/* ── Product Card ── */
.dh-product-card {
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 2px 12px rgba(0,0,0,.07);
    transition: transform .25s ease, box-shadow .25s ease;
    display: flex;
    flex-direction: column;
}
.dh-product-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 28px rgba(0,0,0,.13);
}

/* Image */
.dh-product-card__img-link { display: block; }
.dh-product-card__img-wrap {
    position: relative;
    overflow: hidden;
    aspect-ratio: 4/3;
    background: #f5f0e8;
}
.dh-product-card__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .4s ease;
    display: block;
}
.dh-product-card:hover .dh-product-card__img {
    transform: scale(1.05);
}

/* Body */
.dh-product-card__body {
    padding: 1rem 1.1rem 1.1rem;
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: .4rem;
}
.dh-product-card__title-link { text-decoration: none; }
.dh-product-card__title {
    font-size: 1.05rem;
    font-weight: 700;
    color: #2c2c2c;
    margin: 0;
    line-height: 1.3;
}
.dh-product-card__desc {
    font-size: .82rem;
    color: #777;
    margin: 0;
    line-height: 1.4;
    flex: 1;
}

/* Footer row */
.dh-product-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: auto;
    padding-top: .5rem;
}
.dh-product-card__price {
    font-weight: 700;
    font-size: 1rem;
    color: #2c2c2c;
    display: flex;
    align-items: baseline;
    gap: .2rem;
}
.dh-product-card__price ins { text-decoration: none; }
.dh-product-card__price del { opacity: .55; font-size: .8em; }
.dh-product-card__unit { font-weight: 400; color: #888; font-size: .78rem; }

/* ── Badges ── */
.dh-badges {
    position: absolute;
    top: .6rem;
    left: .6rem;
    display: flex;
    flex-direction: column;
    gap: .3rem;
    z-index: 5;
    pointer-events: none;
}
.dh-badge {
    display: inline-block;
    padding: .22rem .55rem;
    border-radius: 4px;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .02em;
    line-height: 1.2;
    white-space: nowrap;
}
.dh-badge--sale { /* color/bg set inline */ }
.dh-badge--new  { /* color/bg set inline */ }

/* Single product — badges overlay on gallery image */
body.single-product div.product .woocommerce-product-gallery {
    position: relative;
}
body.single-product div.product .dh-badges {
    top: .85rem;
    left: .85rem;
    z-index: 10;
}
body.single-product div.product .dh-badge {
    font-size: .85rem;
    padding: .3rem .7rem;
    border-radius: 5px;
    box-shadow: 0 2px 6px rgba(0,0,0,.2);
}

/* Hide WC default sale flash completely */
.woocommerce-badge,
span.onsale:not(.dh-badge) {
    display: none !important;
}

/* ── Swatches ── */
.dh-swatches {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin: .5rem 0;
}
.dh-swatch {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    border: 2px solid transparent;
    border-radius: 4px;
    transition: border-color .15s, transform .15s;
    position: relative;
}
.dh-swatch:hover { border-color: #999; transform: scale(1.08); }
.dh-swatch--active { border-color: #2c2c2c !important; }

.dh-swatch--color {
    width: 32px;
    height: 32px;
    border-radius: 50%;
}
.dh-swatch--image {
    width: 40px;
    height: 40px;
    overflow: hidden;
    border-radius: 4px;
}
.dh-swatch--image img { width: 100%; height: 100%; object-fit: cover; display: block; }

.dh-swatch--label {
    padding: .25rem .6rem;
    background: #f4f4f4;
    font-size: .8rem;
    font-weight: 600;
    color: #333;
    border-radius: 4px;
    min-width: 36px;
    text-align: center;
}
.dh-swatch--label.dh-swatch--active { background: #2c2c2c; color: #fff; }

/* ── Add-to-Cart Button (card) ── */
.dh-add-to-cart-btn {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    text-decoration: none;
}

/* ── DH Cart Button (shortcode) ── */
.dh-cart-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    border: none;
    cursor: pointer;
    text-decoration: none;
    font-family: inherit;
    font-weight: 600;
    transition: opacity .2s, transform .15s;
    position: relative;
    white-space: nowrap;
    vertical-align: middle;
    line-height: 1;
    box-sizing: border-box;
}
.dh-cart-btn:hover { opacity: .88; transform: translateY(-1px); text-decoration: none; }
.dh-cart-btn__icon { flex-shrink: 0; display: block; }
.dh-cart-btn__label { line-height: 1; }

/* Count bubble */
.dh-cart-btn__count {
    position: absolute;
    top: -.55rem;
    right: -.55rem;
    background: #e74c3c;
    color: #fff;
    border-radius: 999px;
    font-size: .68rem;
    font-weight: 700;
    min-width: 1.3em;
    height: 1.3em;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 .3em;
    line-height: 1;
    pointer-events: none;
}

/* Loading state */
.dh-cart-btn--loading { opacity: .6; pointer-events: none; }
.dh-cart-btn--loading .dh-cart-btn__icon { animation: dh-spin .8s linear infinite; }

/* ── Search ── */
.dh-search-wrap {
    position: relative;
    font-family: inherit;
}
.dh-search-label {
    display: block;
    font-size: .85rem;
    font-weight: 600;
    margin-bottom: .3rem;
    color: #444;
}
.dh-search-inner {
    position: relative;
    display: flex;
    align-items: center;
}
.dh-search-icon,
.dh-search-spinner {
    position: absolute;
    left: .8rem;
    color: #999;
    display: flex;
    align-items: center;
    pointer-events: none;
}
.dh-search-input {
    width: 100%;
    padding: .6rem .6rem .6rem 2.6rem;
    border: 1px solid #ddd;
    border-radius: 8px;
    font-size: .95rem;
    background: #fff;
    transition: border-color .2s, box-shadow .2s;
    outline: none;
    font-family: inherit;
    -webkit-appearance: none;
}
.dh-search-input:focus {
    border-color: #4a7c3f;
    box-shadow: 0 0 0 3px rgba(74,124,63,.15);
}
.dh-search-results {
    position: absolute;
    top: calc(100% + .3rem);
    left: 0;
    right: 0;
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 10px;
    box-shadow: 0 8px 30px rgba(0,0,0,.12);
    z-index: 9999;
    overflow: hidden;
    max-height: 400px;
    overflow-y: auto;
}
.dh-search-result-item {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .65rem 1rem;
    text-decoration: none;
    color: inherit;
    border-bottom: 1px solid #f0f0f0;
    transition: background .15s;
}
.dh-search-result-item:last-child { border-bottom: none; }
.dh-search-result-item:hover { background: #f8f8f8; }
.dh-search-result-img {
    width: 44px;
    height: 44px;
    object-fit: cover;
    border-radius: 6px;
    flex-shrink: 0;
    background: #f4f4f4;
}
.dh-search-result-info { flex: 1; min-width: 0; }
.dh-search-result-title {
    font-size: .9rem;
    font-weight: 600;
    color: #222;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.dh-search-result-price { font-size: .82rem; color: #666; margin-top: .1rem; }
.dh-search-no-results {
    padding: 1rem;
    text-align: center;
    color: #999;
    font-size: .9rem;
}

/* ── Cart feedback toast ── */
.dh-toast {
    position: fixed;
    bottom: 1.5rem;
    right: 1.5rem;
    background: #2c2c2c;
    color: #fff;
    padding: .75rem 1.3rem;
    border-radius: 8px;
    font-size: .9rem;
    font-weight: 500;
    z-index: 99999;
    box-shadow: 0 4px 20px rgba(0,0,0,.2);
    transform: translateY(120%);
    opacity: 0;
    transition: transform .3s ease, opacity .3s ease;
    pointer-events: none;
}
.dh-toast--show { transform: translateY(0); opacity: 1; }

/* ── Pagination ── */
.dh-pagination,
.woocommerce-pagination,
nav.woocommerce-pagination {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: .4rem !important;
    margin: 2rem auto !important;
    flex-wrap: wrap !important;
    width: 100% !important;
    max-width: 1200px !important;
    padding: 0 2rem !important;
    box-sizing: border-box !important;
    list-style: none !important;
}
.woocommerce-pagination ul {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: .4rem !important;
    flex-wrap: wrap !important;
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
.dh-pagination .page-numbers,
.woocommerce-pagination .page-numbers {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 38px !important;
    height: 38px !important;
    padding: 0 .5rem !important;
    border-radius: 8px !important;
    border: 1.5px solid #ccc !important;
    text-decoration: none !important;
    color: #222 !important;
    font-size: .9rem !important;
    font-weight: 600 !important;
    background: #fff !important;
    transition: background .15s, color .15s, border-color .15s !important;
}
.dh-pagination .page-numbers.current,
.woocommerce-pagination .page-numbers.current {
    background: #4a7c3f !important;
    color: #fff !important;
    border-color: #4a7c3f !important;
}
.dh-pagination .page-numbers:not(.current):hover,
.woocommerce-pagination .page-numbers:not(.current):hover {
    background: #fff !important;
    color: #4a7c3f !important;
    border-color: #4a7c3f !important;
}
.woocommerce-pagination .page-numbers.dots {
    border-color: transparent !important;
    background: transparent !important;
    color: #888 !important;
}

/* ── Utilities ── */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

@keyframes dh-spin {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}
.dh-spin { animation: dh-spin .8s linear infinite; }

/* ── Dynamic color vars — Search (injected inline on .dh-search-wrap) ── */
.dh-search-input {
    background: var(--dh-s-input-bg, #fff);
    color:       var(--dh-s-input-color, #333);
    border-color: var(--dh-s-input-border, #ddd);
}
.dh-search-icon {
    color: var(--dh-s-icon-color, #999);
}
.dh-search-results {
    background: var(--dh-s-result-bg, #fff);
}
.dh-search-result-item:hover {
    background: var(--dh-s-result-hover, #f8f8f8);
}
.dh-search-result-title {
    color: var(--dh-s-result-title, #222);
}
.dh-search-result-price {
    color: var(--dh-s-result-price, #666);
}

/* ── Cart button in grid — hover via CSS var ── */
.dh-add-to-cart-btn:hover {
    background: var(--dh-cart-hover-bg, #3a6230) !important;
    opacity: 1;
}

/* ── Product card border ── */
.dh-product-card {
    border: 1px solid var(--dh-card-border, #eee);
}

/* ── Account Button ── */
.dh-account-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    border: none;
    cursor: pointer;
    text-decoration: none;
    font-family: inherit;
    font-weight: 600;
    transition: opacity .2s, transform .15s;
    position: relative;
    white-space: nowrap;
    vertical-align: middle;
    line-height: 1;
    box-sizing: border-box;
}
.dh-account-btn:hover { opacity: .88; transform: translateY(-1px); text-decoration: none; }
.dh-account-btn__icon { flex-shrink: 0; display: block; }
.dh-account-btn__label { line-height: 1; }

/* ── Header Bar ── */
.dh-header-bar {
    display: inline-flex !important;
    flex-direction: row !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
    gap: .6rem !important;
    vertical-align: middle !important;
}

/* Every direct child side by side */
.dh-header-bar > *,
.dh-header-bar .dh-cart-btn,
.dh-header-bar .dh-account-btn {
    display: inline-flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
    width: auto !important;
    float: none !important;
    box-sizing: border-box !important;
    line-height: 1 !important;
}

/* ── Desktop: label visible ── */
.dh-header-bar .dh-cart-btn__label,
.dh-header-bar .dh-account-btn__label {
    display: inline !important;
}

/* ── Mobile ≤768px: icon-only circular buttons ── */
@media (max-width: 768px) {
    .dh-header-bar {
        gap: .5rem !important;
    }
    .dh-header-bar .dh-cart-btn__label,
    .dh-header-bar .dh-account-btn__label {
        display: none !important;
    }
    .dh-header-bar .dh-cart-btn,
    .dh-header-bar .dh-account-btn {
        border-radius: 50% !important;
        padding: 0 !important;
        width: 2.6rem !important;
        height: 2.6rem !important;
        min-width: 2.6rem !important;
        min-height: 2.6rem !important;
        gap: 0 !important;
    }
    /* Ensure icon stays centered */
    .dh-header-bar .dh-cart-btn__icon,
    .dh-header-bar .dh-account-btn__icon {
        margin: 0 !important;
    }
    /* Count bubble repositioned for circular button */
    .dh-header-bar .dh-cart-btn .dh-cart-btn__count {
        top: -.3rem !important;
        right: -.3rem !important;
    }
}

/* Also hide labels outside header bar on mobile */
@media (max-width: 768px) {
    .dh-cart-btn__label,
    .dh-account-btn__label {
        display: none !important;
    }
    .dh-cart-btn,
    .dh-account-btn {
        border-radius: 50% !important;
        padding: 0 !important;
        width: 2.6rem !important;
        height: 2.6rem !important;
        min-width: 2.6rem !important;
        gap: 0 !important;
    }
}

/* ═══════════════════════════════════════════
   ANNOUNCEMENT BANNER
   ═══════════════════════════════════════════ */
.dh-announcement {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 99998 !important;
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    padding: .65rem 1.25rem;
    font-size: .92rem;
    font-weight: 500;
    width: 100%;
    box-sizing: border-box;
    gap: .5rem;
    min-height: 40px;
    line-height: 1.4;
}
.dh-announcement * {
    visibility: visible !important;
    opacity: 1;
}
.dh-announcement__msg {
    color: inherit !important;
    font-size: inherit !important;
    font-weight: inherit !important;
    line-height: inherit !important;
    display: inline !important;
}
.dh-announcement__inner {
    display: flex !important;
    align-items: center;
    gap: .75rem;
    flex-wrap: wrap;
    flex: 1;
    justify-content: center;
    color: inherit !important;
}
.dh-announcement__link {
    display: inline-block;
    padding: .2rem .65rem;
    border: 1px solid currentColor;
    border-radius: 4px;
    text-decoration: none;
    font-size: .82rem;
    font-weight: 600;
    white-space: nowrap;
    opacity: .9;
    transition: opacity .15s;
}
.dh-announcement__link:hover { opacity: 1; text-decoration: none; }
.dh-announcement__close {
    background: none !important;
    border: none !important;
    cursor: pointer !important;
    padding: .35rem !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    opacity: 1 !important;
    flex-shrink: 0;
    transition: opacity .15s;
    pointer-events: all !important;
    position: relative;
    z-index: 1;
    min-width: 28px;
    min-height: 28px;
    border-radius: 50%;
    line-height: 1;
    color: inherit !important;  /* κληρονομεί χρώμα από parent */
}
.dh-announcement__close:hover { opacity: .7 !important; background: rgba(0,0,0,.1) !important; }
.dh-announcement__close svg { pointer-events: none; display: block; }
@media (max-width: 480px) {
    .dh-announcement { padding: .5rem .75rem; font-size: .82rem; }
    .dh-announcement__inner { gap: .4rem; }
}

/* ═══════════════════════════════════════════
   POPUP
   ═══════════════════════════════════════════ */
/* ── POPUP OVERLAY ── */
.dh-popup-overlay {
    position: fixed !important;
    top: 0 !important; left: 0 !important;
    right: 0 !important; bottom: 0 !important;
    background: rgba(0,0,0,.6) !important;
    z-index: 999999 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 2rem 1rem !important;
    box-sizing: border-box !important;
}
/* Relative wrapper — το X κρέμεται εκτός του overflow:hidden box */
.dh-popup-inner {
    position: relative !important;
    width: 100% !important;
    max-width: 520px !important;
    margin: auto !important;
    overflow: visible !important;
    z-index: 1000000 !important; /* δημιουργεί stacking context μέσα στο overlay */
}
.dh-popup-box {
    border-radius: 12px !important;
    overflow: hidden !important;
    box-shadow: 0 20px 60px rgba(0,0,0,.35) !important;
    width: 100% !important;
    max-height: 85vh !important;
    display: flex !important;
    flex-direction: column !important;
    box-sizing: border-box !important;
    animation: dh-slide-up .25s ease !important;
}
/* X button — absolute πάνω δεξιά στο dh-popup-inner */
.dh-popup-close-btn {
    position: absolute !important;
    top: -12px !important;
    right: -12px !important;
    width: 34px !important;
    height: 34px !important;
    z-index: 1000001 !important;
    border-radius: 50% !important;
    border: 2px solid rgba(255,255,255,.5) !important;
    cursor: pointer !important;
    background: #222 !important;
    color: #fff !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    box-shadow: 0 2px 10px rgba(0,0,0,.6) !important;
    flex-shrink: 0 !important;
    font-size: 0 !important;
    line-height: 0 !important;
    transition: background .18s !important;
    pointer-events: all !important;
    -webkit-tap-highlight-color: transparent !important;
}
.dh-popup-close-btn::before,
.dh-popup-close-btn::after { content: none !important; }
.dh-popup-close-btn:hover { background: #c0392b !important; }
.dh-popup__image {
    flex-shrink: 0;
    margin: 0;
    padding: 0;
    line-height: 0;
    display: block;
}
.dh-popup__image img {
    width: 100%;
    max-height: 260px;
    object-fit: cover;
    object-position: center top;
    display: block;
    margin: 0;
    padding: 0;
}
.dh-popup-content {
    padding: 1.25rem 1.5rem 1.5rem;
    overflow-y: auto;
}
@media (max-width: 600px) {
    .dh-popup-overlay { padding: .5rem; align-items: flex-end; }
    .dh-popup-box { border-radius: 16px 16px 0 0; max-height: 90vh; }
    .dh-popup__image img { max-height: 200px; }
}
.dh-popup__title {
    margin: 0 0 1rem;
    font-size: 1.35rem;
    font-weight: 700;
    padding-right: 2rem;
    line-height: 1.3;
}
.dh-popup__body {
    font-size: .95rem;
    line-height: 1.6;
    margin-bottom: 1.25rem;
}
.dh-popup__body p { margin: 0 0 .75rem; }
.dh-popup__body p:last-child { margin-bottom: 0; }
.dh-popup__footer { margin-top: 1.25rem; }
.dh-popup__btn {
    display: inline-block;
    padding: .7rem 1.6rem;
    border-radius: 8px;
    text-decoration: none;
    font-weight: 700;
    font-size: .95rem;
    transition: opacity .2s, transform .15s;
}
.dh-popup__btn:hover { opacity: .88; transform: translateY(-1px); text-decoration: none; }
@media (max-width: 480px) {
    .dh-popup-box { padding: 1.5rem 1.25rem 1.25rem; }
    .dh-popup__title { font-size: 1.1rem; }
    .dh-popup__btn { width: 100%; text-align: center; box-sizing: border-box; }
}
@keyframes dh-fade-in  { from { opacity:0; } to { opacity:1; } }
@keyframes dh-slide-up { from { transform:translateY(30px); opacity:0; } to { transform:translateY(0); opacity:1; } }

/* ═══════════════════════════════════════════
   RESPONSIVE FIXES — GLOBAL
   ═══════════════════════════════════════════ */

/* Header bar — ΠΑΝΤΑ δίπλα-δίπλα, ποτέ stack */
@media (max-width: 400px) {
    .dh-header-bar {
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        justify-content: flex-end !important;
        gap: .35rem !important;
    }
}

/* Search input full-width on mobile */
@media (max-width: 600px) {
    .dh-search-wrap { width: 100% !important; }
    .dh-header-bar__search { flex: 1 1 100%; order: -1; }
}

/* Grid responsive — κάρτες */
@media (max-width: 600px) {
    .dh-grid { gap: .85rem !important; }
    .dh-product-card__body { padding: .75rem .85rem .85rem; }
    .dh-product-card__title { font-size: .95rem; }
    .dh-product-card__price { font-size: .9rem; }
    .dh-product-card__footer { flex-wrap: wrap; gap: .5rem; }
    .dh-add-to-cart-btn { width: 100%; }
    .dh-add-to-cart-btn .dh-cart-btn {
        width: 100%;
        justify-content: center;
        border-radius: 6px !important;
    }
}

/* Tablet grid */
@media (max-width: 768px) {
    .dh-grid-title    { font-size: 1.5rem; }
    .dh-grid-subtitle { font-size: .88rem; }
}

/* Pagination mobile */
@media (max-width: 480px) {
    .dh-pagination .page-numbers { width: 32px; height: 32px; font-size: .8rem; }
}

/* Cart button mobile — hide label in header bar, already handled above for .dh-header-bar */
/* Standalone cart/account buttons: keep label unless inside header bar */

/* ═══ ADMIN CARD + TOGGLE STYLES (wp-admin only) ═══ */
.dh-admin-card {
    background: #fff;
    border: 1px solid #dcdcde;
    border-radius: 8px;
    overflow: hidden;
    max-width: 900px;
}
.dh-admin-card__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.25rem 1.5rem;
    background: #f9f9f9;
    border-bottom: 1px solid #dcdcde;
}
.dh-admin-card__head h2 { margin: 0 0 .2rem; font-size: 1.1rem; }
.dh-admin-card__head .description { margin: 0; }
.dh-admin-card__body { padding: 0 1.5rem 1.5rem; }
.dh-admin-card__body.dh-collapsed { display: none; }

/* Toggle switch */
.dh-toggle {
    display: flex;
    align-items: center;
    gap: .5rem;
    cursor: pointer;
    flex-shrink: 0;
    user-select: none;
    margin-top: .2rem;
}
.dh-toggle input { position: absolute; opacity: 0; width: 0; height: 0; }
.dh-toggle__slider {
    position: relative;
    width: 44px;
    height: 24px;
    background: #ccc;
    border-radius: 999px;
    transition: background .2s;
    flex-shrink: 0;
}
.dh-toggle__slider::after {
    content: '';
    position: absolute;
    width: 18px;
    height: 18px;
    background: #fff;
    border-radius: 50%;
    top: 3px;
    left: 3px;
    transition: transform .2s;
    box-shadow: 0 1px 3px rgba(0,0,0,.2);
}
.dh-toggle input:checked + .dh-toggle__slider { background: #4a7c3f; }
.dh-toggle input:checked + .dh-toggle__slider::after { transform: translateX(20px); }
.dh-toggle__label { font-weight: 600; font-size: .88rem; color: #555; white-space: nowrap; }
.dh-toggle input:checked ~ .dh-toggle__label { color: #4a7c3f; }

/* Popup image */
.dh-popup__image {
    flex-shrink: 0;
    margin: 0;
    padding: 0;
    line-height: 0;
    display: block;
}
.dh-popup__image img {
    width: 100%;
    max-height: 260px;
    object-fit: cover;
    object-position: center top;
    display: block;
    margin: 0;
    padding: 0;
}
@media (max-width: 480px) {
    .dh-popup__image img { max-height: 180px; }
}

/* ═══════════════════════════════════════════════════════════════
   WOOCOMMERCE — COMPLETE RESPONSIVE SYSTEM
   Καλύπτει: My Account, Login, Cart, Checkout, Shop
   Mobile-first approach, tested για 320px–1920px
   ═══════════════════════════════════════════════════════════════ */

/* ─── SHARED: Κεντραρισμένος container για όλες τις WC σελίδες ─── */
.woocommerce-page .woocommerce,
.woocommerce-account .woocommerce,
.woocommerce-cart .woocommerce,
.woocommerce-checkout .woocommerce {
    max-width: 1100px !important;
    margin: 0 auto !important;
    padding: 1.5rem !important;
    box-sizing: border-box !important;
    width: 100% !important;
    float: none !important;
}

/* ─── SHARED: Form inputs ─── */
.woocommerce form .form-row {
    padding: 0 !important;
    margin-bottom: .85rem !important;
}
.woocommerce form .form-row label {
    display: block !important;
    font-size: .85rem !important;
    font-weight: 600 !important;
    margin-bottom: .3rem !important;
    color: #333 !important;
}
.woocommerce form input[type="text"],
.woocommerce form input[type="email"],
.woocommerce form input[type="password"],
.woocommerce form input[type="tel"],
.woocommerce form input[type="number"],
.woocommerce form textarea,
.woocommerce form select {
    width: 100% !important;
    max-width: 100% !important;
    padding: .6rem .85rem !important;
    border: 1px solid #ddd !important;
    border-radius: 7px !important;
    font-size: .95rem !important;
    box-sizing: border-box !important;
    transition: border-color .2s !important;
    background: #fff !important;
    color: #222 !important;
}
.woocommerce form input:focus,
.woocommerce form textarea:focus,
.woocommerce form select:focus {
    border-color: #4a7c3f !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(74,124,63,.12) !important;
}

/* ─── SHARED: Buttons ─── */
.woocommerce .button,
.woocommerce button[type="submit"],
.woocommerce input[type="submit"] {
    background: #4a7c3f !important;
    color: #fff !important;
    border: none !important;
    border-radius: 7px !important;
    padding: .7rem 1.5rem !important;
    font-weight: 700 !important;
    font-size: .95rem !important;
    cursor: pointer !important;
    transition: background .2s !important;
    text-decoration: none !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: .4rem !important;
}
.woocommerce .button:hover,
.woocommerce button[type="submit"]:hover {
    background: #3a6230 !important;
    color: #fff !important;
}
.woocommerce .button.alt {
    background: #c8921a !important;
}
.woocommerce .button.alt:hover {
    background: #a87615 !important;
}

/* ════════════════════════════════════════
   MY ACCOUNT — Login & Register
   ════════════════════════════════════════ */
.woocommerce-account .col2-set,
.woocommerce-page .col2-set {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 2rem !important;
    width: 100% !important;
    box-sizing: border-box !important;
    align-items: flex-start !important;
}
.woocommerce-account .col2-set .col-1,
.woocommerce-account .col2-set .col-2,
.woocommerce-page .col2-set .col-1,
.woocommerce-page .col2-set .col-2 {
    flex: 1 1 300px !important;
    max-width: 480px !important;
    float: none !important;
    box-sizing: border-box !important;
    background: #fff !important;
    border: 1px solid #eee !important;
    border-radius: 12px !important;
    padding: 1.75rem !important;
    box-shadow: 0 2px 10px rgba(0,0,0,.05) !important;
}

/* My Account — Dashboard navigation */
.woocommerce-MyAccount-navigation {
    width: 220px !important;
    flex-shrink: 0 !important;
}
.woocommerce-MyAccount-navigation ul {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
    background: #fff !important;
    border: 1px solid #eee !important;
    border-radius: 12px !important;
    overflow: hidden !important;
    box-shadow: 0 2px 10px rgba(0,0,0,.05) !important;
}
.woocommerce-MyAccount-navigation ul li {
    border-bottom: 1px solid #f5f5f5 !important;
}
.woocommerce-MyAccount-navigation ul li:last-child {
    border-bottom: none !important;
}
.woocommerce-MyAccount-navigation ul li a {
    display: block !important;
    padding: .75rem 1.1rem !important;
    color: #444 !important;
    text-decoration: none !important;
    font-size: .9rem !important;
    transition: background .15s, color .15s !important;
}
.woocommerce-MyAccount-navigation ul li a:hover,
.woocommerce-MyAccount-navigation ul li.is-active a {
    background: #4a7c3f !important;
    color: #fff !important;
}

/* ── Kill ALL blue from WC account nav ── */
html body.woocommerce-account .woocommerce-MyAccount-navigation ul li a,
html body.woocommerce-account .woocommerce-MyAccount-navigation ul li a:visited,
html body.woocommerce-account .woocommerce-MyAccount-navigation ul li a:link {
    color: #333 !important;
    background: #fff !important;
    background-color: #fff !important;
    border: none !important;
    border-left: none !important;
    border-left-color: transparent !important;
    box-shadow: none !important;
    outline: none !important;
    text-decoration: none !important;
}
html body.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a,
html body.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a:visited,
html body.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover,
html body.woocommerce-account .woocommerce-MyAccount-navigation ul li a:focus {
    background: #4a7c3f !important;
    background-color: #4a7c3f !important;
    color: #fff !important;
    border: none !important;
    border-left: 3px solid #2d5a25 !important;
}
/* WC account buttons */
html body.woocommerce-account .button,
html body.woocommerce-account button.button,
html body.woocommerce-account input[type=submit],
html body.woocommerce-account a.button {
    background: #4a7c3f !important;
    background-color: #4a7c3f !important;
    color: #fff !important;
    border-color: #4a7c3f !important;
}
html body.woocommerce-account .button:hover,
html body.woocommerce-account button.button:hover,
html body.woocommerce-account a.button:hover {
    background: #3a6230 !important;
    background-color: #3a6230 !important;
    color: #fff !important;
}

/* My Account — Content area */
.woocommerce-MyAccount-content {
    flex: 1 !important;
    min-width: 0 !important;
    background: #fff !important;
    border: 1px solid #eee !important;
    border-radius: 12px !important;
    padding: 1.75rem !important;
    box-shadow: 0 2px 10px rgba(0,0,0,.05) !important;
    box-sizing: border-box !important;
}

/* My Account wrapper = nav + content side by side */
.woocommerce-account .woocommerce {
    display: flex !important;
    gap: 1.5rem !important;
    align-items: flex-start !important;
    flex-wrap: wrap !important;
}

@media (max-width: 660px) {
    .woocommerce-account .col2-set .col-1,
    .woocommerce-account .col2-set .col-2,
    .woocommerce-page .col2-set .col-1,
    .woocommerce-page .col2-set .col-2 {
        max-width: 100% !important;
        flex: 1 1 100% !important;
    }
    .woocommerce-MyAccount-navigation {
        width: 100% !important;
    }
    .woocommerce-MyAccount-navigation ul {
        display: flex !important;
        flex-wrap: wrap !important;
    }
    .woocommerce-MyAccount-navigation ul li {
        flex: 1 1 auto !important;
        border-bottom: none !important;
        border-right: 1px solid #f5f5f5 !important;
        text-align: center !important;
    }
    .woocommerce-MyAccount-navigation ul li a {
        padding: .6rem .5rem !important;
        font-size: .8rem !important;
    }
    .woocommerce-MyAccount-content {
        padding: 1.1rem !important;
    }
}

/* ════════════════════════════════════════
   CART PAGE
   ════════════════════════════════════════ */

/* Cart page layout: table + totals */
.woocommerce-cart .woocommerce {
    display: block !important;
}

/* ── Cart Table ── */
body.woocommerce-cart table.shop_table,
body .woocommerce-cart table.shop_table,
.woocommerce-cart .woocommerce table.shop_table {
    width: 100% !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    border: 1px solid #e8e8e8 !important;
    border-radius: 12px !important;
    overflow: hidden !important;
    background: #fff !important;
    box-shadow: 0 2px 12px rgba(0,0,0,.06) !important;
    margin-bottom: 1.5rem !important;
}
.woocommerce-cart table.shop_table thead th {
    background: #f7f7f7 !important;
    padding: .75rem 1rem !important;
    font-size: .78rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: .06em !important;
    color: #666 !important;
    border-bottom: 1px solid #e8e8e8 !important;
    white-space: nowrap !important;
}
.woocommerce-cart table.shop_table tbody td {
    padding: .9rem 1rem !important;
    vertical-align: middle !important;
    border-bottom: 1px solid #f2f2f2 !important;
    background: #fff !important;
}
.woocommerce-cart table.shop_table tbody tr:last-child td {
    border-bottom: none !important;
}

/* Product thumbnail */
.woocommerce-cart table.shop_table .product-thumbnail {
    width: 80px !important;
}
.woocommerce-cart table.shop_table .product-thumbnail img {
    width: 65px !important;
    height: 65px !important;
    object-fit: cover !important;
    border-radius: 8px !important;
    display: block !important;
    border: 1px solid #eee !important;
}

/* Product name */
.woocommerce-cart table.shop_table .product-name a {
    font-weight: 600 !important;
    color: #1a1a1a !important;
    text-decoration: none !important;
    font-size: .95rem !important;
    line-height: 1.4 !important;
}
.woocommerce-cart table.shop_table .product-name a:hover {
    color: #4a7c3f !important;
}

/* Quantity */
.woocommerce-cart .quantity {
    display: flex !important;
    align-items: center !important;
    border: 1px solid #ddd !important;
    border-radius: 7px !important;
    overflow: hidden !important;
    width: fit-content !important;
    background: #fff !important;
}
.woocommerce-cart .quantity input.qty {
    width: 3rem !important;
    text-align: center !important;
    border: none !important;
    border-left: 1px solid #ddd !important;
    border-right: 1px solid #ddd !important;
    padding: .4rem 0 !important;
    font-size: .95rem !important;
    -moz-appearance: textfield !important;
    background: #fff !important;
}
.woocommerce-cart .quantity input.qty::-webkit-outer-spin-button,
.woocommerce-cart .quantity input.qty::-webkit-inner-spin-button {
    -webkit-appearance: none !important;
}

/* Remove */
.woocommerce-cart table.shop_table td.product-remove {
    width: 40px !important;
}
.woocommerce-cart table.shop_table td.product-remove a.remove {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 28px !important;
    height: 28px !important;
    border-radius: 50% !important;
    background: #f5f5f5 !important;
    color: #aaa !important;
    font-size: 1.1rem !important;
    text-decoration: none !important;
    transition: all .2s !important;
    line-height: 1 !important;
}
.woocommerce-cart table.shop_table td.product-remove a.remove:hover {
    background: #ffe0e0 !important;
    color: #e53935 !important;
}

/* Actions row */
.woocommerce-cart table.shop_table td.actions {
    background: #fafafa !important;
    padding: 1rem !important;
}
.woocommerce-cart .coupon {
    display: flex !important;
    gap: .5rem !important;
    align-items: center !important;
    flex-wrap: wrap !important;
}
.woocommerce-cart .coupon input#coupon_code {
    flex: 1 1 140px !important;
    padding: .55rem .85rem !important;
    border: 1px solid #ddd !important;
    border-radius: 7px !important;
    font-size: .9rem !important;
    box-sizing: border-box !important;
}

/* Cart Collaterals — totals card */
.woocommerce-cart .cart-collaterals {
    display: flex !important;
    justify-content: flex-end !important;
}
.woocommerce-cart .cart_totals {
    width: 100% !important;
    max-width: 400px !important;
    background: #fff !important;
    border: 1px solid #e8e8e8 !important;
    border-radius: 12px !important;
    padding: 1.5rem !important;
    box-shadow: 0 2px 12px rgba(0,0,0,.06) !important;
    box-sizing: border-box !important;
}
.woocommerce-cart .cart_totals h2 {
    font-size: 1rem !important;
    font-weight: 700 !important;
    margin: 0 0 1rem !important;
    padding-bottom: .75rem !important;
    border-bottom: 1px solid #f0f0f0 !important;
    text-transform: uppercase !important;
    letter-spacing: .04em !important;
    color: #333 !important;
}
.woocommerce-cart .cart_totals table {
    width: 100% !important;
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    margin-bottom: 1rem !important;
}
.woocommerce-cart .cart_totals table th,
.woocommerce-cart .cart_totals table td {
    padding: .55rem 0 !important;
    border: none !important;
    border-bottom: 1px solid #f5f5f5 !important;
    background: transparent !important;
    font-size: .9rem !important;
    box-shadow: none !important;
}
.woocommerce-cart .cart_totals table .order-total th,
.woocommerce-cart .cart_totals table .order-total td {
    font-weight: 700 !important;
    font-size: 1.05rem !important;
    border-bottom: none !important;
    padding-top: .75rem !important;
}
.woocommerce-cart .wc-proceed-to-checkout {
    margin-top: .5rem !important;
}
.woocommerce-cart .wc-proceed-to-checkout .checkout-button {
    display: block !important;
    width: 100% !important;
    text-align: center !important;
    background: #4a7c3f !important;
    color: #fff !important;
    padding: .9rem 1.5rem !important;
    border-radius: 8px !important;
    font-weight: 700 !important;
    font-size: 1rem !important;
    text-decoration: none !important;
    transition: background .2s !important;
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
    cursor: pointer !important;
    box-sizing: border-box !important;
    justify-content: center !important;
}
.woocommerce-cart .wc-proceed-to-checkout .checkout-button:hover {
    background: #3a6230 !important;
    color: #fff !important;
}

/* ── Cart Mobile ── */
@media (max-width: 640px) {
    /* Μετατρέπουμε το table σε card-based layout */
    .woocommerce-cart table.shop_table thead {
        display: none !important;
    }
    .woocommerce-cart table.shop_table,
    .woocommerce-cart table.shop_table tbody,
    .woocommerce-cart table.shop_table tr,
    .woocommerce-cart table.shop_table td {
        display: block !important;
        width: 100% !important;
    }
    .woocommerce-cart table.shop_table tr.cart_item {
        display: flex !important;
        flex-wrap: wrap !important;
        padding: .85rem !important;
        border-bottom: 1px solid #f0f0f0 !important;
        position: relative !important;
        gap: .75rem !important;
        align-items: flex-start !important;
    }
    .woocommerce-cart table.shop_table td {
        padding: 0 !important;
        border: none !important;
        width: auto !important;
    }
    .woocommerce-cart table.shop_table td.product-remove {
        position: absolute !important;
        top: .85rem !important;
        right: .85rem !important;
        width: auto !important;
    }
    .woocommerce-cart table.shop_table td.product-thumbnail {
        width: 60px !important;
        flex-shrink: 0 !important;
    }
    .woocommerce-cart table.shop_table td.product-thumbnail img {
        width: 60px !important;
        height: 60px !important;
    }
    .woocommerce-cart table.shop_table td.product-name {
        flex: 1 !important;
        min-width: 0 !important;
        padding-right: 2rem !important;
    }
    .woocommerce-cart table.shop_table td.product-price {
        width: 100% !important;
        font-size: .85rem !important;
        color: #888 !important;
    }
    .woocommerce-cart table.shop_table td.product-subtotal {
        font-weight: 700 !important;
        color: #1a1a1a !important;
    }
    .woocommerce-cart table.shop_table td.product-price::before { content: 'Τιμή: '; font-size: .75rem; color: #aaa; }
    .woocommerce-cart table.shop_table td.product-subtotal::before { content: 'Σύνολο: '; font-size: .75rem; color: #aaa; }
    .woocommerce-cart table.shop_table td.product-quantity::before { content: 'Ποσότητα: '; font-size: .75rem; color: #aaa; display: block; margin-bottom: .3rem; }

    .woocommerce-cart .cart-collaterals {
        justify-content: stretch !important;
    }
    .woocommerce-cart .cart_totals {
        max-width: 100% !important;
    }
    .woocommerce-cart table.shop_table td.actions {
        display: flex !important;
        flex-direction: column !important;
        gap: .75rem !important;
        padding: 1rem !important;
    }
}

/* ════════════════════════════════════════
   CHECKOUT PAGE
   ════════════════════════════════════════ */
.woocommerce-checkout .woocommerce {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 2rem !important;
    align-items: flex-start !important;
}

/* Billing form */
.woocommerce-checkout #customer_details,
.woocommerce-checkout .col2-set {
    flex: 1 1 400px !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

/* Order review */
.woocommerce-checkout #order_review_heading,
.woocommerce-checkout #order_review {
    flex: 0 0 360px !important;
    width: 360px !important;
    box-sizing: border-box !important;
}

.woocommerce-checkout #order_review_heading {
    flex: none !important;
    width: 100% !important;
}

/* Billing/shipping address sections */
.woocommerce-checkout .woocommerce-billing-fields,
.woocommerce-checkout .woocommerce-shipping-fields {
    background: #fff !important;
    border: 1px solid #eee !important;
    border-radius: 12px !important;
    padding: 1.5rem !important;
    margin-bottom: 1.5rem !important;
    box-shadow: 0 2px 10px rgba(0,0,0,.05) !important;
    box-sizing: border-box !important;
}
.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout .woocommerce-shipping-fields h3 {
    font-size: 1rem !important;
    font-weight: 700 !important;
    margin: 0 0 1.25rem !important;
    padding-bottom: .75rem !important;
    border-bottom: 1px solid #f0f0f0 !important;
    color: #333 !important;
    text-transform: uppercase !important;
    letter-spacing: .04em !important;
}

/* Two-column address fields on desktop */
.woocommerce-checkout #billing_first_name_field,
.woocommerce-checkout #billing_last_name_field {
    width: calc(50% - .5rem) !important;
    display: inline-block !important;
    box-sizing: border-box !important;
}
.woocommerce-checkout #billing_first_name_field {
    margin-right: 1rem !important;
}

/* Order Review box */
.woocommerce-checkout #order_review {
    background: #fff !important;
    border: 1px solid #eee !important;
    border-radius: 12px !important;
    padding: 1.5rem !important;
    box-shadow: 0 2px 10px rgba(0,0,0,.05) !important;
}
.woocommerce-checkout #order_review h3 {
    font-size: 1rem !important;
    font-weight: 700 !important;
    margin: 0 0 1rem !important;
    padding-bottom: .75rem !important;
    border-bottom: 1px solid #f0f0f0 !important;
    text-transform: uppercase !important;
    letter-spacing: .04em !important;
}
.woocommerce-checkout table.shop_table {
    width: 100% !important;
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
}
.woocommerce-checkout table.shop_table th,
.woocommerce-checkout table.shop_table td {
    padding: .55rem 0 !important;
    border: none !important;
    border-bottom: 1px solid #f5f5f5 !important;
    background: transparent !important;
    font-size: .9rem !important;
}
.woocommerce-checkout table.shop_table .order-total th,
.woocommerce-checkout table.shop_table .order-total td {
    font-weight: 700 !important;
    font-size: 1.05rem !important;
    border-bottom: none !important;
    padding-top: .75rem !important;
}

/* Place order button */
.woocommerce-checkout #place_order {
    display: block !important;
    width: 100% !important;
    text-align: center !important;
    justify-content: center !important;
    background: #4a7c3f !important;
    color: #fff !important;
    padding: 1rem !important;
    border-radius: 8px !important;
    font-weight: 700 !important;
    font-size: 1.05rem !important;
    border: none !important;
    cursor: pointer !important;
    margin-top: 1rem !important;
    transition: background .2s !important;
    box-sizing: border-box !important;
}
.woocommerce-checkout #place_order:hover {
    background: #3a6230 !important;
}

/* Payment methods */
.woocommerce-checkout #payment {
    background: #fafafa !important;
    border: 1px solid #eee !important;
    border-radius: 10px !important;
    padding: 1.25rem !important;
    margin-top: 1rem !important;
}
.woocommerce-checkout #payment .payment_methods li {
    padding: .6rem 0 !important;
    border-bottom: 1px solid #f0f0f0 !important;
    list-style: none !important;
}
.woocommerce-checkout #payment .payment_methods li:last-child {
    border-bottom: none !important;
}

/* Checkout Mobile */
@media (max-width: 760px) {
    .woocommerce-checkout .woocommerce {
        flex-direction: column !important;
    }
    .woocommerce-checkout #customer_details,
    .woocommerce-checkout .col2-set,
    .woocommerce-checkout #order_review {
        flex: 1 1 100% !important;
        width: 100% !important;
    }
    .woocommerce-checkout #billing_first_name_field,
    .woocommerce-checkout #billing_last_name_field {
        width: 100% !important;
        display: block !important;
        margin-right: 0 !important;
    }
}

/* ════════════════════════════════════════
   SHOP — Product Archive
   ════════════════════════════════════════ */
.woocommerce-page .woocommerce {
    display: block !important;
}

/* ── Shop container full width ── */
.woocommerce-shop .woocommerce,
.woocommerce-page .woocommerce,
body.woocommerce .woocommerce {
    max-width: 1200px !important;
    width: 100% !important;
    margin: 0 auto !important;
    padding: 1.5rem !important;
    box-sizing: border-box !important;
    float: none !important;
    display: block !important;
}

/* ── Product GRID — only on shop/category pages, NOT related/upsells ── */
body.woocommerce-shop ul.products,
body.post-type-archive-product ul.products,
body.tax-product_cat ul.products,
body.tax-product_tag ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 1.5rem !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
    float: none !important;
    width: 100% !important;
    box-sizing: border-box !important;
}
@media (max-width: 1024px) {
    body.woocommerce-shop ul.products,
    body.post-type-archive-product ul.products,
    body.tax-product_cat ul.products,
    body.tax-product_tag ul.products {
        grid-template-columns: repeat(3, 1fr) !important;
    }
}
@media (max-width: 640px) {
    body.woocommerce-shop ul.products,
    body.post-type-archive-product ul.products,
    body.tax-product_cat ul.products,
    body.tax-product_tag ul.products {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: .85rem !important;
    }
}

/* ── Product CARD — shop pages only ── */
body.woocommerce-shop ul.products li.product,
body.post-type-archive-product ul.products li.product,
body.tax-product_cat ul.products li.product,
body.tax-product_tag ul.products li.product {
    background: #fff !important;
    border: 1px solid #ebebeb !important;
    overflow: visible !important;
    height: auto !important;
    border-radius: 14px !important;
    overflow: hidden !important;
    box-shadow: 0 2px 10px rgba(0,0,0,.06) !important;
    transition: box-shadow .22s ease, transform .22s ease !important;
    display: flex !important;
    flex-direction: column !important;
    width: auto !important;   /* override theme's width */
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    position: relative !important;
}
body.woocommerce-shop ul.products li.product:hover,
body.post-type-archive-product ul.products li.product:hover,
body.tax-product_cat ul.products li.product:hover,
body.tax-product_tag ul.products li.product:hover {
    box-shadow: 0 8px 28px rgba(0,0,0,.13) !important;
    transform: translateY(-3px) !important;
}

/* Product image */
body.woocommerce-shop ul.products li.product a.woocommerce-LoopProduct-link,
body.post-type-archive-product ul.products li.product a.woocommerce-LoopProduct-link {
    display: block !important;
    text-decoration: none !important;
}
body.woocommerce-shop ul.products li.product img,
body.post-type-archive-product ul.products li.product img,
body.tax-product_cat ul.products li.product img,
body.tax-product_tag ul.products li.product img {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 1 / 1 !important;
    object-fit: cover !important;
    object-position: center !important;
    display: block !important;
    border-radius: 0 !important;
    margin: 0 !important;
    transition: transform .3s ease !important;
}
body.woocommerce-shop ul.products li.product:hover img,
body.post-type-archive-product ul.products li.product:hover img {
    transform: scale(1.04) !important;
}

/* Card body */
body .woocommerce ul.products li.product .woocommerce-loop-product__title,
body .woocommerce ul.products li.product h2,
.woocommerce-page ul.products li.product .woocommerce-loop-product__title {
    font-size: .95rem !important;
    font-weight: 600 !important;
    padding: .9rem .9rem .3rem !important;
    color: #1a1a1a !important;
    line-height: 1.4 !important;
    flex: 1 !important;
    margin: 0 !important;
    text-decoration: none !important;
}

body .woocommerce ul.products li.product .price,
.woocommerce-page ul.products li.product .price {
    padding: 0 .9rem .4rem !important;
    font-size: 1.05rem !important;
    font-weight: 700 !important;
    color: #c8921a !important;
    display: block !important;
    margin: 0 !important;
}
body .woocommerce ul.products li.product .price del,
.woocommerce-page ul.products li.product .price del {
    color: #bbb !important;
    font-weight: 400 !important;
    font-size: .85rem !important;
    margin-right: .3rem !important;
}

/* Add to cart button */
body .woocommerce ul.products li.product .button,
.woocommerce-page ul.products li.product .button,
body .woocommerce ul.products li.product .add_to_cart_button {
    display: block !important;
    width: calc(100% - 1.8rem) !important;
    margin: 0 .9rem .9rem !important;
    text-align: center !important;
    justify-content: center !important;
    background: #4a7c3f !important;
    color: #fff !important;
    padding: .6rem 1rem !important;
    border-radius: 8px !important;
    font-size: .88rem !important;
    font-weight: 600 !important;
    border: none !important;
    cursor: pointer !important;
    box-sizing: border-box !important;
    transition: background .2s !important;
    text-decoration: none !important;
}
body .woocommerce ul.products li.product .button:hover,
body .woocommerce ul.products li.product .add_to_cart_button:hover {
    background: #3a6230 !important;
    color: #fff !important;
}

/* Sale badge */
body .woocommerce ul.products li.product .onsale,
.woocommerce-page ul.products li.product .onsale {
    position: absolute !important;
    top: .75rem !important;
    left: .75rem !important;
    background: #e53935 !important;
    color: #fff !important;
    font-size: .75rem !important;
    font-weight: 700 !important;
    padding: .25rem .6rem !important;
    border-radius: 5px !important;
    text-transform: uppercase !important;
    letter-spacing: .04em !important;
    z-index: 2 !important;
    min-width: unset !important;
    min-height: unset !important;
    line-height: 1.4 !important;
}

/* Ordering + results count row */
.woocommerce-products-header,
.woocommerce-result-count,
.woocommerce-ordering {
    margin-bottom: 1.25rem !important;
}
.woocommerce-ordering select {
    padding: .45rem .75rem !important;
    border: 1px solid #ddd !important;
    border-radius: 7px !important;
    font-size: .88rem !important;
    background: #fff !important;
}

/* Mobile image height */
@media (max-width: 640px) {
    body .woocommerce ul.products li.product img,
    .woocommerce-page ul.products li.product img {
        height: 160px !important;
    }
    body .woocommerce ul.products li.product .woocommerce-loop-product__title {
        font-size: .82rem !important;
        padding: .65rem .65rem .2rem !important;
    }
    body .woocommerce ul.products li.product .price {
        font-size: .9rem !important;
        padding: 0 .65rem .3rem !important;
    }
    body .woocommerce ul.products li.product .button {
        width: calc(100% - 1.3rem) !important;
        margin: 0 .65rem .65rem !important;
        font-size: .8rem !important;
        padding: .5rem .5rem !important;
    }
}

/* ════════════════════════════════════════
   SINGLE PRODUCT PAGE — Complete redesign
   ════════════════════════════════════════ */

/* Container */
body.single-product .woocommerce,
body.single-product div.product {
    max-width: 1100px !important;
    margin: 0 auto !important;
    box-sizing: border-box !important;
}

/* Main product layout: image left, summary right */
body.single-product div.product,
body.woocommerce.single-product div.product {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 3rem !important;
    align-items: flex-start !important;
    padding: 2rem 1.5rem !important;
}

/* Gallery */
body.single-product div.product .woocommerce-product-gallery {
    flex: 0 0 420px !important;
    max-width: 420px !important;
    width: 420px !important;
    border-radius: 14px !important;
    overflow: hidden !important;
    box-shadow: 0 4px 24px rgba(0,0,0,.1) !important;
}
body.single-product div.product .woocommerce-product-gallery img {
    width: 100% !important;
    display: block !important;
    border-radius: 0 !important;
}

/* Summary */
body.single-product div.product .summary {
    flex: 1 1 320px !important;
    min-width: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 1rem !important;
}

/* Title */
body.single-product div.product .summary .product_title {
    font-size: 2rem !important;
    font-weight: 800 !important;
    color: #1a1a1a !important;
    line-height: 1.2 !important;
    margin: 0 !important;
}

/* Price */
body.single-product div.product .summary .price {
    font-size: 1.8rem !important;
    font-weight: 700 !important;
    color: #c8921a !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    gap: .5rem !important;
    flex-wrap: wrap !important;
}
body.single-product div.product .summary .price del {
    color: #bbb !important;
    font-size: 1.2rem !important;
    font-weight: 400 !important;
}
body.single-product div.product .summary .price ins {
    text-decoration: none !important;
}

/* Stock */
body.single-product div.product .summary .stock {
    font-size: .9rem !important;
    font-weight: 600 !important;
    padding: .3rem .8rem !important;
    border-radius: 20px !important;
    width: fit-content !important;
}
body.single-product div.product .summary .in-stock {
    background: #e8f5e9 !important;
    color: #2e7d32 !important;
}
body.single-product div.product .summary .out-of-stock {
    background: #fce4e4 !important;
    color: #c62828 !important;
}

/* Short description */
body.single-product div.product .summary .woocommerce-product-details__short-description {
    font-size: .95rem !important;
    color: #555 !important;
    line-height: 1.7 !important;
    border-top: 1px solid #f0f0f0 !important;
    padding-top: 1rem !important;
}

/* Quantity + add to cart row */
body.single-product div.product .summary form.cart {
    display: flex !important;
    gap: .75rem !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    margin: 0 !important;
    border-top: 1px solid #f0f0f0 !important;
    padding-top: 1rem !important;
}

/* Quantity stepper */
body.single-product div.product .summary form.cart .quantity {
    display: flex !important;
    align-items: center !important;
    border: 1.5px solid #ddd !important;
    border-radius: 8px !important;
    overflow: hidden !important;
    background: #fff !important;
    flex-shrink: 0 !important;
}
body.single-product div.product .summary form.cart .quantity input.qty {
    width: 3.5rem !important;
    height: 48px !important;
    text-align: center !important;
    border: none !important;
    font-size: 1rem !important;
    font-weight: 600 !important;
    -moz-appearance: textfield !important;
    background: #fff !important;
    color: #222 !important;
}
body.single-product div.product .summary form.cart .quantity input.qty::-webkit-outer-spin-button,
body.single-product div.product .summary form.cart .quantity input.qty::-webkit-inner-spin-button {
    -webkit-appearance: none !important;
}

/* Add to cart button */
body.single-product div.product .summary form.cart .single_add_to_cart_button,
body.single-product div.product .summary .single_add_to_cart_button {
    flex: 1 1 200px !important;
    background: #4a7c3f !important;
    color: #fff !important;
    padding: .85rem 2rem !important;
    border-radius: 8px !important;
    font-weight: 700 !important;
    font-size: 1rem !important;
    border: none !important;
    cursor: pointer !important;
    transition: background .2s !important;
    text-align: center !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: .5rem !important;
    box-sizing: border-box !important;
    height: 48px !important;
    min-width: 180px !important;
    text-decoration: none !important;
}
body.single-product div.product .summary form.cart .single_add_to_cart_button:hover {
    background: #3a6230 !important;
    color: #fff !important;
}

/* Product meta (SKU, category) */
body.single-product div.product .summary .product_meta {
    font-size: .85rem !important;
    color: #888 !important;
    border-top: 1px solid #f0f0f0 !important;
    padding-top: .85rem !important;
    display: flex !important;
    flex-direction: column !important;
    gap: .25rem !important;
}
body.single-product div.product .summary .product_meta a {
    color: #4a7c3f !important;
    text-decoration: none !important;
}
body.single-product div.product .summary .product_meta a:hover {
    text-decoration: underline !important;
}

/* Tabs (Description, Reviews) */
body.single-product .woocommerce-tabs {
    padding: 0 1.5rem 2rem !important;
    max-width: 1100px !important;
    margin: 0 auto !important;
    box-sizing: border-box !important;
}
body.single-product .woocommerce-tabs ul.tabs {
    display: flex !important;
    gap: .25rem !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 0 0 !important;
    border-bottom: 2px solid #eee !important;
}
body.single-product .woocommerce-tabs ul.tabs li {
    margin: 0 !important;
    border: none !important;
    background: none !important;
}
body.single-product .woocommerce-tabs ul.tabs li a {
    display: block !important;
    padding: .7rem 1.25rem !important;
    font-size: .9rem !important;
    font-weight: 600 !important;
    color: #888 !important;
    text-decoration: none !important;
    border-bottom: 2px solid transparent !important;
    margin-bottom: -2px !important;
    transition: color .15s, border-color .15s !important;
}
body.single-product .woocommerce-tabs ul.tabs li.active a,
body.single-product .woocommerce-tabs ul.tabs li a:hover {
    color: #4a7c3f !important;
    border-bottom-color: #4a7c3f !important;
}
body.single-product .woocommerce-tabs .woocommerce-Tabs-panel {
    padding: 1.5rem 0 !important;
    font-size: .95rem !important;
    color: #444 !important;
    line-height: 1.7 !important;
    border: none !important;
    background: none !important;
}

/* Related products */
body.single-product .related.products {
    padding: 0 1.5rem 2rem !important;
    max-width: 1100px !important;
    margin: 0 auto !important;
    box-sizing: border-box !important;
}
body.single-product .related.products h2 {
    font-size: 1.3rem !important;
    font-weight: 700 !important;
    margin-bottom: 1.5rem !important;
    color: #1a1a1a !important;
}

/* Mobile single product */
@media (max-width: 760px) {
    body.single-product div.product {
        flex-direction: column !important;
        padding: 1rem !important;
        gap: 1.5rem !important;
    }
    body.single-product div.product .woocommerce-product-gallery {
        flex: 1 1 100% !important;
        max-width: 100% !important;
        width: 100% !important;
    }
    body.single-product div.product .summary .product_title {
        font-size: 1.5rem !important;
    }
    body.single-product div.product .summary .price {
        font-size: 1.4rem !important;
    }
    body.single-product div.product .summary form.cart {
        flex-direction: column !important;
        align-items: stretch !important;
    }
    body.single-product div.product .summary form.cart .single_add_to_cart_button {
        width: 100% !important;
        flex: none !important;
    }
    body.single-product .woocommerce-tabs,
    body.single-product .related.products {
        padding: 0 1rem 1.5rem !important;
    }
}

/* ════════════════════════════════════════
   WOOCOMMERCE NOTICES
   ════════════════════════════════════════ */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
    border-radius: 8px !important;
    padding: .85rem 1.1rem !important;
    margin-bottom: 1rem !important;
    font-size: .9rem !important;
    display: flex !important;
    align-items: center !important;
    gap: .75rem !important;
    flex-wrap: wrap !important;
}
.woocommerce-message { background: #f0f7ee !important; border-left: 4px solid #4a7c3f !important; color: #2d5a23 !important; }
.woocommerce-info    { background: #e8f4fd !important; border-left: 4px solid #2196f3 !important; color: #0d47a1 !important; }
.woocommerce-error   { background: #fdecea !important; border-left: 4px solid #e53935 !important; color: #b71c1c !important; }

/* ── Global mobile padding ── */
@media (max-width: 600px) {
    .woocommerce-page .woocommerce,
    .woocommerce-account .woocommerce,
    .woocommerce-cart .woocommerce,
    .woocommerce-checkout .woocommerce {
        padding: 1rem !important;
    }
}


/* ═══════════════════════════════════════════════════════════════
   QUICK VIEW — Modal + Button
   ═══════════════════════════════════════════════════════════════ */

/* ── Quick View trigger button (on product cards) ── */
.dh-qv-btn {
    display: inline-flex !important;
    align-items: center !important;
    gap: .4rem !important;
    background: rgba(255,255,255,.95) !important;
    color: #222 !important;
    border: none !important;
    border-radius: 7px !important;
    padding: .45rem .85rem !important;
    font-size: .78rem !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    box-shadow: 0 2px 8px rgba(0,0,0,.14) !important;
    transition: background .18s, color .18s, transform .18s !important;
    white-space: nowrap !important;
    letter-spacing: .01em !important;
}
.dh-qv-btn:hover {
    background: #4a7c3f !important;
    color: #fff !important;
    transform: translateY(-1px) !important;
}

/* Position on native WooCommerce cards */
body .woocommerce ul.products li.product {
    position: relative !important;
}
body .woocommerce ul.products li.product .dh-qv-btn {
    position: absolute !important;
    bottom: 4rem !important;   /* πάνω από το add-to-cart button */
    left: 50% !important;
    transform: translateX(-50%) translateY(6px) !important;
    opacity: 0 !important;
    pointer-events: none !important;
    z-index: 5 !important;
    transition: opacity .2s, transform .2s !important;
    width: max-content !important;
}
body .woocommerce ul.products li.product:hover .dh-qv-btn {
    opacity: 1 !important;
    pointer-events: auto !important;
    transform: translateX(-50%) translateY(0) !important;
}

/* On dh_product_grid cards */
.dh-product-card .dh-qv-btn {
    position: absolute !important;
    bottom: 3.8rem !important;
    left: 50% !important;
    transform: translateX(-50%) translateY(6px) !important;
    opacity: 0 !important;
    pointer-events: none !important;
    z-index: 5 !important;
    transition: opacity .2s, transform .2s !important;
    width: max-content !important;
}
.dh-product-card:hover .dh-qv-btn {
    opacity: 1 !important;
    pointer-events: auto !important;
    transform: translateX(-50%) translateY(0) !important;
}

/* ── Overlay ── */
.dh-qv-overlay {
    position: fixed !important;
    inset: 0 !important;
    background: rgba(0,0,0,.55) !important;
    z-index: 999999 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 1rem !important;
    box-sizing: border-box !important;
    opacity: 0 !important;
    transition: opacity .26s ease !important;
    backdrop-filter: blur(3px) !important;
    pointer-events: none !important; /* κλειστό = δεν κλέβει clicks */
    visibility: hidden !important;
}
.dh-qv-overlay.is-open {
    opacity: 1 !important;
    pointer-events: all !important;
    visibility: visible !important;
}

/* ── Modal box ── */
.dh-qv-modal {
    background: #fff !important;
    border-radius: 16px !important;
    box-shadow: 0 24px 80px rgba(0,0,0,.28) !important;
    width: 100% !important;
    max-width: 900px !important;
    max-height: 90vh !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
    position: relative !important;
    transform: translateY(20px) scale(.98) !important;
    transition: transform .26s ease !important;
    box-sizing: border-box !important;
}
.dh-qv-overlay.is-open .dh-qv-modal {
    transform: translateY(0) scale(1) !important;
}

/* ── Close button ── */
.dh-qv-close {
    position: absolute !important;
    top: 1rem !important;
    right: 1rem !important;
    width: 36px !important;
    height: 36px !important;
    border-radius: 50% !important;
    background: #f5f5f5 !important;
    border: none !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    z-index: 10 !important;
    transition: background .18s !important;
    color: #333 !important;
}
.dh-qv-close:hover {
    background: #ffe0e0 !important;
    color: #e53935 !important;
}

/* ── Body (scrollable) ── */
.dh-qv-body {
    overflow-y: auto !important;
    flex: 1 !important;
    min-height: 200px !important;
}

/* ── Loading spinner ── */
.dh-qv-loading {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 4rem !important;
}
.dh-qv-spinner {
    animation: dh-qv-spin .7s linear infinite !important;
    transform-origin: center !important;
}
@keyframes dh-qv-spin {
    to { transform: rotate(360deg); }
}
.dh-qv-error {
    padding: 2rem !important;
    text-align: center !important;
    color: #e53935 !important;
}

/* ── Product inner layout ── */
.dh-qv__inner {
    display: flex !important;
    gap: 0 !important;
    min-height: 400px !important;
}

/* ── Gallery (left) ── */
.dh-qv__gallery {
    width: 46% !important;
    flex-shrink: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: .75rem !important;
    padding: 1.5rem !important;
    background: #f9f9f9 !important;
    box-sizing: border-box !important;
}
.dh-qv__main-img-wrap {
    flex: 1 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
    border-radius: 10px !important;
    background: #fff !important;
    min-height: 260px !important;
}
.dh-qv__main-img {
    max-width: 100% !important;
    max-height: 340px !important;
    object-fit: contain !important;
    display: block !important;
    transition: opacity .2s !important;
}
.dh-qv__main-img--loading {
    opacity: .4 !important;
}
.dh-qv__thumbs {
    display: flex !important;
    gap: .5rem !important;
    flex-wrap: wrap !important;
}
.dh-qv__thumb {
    width: 56px !important;
    height: 56px !important;
    border-radius: 7px !important;
    border: 2px solid #eee !important;
    overflow: hidden !important;
    cursor: pointer !important;
    padding: 0 !important;
    background: #fff !important;
    transition: border-color .18s !important;
    flex-shrink: 0 !important;
}
.dh-qv__thumb.is-active,
.dh-qv__thumb:hover {
    border-color: #4a7c3f !important;
}
.dh-qv__thumb img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
}

/* ── Info (right) ── */
.dh-qv__info {
    flex: 1 !important;
    padding: 1.75rem !important;
    display: flex !important;
    flex-direction: column !important;
    gap: .85rem !important;
    overflow-y: auto !important;
    box-sizing: border-box !important;
    min-width: 0 !important;
}
.dh-qv__title {
    font-size: 1.3rem !important;
    font-weight: 700 !important;
    color: #1a1a1a !important;
    line-height: 1.3 !important;
    margin: 0 !important;
    padding-right: 2.5rem !important; /* space for close btn */
}
.dh-qv__price {
    font-size: 1.4rem !important;
    font-weight: 700 !important;
    color: #c8921a !important;
}
.dh-qv__price del {
    color: #bbb !important;
    font-size: 1rem !important;
    font-weight: 400 !important;
    margin-right: .4rem !important;
}
.dh-qv__price ins {
    text-decoration: none !important;
}
.dh-qv__stock {
    display: inline-flex !important;
    align-items: center !important;
    gap: .3rem !important;
    font-size: .83rem !important;
    font-weight: 600 !important;
    padding: .25rem .65rem !important;
    border-radius: 20px !important;
    width: fit-content !important;
}
.dh-qv__stock--in  { background: #e8f5e9 !important; color: #2e7d32 !important; }
.dh-qv__stock--out { background: #fce4e4 !important; color: #c62828 !important; }

.dh-qv__short-desc {
    font-size: .9rem !important;
    color: #555 !important;
    line-height: 1.6 !important;
    border-top: 1px solid #f0f0f0 !important;
    padding-top: .75rem !important;
}
.dh-qv__short-desc p { margin: 0 0 .5rem !important; }
.dh-qv__short-desc p:last-child { margin-bottom: 0 !important; }

/* ── Cart row ── */
.dh-qv__cart-row {
    display: flex !important;
    gap: .75rem !important;
    align-items: center !important;
    flex-wrap: wrap !important;
}

/* Qty stepper */
.dh-qv__qty {
    display: flex !important;
    align-items: center !important;
    border: 1.5px solid #ddd !important;
    border-radius: 8px !important;
    overflow: hidden !important;
    flex-shrink: 0 !important;
}
.dh-qv__qty-btn {
    width: 34px !important;
    height: 40px !important;
    background: #f7f7f7 !important;
    border: none !important;
    cursor: pointer !important;
    font-size: 1.1rem !important;
    color: #333 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: background .15s !important;
    line-height: 1 !important;
    flex-shrink: 0 !important;
}
.dh-qv__qty-btn:hover { background: #eee !important; }
.dh-qv__qty-input {
    width: 3rem !important;
    height: 40px !important;
    text-align: center !important;
    border: none !important;
    border-left: 1.5px solid #ddd !important;
    border-right: 1.5px solid #ddd !important;
    font-size: .95rem !important;
    font-weight: 600 !important;
    -moz-appearance: textfield !important;
    background: #fff !important;
}
.dh-qv__qty-input::-webkit-outer-spin-button,
.dh-qv__qty-input::-webkit-inner-spin-button { -webkit-appearance: none !important; }

/* Add to cart */
.dh-qv__add-to-cart {
    flex: 1 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: .5rem !important;
    background: #4a7c3f !important;
    color: #fff !important;
    border: none !important;
    border-radius: 8px !important;
    padding: .7rem 1.25rem !important;
    font-size: .95rem !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    transition: background .2s !important;
    min-height: 40px !important;
}
.dh-qv__add-to-cart:hover { background: #3a6230 !important; }
.dh-qv__add-to-cart--added { background: #2e7d32 !important; }
.dh-qv__add-to-cart--loading { opacity: .7 !important; }

.dh-qv__view-btn {
    display: inline-flex !important;
    align-items: center !important;
    gap: .4rem !important;
    background: #4a7c3f !important;
    color: #fff !important;
    padding: .7rem 1.25rem !important;
    border-radius: 8px !important;
    font-weight: 700 !important;
    font-size: .95rem !important;
    text-decoration: none !important;
    transition: background .2s !important;
}
.dh-qv__view-btn:hover { background: #3a6230 !important; color: #fff !important; }

.dh-qv__full-link {
    display: inline-flex !important;
    align-items: center !important;
    gap: .35rem !important;
    color: #4a7c3f !important;
    font-size: .85rem !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    transition: color .15s !important;
}
.dh-qv__full-link:hover { color: #3a6230 !important; text-decoration: underline !important; }

.dh-qv__meta {
    display: flex !important;
    flex-direction: column !important;
    gap: .3rem !important;
    font-size: .8rem !important;
    color: #888 !important;
    border-top: 1px solid #f0f0f0 !important;
    padding-top: .75rem !important;
    margin-top: auto !important;
}
.dh-qv__meta strong { color: #555 !important; }
.dh-qv__meta a { color: #4a7c3f !important; text-decoration: none !important; }
.dh-qv__meta a:hover { text-decoration: underline !important; }

/* ── Mobile Quick View ── */
@media (max-width: 640px) {
    .dh-qv-modal {
        max-height: 95vh !important;
        border-radius: 14px 14px 0 0 !important;
        position: fixed !important;
        bottom: 0 !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        transform: translateY(100%) !important;
        transition: transform .3s cubic-bezier(.4,0,.2,1) !important;
        border-radius: 20px 20px 0 0 !important;
    }
    .dh-qv-overlay.is-open .dh-qv-modal {
        transform: translateY(0) !important;
    }
    .dh-qv-overlay {
        align-items: flex-end !important;
        padding: 0 !important;
        transition: opacity .3s ease !important;
    }
    .dh-qv__inner {
        flex-direction: column !important;
    }
    .dh-qv__gallery {
        width: 100% !important;
        padding: 1rem !important;
        min-height: 220px !important;
    }
    .dh-qv__main-img-wrap {
        min-height: 180px !important;
    }
    .dh-qv__main-img {
        max-height: 220px !important;
    }
    .dh-qv__info {
        padding: 1.1rem !important;
    }
    .dh-qv__title {
        font-size: 1.1rem !important;
    }
    .dh-qv__price {
        font-size: 1.2rem !important;
    }

    /* Mobile: QV button — κάτω από την τιμή, πάνω από add-to-cart */
    body .woocommerce ul.products li.product .dh-qv-btn,
    .dh-product-card .dh-qv-btn {
        opacity: 1 !important;
        pointer-events: auto !important;
        /* Reset absolute positioning — γίνεται inline */
        position: static !important;
        transform: none !important;
        display: block !important;
        width: 100% !important;
        text-align: center !important;
        justify-content: center !important;
        font-size: .72rem !important;
        padding: .3rem .5rem !important;
        border-radius: 5px !important;
        margin: .3rem 0 !important;
        background: rgba(0,0,0,.06) !important;
        color: #444 !important;
        box-shadow: none !important;
    }
}

/* ── PageLayer column που περιέχει dh-header-bar: auto width ── */
.pagelayer-embed-container:has(.dh-header-bar),
.pagelayer-embed:has(.dh-header-bar),
.pagelayer-col:has(.dh-header-bar),
.pagelayer-col-holder:has(.dh-header-bar) {
    width: auto !important;
    min-width: fit-content !important;
    flex-shrink: 0 !important;
}

/* ── Force header bar column to shrink/expand properly ── */
/* Target the exact pagelayer embed containers */
.pagelayer-embed-container:has(.dh-account-btn),
.pagelayer-embed-container:has(.dh-cart-btn),
.pagelayer-embed:has(.dh-account-btn),
.pagelayer-embed:has(.dh-cart-btn) {
    display: inline-flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: .5rem !important;
    width: auto !important;
}

/* ── Fix column fly537 (περιέχει account + cart buttons) ── */
.p-fly537,
.p-fly537.pagelayer-embed,
.p-fly537 .pagelayer-embed-container {
    display: inline-flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: .4rem !important;
    width: auto !important;
    min-width: fit-content !important;
    flex-wrap: nowrap !important;
    overflow: visible !important;
}

/* On mobile: force both buttons visible as icon circles */
@media (max-width: 768px) {
    .p-fly537,
    .p-fly537.pagelayer-embed,
    .p-fly537 .pagelayer-embed-container {
        gap: .3rem !important;
    }
    .p-fly537 .dh-account-btn,
    .p-fly537 .dh-cart-btn {
        display: inline-flex !important;
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
    }
}

/* ── Breadcrumb — κεντραρισμένο ── */
.woocommerce-breadcrumb,
nav.woocommerce-breadcrumb {
    display: block !important;
    text-align: center !important;
    width: 100% !important;
    padding: .75rem 1rem !important;
    font-size: .85rem !important;
    color: #888 !important;
}
.woocommerce-breadcrumb a {
    color: #4a7c3f !important;
    text-decoration: none !important;
}
.woocommerce-breadcrumb a:hover {
    text-decoration: underline !important;
}

/* ════════════════════════════════════════════════════

/* ════════════════════════════════════════════════

/* ════════════════════════════════════════════════

/* ════════════════════════════════════════════════
   DH SHOP — Match homepage product card style
════════════════════════════════════════════════ */

/* Hide WC default ordering */
body.dh-shop-enhanced .woocommerce-ordering,
body.dh-shop-enhanced .woocommerce-result-count { display:none!important; }

/* ── Sidebar removal ── */
body.dh-shop-enhanced #secondary,
body.dh-shop-enhanced .widget-area,
body.dh-shop-enhanced aside.widget-area,
body.dh-shop-enhanced #sidebar,
body.woocommerce-full-width #secondary,
body.woocommerce-full-width .widget-area,
body.no-sidebar #secondary,
body.no-sidebar .widget-area {
    display:none!important;
}
body.dh-shop-enhanced #primary,
body.dh-shop-enhanced .site-main,
body.woocommerce-full-width #primary,
body.no-sidebar #primary {
    width:100%!important;
    max-width:100%!important;
    float:none!important;
}

/* ── Grid ── */
body.dh-shop-enhanced ul.products,
html body.dh-shop-enhanced .woocommerce ul.products {
    display:grid!important;
    grid-template-columns:repeat(4,1fr)!important;
    gap:1.5rem!important;
    list-style:none!important;
    padding:0!important;
    margin:0 0 2rem!important;
    float:none!important;
    width:100%!important;
}
@media(max-width:1100px){
    body.dh-shop-enhanced ul.products { grid-template-columns:repeat(3,1fr)!important; }
}
@media(max-width:700px){
    body.dh-shop-enhanced ul.products { grid-template-columns:repeat(2,1fr)!important; gap:.75rem!important; }
}

/* ── li.product — same look as homepage cards ── */
body.dh-shop-enhanced ul.products li.product,
html body.dh-shop-enhanced .woocommerce ul.products li.product {
    background:#fff!important;
    border:1px solid #ececec!important;
    border-radius:12px!important;
    overflow:hidden!important;
    box-shadow:0 2px 12px rgba(0,0,0,.07)!important;
    transition:box-shadow .25s, transform .25s!important;
    display:flex!important;
    flex-direction:column!important;
    width:auto!important;
    max-width:none!important;
    min-width:0!important;
    float:none!important;
    margin:0!important;
    padding:0!important;
    position:relative!important;
    box-sizing:border-box!important;
}
body.dh-shop-enhanced ul.products li.product:hover {
    box-shadow:0 8px 28px rgba(0,0,0,.13)!important;
    transform:translateY(-3px)!important;
}

/* ── Image — landscape ratio matching homepage ── */
body.dh-shop-enhanced ul.products li.product a.woocommerce-LoopProduct-link,
body.dh-shop-enhanced ul.products li.product a:not(.button):not(.add_to_cart_button):not(.dh-quick-view-link) {
    display:block!important;
    text-decoration:none!important;
}
/* Image wrapper gets the ratio */
body.dh-shop-enhanced ul.products li.product .woocommerce-LoopProduct-link img,
body.dh-shop-enhanced ul.products li.product a:not(.button) img,
html body.dh-shop-enhanced ul.products li.product img.attachment-woocommerce_thumbnail,
html body.dh-shop-enhanced ul.products li.product img.wp-post-image,
html body.dh-shop-enhanced ul.products li.product img {
    width:100%!important;
    height:auto!important;
    aspect-ratio:3/2!important;
    object-fit:cover!important;
    object-position:center!important;
    display:block!important;
    border-radius:0!important;
    margin:0!important;
    padding:0!important;
    max-height:none!important;
    min-height:unset!important;
    transition:transform .4s ease!important;
}
body.dh-shop-enhanced ul.products li.product:hover img {
    transform:scale(1.04)!important;
}

/* ── Title — centered like homepage ── */
body.dh-shop-enhanced ul.products li.product .woocommerce-loop-product__title,
html body.dh-shop-enhanced ul.products li.product h2 {
    font-size:.95rem!important;
    font-weight:700!important;
    color:#1a1a1a!important;
    text-align:center!important;
    margin:.75rem 1rem .3rem!important;
    padding:0!important;
    line-height:1.35!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
}

/* ── Price ── */
body.dh-shop-enhanced ul.products li.product .price {
    font-size:.9rem!important;
    font-weight:700!important;
    color:#c8921a!important;
    margin:.1rem 1rem .75rem!important;
    display:block!important;
    text-align:left!important;
}
body.dh-shop-enhanced ul.products li.product .price del {
    color:#aaa!important;
    font-size:.82rem!important;
    font-weight:400!important;
    margin-right:.3rem!important;
}
body.dh-shop-enhanced ul.products li.product .price ins {
    text-decoration:none!important;
}

/* ── Add to cart button ── */
body.dh-shop-enhanced ul.products li.product .button,
body.dh-shop-enhanced ul.products li.product a.button,
body.dh-shop-enhanced ul.products li.product .add_to_cart_button {
    background:#4a7c3f!important;
    color:#fff!important;
    border:none!important;
    border-radius:0 0 12px 12px!important;
    padding:.65rem 1rem!important;
    font-size:.84rem!important;
    font-weight:700!important;
    width:100%!important;
    display:block!important;
    text-align:center!important;
    text-decoration:none!important;
    transition:background .2s!important;
    cursor:pointer!important;
    margin:auto 0 0!important;
    box-sizing:border-box!important;
}
body.dh-shop-enhanced ul.products li.product .button:hover {
    background:#3a6230!important;
    color:#fff!important;
}

/* ── Hide Quick View link in grid (keep clean) ── */
body.dh-shop-enhanced ul.products li.product .dh-quick-view-link {
    display:none!important;
}

/* ── Filter topbar ── */
.dh-topbar {
    display:flex; align-items:center; gap:.6rem; flex-wrap:wrap;
    margin-bottom:1.25rem;
}
.dh-open-filters {
    display:inline-flex; align-items:center; gap:.45rem;
    background:#4a7c3f; color:#fff; border:none;
    border-radius:10px; padding:.55rem 1.1rem;
    font-size:.88rem; font-weight:700; cursor:pointer;
    transition:background .2s; white-space:nowrap;
}
.dh-open-filters:hover { background:#3a6230; }
.dh-open-filters__badge {
    background:#fff; color:#4a7c3f;
    border-radius:99px; font-size:.72rem; font-weight:900;
    padding:1px 7px; min-width:18px; text-align:center;
}
.dh-chips-row { display:flex; flex-wrap:wrap; gap:.35rem; flex:1; }
.dh-chip {
    display:inline-flex; align-items:center; gap:.3rem;
    background:#eef5ec; border:1px solid #bdd9b8;
    color:#3a6230; border-radius:99px;
    padding:.22rem .65rem; font-size:.8rem; font-weight:600;
}
.dh-chip-x {
    background:none; border:none; cursor:pointer;
    color:#4a7c3f; font-size:1rem; line-height:1; padding:0; opacity:.7;
}
.dh-chip-x:hover { opacity:1; }
.dh-clear-filters {
    display:inline-flex; align-items:center; gap:.3rem;
    background:none; border:1.5px solid #f0c0c0; border-radius:8px;
    padding:.45rem .85rem; font-size:.82rem; font-weight:600;
    color:#c44; cursor:pointer; transition:all .18s;
}
.dh-clear-filters:hover { background:#fff0f0; }
.dh-filter-overlay-loading {
    position:fixed; bottom:1.5rem; right:1.5rem;
    background:#fff; border-radius:50%; width:46px; height:46px;
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 4px 18px rgba(0,0,0,.18); z-index:99999;
}
.dh-fspinner {
    width:22px; height:22px;
    border:3px solid #e0e0e0; border-top-color:#4a7c3f;
    border-radius:50%; animation:dh-spin .7s linear infinite;
}

/* ════ FILTER MODAL ════ */
.dh-fmodal-overlay {
    position:fixed; inset:0; background:rgba(0,0,0,.5);
    z-index:99998; display:flex; align-items:center; justify-content:center;
    opacity:0; pointer-events:none; transition:opacity .22s; backdrop-filter:blur(2px);
}
.dh-fmodal-overlay.is-open { opacity:1; pointer-events:all; }
body.dh-modal-open { overflow:hidden; }
.dh-fmodal {
    background:#fff; border-radius:20px;
    width:min(540px,94vw); max-height:82vh;
    display:flex; flex-direction:column;
    box-shadow:0 24px 64px rgba(0,0,0,.22);
    transform:translateY(20px) scale(.97); transition:transform .22s;
    overflow:hidden;
}
.dh-fmodal-overlay.is-open .dh-fmodal { transform:translateY(0) scale(1); }
.dh-fmodal__head {
    display:flex; align-items:center; justify-content:space-between;
    padding:1.1rem 1.4rem; border-bottom:1px solid #f0f0f0;
    font-size:1rem; font-weight:800; color:#1a1a1a; flex-shrink:0;
}
.dh-fmodal__x {
    background:none; border:none; cursor:pointer;
    color:#aaa; padding:.3rem; border-radius:6px; transition:all .15s;
}
.dh-fmodal__x:hover { background:#f5f5f5; color:#333; }
.dh-fmodal__body {
    overflow-y:auto; padding:1.1rem 1.4rem; flex:1;
}
.dh-fmodal__body::-webkit-scrollbar { width:4px; }
.dh-fmodal__body::-webkit-scrollbar-thumb { background:#ddd; border-radius:4px; }
.dh-fsection { margin-bottom:1.4rem; }
.dh-fsection:last-child { margin-bottom:0; }
.dh-fsection__title {
    font-size:.75rem; font-weight:800; color:#aaa;
    text-transform:uppercase; letter-spacing:.1em; margin:0 0 .7rem;
}
.dh-fpills { display:flex; flex-wrap:wrap; gap:.45rem; }
.dh-fpill {
    display:inline-flex; align-items:center; gap:.4rem;
    background:#f6f6f6; border:1.5px solid #e8e8e8;
    border-radius:99px; padding:.4rem .95rem;
    font-size:.85rem; font-weight:600; color:#444;
    cursor:pointer; transition:all .16s; user-select:none;
}
.dh-fpill:hover { border-color:#4a7c3f; color:#4a7c3f; background:#f0f7ee; }
.dh-fpill.is-on { background:#4a7c3f; border-color:#4a7c3f; color:#fff; }
.dh-fpill__cnt { font-size:.72rem; font-weight:400; opacity:.6; }
.dh-fswatch { width:16px; height:16px; border-radius:50%; border:2px solid rgba(0,0,0,.1); flex-shrink:0; }
.dh-fmodal__foot {
    display:flex; gap:.75rem; padding:1rem 1.4rem;
    border-top:1px solid #f0f0f0; flex-shrink:0;
}
.dh-fmodal__reset {
    flex:1; background:#f5f5f5; border:none; border-radius:10px;
    padding:.7rem; font-size:.9rem; font-weight:700; color:#666; cursor:pointer;
}
.dh-fmodal__reset:hover { background:#ebebeb; }
.dh-fmodal__apply {
    flex:2; background:#4a7c3f; border:none; border-radius:10px;
    padding:.7rem; font-size:.9rem; font-weight:700; color:#fff; cursor:pointer;
}
.dh-fmodal__apply:hover { background:#3a6230; }
.dh-pgrow { display:flex; justify-content:center; gap:.4rem; margin-top:2rem; }
.dh-pgbtn {
    width:36px; height:36px; border-radius:8px;
    border:1.5px solid #e0e0e0; background:#fff;
    font-size:.88rem; font-weight:600; color:#555; cursor:pointer; transition:all .18s;
}
.dh-pgbtn:hover { border-color:#4a7c3f; color:#4a7c3f; }
.dh-pgbtn.is-active { background:#4a7c3f; border-color:#4a7c3f; color:#fff; }
@media(max-width:600px){
    .dh-fmodal-overlay { align-items:flex-end; }
    .dh-fmodal { border-radius:20px 20px 0 0; width:100%; max-height:88vh; transform:translateY(100%); }
    .dh-fmodal-overlay.is-open .dh-fmodal { transform:translateY(0); }
}

/* ── Mobile menu fixes (Pagelayer) ── */

/* ═══════════════════════════════════════════
   PAGELAYER MOBILE MENU — li με submenu FIX
   HTML: <li><a><span>title</span><span class="after-icon fa-caret-down"></span></a>
         <div class="pagelayer-mega-menu"></div><ul class="sub-menu">...</ul></li>
═══════════════════════════════════════════ */

/* DESKTOP NAV: li has-children — single row, no wrap */
.pagelayer-nav > ul > li.menu-item-has-children,
[class*="pagelayer-nav"] > ul > li.menu-item-has-children {
    display: inline-flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    position: relative !important;
}

/* DESKTOP: the <a> inside li has-children — flex row so title+caret stay in one line */
.pagelayer-nav > ul > li.menu-item-has-children > a,
[class*="pagelayer-nav"] > ul > li.menu-item-has-children > a {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    white-space: nowrap !important;
}

/* DESKTOP: title span inside top-level link */
.pagelayer-nav > ul > li.menu-item-has-children > a .pagelayer-nav-menu-title,
[class*="pagelayer-nav"] > ul > li.menu-item-has-children > a .pagelayer-nav-menu-title {
    white-space: nowrap !important;
    flex-shrink: 0 !important;
}

/* DESKTOP: caret icon stays next to title */
.pagelayer-nav > ul > li.menu-item-has-children > a .after-icon,
[class*="pagelayer-nav"] > ul > li.menu-item-has-children > a .after-icon {
    flex-shrink: 0 !important;
    margin-left: .3rem !important;
}

/* Hide mega-menu placeholder div (empty div Pagelayer injects) */
.pagelayer-nav li.menu-item-has-children > .pagelayer-mega-menu,
[class*="pagelayer-nav"] li.menu-item-has-children > .pagelayer-mega-menu {
    display: none !important;
}

/* ── Account page mobile layout ── */
@media(max-width:768px){
    .woocommerce-account .woocommerce,
    .woocommerce-account .woocommerce-MyAccount-navigation + .woocommerce-MyAccount-content {
        display: block !important;
        flex-direction: column !important;
    }
    .woocommerce-MyAccount-navigation {
        width: 100% !important;
        max-width: 100% !important;
        margin-bottom: 1.5rem !important;
        flex-shrink: unset !important;
    }
    .woocommerce-MyAccount-navigation ul {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        border-radius: 10px !important;
        overflow: hidden !important;
        box-shadow: 0 2px 10px rgba(0,0,0,.07) !important;
    }
    .woocommerce-MyAccount-navigation ul li {
        border-bottom: 1px solid #eee !important;
        border-right: 1px solid #eee !important;
    }
    .woocommerce-MyAccount-navigation ul li a {
        padding: .7rem .6rem !important;
        font-size: .8rem !important;
        text-align: center !important;
    }
    .woocommerce-MyAccount-content {
        width: 100% !important;
        max-width: 100% !important;
    }
    /* Blue info box on mobile */
    .woocommerce-info {
        background: #f0f7ee !important;
        border-top-color: #4a7c3f !important;
        color: #333 !important;
    }
}
@media(max-width:480px){
    .woocommerce-MyAccount-navigation ul {
        grid-template-columns: 1fr !important;
    }
}

/* ═══════════════════════════════════════════════════
   PAGELAYER MOBILE MENU — title + caret ONE LINE FIX
═══════════════════════════════════════════════════ */

/* Kill the empty mega-menu placeholder div everywhere */
.pagelayer-mega-menu {
    display: none !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
}

@media (max-width: 1024px) {
    /* Title span: stays on one line */
    .pagelayer-nav-menu-title {
        white-space: nowrap !important;
        display: inline !important;
    }

    /* Caret: stays inline next to title */
    .after-icon {
        display: inline !important;
        white-space: nowrap !important;
        margin-left: .25rem !important;
    }

    /* Kill the 65px margin-top Pagelayer adds to sub-menu */
    #menu-item-58 > .sub-menu,
    .menu-item-has-children > .sub-menu {
        margin-top: 0 !important;
    }
}

/* ════════════════════════════════════════
   DH SEARCH — ICON MODE
   [dh_search mode="icon"]
════════════════════════════════════════ */

/* Wrapper */
.dh-search-icon-mode {
    position: relative;
    display: inline-flex;
    align-items: center;
    vertical-align: middle;
}
.dh-search-align-right { justify-content: flex-end; }
.dh-search-align-left  { justify-content: flex-start; }

/* Trigger button */
.dh-search-trigger {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: none;
    background: var(--dh-s-icon-btn-bg, #4a7c3f);
    color: var(--dh-s-icon-color, #fff);
    cursor: pointer;
    position: relative;
    z-index: 101;
    flex-shrink: 0;
    transition: background .2s, transform .2s, box-shadow .2s;
    box-shadow: 0 2px 8px rgba(0,0,0,.18);
}
.dh-search-trigger:hover {
    filter: brightness(1.12);
    box-shadow: 0 4px 14px rgba(0,0,0,.22);
    transform: scale(1.07);
}
.dh-search-trigger:focus-visible {
    outline: 3px solid rgba(74,124,63,.5);
    outline-offset: 2px;
}

/* Toggle icons inside trigger */
.dh-search-trigger-icon,
.dh-search-trigger-close {
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity .2s, transform .2s;
}
.dh-search-trigger-close {
    opacity: 0;
    transform: rotate(-90deg) scale(.7);
}
.dh-search-icon-mode.open .dh-search-trigger-icon {
    opacity: 0;
    transform: rotate(90deg) scale(.7);
}
.dh-search-icon-mode.open .dh-search-trigger-close {
    opacity: 1;
    transform: rotate(0deg) scale(1);
}

/* Expandable panel */
.dh-search-panel {
    position: absolute;
    top: 50%;
    right: 48px;
    transform: translateY(-50%);
    width: 0;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
    transition: width .3s cubic-bezier(.4,0,.2,1), opacity .25s ease;
    z-index: 100;
}
.dh-search-align-left .dh-search-panel {
    right: auto;
    left: 48px;
}
.dh-search-icon-mode.open .dh-search-panel {
    width: var(--dh-s-expand, 260px);
    opacity: 1;
    pointer-events: auto;
    overflow: visible;
}

/* Inner bar inside panel */
.dh-search-icon-mode .dh-search-inner {
    display: flex;
    align-items: center;
    background: var(--dh-s-input-bg, #fff);
    border: 1.5px solid var(--dh-s-input-border, #ddd);
    border-radius: 24px;
    padding: 0 .75rem;
    height: 40px;
    width: 100%;
    box-shadow: 0 4px 20px rgba(0,0,0,.12);
    box-sizing: border-box;
}
.dh-search-icon-mode .dh-search-icon-inner {
    color: var(--dh-s-icon-color, #4a7c3f);
    flex-shrink: 0;
    display: flex;
    margin-right: .4rem;
}
.dh-search-icon-mode .dh-search-input {
    border: none !important;
    background: transparent !important;
    outline: none !important;
    box-shadow: none !important;
    color: var(--dh-s-input-color, #333);
    font-size: .95rem;
    flex: 1;
    min-width: 0;
    padding: 0 !important;
    height: 100% !important;
}

/* Results dropdown in icon mode */
.dh-search-icon-mode .dh-search-results {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    left: 0;
    min-width: var(--dh-s-expand, 260px);
    background: var(--dh-s-result-bg, #fff);
    border-radius: 12px;
    box-shadow: 0 8px 30px rgba(0,0,0,.15);
    border: 1px solid #eee;
    z-index: 200;
    overflow: hidden;
}

/* Mobile: full-width overlay */
@media (max-width: 600px) {
    .dh-search-icon-mode.open .dh-search-panel {
        width: calc(100vw - 80px);
        max-width: 320px;
    }
    .dh-search-icon-mode {
        position: static;
    }
    .dh-search-panel {
        position: fixed;
        top: auto;
        right: auto;
        left: 50% !important;
        transform: translateX(-50%) translateY(0) !important;
        top: 60px !important;
    }
    .dh-search-icon-mode.open .dh-search-panel {
        transform: translateX(-50%) !important;
        width: calc(100vw - 32px);
        max-width: 400px;
    }
    .dh-search-icon-mode .dh-search-results {
        min-width: 100%;
        left: 0;
        right: 0;
    }
}

/* ════════════════════════════════════════
   DH ICON BUTTON — Κοινό στυλ (καλάθι & λογαριασμός)
   [dh_cart_button mode="icon"] / [dh_account_button mode="icon"]
════════════════════════════════════════ */
.dh-icon-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: var(--dh-ibg, #4a7c3f);
    color: var(--dh-icol, #fff) !important;
    text-decoration: none !important;
    position: relative;
    flex-shrink: 0;
    vertical-align: middle;
    transition: filter .2s, transform .2s, box-shadow .2s;
    box-shadow: 0 2px 8px rgba(0,0,0,.15);
    line-height: 1;
}

.dh-icon-btn:hover {
    filter: brightness(1.12);
    transform: scale(1.06);
}
.dh-icon-btn svg {
    pointer-events: none;
    display: block;
    flex-shrink: 0;
    color: inherit;
    stroke: currentColor;
}
/* Badge (καλάθι count) */
.dh-icon-btn__badge {
    position: absolute;
    top: -4px;
    right: -4px;
    min-width: 18px;
    height: 18px;
    border-radius: 99px;
    background: #e74c3c;
    color: #fff;
    font-size: .7rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 4px;
    line-height: 1;
    box-shadow: 0 1px 4px rgba(0,0,0,.25);
    pointer-events: none;

/* ════════════════════════════════════════
   DH SEARCH FULLSCREEN OVERLAY
   [dh_search mode="fullscreen"]
   Πλήρης λευκή οθόνη με AJAX αναζήτηση
════════════════════════════════════════ */

/* Trigger button */
.dh-search-fs-trigger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    border: none;
    background: var(--dh-s-icon-btn-bg, #4a7c3f);
    color: var(--dh-s-icon-color, #fff) !important;
    cursor: pointer;
    flex-shrink: 0;
    vertical-align: middle;
    transition: filter .2s, transform .2s, box-shadow .2s;
    box-shadow: 0 2px 8px rgba(0,0,0,.15);
    line-height: 1;
}
.dh-search-fs-trigger svg {
    color: inherit;
    stroke: currentColor;
    display: block;
    pointer-events: none;
}
.dh-search-fs-trigger:hover {
    filter: brightness(1.12);
    transform: scale(1.06);
}
.dh-search-fs-trigger[style*="background:transparent"],
.dh-search-fs-trigger[style*="background: transparent"] {
    box-shadow: none !important;
    border-radius: 0 !important;
    width: auto !important;
    height: auto !important;
    padding: 4px !important;
    background: transparent !important;
}

/* Fullscreen overlay — ΛΕΥΚΟ background */
.dh-search-fs-overlay {
    position: fixed;
    inset: 0;
    z-index: 999999;
    background: #ffffff;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s ease;
    overflow-y: auto;
}
.dh-search-fs-overlay.open {
    opacity: 1;
    pointer-events: auto;
}

/* Top bar: input + close */
.dh-search-fs-topbar {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.5rem;
    border-bottom: 2px solid #f0f0f0;
    background: #fff;
    position: sticky;
    top: 0;
    z-index: 2;
    flex-shrink: 0;
}
.dh-search-fs-icon {
    flex-shrink: 0;
    color: #888;
    display: flex;
    align-items: center;
    transform: translateY(0);
    transition: color .15s;
}
.dh-search-fs-input {
    flex: 1;
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
    background: transparent !important;
    font-size: clamp(1.1rem, 3vw, 1.5rem);
    color: #111;
    min-width: 0;
    height: 44px;
    padding: 0 !important;
    font-weight: 500;
    caret-color: #4a7c3f;
}
.dh-search-fs-input:focus ~ .dh-search-fs-icon,
.dh-search-fs-input:not(:placeholder-shown) ~ .dh-search-fs-icon {
    color: #4a7c3f;
}
.dh-search-fs-input::placeholder { color: #bbb; font-weight: 400; }
.dh-search-fs-close-btn {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: none;
    background: #f0f0f0;
    color: #555;
    cursor: pointer;
    font-size: 1rem;
    transition: background .15s, color .15s;
    line-height: 1;
}
.dh-search-fs-close-btn:hover { background: #e0e0e0; color: #111; }

/* Results area */
.dh-search-fs-body {
    flex: 1;
    padding: 0 1.5rem 2rem;
    max-width: 800px;
    width: 100%;
    margin: 0 auto;
    box-sizing: border-box;
}

/* Spinner */
.dh-search-fs-spinner {
    display: none;
    text-align: center;
    padding: 2rem;
    color: #aaa;
}
.dh-search-fs-spinner svg { animation: dh-spin 1s linear infinite; }

/* Result items */
.dh-search-fs-results {
    margin-top: .5rem;
}
.dh-search-fs-item {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: .85rem .5rem;
    border-bottom: 1px solid #f3f3f3;
    text-decoration: none;
    color: inherit;
    transition: background .12s;
    border-radius: 8px;
}
.dh-search-fs-item:hover { background: #f8faf7; }
.dh-search-fs-img {
    width: 60px;
    height: 60px;
    object-fit: cover;
    border-radius: 8px;
    flex-shrink: 0;
    background: #f5f5f5;
}
.dh-search-fs-img-placeholder {
    width: 60px;
    height: 60px;
    border-radius: 8px;
    flex-shrink: 0;
    background: #f5f5f5;
}
.dh-search-fs-info { flex: 1; min-width: 0; }
.dh-search-fs-title {
    font-size: 1rem;
    font-weight: 600;
    color: #111;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.dh-search-fs-price {
    font-size: .9rem;
    color: #4a7c3f;
    font-weight: 600;
    margin-top: .15rem;
}
.dh-search-fs-arrow {
    flex-shrink: 0;
    color: #ccc;
    font-size: 1.2rem;
}
.dh-search-fs-no-results {
    padding: 3rem 1rem;
    text-align: center;
    color: #aaa;
    font-size: 1rem;
}
.dh-search-fs-hint-text {
    padding: 2.5rem 1rem;
    text-align: center;
    color: #ccc;
    font-size: .95rem;
}
.dh-search-fs-hint-text svg {
    display: block;
    margin: 0 auto 1rem;
    opacity: .25;
}

/* Slide-in animation */
.dh-search-fs-topbar {
    transform: translateY(-10px);
    transition: transform .25s cubic-bezier(.4,0,.2,1);
}
.dh-search-fs-overlay.open .dh-search-fs-topbar {
    transform: translateY(0);
}

/* Mobile */
@media (max-width: 600px) {
    .dh-search-fs-topbar { padding: .75rem 1rem; gap: .6rem; }
    .dh-search-fs-body { padding: 0 1rem 2rem; }
    .dh-search-fs-input { font-size: 1.1rem; height: 40px; }
    .dh-search-fs-img, .dh-search-fs-img-placeholder { width: 48px; height: 48px; }
    .dh-search-fs-title { font-size: .92rem; }
}

/* ── Transparent icon mode — no circle, no background ── */
html body .dh-icon-btn.dh-icon-transparent,
html body .dh-search-trigger.dh-icon-transparent,
html body .dh-search-fs-trigger.dh-icon-transparent {
    background: transparent !important;
    background-color: transparent !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    width: auto !important;
    height: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    padding: 4px !important;
    border: none !important;
}
html body .dh-icon-btn.dh-icon-transparent:hover,
html body .dh-search-trigger.dh-icon-transparent:hover,
html body .dh-search-fs-trigger.dh-icon-transparent:hover {
    filter: opacity(.7) !important;
    transform: none !important;
    box-shadow: none !important;
    background: transparent !important;
    background-color: transparent !important;
}

/* ════════════════════════════════════════
   MOBILE: icon buttons inline in one row
   Αναγκάζει cart/account/search icons
   να μένουν σε μια γραμμή στο κινητό
════════════════════════════════════════ */

/* Wrap που περιέχει τα icons — flex row */
.dh-icons-row {
    display: inline-flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 4px !important;
    flex-wrap: nowrap !important;
}

/* Αν τα icons είναι μέσα σε Pagelayer col/widget,
   κάνε το parent inline ώστε να μη σπάει σε νέα γραμμή */
@media (max-width: 768px) {

    /* Κάθε Pagelayer col που περιέχει ΜΟΝΟ dh icons
       να είναι inline και να μη παίρνει full width */
    .pagelayer-row [class*="pagelayer-col"]:has(.dh-icon-btn),
    .pagelayer-row [class*="pagelayer-col"]:has(.dh-search-trigger),
    .pagelayer-row [class*="pagelayer-col"]:has(.dh-search-fs-trigger) {
        display: inline-flex !important;
        width: auto !important;
        flex: 0 0 auto !important;
        align-items: center !important;
    }

    /* Το Pagelayer row που περιέχει icons να γίνει flex row */
    .pagelayer-row:has(.dh-icon-btn),
    .pagelayer-row:has(.dh-search-trigger),
    .pagelayer-row:has(.dh-search-fs-trigger) {
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        flex-wrap: nowrap !important;
    }

    /* dh-search-icon-mode να μη γίνει block */
    .dh-search-icon-mode {
        display: inline-flex !important;
        vertical-align: middle !important;
    }

    /* Τα ίδια τα icon elements */
    .dh-icon-btn,
    .dh-search-trigger,
    .dh-search-fs-trigger {
        display: inline-flex !important;
        flex-shrink: 0 !important;
    }
}
