/* Public catalogue: shared visual rhythm for categories and the shop. */
.catalog-intro { padding-top:32px; padding-bottom:24px; }
.catalog-intro__surface { padding:28px 32px; border:1px solid #dceaf3; border-radius:20px; background:linear-gradient(115deg,#edf7fd,#f8fbfd); }
.catalog-intro__eyebrow { margin:0 0 10px; color:#0875ad; font-size:.72rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.catalog-intro h1 { font-size:clamp(1.65rem,3vw,2.25rem); font-weight:700; letter-spacing:-.025em; color:#143246; }
.catalog-intro .btn { background:#fff; white-space:nowrap; padding:12px 22px; }
.masset-catalog { padding-bottom:40px; }
.masset-catalog .catalog-filters { padding:24px; border-radius:18px; background:#fff; border:1px solid #dfe8ef; box-shadow:0 4px 18px #12334b05; margin-bottom:24px; }
.masset-catalog .catalog-filters__heading { margin-bottom:20px; }
.masset-catalog .catalog-filters__heading h2 { color:#17384d; font-size:1.12rem; }
.masset-catalog .catalog-filters__heading > span { background:#edf6fc; color:#086b9f; font-size:.8rem; font-weight:600; }
.masset-catalog .catalog-filters__heading p { font-size:.85rem; }
.masset-catalog .catalog-filters select,.masset-catalog .catalog-filters input[type=number] { border-color:#d4e0e8; border-radius:10px; background-color:#fafcfe; }
.masset-catalog .catalog-filters select:disabled { background-color:#f0f3f6; color:#788691; }
.masset-catalog .catalog-filters__details { margin-top:14px; }
.masset-catalog .catalog-filters__footer { padding-top:8px; }
.catalog-results-bar { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:4px 0 20px; }
.catalog-results-count { color:#18374b; font-size:.95rem; white-space:nowrap; }
.masset-catalog .shop-acs { gap:16px; }
.masset-catalog .shop-acs__select { border:1px solid #dfe8ef!important; border-radius:10px; padding:10px 36px 10px 14px!important; min-height:44px; font-size:.8rem; text-transform:none; background-color:#fff; }
.masset-catalog .products-grid { --bs-gutter-x:24px; --bs-gutter-y:24px; }
.masset-catalog .product-card-wrapper { display:flex; }
.masset-catalog .product-card { display:flex; flex-direction:column; width:100%; margin:0!important; padding:18px; border:1px solid #dde7ee; border-radius:18px; background:#fff; box-shadow:0 4px 16px #14324606; transition:border-color .18s,box-shadow .18s; }
.masset-catalog .product-card:hover { border-color:#9ec5dc; box-shadow:0 10px 28px #14324610; }
.masset-catalog .product-card .pc__img-wrapper { margin:0 0 20px; border-radius:12px; background:#fff; overflow:hidden; }
.masset-catalog .product-card .pc__img { width:100%; height:230px; object-fit:contain; padding:18px; }
.masset-catalog .product-card .pc__info { display:flex; flex-direction:column; flex:1; }
.masset-catalog .product-card .pc__category { color:#657b8b; font-size:.75rem; margin-bottom:7px; }
.masset-catalog .product-card .pc__title { color:#17364a; font-size:1.15rem; font-weight:650; line-height:1.4; margin-bottom:12px; }
.masset-catalog .product-card .pc__title a { text-decoration:none; }
.masset-catalog .product-card .product-card__price { flex-wrap:wrap; gap:4px 8px; margin-top:auto; padding-top:18px; color:#17364a; }
.masset-catalog .product-card .product-unit-text { display:block; color:#687e8e; font-size:.75rem; font-weight:400; }
.masset-catalog .catalog-card-actions { padding-top:18px; }
.masset-catalog .catalog-card-actions .btn { width:100%; min-height:46px; border-radius:10px; font-size:.875rem; padding:11px 12px; }
.masset-catalog :is(a,button,input,select,summary):focus-visible { outline:3px solid #0a79be; outline-offset:3px; }
@media(max-width:991.98px) {
 .catalog-intro { padding-top:20px; padding-bottom:20px; }
 .catalog-intro__surface { padding:22px; }
 .masset-catalog .catalog-filters { padding:18px; margin:0; }
 .masset-catalog .catalog-filters__footer { background:#fff; box-shadow:none; }
 .catalog-results-bar { flex-wrap:wrap; gap:12px; }
 .masset-catalog .shop-acs { justify-content:space-between!important; width:100%; }
 .masset-catalog .shop-filter button { border:1px solid #cbdde8; border-radius:10px; padding:10px 14px!important; min-height:44px; color:#086b9f; }
}
@media(max-width:575.98px) {
 .catalog-intro__surface { padding:20px; border-radius:16px; }
 .catalog-intro .btn { font-size:.8rem; }
 .masset-catalog .products-grid > .product-card-wrapper { width:100%; }
 .masset-catalog .product-card .pc__img { height:220px; }
 .masset-catalog .product-card .pc__title { font-size:1.15rem; }
}
@media(prefers-reduced-motion:reduce) { .masset-catalog .product-card { transition:none; } }
@media(min-width:992px) {
 .masset-catalog .shop-list { width:100%!important; max-width:none; margin-left:0!important; }
}
.masset-catalog .pc__img-wrapper .swiper-container { background:transparent; }
.masset-catalog .product-card .pc__img-wrapper { height:230px; padding-top:0; flex-shrink:0; }
.masset-catalog .product-card .pc__img-wrapper .swiper-container { height:100%; }
.masset-catalog .product-card .pc__info { margin-top:0; }
.masset-catalog .product-card .product-card__price { align-items:baseline; }
@media(max-width:575.98px) { .masset-catalog .product-card .pc__img-wrapper { height:220px; } }
.catalog-search { margin-top:24px; max-width:760px; }
.catalog-search label { display:block; color:#17384d; font-weight:600; margin-bottom:8px; }
.catalog-search__controls { display:flex; gap:10px; }
.catalog-search__controls input { min-width:0; min-height:48px; border:1px solid #cbdde8; border-radius:10px; background:#fff; }
.catalog-search__controls .btn { flex-shrink:0; }
.catalog-search p { color:#687e8e; font-size:.8rem; margin:8px 0 0; }
.catalog-categories { display:flex; flex-wrap:wrap; gap:8px; margin-top:20px; }
.catalog-categories a { padding:9px 16px; border:1px solid #d6e3ec; border-radius:30px; color:#34566d; background:#fff; font-size:.85rem; }
.catalog-categories a[aria-current],.catalog-categories a:hover { color:#fff; background:#086fa8; border-color:#086fa8; }
.masset-catalog .masset-product-features { display:flex; flex-wrap:wrap; gap:6px; margin:10px 0; }
.masset-catalog .masset-product-features:empty { display:none; }
.masset-catalog .masset-product-features span { padding:5px 8px; border-radius:6px; background:#eef5fa; color:#31576e; font-size:.75rem; }
.catalog-purchase-note { color:#576f80; font-size:.78rem; line-height:1.5; margin:0 0 10px; }
.catalog-empty { width:100%; flex:0 0 100%; max-width:100%; text-align:left; padding:28px; border:1px solid #dce8f0; background:#f7fbfe; border-radius:16px; }
.catalog-empty h2 { font-size:1.3rem; }
@media(max-width:575.98px) { .catalog-search__controls { flex-direction:column; } .catalog-categories { flex-wrap:nowrap; overflow-x:auto; padding-bottom:8px; } .catalog-categories a { flex-shrink:0; } }
.masset-catalog .products-grid > .catalog-empty { width:100%; max-width:100%; }
.catalog-search__controls .btn { background:#087bbd; border-color:#087bbd; color:#fff; }
.catalog-search__controls .btn:hover { background:#076799; border-color:#076799; }


/* Keep the catalogue above the fold; filters occupy their own desktop column. */
.catalog-intro { padding-top:20px; padding-bottom:20px; }
.catalog-intro__surface { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:0; border:0; border-radius:0; background:none; }
.catalog-intro__title { min-width:0; }
.catalog-intro h1 { font-size:clamp(1.4rem,2.5vw,1.85rem); }
.catalog-intro__title > a { display:inline-block; margin-top:4px; color:#086fa8; font-size:.8rem; text-decoration:underline; }
.catalog-intro .catalog-search { flex:0 1 520px; margin:0; min-width:0; }
.catalog-search__controls { flex-direction:row; }
.catalog-categories { margin-top:14px; }
.catalog-categories a { padding:7px 14px; }
.masset-catalog--sidebar .catalog-filters__main,
.masset-catalog--sidebar .catalog-filters__advanced { grid-template-columns:minmax(0,1fr); gap:14px; }
.masset-catalog--sidebar .catalog-filters__footer { flex-direction:column; align-items:stretch; gap:16px; }
.masset-catalog--sidebar .catalog-filters__buttons { flex-direction:column-reverse; gap:12px; }
.masset-catalog--sidebar .catalog-filters__buttons .btn { width:100%; padding:12px 8px; font-size:.875rem; }
.masset-catalog--sidebar .catalog-filters__promotion { font-size:.8rem; }
.masset-catalog--sidebar .catalog-filters__promotion input { flex-shrink:0; }
@media(min-width:992px) {
 .masset-catalog.masset-catalog--sidebar { display:grid!important; grid-template-columns:270px minmax(0,1fr); gap:24px; align-items:start; }
 .masset-catalog--sidebar .shop-sidebar { position:static!important; width:100%!important; min-width:0; max-width:none!important; padding:0!important; }
 .masset-catalog--sidebar .shop-list { width:auto!important; min-width:0; padding:0!important; }
 .masset-catalog--sidebar .catalog-filters { padding:18px; margin:0; border-radius:14px; }
 .masset-catalog--sidebar .catalog-filters__heading { margin-bottom:16px; }
 .masset-catalog--sidebar .catalog-filters__details summary { font-size:.85rem; }
 .masset-catalog--sidebar .catalog-filters__hint { font-size:.78rem; }
 .masset-catalog--sidebar .catalog-results-bar { margin-top:0; }
}
@media(min-width:992px) and (max-width:1199.98px) {
 .masset-catalog--sidebar .products-grid > .product-card-wrapper { width:50%; }
}
@media(max-width:767.98px) {
 .catalog-intro__surface { flex-direction:column; align-items:stretch; gap:12px; }
 .catalog-intro__title { display:flex; align-items:center; justify-content:space-between; gap:12px; }
 .catalog-intro__title > a { flex-shrink:0; }
 .catalog-intro .catalog-search { flex:auto; max-width:none; }
 .catalog-intro .catalog-search .btn { padding:10px 12px; }
 .catalog-intro { padding-top:16px; padding-bottom:12px; }
}
.masset-catalog--sidebar .catalog-filters select,
.masset-catalog--sidebar .catalog-filters input { min-width:0; max-width:100%; }
.masset-catalog--sidebar .catalog-filters__main > div,
.masset-catalog--sidebar .catalog-filters__advanced > div { min-width:0; }

.catalog-intro--search h1 { overflow-wrap:anywhere; }
.catalog-intro--shop { padding-top:40px; }
@media(max-width:767.98px) { .catalog-intro--shop { padding-top:24px; } }
@media(max-width:767.98px) { .catalog-intro--search .catalog-intro__title { display:block; } }
