/* SCHWAN Suchergebnisse R2. Nur eigene Suchkomponenten; Herstellerdateien unveraendert. */
.schwan-results-content .page-header { margin-bottom: 12px; }
.schwan-results-content .page-header h1 { overflow-wrap: anywhere; }
.schwan-results-toolbar { display: flex; flex-wrap: wrap; align-items: stretch; gap: 8px; margin: 0 0 12px; }
.schwan-results-toolbar:empty, .schwan-applied-filters:empty { display: none; }
.schwan-results-toolbar .schwan-result-options { display: flex; flex: 1 1 190px; flex-wrap: wrap; gap: 8px; min-width: 0; margin: 0; }
.schwan-results-toolbar .schwan-result-options > .btn-group { float: none !important; min-width: 0; margin: 0; }
.schwan-results-toolbar .schwan-result-sort { margin-right: auto !important; }
.schwan-results-toolbar .schwan-result-options > .btn-group > button,
.schwan-result-page-size > button { min-height: 44px; max-width: 100%; white-space: normal; font-size: 13px; line-height: 1.4; padding: 9px 12px; }
.schwan-results-toolbar .dropdown-menu,
.schwan-result-page-size .dropdown-menu { min-width: 100%; max-width: min(310px, 85vw); max-height: 55vh; overflow-y: auto; }
.schwan-results-toolbar .dropdown-menu a,
.schwan-result-page-size .dropdown-menu a { min-height: 44px; display: flex; align-items: center; white-space: normal; overflow-wrap: anywhere; }
.schwan-results-toolbar .schwan-result-view .dropdown-menu,
.schwan-result-page-size .dropdown-menu { left: auto; right: 0; }
.schwan-applied-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0 0 14px; }
.schwan-applied-filters[hidden], .schwan-filter-open[hidden], .schwan-filter-reset[hidden], .schwan-filter-discard[hidden] { display: none !important; }
.schwan-filter-open, .schwan-filter-chip, .schwan-filter-apply, .schwan-filter-reset,
.schwan-filter-dismiss, .schwan-filter-discard, .schwan-filter-more {
    font: inherit; line-height: 1.4; min-height: 44px; border: 1px solid #ccc;
    background: #fff; color: #343434; padding: 9px 12px; border-radius: 0;
    display: inline-flex; align-items: center; justify-content: center; cursor: pointer;
    white-space: normal; overflow-wrap: anywhere;
}
.schwan-filter-open { font-weight: 700; }
.schwan-filter-chip { background: #f6f6f6; border-color: #d7d7d7; text-align: left; justify-content: flex-start; font-size: 13px; }
.schwan-filter-reset, .schwan-filter-discard, .schwan-filter-more { border-color: transparent; text-decoration: underline; font-size: 13px; }
.schwan-filter-reset:hover, .schwan-filter-discard:hover, .schwan-filter-more:hover { color: #a31119; }
.schwan-filter-apply { color: #fff; background: #c9141c; border-color: #c9141c; width: 100%; font-weight: 700; }
.schwan-filter-apply:hover:not(:disabled) { background: #a31119; }
.schwan-filter-apply:disabled { background: #e9e9e9; color: #666; border-color: #ccc; cursor: default; }
.schwan-filter-open:focus, .schwan-filter-chip:focus, .schwan-filter-apply:focus,
.schwan-filter-reset:focus, .schwan-filter-dismiss:focus, .schwan-filter-discard:focus,
.schwan-filter-more:focus, #schwan-results-panel summary:focus,
#content.schwan-results-header-ready .schwan-results-toolbar button:focus,
#content.schwan-results-header-ready .schwan-result-page-size > button:focus,
#content.schwan-results-header-ready .pagination > li > a:focus {
    outline: 2px solid #a31119; outline-offset: -4px;
}
/* Native selects keep a clear focus treatment without an outer glow. */
body #schwan-results-panel select:focus {
    outline: 2px solid #a31119; outline-offset: -4px; box-shadow: none;
}
/* Light inner ring on the red action and selected alphabet tile. */
.schwan-filter-apply:focus,
#content.schwan-results-header-ready .pagination > li.active > a:focus,
body #schwan-results-panel.schwan-results-panel .letter-wrapper > .indexlink_usable.active > a:focus {
    outline-color: #fff;
}
body #schwan-results-panel.schwan-results-panel { border: 1px solid #ddd; margin: 0 0 20px; background: #fff; color: #343434; min-width: 0; }
body #schwan-results-panel[hidden] { display: none !important; }
#schwan-results-panel > .schwan-search-filter-summary,
#schwan-results-panel .schwan-search-filter-heading,
#schwan-results-panel .schwan-search-filter-close,
#schwan-results-panel .schwan-original-group-label,
#schwan-results-panel .schwan-native-action { display: none !important; }
body #schwan-results-panel .schwan-search-filter-content { padding: 0 12px; }
body #schwan-results-panel .baseframe { padding: 0; margin: 0; border: 0; box-shadow: none; }
body #schwan-results-panel .content.list { padding: 0; }
body #schwan-results-panel .schwan-filter-header {
    display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 12px;
}
#schwan-results-panel .schwan-filter-header h2 { font-size: 22px; margin: 0; }
#schwan-results-panel .schwan-filter-dismiss { display: none; }
#schwan-results-panel .schwan-filter-group { border-top: 1px solid #ddd; padding: 0; }
#schwan-results-panel .schwan-filter-group > summary {
    padding: 12px 30px 12px 8px; position: relative; display: flex; flex-wrap: wrap;
    gap: 3px 8px; align-items: center; min-height: 48px; font-weight: 700; cursor: pointer; list-style: none;
}
#schwan-results-panel .schwan-filter-group > summary::-webkit-details-marker { display: none; }
#schwan-results-panel .schwan-filter-group > summary::after { content: '+'; position: absolute; right: 8px; font: 22px/1 Arial,sans-serif; }
#schwan-results-panel .schwan-filter-group[open] > summary::after { content: '\2212'; }
#schwan-results-panel .schwan-group-name { overflow-wrap: anywhere; }
#schwan-results-panel .schwan-group-selection { font-size: 12px; font-weight: 400; color: #666; }
body #schwan-results-panel .item { width: 100%; padding: 0 0 10px; }
body #schwan-results-panel .item .form-group { margin-bottom: 0; }
body #schwan-results-panel .item .multiselect { padding: 0; margin: 0; background: transparent; }
body #schwan-results-panel .schwan-filter-option { padding: 0; margin: 0; position: relative; }
body #schwan-results-panel .schwan-filter-option[hidden] { display: none !important; }
body #schwan-results-panel .schwan-filter-option label {
    padding: 10px 0 10px 28px; min-height: 44px; display: block; line-height: 1.45;
    font-size: 14px; font-weight: 400; cursor: pointer; overflow-wrap: anywhere; margin: 0;
}
body #schwan-results-panel .schwan-filter-option input[type="checkbox"] {
    position: absolute; margin: 3px 0 0 -27px; width: 18px; height: 18px; accent-color: #c9141c;
}
body #schwan-results-panel .vendor .schwan-filter-option > input[type="checkbox"] { margin: 13px 0 0; }
body #schwan-results-panel .schwan-option-disabled label { color: #777; cursor: default; }
body #schwan-results-panel select { min-height: 44px; height: auto; width: 100%; max-width: 100%; font-size: 16px; padding: 8px; }
#schwan-results-panel .schwan-index-group { margin-top: 0; }
#schwan-results-panel .schwan-index-group > .baseframe { padding: 0 0 12px; }
#schwan-results-panel .schwan-filter-footer { border-top: 1px solid #ddd; padding: 12px; background: #fff; }
#schwan-results-panel .schwan-filter-footer .schwan-filter-reset { width: 100%; margin-top: 4px; }
#schwan-results-panel .schwan-filter-discard { width: 100%; }
#schwan-results-panel .schwan-filter-status { font-size: 13px; line-height: 1.4; margin: 0 0 8px; }
#schwan-results-panel .schwan-filter-status:empty { display: none; }
/* Same alphabet component inside the sidebar and the native modal dialog. */
body #schwan-results-panel.schwan-results-panel .letter-wrapper { display: grid; grid-template-columns: repeat(auto-fit,minmax(46px,1fr)); gap: 4px; width: 100%; margin: 0; }
body #schwan-results-panel.schwan-results-panel .letter-wrapper > [class*="letter_"] {
    display: flex; align-items: center; justify-content: center; flex: none; float: none;
    box-sizing: border-box; width: auto; min-width: 0; min-height: 46px; margin: 0; padding: 0;
    border: 1px solid #ddd; font-size: 14px; line-height: 1.3; text-align: center; box-shadow: none;
}
body #schwan-results-panel.schwan-results-panel .letter-wrapper > .indexlink { color: #666; background: #f3f3f3; border-color: transparent; }
body #schwan-results-panel.schwan-results-panel .letter-wrapper > .indexlink_usable { color: #a31119; background: #fff; }
body #schwan-results-panel.schwan-results-panel .letter-wrapper > .indexlink_usable > a {
    display: flex; align-items: center; justify-content: center; box-sizing: border-box; width: 100%;
    min-height: 44px; padding: 4px 2px; color: inherit; font-size: inherit; line-height: inherit; text-decoration: underline;
}
body #schwan-results-panel.schwan-results-panel .letter-wrapper > .indexlink_usable.active { color: #fff; background: #c9141c; border-color: #c9141c; font-weight: 700; }
body #schwan-results-panel.schwan-results-panel .letter-wrapper > .indexlink_usable.active > a { color: #fff; font-weight: 700; }
body #schwan-results-panel.schwan-results-panel .letter-wrapper > .indexlink_usable > a:focus { outline-width: 2px; outline-style: solid; outline-color: #a31119; outline-offset: -4px; }
.schwan-filter-dialog { padding: 0; border: 0; max-width: 100%; max-height: 100%; background: #fff; color: #343434; }
.schwan-filter-dialog::backdrop { background: rgba(0,0,0,.45); }
.schwan-filter-dialog[open] { display: flex; margin: 0 0 0 auto; width: min(520px,100%); height: 100%; height: 100dvh; overflow: hidden; }
html.schwan-filter-dialog-open { overflow: hidden; }
.schwan-filter-dialog[open] #schwan-results-panel {
    display: flex; flex-direction: column; width: 100%; height: 100%; margin: 0; border: 0;
}
.schwan-filter-dialog[open] #schwan-results-panel .schwan-search-filter-content { flex: 1 1 auto; overflow: auto; overscroll-behavior: contain; min-height: 0; }
.schwan-filter-dialog[open] #schwan-results-panel .schwan-filter-header,
.schwan-filter-dialog[open] #schwan-results-panel .schwan-filter-footer { flex: 0 0 auto; }
.schwan-filter-dialog[open] #schwan-results-panel .schwan-filter-footer { padding-bottom: max(12px,env(safe-area-inset-bottom)); }
#schwan-results-panel.schwan-results-mobile .schwan-filter-dismiss { display: inline-flex; }
/* Keep native result links, product forms, legal price details and chosen line view. */
#content.schwan-results-content .listRefine { margin-bottom: 16px; }
#content.schwan-results-content .listRefine .spacer { display: none; }
#content.schwan-results-header-ready .listRefine .refineParams,
#content.schwan-results-header-ready .listRefine .pagination-options { margin-bottom: 0; }
#content.schwan-results-header-ready .listRefine .options[hidden],
#content.schwan-results-header-ready .listRefine > .row[hidden] { display: none; }
#content.schwan-results-header-ready .schwan-results-page-tools { gap: 8px 16px; }
#content.schwan-results-header-ready .schwan-result-page-size { float: none !important; margin: 0 0 0 auto; max-width: 100%; }
#content.schwan-results-header-ready .schwan-results-footer { margin: 16px 0; }
#content.schwan-results-content .pagination-options { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
#content.schwan-results-content .pagination-options > .clearfix { display: none; }
#content.schwan-results-content .pagination { display: flex; flex-wrap: wrap; margin: 0; gap: 4px; }
#content.schwan-results-content .pagination > li > a,
#content.schwan-results-content .pagination > li > span { min-width: 44px; min-height: 44px; display: flex; align-items: center; justify-content: center; padding: 6px; margin: 0; font-size: 13px; }
#content.schwan-results-content #searchList:not(.list-line) .newItems > .inside { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,220px),1fr)); gap: 16px; }
#content.schwan-results-content #searchList:not(.list-line) .productBox { width: auto; min-width: 0; margin: 0; background: #fff; }
#content.schwan-results-content #searchList .productBox:empty { display: none; }
#content.schwan-results-content #searchList:not(.list-line) .productBox > form { width: 100%; }
#content.schwan-results-content #searchList:not(.list-line) .title { min-height: 0; height: auto !important; }
#content.schwan-results-content #searchList:not(.list-line) .title h3 { font-size: 15px; line-height: 1.4; margin-bottom: 8px; }
#content.schwan-results-content #searchList .product-additional-info { line-height: 1.5; margin-bottom: 8px; }
#content.schwan-results-content #searchList .product-additional-info .text-muted { color: #666; }
#content.schwan-results-content #searchList .delivery-info { line-height: 1.4 !important; }
#content.schwan-results-content #searchList .schwan-empty-price-line { display: none; }
#content.schwan-results-content #searchList .listDetails > .inside { margin-bottom: 0; }
#content.schwan-results-content #searchList .actions .btn { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; white-space: normal; }
#content.schwan-results-content #searchList .actions input { min-height: 44px; font-size: 16px; }
@media (max-width: 767px) {
    .schwan-results-toolbar > .schwan-filter-open { align-self: stretch; }
    .schwan-results-toolbar .schwan-result-options { flex: 1 1 170px; }
    .schwan-results-toolbar .schwan-result-options > .btn-group { flex: 1 1 170px; }
    .schwan-results-toolbar .schwan-result-options > .btn-group > button { width: 100%; }
    .schwan-results-toolbar .schwan-result-options > .btn-group.hidden-xs { display: none !important; }
    #content.schwan-results-content #searchList:not(.list-line) .newItems > .inside { grid-template-columns: minmax(0,1fr); gap: 12px; }
    #content.schwan-results-content #searchList:not(.list-line) .productBox > form { display: grid; grid-template-columns: clamp(80px,25vw,120px) minmax(0,1fr); gap: 12px; padding: 12px; align-items: start; }
    #content.schwan-results-content #searchList:not(.list-line) .picture { width: 100%; min-width: 0; max-width: 100%; float: none; margin: 0; }
    #content.schwan-results-content #searchList:not(.list-line) .picture .img-thumbnail { display: flex; align-items: center; justify-content: center; aspect-ratio: 1; padding: 2px; border: 0; }
    #content.schwan-results-content #searchList:not(.list-line) .picture img { position: static; transform: none; width: 100%; height: auto; max-height: 120px; object-fit: contain; }
    #content.schwan-results-content #searchList:not(.list-line) .listDetails { width: auto; min-width: 0; float: none; padding: 0; }
    #content.schwan-results-content #searchList:not(.list-line) .title { padding: 0; text-align: left; overflow-wrap: anywhere; }
    #content.schwan-results-content #searchList:not(.list-line) .title h3 { font-size: 14px; }
    #content.schwan-results-content #searchList:not(.list-line) .product-additional-info,
    #content.schwan-results-content #searchList:not(.list-line) .price .content > *,
    #content.schwan-results-content #searchList:not(.list-line) .eq-wrapper > .text-center { text-align: left; }
    #content.schwan-results-content #searchList:not(.list-line) .price { text-align: left; margin: 8px 0; }
    #content.schwan-results-content #searchList:not(.list-line) .price .lead { font-size: 26px; white-space: normal; }
    #content.schwan-results-content #searchList:not(.list-line) .actions { text-align: left; padding: 0; margin: 4px 0 0; }
    #content.schwan-results-content #searchList:not(.list-line) .productBox-actionRow { display: flex; flex-wrap: wrap; gap: 8px; width: 100%; max-width: 100%; }
    #content.schwan-results-content #searchList:not(.list-line) .productBox-buyGroup { display: flex; width: 100%; flex: 1 1 110px; max-width: 180px; margin: 0; }
    #content.schwan-results-content #searchList:not(.list-line) .productBox-buyGroup > .form-control { width: 1%; min-width: 0; flex: 1 1 auto; }
    #content.schwan-results-content #searchList:not(.list-line) .productBox-buyGroup > .input-group-btn { display: flex; width: auto; flex: 0 0 auto; }
    #content.schwan-results-content #searchList:not(.list-line) .productBox-detailsButton { width: auto; min-width: 80px; flex: 0 1 auto; }
}
@media (max-width: 991px) {
    .schwan-results-toolbar > .schwan-filter-open { min-width: 88px; }
    .schwan-results-toolbar .schwan-result-sort { flex: 1 1 170px; }
    .schwan-results-toolbar .schwan-result-sort > button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    #schwan-results-panel *, .schwan-results-toolbar *, .schwan-applied-filters * { transition: none !important; }
}

/* R2.1: follow the browser's focus indication heuristic. The preceding :focus
   rules remain the fallback for browsers without :focus-visible support. */
@supports selector(:focus-visible) {
    .schwan-filter-open:focus:not(:focus-visible),
    .schwan-filter-chip:focus:not(:focus-visible),
    .schwan-filter-apply:focus:not(:focus-visible),
    .schwan-filter-reset:focus:not(:focus-visible),
    .schwan-filter-dismiss:focus:not(:focus-visible),
    .schwan-filter-discard:focus:not(:focus-visible),
    .schwan-filter-more:focus:not(:focus-visible),
    #schwan-results-panel summary:focus:not(:focus-visible),
    body #schwan-results-panel select:focus:not(:focus-visible),
    #content.schwan-results-header-ready .schwan-results-toolbar button:focus:not(:focus-visible),
    #content.schwan-results-header-ready .schwan-result-page-size > button:focus:not(:focus-visible),
    #content.schwan-results-header-ready .pagination > li > a:focus:not(:focus-visible),
    body #schwan-results-panel.schwan-results-panel .letter-wrapper > .indexlink_usable > a:focus:not(:focus-visible) {
        outline: none;
    }
}
/* Outline survives forced-colors mode; box shadows alone would not. */
@media (forced-colors: active) {
    .schwan-filter-open:focus, .schwan-filter-chip:focus, .schwan-filter-apply:focus,
    .schwan-filter-reset:focus, .schwan-filter-dismiss:focus, .schwan-filter-discard:focus,
    .schwan-filter-more:focus, #schwan-results-panel summary:focus,
    body #schwan-results-panel select:focus,
    #content.schwan-results-header-ready .schwan-results-toolbar button:focus,
    #content.schwan-results-header-ready .schwan-result-page-size > button:focus,
    #content.schwan-results-header-ready .pagination > li.active > a:focus,
    #content.schwan-results-header-ready .pagination > li > a:focus,
    body #schwan-results-panel.schwan-results-panel .letter-wrapper > .indexlink_usable > a:focus,
    body #schwan-results-panel.schwan-results-panel .letter-wrapper > .indexlink_usable.active > a:focus {
        outline-color: Highlight;
    }
}
