/* Scoped product layout. Header/footer remain owned by the site's theme. */
.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:#999; 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-overview { display:grid; grid-template-columns:minmax(0,.92fr) minmax(0,1fr); align-items:start; gap:clamp(28px,5.1vw,70px); width:calc(100% - 48px); max-width:var(--mlsp-content,1040px); margin:0 auto; padding-top:72px; }
.mlsp-gallery { display:grid; grid-template-columns:minmax(0,1fr) clamp(60px,6.1vw,84px); align-items:stretch; gap:12px; min-width:0; width:100%; margin:0; }
.mlsp-gallery-single { grid-template-columns:minmax(0,1fr); }
.mlsp-gallery-track { min-width:0; width:100%; aspect-ratio:1; overflow:hidden; position:relative; touch-action:pan-y pinch-zoom; }
.mlsp-slide { display:flex; align-items:center; justify-content:center; min-width:0; width:100%; height:100%; margin:0; 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-thumbnail-rail { position:relative; min-height:0; min-width:0; }
.mlsp-thumbnails { position:absolute; inset:0; display:flex; flex-direction:column; gap:10px; overflow-y:auto; overflow-x:hidden; scrollbar-width:thin; scrollbar-color:#c7c7c7 transparent; overscroll-behavior:contain; padding:0; }
.mlsp-product .mlsp-thumbnail { display:flex; flex:0 0 auto; position:relative; align-items:center; justify-content:center; width:100%; min-width:0; min-height:0; aspect-ratio:1; margin:0; padding:0; border:1px solid #b7b7b7; border-radius:0; background:transparent; color:#1b1b1b; line-height:1; text-decoration:none; box-shadow:none; cursor:pointer; }
.mlsp-product .mlsp-thumbnail:focus-visible { outline-offset:-3px; }
.mlsp-product .mlsp-thumbnail:hover,.mlsp-product .mlsp-thumbnail[aria-current="true"] { border-color:#1b1b1b; }
.mlsp-product .mlsp-thumbnail[aria-current="true"] { box-shadow:inset 0 0 0 1px #1b1b1b; }
.mlsp-product .mlsp-thumbnail img { display:block; width:100%!important; height:100%!important; max-width:100%; aspect-ratio:1; object-fit:contain; margin:0!important; border:0; border-radius:0; }
.mlsp-thumbnail-play { position:absolute; display:flex; align-items:center; justify-content:center; width:32px; height:32px; border-radius:50%; background:rgba(255,255,255,.9); color:#1b1b1b; }
.mlsp-details { min-width:0; width:100%; margin:6px 0 0; }
.mlsp-breadcrumb { display:block; margin:0 0 16px; padding:0; font-size:10px; 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:16px; }
.mlsp-title { flex:1; min-width:0; margin:0!important; padding:0!important; color:inherit; font-family:inherit; font-size:22px; font-weight:600; line-height:1.25; 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:-4px -8px 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:60px; }
.mlsp-price-stock { 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-product .mlsp-short-description { min-width:0; margin:12px 0; font-size:14px; line-height:1.75; overflow-wrap:anywhere; }
.mlsp-product .mlsp-short-description .woocommerce-product-details__short-description { margin:0; padding:0; color:inherit; font:inherit; }
.mlsp-short-description p,.mlsp-short-description ul,.mlsp-short-description ol { margin:0 0 .75em; }
.mlsp-short-description ul,.mlsp-short-description ol { padding-inline-start:1.4em; }
.mlsp-short-description .woocommerce-product-details__short-description > :last-child { margin-bottom:0; }
.mlsp-short-description img { max-width:100%; height:auto; }
.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-meta { margin-top:12px; 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-purchase { min-width:0; margin-top:64px; }
.mlsp-purchase form.cart { display:flex; align-items:center; flex-wrap:wrap; gap:8px; width:100%; margin:0!important; padding:0; }
.mlsp-purchase .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 .mlsp-quantity { width:104px; height:44px; border:1px solid #ddd; border-radius:999px; overflow:hidden; }
.mlsp-purchase .mlsp-quantity input.qty { flex:1; width:36px!important; min-width:0!important; height:42px!important; min-height:0; padding:0!important; border:0!important; border-radius:0!important; appearance:textfield; -moz-appearance:textfield; }
.mlsp-purchase .mlsp-quantity input.qty::-webkit-inner-spin-button,.mlsp-purchase .mlsp-quantity input.qty::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }
.mlsp-purchase .mlsp-quantity-step { display:inline-flex; flex:0 0 32px; align-items:center; justify-content:center; width:32px; height:42px; min-width:0; min-height:0; margin:0; padding:0; border:0; border-radius:0; background:transparent; color:#777; font-size:18px; font-weight:400; line-height:1; box-shadow:none; cursor:pointer; }
.mlsp-purchase .mlsp-quantity-step:disabled { opacity:.3; cursor:default; }
.mlsp-purchase .mlsp-quantity-step:hover:enabled { background:#e8e8e8; color:#1b1b1b; }
.mlsp-purchase .single_add_to_cart_button { display:inline-flex!important; align-items:center; justify-content:center; flex:1 1 150px; float:none!important; min-width:0; 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 .group_table .quantity input.qty { max-width:none; }
.mlsp-purchase.mlsp-variable form.cart { display:block; }
.mlsp-variable .variations { width:100%!important; margin:0 0 24px!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 { margin:0 0 16px; }
.mlsp-variable .single_variation:empty { display:none; }
.mlsp-variable .woocommerce-variation-add-to-cart { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin:0; width:100%; }
.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-tabs { width:calc(100% - 48px); max-width:var(--mlsp-content,1040px); margin:64px auto 0; }
.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:64px; }
.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 (min-width:768px) and (max-width:1024px) {
    .mlsp-overview { gap:28px; padding-top:48px; }
    .mlsp-gallery { grid-template-columns:minmax(0,1fr) 60px; gap:8px; }
    .mlsp-thumbnails { gap:8px; }
    .mlsp-title { font-size:20px; }
    .mlsp-commerce { margin-top:36px; }
    .mlsp-purchase { margin-top:36px; }
}
@media (max-width:767px) {
    .mlsp-overview { grid-template-columns:minmax(0,1fr); gap:28px; width:calc(100% - 32px); padding-top:24px; }
    .mlsp-gallery { grid-template-columns:minmax(0,1fr); gap:10px; }
    .mlsp-thumbnail-rail { height:72px; }
    .mlsp-thumbnails { flex-direction:row; gap:8px; overflow-x:auto; overflow-y:hidden; padding:0; }
    .mlsp-product .mlsp-thumbnail { width:68px; height:68px; }
    .mlsp-details { margin:0; }
    .mlsp-breadcrumb { font-size:10px; margin-bottom:12px; }
    .mlsp-title { font-size:20px; line-height:1.4; }
    .mlsp-title-row { gap:8px; }
    .mlsp-commerce { margin-top:28px; }
    .mlsp-price { font-size:21px; }
    .mlsp-purchase { margin-top:28px; }
    .mlsp-purchase .single_add_to_cart_button { 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 { width:calc(100% - 32px); margin-top:40px; }
    .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-product .mlsp-video-slide { cursor:default; position:relative; }
.mlsp-product .mle-single-media { display:block; position:relative; width:100%; height:100%; }
.mlsp-product .mlsp-video-slide video { display:block; width:100%; height:100%; object-fit:contain; background:transparent; }
