/* Banner/page geometry and archive loading states. Shared product cards use frontend.css. */
.mlcp-category, .mlcp-category * { box-sizing:border-box; }
.mlcp-category { width:100%; min-width:0; margin:0; padding:0; color:#333; background:#fff; }
.mlcp-category .mlcp-hero { width:100%; margin:0; padding:0; overflow:hidden; }
.mlcp-category .mlcp-hero-image { display:block; width:100%; max-width:100%; height:auto; margin:0; padding:0; border:0; border-radius:0; }
.mlcp-category .mlcp-hero-wide { aspect-ratio:3 / 1; }
.mlcp-category .mlcp-hero-wide .mlcp-hero-image { height:100%; object-fit:cover; object-position:center; }
.mlcp-category .ml-loop { margin:0; padding:0; }
.mlcp-category .mlcp-title { margin:0; padding:26px 24px 18px; color:inherit; font-family:inherit; font-size:28px; font-weight:400; line-height:1.3; }
.mlcp-category .mlcp-description { padding:0 24px 24px; font-size:14px; line-height:1.65; }
.mlcp-category .mlcp-description > :first-child { margin-top:0; }
.mlcp-category .mlcp-description > :last-child { margin-bottom:0; }
.mlcp-category .mlcp-breadcrumb { display:flex; flex-wrap:wrap; gap:6px; margin:0; padding:18px 24px 0; font-size:12px; line-height:1.5; }
.mlcp-category .mlcp-breadcrumb a { color:inherit; text-decoration:none; }
.mlcp-category .mlcp-toolbar { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; margin:0; padding:18px 24px; font-size:12px; }
.mlcp-category .mlcp-toolbar .woocommerce-result-count, .mlcp-category .mlcp-toolbar .woocommerce-ordering { float:none; margin:0; padding:0; font:inherit; }
.mlcp-category .mlcp-toolbar select { max-width:100%; min-height:36px; margin:0; padding:6px 30px 6px 10px; border:1px solid #ddd; border-radius:0; color:inherit; background-color:#fff; font-family:inherit; font-size:12px; }
.mlcp-category .ml-pagination { padding:12px 16px; }
.mlcp-category .ml-pagination a.mlcp-load-more, .mlcp-category .ml-pagination a.mlcp-load-more:visited { min-width:150px; min-height:42px; padding:10px 24px; border:1px solid #1b1b1b; border-radius:999px; background:#1b1b1b; color:#fff; font-size:12px; line-height:1.4; text-decoration:none; }
.mlcp-category .ml-pagination a.mlcp-load-more:hover, .mlcp-category .ml-pagination a.mlcp-load-more:focus-visible { background:#333; color:#fff; }
.mlcp-category .ml-pagination a.mlcp-load-more[aria-disabled="true"] { opacity:.65; cursor:wait; }
.mlcp-category .mlcp-load-status { min-height:20px; padding:0 16px 16px; color:#666; font-size:12px; line-height:1.5; text-align:center; }
.mlcp-category .mlcp-load-status:empty { min-height:0; padding:0; }
/* Announce loading to assistive technology while showing it only on the existing button. */
.mlcp-category .mlcp-load-status[data-mlcp-loading="true"] { position:absolute!important; width:1px!important; height:1px!important; min-height:0!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.mlcp-category .woocommerce-notices-wrapper:empty { display:none; }
.mlcp-screen-reader { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.mlcp-setup { padding:20px; border:1px dashed #ddd; font-size:14px; }
.mlcp-category .mlcp-category-filter { padding:24px 32px; border-bottom:1px solid #e5e5e5; background:#fff; }
.mlcp-category .mlcp-filter-main, .mlcp-category .mlcp-filter-sub { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.mlcp-category .mlcp-filter-link, .mlcp-category .mlcp-filter-link:visited { display:inline-flex; align-items:center; justify-content:center; max-width:100%; min-height:44px; padding:10px 20px; border:1px solid #dedede; border-radius:999px; background:#fff; color:#1a1a1a; font:inherit; font-size:13px; line-height:1.4; text-align:center; overflow-wrap:anywhere; text-decoration:none; transition:background .15s,border-color .15s,color .15s; }
.mlcp-category .mlcp-filter-link:hover, .mlcp-category .mlcp-filter-link:focus-visible { border-color:#1a1a1a; background:#f4f4f4; color:#1a1a1a; }
.mlcp-category .mlcp-filter-link:focus-visible { outline:2px solid #1a1a1a; outline-offset:3px; }
.mlcp-category .mlcp-filter-link.is-active, .mlcp-category .mlcp-filter-link.is-active:visited { border-color:#1a1a1a; background:#1a1a1a; color:#fff; }
.mlcp-category .mlcp-filter-link.is-parent { border-color:#1a1a1a; font-weight:600; }
.mlcp-category .mlcp-filter-link.is-pending { border-style:dashed; }
.mlcp-category .mlcp-filter-group { margin-top:16px; }
.mlcp-category .mlcp-filter-group-title { display:block; margin:0 0 8px; color:#666; font-size:12px; line-height:1.5; }
.mlcp-category .mlcp-filter-sub .mlcp-filter-link { padding-inline:16px; font-size:12px; }
.mlcp-category .mlcp-filter-sub .mlcp-filter-link[data-mlcp-depth]:not([data-mlcp-depth="0"])::before { content:'\203A'; margin-inline-end:6px; color:currentColor; }
.mlcp-category.mlcp-is-filtering .ml-loop { position:relative; min-height:280px; }
.mlcp-category.mlcp-is-filtering .ml-items { opacity:0; pointer-events:none; }
.mlcp-category.mlcp-is-filtering .mlcp-load-controls, .mlcp-category.mlcp-is-filtering .ml-empty { visibility:hidden; }
.mlcp-category .mlcp-filter-skeleton { position:absolute; inset:0; display:grid; grid-template-columns:repeat(var(--ml-cols,4),minmax(0,1fr)); gap:var(--ml-gap,0px); overflow:hidden; pointer-events:none; }
.mlcp-category .mlcp-filter-placeholder { padding:var(--ml-pad,20px); overflow:hidden; }
.mlcp-category .mlcp-filter-placeholder span { display:block; background:linear-gradient(100deg,#eee 25%,#f7f7f7 45%,#eee 65%); background-size:200% 100%; animation:mlcp-filter-shimmer 1.3s ease-in-out infinite; border-radius:4px; }
.mlcp-category .mlcp-filter-placeholder-image { width:100%; height:var(--ml-active-image-height,auto); aspect-ratio:var(--ml-ratio,1 / 1); }
.mlcp-category .mlcp-filter-placeholder-title { width:85%; height:16px; margin-top:18px; }
.mlcp-category .mlcp-filter-placeholder-price { width:40%; height:14px; margin-top:12px; }
.mlcp-mobile-filter-bar, .mlcp-mobile-filter-dialog, .mlcp-mobile-filter-dialog * { box-sizing:border-box; }
.mlcp-mobile-filter-bar { position:fixed; z-index:90; left:calc(16px + env(safe-area-inset-left,0px)); right:calc(16px + env(safe-area-inset-right,0px)); bottom:calc(12px + env(safe-area-inset-bottom,0px)); display:flex; align-items:center; gap:12px; min-height:60px; padding:8px 8px 8px 16px; border:1px solid #ddd; border-radius:16px; background:#fff; color:#1a1a1a; font-family:inherit; box-shadow:0 5px 24px rgba(0,0,0,.12); }
.mlcp-mobile-filter-bar[hidden], body.mlsp-cart-open .mlcp-mobile-filter-bar { display:none!important; }
.mlcp-mobile-filter-selected { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px; line-height:1.5; }
.mlcp-mobile-filter-trigger { display:inline-flex; align-items:center; justify-content:center; gap:8px; flex:none; min-height:44px; margin:0; padding:10px 16px; border:0; border-radius:10px; background:#1a1a1a; color:#fff; font:inherit; font-size:12px; line-height:1.4; cursor:pointer; }
.mlcp-mobile-filter-trigger svg { flex:none; }
.mlcp-mobile-filter-trigger:focus-visible, .mlcp-mobile-filter-close:focus-visible { outline:2px solid #1a1a1a; outline-offset:3px; }
.mlcp-mobile-filter-dialog { position:fixed; inset:auto 0 0; width:100%; max-width:100%; height:auto; max-height:82vh; max-height:82dvh; margin:0; padding:0; border:0; border-radius:20px 20px 0 0; background:#fff; color:#1a1a1a; font-family:inherit; overflow:hidden; box-shadow:0 -10px 40px rgba(0,0,0,.15); }
.mlcp-mobile-filter-dialog:not([open]) { display:none; }
.mlcp-mobile-filter-dialog[open] { display:flex; flex-direction:column; }
.mlcp-mobile-filter-dialog::backdrop { background:rgba(0,0,0,.35); }
.mlcp-mobile-filter-heading { display:flex; align-items:center; justify-content:space-between; flex:none; gap:12px; padding:12px 16px; border-bottom:1px solid #eee; }
.mlcp-mobile-filter-heading h2 { margin:0!important; padding:0; color:inherit; font-family:inherit; font-size:16px; font-weight:500; line-height:1.5; }
.mlcp-mobile-filter-close { display:inline-flex; align-items:center; justify-content:center; flex:none; min-width:44px; min-height:44px; margin:0; padding:10px; border:0; border-radius:50%; background:transparent; color:inherit; cursor:pointer; }
.mlcp-mobile-filter-content { flex:1; min-height:0; overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; }
.mlcp-mobile-filter-dialog .mlcp-category-filter { padding:16px 16px calc(24px + env(safe-area-inset-bottom,0px)); border:0; }
.mlcp-mobile-filter-space { height:calc(88px + env(safe-area-inset-bottom,0px)); }
@media (min-width:768px) { .mlcp-mobile-filter-bar, .mlcp-mobile-filter-space { display:none!important; } }
@keyframes mlcp-filter-shimmer { from { background-position:100% 0; } to { background-position:-100% 0; } }
@media (prefers-reduced-motion:reduce) { .mlcp-category .mlcp-filter-placeholder span { animation:none; } .mlcp-category .mlcp-filter-link { transition:none; } }
@media (max-width:1024px) { .mlcp-category .mlcp-filter-skeleton { grid-template-columns:repeat(var(--ml-cols-md,3),minmax(0,1fr)); } }
.mlcp-page-main { display:block; width:100%; max-width:none; margin:0; padding:0; }
.mlcp-page-main > .woocommerce { width:100%; max-width:none; margin:0; padding:0; }
.fl-module-mille-category-page > .fl-module-content, .fl-module-mille-shop-page > .fl-module-content { margin:0; }
@media (max-width:767px) {
    .mlcp-category .mlcp-category-filter { padding:20px 16px; }
    .mlcp-category .mlcp-filter-link, .mlcp-category .mlcp-filter-sub .mlcp-filter-link { padding-inline:14px; }
    .mlcp-category .mlcp-filter-skeleton { grid-template-columns:repeat(var(--ml-cols-sm,2),minmax(0,1fr)); }
    .mlcp-category .mlcp-hero-wide { aspect-ratio:16 / 9; }
    .mlcp-category .mlcp-title { padding:20px 16px 14px; font-size:22px; }
    .mlcp-category .mlcp-description { padding:0 16px 20px; }
    .mlcp-category .mlcp-breadcrumb { padding:14px 16px 0; }
    .mlcp-category .mlcp-toolbar { padding:14px 16px; }
}
