/* Layout only. YOOtheme supplies UIkit component colours, typography,
   borders, radii, button dimensions, hover and focus states.
   Do not bundle a second UIkit stylesheet or override its design tokens. */
.djc-grid {
    display: grid;
    grid-template-columns: repeat(var(--djc-columns, 4), minmax(0, 1fr));
    gap: 1.25rem;
}
.djc-card {
    min-width: 0;
    display: flex;
    flex-direction: column;
}
.djc-image {
    display: block;
    aspect-ratio: 1;
    box-sizing: border-box;
}
.djc-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.djc-card-body {
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: .55rem;
    overflow-wrap: anywhere;
}
.djc-badges {
    display: flex;
    gap: .35rem;
    flex-wrap: wrap;
}
.djc-badges .uk-label {
    white-space: normal;
}
.djc-button {
    margin-top: auto;
    white-space: normal;
}
.djc-facts > div {
    display: grid;
    grid-template-columns: minmax(0, 10rem) minmax(0, 1fr);
    gap: .75rem;
    padding-block: .4rem;
}
.djc-facts dd { margin: 0; }
@media (min-width: 640px) and (max-width: 959px) {
    .djc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 639px) {
    .djc-grid { grid-template-columns: minmax(0, 1fr); }
    .djc-facts > div { grid-template-columns: 1fr; gap: .2rem; }
}

/* Shipping form layout; all visual component styles come from YOOtheme. */
.djc-shipping-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
}
.djc-shipping-fields > div { min-width: 0; }
.djc-shipping-fields [hidden] { display: none; }
.djc-shipping .uk-form-label { display: block; margin-bottom: .2rem; }
.djc-shipping [data-result] { overflow-wrap: anywhere; }
@media (max-width: 479px) {
    .djc-shipping-fields { grid-template-columns: minmax(0, 1fr); }
}

/* Equal-height cards: stretch grid rows, fill slide wrapper, pin CTA to bottom. */
.djc-grid { align-items: stretch; grid-auto-rows: 1fr; }
.djc-card { height: 100%; box-sizing: border-box; }
.djc-card .djc-image { flex-shrink: 0; }
.djc-card .djc-card-body { flex: 1 1 auto; min-height: 0; }
.djc-card .djc-button { margin-top: auto; flex-shrink: 0; }
.djc-card h3 { overflow-wrap: anywhere; }

/* Theme supplies colours, controls and typography; only component layout here. */
.djc-filter-fields { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
.djc-filter-fields > div { min-width: 0; }
.djc-filter-fields label { display: block; margin-bottom: .35rem; }
.djc-filter-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1.2rem; }
.djc-pagination ul { list-style: none; display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; padding: 0; }
.djc-pagination a, .djc-pagination span { display: block; padding: .5rem .85rem; border: 1px solid currentColor; border-radius: .3rem; text-decoration: none; }
.djc-pagination .current { font-weight: 700; border-width: 2px; }
.djc-slider-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; margin-bottom: 1.25rem; }
.djc-slider-controls { display: flex; gap: .5rem; }
.djc-slider-controls button { padding-inline: 1rem; }
.djc-slider-controls { flex-wrap: wrap; }
.djc-slider-controls button { min-height: 44px; }
.djc-slider-controls [hidden] { display: none; }
.djc-slider-track { display: flex; align-items: stretch; gap: 1.25rem; overflow-x: auto; scroll-snap-type: x mandatory; padding-block: .25rem 1rem; }
.djc-slide { flex: 0 0 calc((100% - (var(--djc-columns,4) - 1) * 1.25rem) / var(--djc-columns,4)); min-width: 0; display: flex; scroll-snap-align: start; }
.djc-slide > .djc-card { width: 100%; height: auto; }
@media (min-width: 640px) and (max-width: 959px) { .djc-slide { flex-basis: calc((100% - 1.25rem) / 2); } }
@media (max-width: 639px) { .djc-filter-fields { grid-template-columns: 1fr; } .djc-slide { flex-basis: 88%; } }
@media (prefers-reduced-motion: reduce) { .djc-slider-track { scroll-behavior: auto; } }

/* Scoped layout overrides: theme colours and button design remain inherited. */
.djc-grid > .djc-card,
.djc-slider-track > .djc-slide > .djc-card {
    display: flex !important;
    flex-direction: column !important;
    align-self: stretch;
    box-sizing: border-box;
}
.djc-card > .djc-card-body {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
    width: 100%;
    box-sizing: border-box;
    padding-top: var(--djc-content-top, 8px) !important;
    row-gap: 6px;
}
.djc-card > .djc-image {
    width: 100%; margin: 0;
    height: var(--djc-image-height, 220px) !important;
    aspect-ratio: auto;
    padding: var(--djc-image-padding, 12px) !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.djc-card > .djc-image img {
    display: block;
    width: 100% !important;
    height: 100% !important;
    max-height: 100%;
    object-fit: contain !important;
    object-position: center;
    margin: 0 !important;
}
.djc-card .djc-card-body > h3 { margin-top: 0 !important; }
.djc-card .djc-card-body > .djc-card-footer {
    margin-top: auto !important;
    padding-top: var(--djc-button-gap, 15px);
    flex: 0 0 auto;
    width: 100%;
}
.djc-card .djc-card-footer > .djc-button {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 100% !important;
    box-sizing: border-box;
    margin: 0 !important;
}
.djc-filterbar.djc-filterbar--sidebar {
    width: 100%;
    max-width: 400px;
    box-sizing: border-box;
}
.djc-filterbar--sidebar .djc-filter-fields {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 1rem;
}
.djc-filterbar--sidebar .djc-filter-fields input,
.djc-filterbar--sidebar .djc-filter-fields select { width: 100%; max-width: 100%; box-sizing: border-box; }
.djc-filterbar--sidebar .djc-filter-actions {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: .8rem;
}
.djc-filterbar--sidebar .djc-filter-actions > * { width: 100%; box-sizing: border-box; text-align: center; }

/* 1.4.1: one badge system for collections, catalog/search and native loops. */
.djc-badges[data-djc-badges] {
    min-height: 1.65rem;
    align-items: center;
}
.djc-badges[data-djc-badges] .uk-label {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    line-height: 1.25;
}
.djc-badge-brand {
    font-weight: 600;
}
.djc-badge-dealtype--jaeger-deal {
    font-weight: 700;
}
/* Native Woo/YOOtheme product loops can use the same source without changing DJC card markup. */
.products .product .djc-badges--native,
.uk-grid .product .djc-badges--native {
    margin-bottom: .55rem;
}

/* Collection/status chips intentionally remain compact; YOOtheme controls colors. */
.djc-badge-context { font-weight: 700; }
.djc-badge-context--new,
.djc-badge-context--low-stock,
.djc-badge-context--under-50 { letter-spacing: .01em; }

/* 1.4.2: page title and introduction form one block above filters/results. */
.djc-catalog > .djc-page-header {
    width: 100%;
    clear: both;
    grid-column: 1 / -1;
    margin: 0 0 clamp(28px, 3vw, 42px);
}
.djc-page-header > .djc-page-title {
    font-size: clamp(32px, 3.5vw, 52px);
    line-height: 1.08;
    letter-spacing: -.035em;
    font-weight: 750;
    color: var(--dj-ink, #17191c);
    margin: 0 0 14px;
    text-wrap: balance;
}
.djc-page-header > .djc-page-intro,
main .djc-page-intro--information {
    max-width: 66ch;
    margin: 0;
    font-family: inherit;
    font-size: clamp(16px, 1.1vw, 18px);
    line-height: 1.65;
    font-weight: 400;
    letter-spacing: 0;
    color: #5b6068;
    text-wrap: pretty;
}
.djc-page-intro > strong {
    display: block;
    color: #343940;
    font-weight: 600;
    margin-bottom: 3px;
}
.djc-page-intro > span { display: block; }
main .djc-page-title:has(+ [property="text"]) { margin-bottom: 14px; }
main .djc-page-title + [property="text"]:has(.djc-page-intro--information) { margin-top: 0; }
@media (max-width: 639px) {
    .djc-page-header > .djc-page-title { font-size: clamp(28px, 7vw, 38px); margin-bottom: 12px; }
    .djc-page-header > .djc-page-intro { font-size: 16px; line-height: 1.6; }
}

/* 1.4.3: live results and a compact, responsive product preview. */
.djc-catalog[aria-busy="true"] > .djc-grid { opacity: .45; }
.djc-catalog > .djc-search-error { color: #a23d17; font-size: 14px; }
.dj-active-filters[hidden], .djc-search-popup[hidden] { display: none !important; }
.djc-search-popup {
    position: fixed;
    z-index: 1100;
    box-sizing: border-box;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 20px;
    border: 1px solid #e3e5e8;
    border-radius: 12px;
    background: #fff;
    color: #17191c;
    box-shadow: 0 18px 55px #17202a26;
    font-family: inherit;
}
.djc-search-popup-status { margin: 0 0 16px; font-size: 14px; font-weight: 600; color: #5b6068; }
.djc-search-popup .djc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px; }
.djc-search-popup .djc-card { min-width: 0; border: 1px solid #eceef0; border-radius: 8px; overflow: hidden; box-shadow: none; }
.djc-search-popup .djc-card > .djc-image { height: 110px !important; padding: 12px !important; }
.djc-search-popup .djc-card > .djc-card-body { padding: 12px; gap: 5px; }
.djc-search-popup .djc-card h3 { font-size: 14px; line-height: 1.4; margin: 0; }
.djc-search-popup .djc-price { font-size: 20px; line-height: 1.3; }
.djc-search-popup .djc-badges { gap: 4px; }
.djc-search-popup .djc-badges .uk-label { font-size: 10px; padding: 2px 5px; }
.djc-search-popup .djc-legal { font-size: 10px; }
.djc-search-popup .djc-reference, .djc-search-popup .djc-saving, .djc-search-popup .djc-stock { font-size: 11px; }
.djc-search-popup .djc-button { padding: 8px 10px; line-height: 1.3; font-size: 12px; text-transform: none; }
.djc-search-all { display: block; margin-top: 16px; padding-top: 14px; border-top: 1px solid #eceef0; font-size: 14px; font-weight: 650; color: #a44718; text-decoration: none; }
.djc-search-popup :focus-visible { outline: 3px solid #ed641b; outline-offset: 3px; }
@media (max-width: 479px) { .djc-search-popup { padding: 12px; } .djc-search-popup .djc-grid { gap: 8px; } .djc-search-popup .djc-card > .djc-card-body { padding: 10px; } }

.djc-reference--uvp { display: block; font-size: 13px; line-height: 1.4; font-weight: 400; color: #626870; }
.djc-reference--uvp del { text-decoration: line-through; }

/* 1.4.4: compact mobile cards, badges and collapsible standalone filters. */
@media (min-width: 640px) {
    .djc-filters.djc-filters--standalone { border: 0; border-radius: 0; padding: 0; background: transparent; box-shadow: none; }
    .djc-filters.djc-filters--standalone > summary { display: none; }
}
@media (max-width: 639px) {
    .djc-badges[data-djc-badges] { gap: 4px; min-height: 0; align-items: center; }
    .djc-badges[data-djc-badges] .uk-label {
        font-size: 10px;
        line-height: 1.35;
        font-weight: 550;
        letter-spacing: 0;
        text-transform: none;
        padding: 3px 6px;
        border-radius: 3px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        display: block;
        min-width: 0;
        max-width: 100%;
        box-sizing: border-box;
    }
    .djc-badges[data-djc-badges] .djc-badge-brand {
        background: #f2f3f5;
        color: #525860;
        font-weight: 500;
    }
    .djc-catalog[id] > .djc-grid, .djc-collection > .djc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px !important; }
    .djc-card.uk-card { border-radius: 10px; }
    .djc-card.uk-card > .djc-image { height: clamp(125px, 37vw, 170px) !important; min-height: 0 !important; padding: 10px !important; }
    .djc-card.uk-card > .djc-card-body { padding: 10px !important; padding-top: 6px !important; row-gap: 6px; }
    .djc-card.uk-card .uk-card-title { font-size: clamp(13px, 3.3vw, 15px); line-height: 1.4; font-weight: 600; letter-spacing: -.2px; }
    .djc-card.uk-card .djc-price { font-size: clamp(21px, 5.6vw, 25px); line-height: 1.2; letter-spacing: -.6px; }
    .djc-card.uk-card .djc-legal { font-size: 10px; line-height: 1.5; }
    .djc-card.uk-card .djc-legal > a { overflow-wrap: anywhere; }
    .djc-card.uk-card .djc-reference, .djc-card.uk-card .djc-saving, .djc-card.uk-card .djc-stock { font-size: 11px; line-height: 1.4; }
    .djc-card.uk-card .djc-card-body > .djc-card-footer { padding-top: 10px; }
    .djc-card.uk-card .djc-card-footer > .djc-button { height: 44px; min-height: 44px; max-height: 44px; font-size: 12px; line-height: 1.2; padding: 8px 6px; text-transform: none; white-space: nowrap; }
    .djc-catalog > p[role="status"] { font-size: 12px; line-height: 1.45; }
    .djc-filters.djc-filters--standalone { max-width: none; margin: 0 0 18px; padding: 12px 14px; border: 1px solid #e3e5e8; border-radius: 10px; background: #f8f9fa; box-shadow: none; }
    .djc-filters.djc-filters--standalone > summary { display: flex; align-items: center; justify-content: space-between; min-height: 32px; font-size: 15px; font-weight: 600; padding: 0; margin: 0; cursor: pointer; list-style: none; }
    .djc-filters.djc-filters--standalone > summary::-webkit-details-marker { display: none; }
    .djc-filters.djc-filters--standalone > summary::after { content: '+'; font-size: 22px; color: #ed641b; }
    .djc-filters.djc-filters--standalone[open] > summary::after { content: '−'; }
    .djc-filters.djc-filters--standalone[open] > summary { margin-bottom: 14px; }
    .djc-filters .djc-filterbar, .djc-filters .djc-filterbar--sidebar { max-width: none; padding: 0; }
    .djc-filters .djc-filterbar .djc-filter-fields { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px 10px !important; }
    .djc-filters .djc-filter-search { grid-column: 1 / -1; padding-bottom: 8px; }
    .djc-filters .djc-filterbar .uk-form-label { font-size: 12px; line-height: 1.4; margin-bottom: 5px; }
    .djc-filters .djc-filter-search .uk-form-label { font-size: 14px; }
    .djc-filters .djc-filterbar .uk-input { height: 46px; padding: 0 12px; font-size: 16px; }
    .djc-filters .djc-filterbar .uk-select { height: 44px; padding-left: 10px; font-size: 16px; }
    .djc-filters .djc-filter-actions { gap: 10px; padding-top: 10px; }
    .djc-filters .djc-filter-actions .uk-button-primary { font-size: 14px; min-height: 44px; line-height: 44px; padding: 0 14px; }
    .djc-filters .djc-filter-actions .uk-button-text { font-size: 12px; min-height: 44px; display: flex; align-items: center; justify-content: center; }
    .djc-filters .djc-filter-actions .uk-button-text::before { display: none; }
    .djc-search-popup .djc-card.uk-card > .djc-image { height: 100px !important; }
    .djc-search-popup .djc-card.uk-card .djc-price { font-size: 20px; }
}
@media (max-width: 359px) {
    .djc-catalog[id] > .djc-grid, .djc-collection > .djc-grid { grid-template-columns: minmax(0, 1fr) !important; }
}

/* Prominent savings relative to the explicitly stored manufacturer UVP. */
.djc-saving.djc-saving--uvp { display: block; margin: 5px 0 2px; color: #e8501f; line-height: 1.25; }
.djc-saving--uvp > strong { display: block; color: #e8501f; font-size: 24px; font-weight: 750; line-height: 1.25; letter-spacing: -.35px; }
.djc-saving--uvp > small { display: block; margin-top: 3px; color: #626870; font-size: 12px; font-weight: 400; line-height: 1.4; }
.djc-card .djc-saving--uvp > strong { font-size: 20px; }
@media (max-width: 639px) {
    .djc-saving--uvp > strong { font-size: 22px; }
    .djc-card .djc-saving--uvp > strong { font-size: 18px; letter-spacing: -.2px; }
    .djc-card .djc-saving--uvp > small { font-size: 11px; }
}
.djc-search-popup .djc-saving--uvp > strong { font-size: 16px; }
.djc-search-popup .djc-saving--uvp > small { font-size: 11px; }
