/* Scope every public rule to the module or the explicitly enabled page template. */
.fl-module-mille-single-product > .fl-module-content { margin:0; }
.mlsp-page-main { display:block; width:100%; max-width:none; margin:0; padding:0; }
.mlsp-page-main > .woocommerce { width:100%; max-width:none; margin:0; padding:0; }
.mlsp-product,.mlsp-product * { box-sizing:border-box; }
.mlsp-product { --mlsp-bg:#f5f5f5; --mlsp-text:#1b1b1b; --mlsp-line:#888; --mlsp-gallery-active:var(--mlsp-gallery-cols,3); display:block!important; float:none!important; width:100%!important; max-width:none; margin:0!important; padding:0!important; background:var(--mlsp-bg); color:var(--mlsp-text); font-family:inherit; }
.mlsp-product [hidden] { display:none!important; }
.mlsp-product a { color:inherit; }
.mlsp-product button,.mlsp-product input,.mlsp-product select,.mlsp-product textarea { font-family:inherit; }
.mlsp-product a:focus-visible,.mlsp-product button:focus-visible,.mlsp-product input:focus-visible,.mlsp-product select:focus-visible,.mlsp-product textarea:focus-visible,.mlsp-gallery-track:focus-visible { outline:2px solid #1b1b1b; outline-offset:3px; }
.mlsp-gallery { width:100%; margin:0; }
.mlsp-gallery-track { display:grid; grid-auto-flow:column; grid-auto-columns:max(calc(100% / var(--mlsp-gallery-active)),calc(100% / var(--mlsp-image-count,1))); gap:0; overflow-x:auto; overflow-y:hidden; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; scrollbar-width:none; }
.mlsp-gallery-track::-webkit-scrollbar { display:none; }
.mlsp-slide { display:flex; align-items:center; justify-content:center; min-width:0; aspect-ratio:1 / 1; max-height:min(640px,calc(100vw / var(--mlsp-gallery-active))); scroll-snap-align:start; overflow:hidden; background:var(--mlsp-bg); cursor:zoom-in; }
.mlsp-slide img { display:block; width:100%!important; height:100%!important; max-width:100%; object-fit:contain; margin:0!important; border:0; border-radius:0; }
.mlsp-placeholder { cursor:default; }
.mlsp-gallery-controls { display:flex; justify-content:center; align-items:center; gap:6px; min-height:40px; padding:6px 12px; }
.mlsp-gallery-controls button { display:inline-flex; align-items:center; justify-content:center; width:32px; height:32px; min-height:0; margin:0; padding:0; border:0; border-radius:50%; background:transparent; color:#1b1b1b; font-size:24px; font-weight:400; line-height:1; box-shadow:none; cursor:pointer; }
.mlsp-gallery-controls button:disabled { opacity:.3; cursor:default; }
.mlsp-gallery-dots { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; }
.mlsp-gallery-dots button { width:24px; height:28px; }
.mlsp-gallery-dots button::before { content:""; width:6px; height:6px; border:1px solid #c5c5c5; border-radius:50%; background:transparent; }
.mlsp-gallery-dots button[aria-current="true"]::before { border-color:#1b1b1b; background:#1b1b1b; }
.mlsp-details { width:calc(100% - 48px); max-width:var(--mlsp-content,960px); margin:40px auto 0; }
.mlsp-breadcrumb { display:block; margin:0 0 12px; padding:0; font-size:11px; font-weight:400; line-height:1.6; overflow-wrap:anywhere; }
.mlsp-breadcrumb a { text-decoration:none; }
.mlsp-breadcrumb a:hover { text-decoration:underline; }
.mlsp-title-row { display:flex; align-items:flex-start; gap:12px; }
.mlsp-title { flex:0 1 auto; min-width:0; margin:0!important; padding:0!important; color:inherit; font-family:inherit; font-size:22px; font-weight:600; line-height:1.45; text-transform:uppercase; overflow-wrap:anywhere; }
.mlsp-share { display:inline-flex; flex:0 0 36px; align-items:center; justify-content:center; width:36px; min-height:36px; margin:-2px 0 0; padding:8px; border:0; border-radius:50%; background:transparent; color:inherit; box-shadow:none; cursor:pointer; }
.mlsp-share:hover { background:#e8e8e8; color:inherit; }
.mlsp-share svg { display:block; }
.mlsp-share-status { display:block; margin-top:6px; font-size:12px; line-height:1.5; overflow-wrap:anywhere; user-select:text; }
.mlsp-share-status:empty { display:none; }
.mlsp-commerce { margin-top:46px; }
.mlsp-buy-row { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:16px 24px; }
.mlsp-price-stock { grid-column:1; grid-row:1; min-width:0; }
.mlsp-price { font-size:22px; font-weight:600; line-height:1.4; }
.mlsp-price .price { display:block; margin:0; padding:0; font:inherit; color:inherit; }
.mlsp-price del { color:#888; font-size:.75em; font-weight:400; }
.mlsp-price ins { background:transparent; text-decoration:none; }
.mlsp-stock { display:flex; align-items:baseline; flex-wrap:wrap; gap:4px; margin-top:4px; font-size:14px; line-height:1.6; }
.mlsp-stock:empty { display:none; }
.mlsp-stock .stock { margin:0; padding:0; font:inherit; color:#d08c9c; }
.mlsp-stock .stock.out-of-stock { color:#a63838; }
.mlsp-stock .stock.available-on-backorder { color:#886020; }
.mlsp-purchase { min-width:0; }
.mlsp-purchase form.cart { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:12px; margin:0!important; padding:0; }
.mlsp-purchase .quantity,.mlsp-variable .woocommerce-variation-add-to-cart .quantity { display:inline-flex; flex:0 0 auto; align-items:center; float:none!important; margin:0!important; padding:0; }
.mlsp-purchase .quantity input.qty { width:68px!important; max-width:100%; height:44px!important; min-height:44px; margin:0!important; padding:8px 10px!important; border:1px solid #ddd!important; border-radius:999px!important; background:transparent!important; color:inherit; font-size:14px; line-height:1.4; text-align:center; box-shadow:none!important; }
.mlsp-purchase .single_add_to_cart_button { display:inline-flex!important; align-items:center; justify-content:center; flex:0 1 auto; float:none!important; min-width:226px; min-height:44px; margin:0!important; padding:12px 26px!important; border:0!important; border-radius:999px!important; background:#1b1b1b!important; color:#fff!important; font-size:14px!important; font-weight:400!important; line-height:1.4!important; text-align:center; text-transform:uppercase; text-decoration:none!important; box-shadow:none!important; transition:background-color .2s ease; cursor:pointer; }
.mlsp-purchase .single_add_to_cart_button:hover { background:#333!important; color:#fff!important; }
.mlsp-purchase .single_add_to_cart_button.disabled,.mlsp-purchase .single_add_to_cart_button:disabled { opacity:.45!important; cursor:not-allowed; }
.mlsp-purchase .group_table { flex-basis:100%; width:100%; }
.mlsp-purchase.mlsp-variable form.cart { display:block; }
.mlsp-variable .variations { width:100%!important; margin:0 0 28px!important; padding:0; border:0!important; background:transparent; }
.mlsp-variable .variations tbody { display:block; width:100%; }
.mlsp-variable .variations tr { display:flex; align-items:flex-start; gap:16px; width:100%; padding:0 0 14px; }
.mlsp-variable .variations th,.mlsp-variable .variations td { margin:0; padding:0!important; border:0!important; background:transparent!important; text-align:start; vertical-align:top; }
.mlsp-variable .variations th.label { flex:0 0 88px; padding-top:10px!important; }
.mlsp-variable .variations label { display:block; margin:0; font-size:14px; font-weight:500; line-height:1.4; }
.mlsp-variable .variations td.value { flex:1; min-width:0; }
.mlsp-variable .variations select { width:auto; max-width:100%; min-width:180px; min-height:44px; padding:8px 32px 8px 14px; border:1px solid #d5d5d5; border-radius:8px; background-color:transparent; color:inherit; font-size:14px; }
.mlsp-variable select.mlsp-native-select { display:none!important; }
.mlsp-option-group { display:flex; flex-wrap:wrap; gap:8px; margin:0; }
.mlsp-option { min-height:44px; min-width:60px; margin:0!important; padding:10px 18px; border:1px solid #bdbdbd; border-radius:999px; background:transparent; color:#1b1b1b; font-size:13px; font-weight:400; line-height:1.5; text-align:center; text-transform:none; box-shadow:none; cursor:pointer; }
.mlsp-option:hover { border-color:#1b1b1b; background:#ededed; color:#1b1b1b; }
.mlsp-option[aria-pressed="true"] { border-color:#1b1b1b; background:#1b1b1b; color:#fff; }
.mlsp-option:disabled { border-color:#ddd; background:transparent; color:#aaa; opacity:.6; cursor:not-allowed; text-decoration:line-through; }
.mlsp-variable .reset_variations { display:inline-block; margin-top:10px; color:#777; font-size:12px; text-decoration:underline; }
.mlsp-variable .single_variation_wrap { width:100%; margin:0; }
.mlsp-variable .single_variation { grid-column:1 / -1; grid-row:2; margin:0; }
.mlsp-variable .single_variation:empty { display:none; }
.mlsp-variable .woocommerce-variation-add-to-cart { grid-column:2; grid-row:1; display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:12px; margin:0; }
.mlsp-variations-ready .single_variation .woocommerce-variation-price,.mlsp-variations-ready .single_variation .woocommerce-variation-availability { display:none; }
.mlsp-variable .woocommerce-variation-description { font-size:14px; line-height:1.6; }
.mlsp-variable .woocommerce-variation-description p { margin:0; }
.mlsp-meta { margin-top:16px; padding-top:12px; border-top:1px solid var(--mlsp-line); color:#999; font-size:12px; line-height:1.7; }
.mlsp-meta .product_meta { display:flex; flex-wrap:wrap; gap:4px 14px; margin:0; padding:0; }
.mlsp-meta a { color:inherit; text-decoration:none; }
.mlsp-meta a:hover { color:#1b1b1b; text-decoration:underline; }
.mlsp-tabs { margin-top:52px; }
.mlsp-tabs .woocommerce-tabs { width:100%; margin:0; padding:0; clear:both; }
.mlsp-tabs .woocommerce-tabs ul.tabs { display:flex; flex-wrap:wrap; justify-content:center; gap:12px 24px; margin:0!important; padding:0!important; border:0!important; list-style:none; }
.mlsp-tabs .woocommerce-tabs ul.tabs::before,.mlsp-tabs .woocommerce-tabs ul.tabs::after,.mlsp-tabs .woocommerce-tabs ul.tabs li::before,.mlsp-tabs .woocommerce-tabs ul.tabs li::after { display:none!important; }
.mlsp-tabs .woocommerce-tabs ul.tabs li { display:block; float:none; margin:0!important; padding:0!important; border:0!important; border-radius:0!important; background:transparent!important; box-shadow:none!important; }
.mlsp-tabs .woocommerce-tabs ul.tabs li a { display:block; padding:0 0 3px!important; border-bottom:2px solid transparent; color:#999; font-size:16px; font-weight:400; line-height:1.5; text-transform:uppercase; text-decoration:none!important; }
.mlsp-tabs .woocommerce-tabs ul.tabs li.active a { border-bottom-color:#1b1b1b; color:#1b1b1b; font-weight:600; }
.mlsp-tabs .woocommerce-tabs .panel { margin:26px 0 0!important; padding:0!important; border:0!important; background:transparent!important; color:inherit; font-size:14px; line-height:1.75; overflow-wrap:anywhere; box-shadow:none!important; }
.mlsp-tabs .woocommerce-Tabs-panel--description > h2:first-child { display:none; }
.mlsp-tabs .panel p { margin:0 0 18px; }
.mlsp-tabs .panel img { max-width:100%; height:auto; }
.mlsp-tabs .panel table { width:100%; }
.mlsp-tabs #reviews { width:100%; margin:0; }
.mlsp-tabs #reviews input:not([type="checkbox"]),.mlsp-tabs #reviews textarea { max-width:100%; border:1px solid #ccc; border-radius:4px; background:transparent; }
.mlsp-related { width:100%; margin-top:60px; }
.mlsp-related > h2 { margin:0 16px 28px!important; padding:0; color:inherit; font-size:18px; font-weight:600; line-height:1.5; text-align:center; text-transform:uppercase; }
.mlsp-related .ml-loop { margin:0; }
.mlsp-related .ml-loop .ml-empty { display:none; }
.mlsp-setup { padding:20px; border:1px dashed #888; background:#f5f5f5; color:#333; font-size:14px; }
.mlsp-screen-reader { position:absolute!important; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.mlsp-lightbox { width:min(96vw,1200px); max-width:96vw; max-height:94vh; margin:auto; padding:48px 20px 16px; border:0; border-radius:8px; background:#f5f5f5; color:#1b1b1b; }
.mlsp-lightbox::backdrop { background:rgba(0,0,0,.72); }
.mlsp-lightbox img { display:block; width:auto; max-width:100%; height:auto; max-height:calc(94vh - 140px); margin:auto; object-fit:contain; }
.mlsp-lightbox button { min-width:44px; min-height:44px; margin:0; padding:4px 12px; border:1px solid #ccc; border-radius:999px; background:transparent; color:inherit; font:inherit; cursor:pointer; }
.mlsp-lightbox button:focus-visible { outline:2px solid #1b1b1b; outline-offset:3px; }
.mlsp-lightbox-close { position:absolute; top:8px; right:10px; border:0!important; font-size:26px!important; }
.mlsp-lightbox-nav { display:flex; align-items:center; justify-content:center; gap:12px; margin-top:12px; }
@media (max-width:1024px) { .mlsp-product { --mlsp-gallery-active:var(--mlsp-gallery-cols-md,2); } .mlsp-details { margin-top:30px; } }
@media (max-width:767px) {
    .mlsp-product { --mlsp-gallery-active:var(--mlsp-gallery-cols-sm,1); }
    .mlsp-details { width:calc(100% - 32px); margin-top:22px; }
    .mlsp-breadcrumb { font-size:10px; }
    .mlsp-title { font-size:19px; }
    .mlsp-title-row { gap:8px; }
    .mlsp-commerce { margin-top:28px; }
    .mlsp-price { font-size:21px; }
    .mlsp-buy-row { grid-template-columns:minmax(0,1fr); gap:16px; }
    .mlsp-buy-row > .mlsp-purchase,.mlsp-variable .woocommerce-variation-add-to-cart { grid-column:1; grid-row:2; width:100%; }
    .mlsp-variable .single_variation { grid-row:3; }
    .mlsp-purchase form.cart,.mlsp-variable .woocommerce-variation-add-to-cart { justify-content:flex-start; }
    .mlsp-purchase .single_add_to_cart_button { flex:1 1 150px; min-width:0; padding-inline:18px!important; }
    .mlsp-variable .variations tr { display:block; padding-bottom:18px; }
    .mlsp-variable .variations th.label { display:block; padding:0 0 8px!important; }
    .mlsp-variable .variations td.value { display:block; }
    .mlsp-variable .variations select { width:100%; }
    .mlsp-option { padding-inline:16px; }
    .mlsp-tabs { margin-top:34px; }
    .mlsp-tabs .woocommerce-tabs ul.tabs { gap:12px 18px; }
    .mlsp-tabs .woocommerce-tabs ul.tabs li a { font-size:14px; }
    .mlsp-tabs .woocommerce-tabs .panel { margin-top:20px!important; font-size:13px; }
    .mlsp-related { margin-top:40px; }
    .mlsp-related > h2 { margin-bottom:22px!important; font-size:17px; }
}
@media (prefers-reduced-motion:reduce) { .mlsp-product .single_add_to_cart_button { transition:none; } .mlsp-gallery-track { scroll-behavior:auto; } }