/* A catalogue list inspired by the reference layout, using SIBO's shared brand system. */
body.sibo-site .sibo-category-page { color: var(--sibo-muted); background: var(--sibo-surface); padding: 0 0 80px; font-size: 1rem; line-height: 1.8; }
.sibo-category-page *, .sibo-category-page *::before, .sibo-category-page *::after { box-sizing: border-box; }
.sibo-category-page :is(h1,h2,p,ul,ol) { margin: 0; }
.sibo-category-page a { text-decoration: none; }
.sibo-category-page :is(h1,h2) { font-family: inherit; color: var(--sibo-ink); }
.sibo-category-page :is(a,summary):focus-visible { outline: 2px solid var(--sibo-accent); outline-offset: 4px; }
.sibo-category-breadcrumb { padding: 30px 0 42px; font-size: .8125rem; line-height: 1.65; }
.sibo-category-breadcrumb ol { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; list-style: none; padding: 0; }
.sibo-category-breadcrumb li { display: flex; align-items: center; gap: 14px; }
.sibo-category-breadcrumb li:not(:last-child)::after { content: '›'; opacity: .6; }
.sibo-category-breadcrumb a { color: var(--sibo-muted); }
.sibo-category-breadcrumb a:hover, .sibo-category-breadcrumb [aria-current] { color: var(--sibo-accent); }
.sibo-category-layout { display: grid; grid-template-columns: 276px minmax(0,1fr); gap: 32px; align-items: start; }
.sibo-category-sidebar { min-width: 0; position: static; }
/* Stay within the product-list grid; release naturally before the shared footer. */
@media (min-width: 901px) {
    .sibo-category-sidebar {
        --sibo-category-sticky-top: calc(var(--sibo-header-offset, 0px) + 110px);
        position: sticky;
        top: var(--sibo-category-sticky-top);
        align-self: start;
        max-height: calc(100vh - var(--sibo-category-sticky-top) - 24px);
        max-height: calc(100dvh - var(--sibo-category-sticky-top) - 24px);
        overflow-y: auto;
        overscroll-behavior-y: contain;
        scrollbar-width: thin;
        scrollbar-color: var(--sibo-line) transparent;
    }
}
.sibo-category-classification { background: var(--sibo-surface-raised); border: 0; border-radius: 0; padding: 16px; margin: 0; }
.sibo-category-classification summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; list-style: none; padding: 18px 15px; background: var(--sibo-accent); color: #071b1a; cursor: default; }
.sibo-category-classification summary::-webkit-details-marker { display: none; }
.sibo-category-classification summary h2 { color: inherit; border-left: 3px solid currentColor; padding-left: 10px; font-size: 1.0625rem; font-weight: 600; line-height: 1.4; letter-spacing: -.025em; }
.sibo-category-toggle { display: none; flex: 0 0 18px; }
.sibo-category-classification ul { list-style: none; padding: 0; }
.sibo-category-classification li + li { border-top: 3px solid var(--sibo-surface-raised); }
.sibo-category-classification li a { display: flex; align-items: center; gap: 10px; padding: 17px 12px; border-left: 3px solid transparent; background: var(--sibo-surface); color: var(--sibo-muted); font-size: .875rem; line-height: 1.65; }
.sibo-category-classification li a > svg { flex: 0 0 12px; width: 12px; }
.sibo-category-classification li a.is-current { color: var(--sibo-ink); background: var(--sibo-surface-hover); border-left-color: var(--sibo-accent); }
.sibo-category-classification li a:is(:hover,.is-ancestor) { color: var(--sibo-accent); }
.sibo-category-all { display: inline-flex; align-items: center; gap: 10px; margin: 20px 16px 0; color: var(--sibo-muted); font-size: .8125rem; }
.sibo-category-all:hover { color: var(--sibo-accent); }
.sibo-category-all svg { width: 16px; height: 16px; }
.sibo-category-main { min-width: 0; }
.sibo-category-heading { border-bottom: 2px solid var(--sibo-accent); padding-bottom: 24px; margin-bottom: 34px; }
.sibo-category-heading h1 { display: flex; align-items: baseline; gap: 13px; font-size: clamp(28px,2.3vw,38px); font-weight: 600; line-height: 1.25; letter-spacing: -.025em; overflow-wrap: anywhere; }
.sibo-category-heading h1::before { content: '›'; color: var(--sibo-accent); font-size: .85em; font-weight: 400; }
.sibo-category-description { font-size: 1rem; line-height: 1.8; margin-top: 18px; max-width: 85ch; }
.sibo-category-description p + p { margin-top: 12px; }
.sibo-category-children { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 24px; }
.sibo-category-children a { display: inline-flex; gap: 10px; align-items: center; padding: 8px 17px; background: var(--sibo-surface-raised); color: var(--sibo-ink); border-radius: 30px; font-size: .8125rem; }
.sibo-category-children a::before { content: ''; width: 6px; height: 6px; background: var(--sibo-accent); border-radius: 50%; flex: 0 0 6px; }
.sibo-category-children a:hover { color: var(--sibo-accent); }
.sibo-category-products { display: grid; gap: 36px; }
.sibo-category-product { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0,1.95fr); gap: 36px; align-items: center; padding-bottom: 36px; border-bottom: 1px solid var(--sibo-line); min-width: 0; }
.sibo-category-product:last-child { padding-bottom: 0; border-bottom: 0; }
.sibo-category-product-image { display: grid; place-items: center; background: #fff; aspect-ratio: 1; overflow: hidden; padding: 14px; }
.sibo-category-product-image img { display: block; width: 100%; height: 100%; object-fit: contain; transition: transform .25s ease; }
.sibo-category-product-image:hover img { transform: scale(1.035); }
.sibo-category-product-info { min-width: 0; }
.sibo-category-product h2 { font-size: clamp(21px,1.55vw,26px); font-weight: 600; letter-spacing: -.02em; line-height: 1.4; margin-bottom: 18px; overflow-wrap: anywhere; }
.sibo-category-product h2 a { color: var(--sibo-ink); }
.sibo-category-product h2 a:hover { color: var(--sibo-accent); }
.sibo-category-product-description { font-size: .9375rem; line-height: 1.85; overflow-wrap: anywhere; }
.sibo-category-product-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin-top: 24px; }
.sibo-category-pagination { margin-top: 46px; }
.sibo-category-page .sibo-category-pagination { border: 0; padding: 0; }
.sibo-category-page .sibo-category-pagination ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; border: 0; padding: 0; margin: 0; list-style: none; }
.sibo-category-page .sibo-category-pagination ul li { border: 0; margin: 0; padding: 0; float: none; }
.sibo-category-page .sibo-category-pagination :is(a,span.page-numbers) { display: grid; place-items: center; min-width: 44px; min-height: 44px; padding: 8px 12px; background: var(--sibo-surface-raised); color: var(--sibo-muted); border: 1px solid var(--sibo-line); border-radius: 6px; font-size: .875rem; font-weight: 600; }
.sibo-category-page .sibo-category-pagination :is(a:hover,.current) { background: var(--sibo-accent); border-color: var(--sibo-accent); color: #071b1a; }
.sibo-category-empty { padding: 34px; background: var(--sibo-surface-raised); }
.sibo-category-empty h2 { font-size: 1.375rem; font-weight: 600; line-height: 1.4; margin-bottom: 16px; }
@media (min-width: 1800px) { .sibo-category-layout { grid-template-columns: 300px minmax(0,1fr); gap: 40px; } .sibo-category-product { gap: 44px; } }
@media (max-width: 1200px) { .sibo-category-layout { grid-template-columns: 240px minmax(0,1fr); gap: 24px; } .sibo-category-classification { padding: 12px; } .sibo-category-classification summary { padding: 16px 12px; } .sibo-category-classification summary h2 { font-size: .9375rem; } .sibo-category-product { gap: 24px; grid-template-columns: minmax(0,.9fr) minmax(0,1.15fr); } }
@media (max-width: 900px) {
    .sibo-category-layout { grid-template-columns: minmax(0,1fr); gap: 28px; }
    .sibo-category-classification { padding: 0; }
    .sibo-category-classification summary { cursor: pointer; padding: 15px 18px; }
    .sibo-category-classification summary h2 { font-size: .9375rem; border: 0; padding: 0; }
    .sibo-category-toggle { display: block; }
    .sibo-category-classification[open] .sibo-category-toggle { transform: rotate(180deg); }
    .sibo-category-all { margin: 14px 0 0; }
    .sibo-category-heading h1 { font-size: 32px; }
}
@media (max-width: 650px) {
    body.sibo-site .sibo-category-page { padding-bottom: 48px; }
    .sibo-category-breadcrumb { padding: 20px 0 26px; font-size: .75rem; }
    .sibo-category-heading { margin-bottom: 26px; padding-bottom: 22px; }
    .sibo-category-heading h1 { font-size: 28px; gap: 10px; }
    .sibo-category-description { font-size: .9375rem; }
    .sibo-category-products { gap: 28px; }
    .sibo-category-product { grid-template-columns: minmax(0,1fr); gap: 22px; padding-bottom: 28px; }
    .sibo-category-product-image { aspect-ratio: 1.25; }
    .sibo-category-product h2 { font-size: 21px; margin-bottom: 14px; }
    .sibo-category-product-actions { gap: 10px; margin-top: 20px; }
    body.sibo-site .sibo-category-product-actions .sibo-button { padding: 14px 16px !important; min-height: 48px !important; font-size: .8125rem !important; }
    .sibo-category-pagination { margin-top: 32px; }
    .sibo-category-empty { padding: 24px 20px; }
}
@media (prefers-reduced-motion: reduce) { .sibo-category-page *, .sibo-category-page *::before, .sibo-category-page *::after { transition: none !important; } }

/* Compact desktop catalogue rows: show more products without cropping artwork. */
@media (min-width:901px) {
    .sibo-category-products { gap:24px; }
    .sibo-category-product { grid-template-columns:clamp(190px,18vw,260px) minmax(0,1fr); column-gap:clamp(24px,2vw,32px); padding-bottom:24px; }
}
/* Product category text overflow */
.sibo-category-product h2,
.sibo-category-product-description {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  text-overflow: ellipsis;
}
