/* WooCommerce storefront, aligned with Natuursteen Slab's editorial brand system. */
.nslab-shop-page { --shop-ink:#20222b; --shop-muted:#626675; --shop-line:#dfe1e9; --shop-paper:#fff; --shop-wash:#f3f4f8; }
.nslab-shop-page #main-content { padding-top:88px; }
.shop-wrap { width:min(1440px,calc(100% - 112px)); margin-inline:auto; }
.nslab-shop-page .woocommerce-breadcrumb { display:flex; flex-wrap:wrap; gap:10px; margin:0 0 25px; color:#727686; font-size:10px; letter-spacing:.08em; }
.nslab-shop-page .woocommerce-breadcrumb a { color:var(--ed-primary); text-decoration:none; }
.shop-intro { padding:35px 0 70px; border-bottom:1px solid var(--shop-line); background:#f5f6f9; }
.shop-eyebrow,.shop-overline { display:flex; align-items:center; gap:10px; margin:0 0 17px; color:var(--ed-primary); font-size:10px; font-weight:700; letter-spacing:.16em; line-height:1.4; text-transform:uppercase; }
.shop-eyebrow i { width:31px; height:1px; background:var(--ed-highlight); }
.shop-intro h1,.nslab-product-info h1 { max-width:980px; margin:0; color:var(--shop-ink); font:400 clamp(49px,7vw,92px)/.98 Georgia,'Times New Roman',serif; }
.shop-intro h1 em,.shop-visit h2 em,.nslab-product-info h1 em,.nslab-detail-intro h2 em { color:var(--ed-primary); font-weight:400; }
.shop-description { max-width:670px; margin:24px 0 0; color:#555a69; font-size:16px; line-height:1.75; }
.shop-description p { margin:0; }
.shop-catalog { padding-top:58px; padding-bottom:105px; }
.shop-catalog-top { display:flex; justify-content:space-between; align-items:end; gap:24px; margin-bottom:28px; padding-bottom:22px; border-bottom:1px solid var(--shop-line); }
.shop-overline { margin-bottom:7px; color:#74798a; font-size:9px; }
.shop-catalog-top h2 { margin:0; color:var(--shop-ink); font:400 31px/1.18 Georgia,'Times New Roman',serif; }
.shop-toolbar { display:flex; align-items:center; gap:20px; }
.nslab-shop-page .woocommerce-result-count { margin:0; color:var(--shop-muted); font-size:11px; }
.nslab-shop-page .woocommerce-ordering { margin:0; }
.nslab-shop-page .woocommerce-ordering select { min-width:170px; height:42px; padding:0 34px 0 13px; border:1px solid #d7dae4; border-radius:0; color:#343746; background:#fff; font:500 11px 'DM Sans',Arial,sans-serif; }
.shop-filter-toggle { display:none; }
.shop-catalog-grid { display:grid; grid-template-columns:220px minmax(0,1fr); align-items:start; gap:34px; }
.shop-filter-panel { position:sticky; top:98px; }
.shop-filter-form { border-top:1px solid var(--shop-line); }
.shop-filter-head { display:flex; justify-content:space-between; align-items:end; gap:8px; padding:18px 0 15px; }
.shop-filter-head .shop-overline { display:block; margin-bottom:5px; }
.shop-filter-head h3 { margin:0; color:var(--shop-ink); font:400 23px/1.15 Georgia,'Times New Roman',serif; }
.shop-filter-head > a { color:var(--ed-primary); font-size:10px; text-underline-offset:3px; }
.shop-filter-group { padding:14px 0; border-top:1px solid var(--shop-line); }
.shop-filter-group summary { display:flex; justify-content:space-between; align-items:center; color:#343746; font-size:12px; font-weight:700; cursor:pointer; list-style:none; }
.shop-filter-group summary::-webkit-details-marker { display:none; }
.shop-filter-group summary span { color:var(--ed-primary); font-size:17px; font-weight:400; transition:transform .2s; }
.shop-filter-group[open] summary span { transform:rotate(45deg); }
.shop-filter-options { display:grid; gap:11px; max-height:224px; overflow:auto; padding:16px 3px 3px 0; scrollbar-color:#b7bce2 transparent; scrollbar-width:thin; }
.shop-filter-options label,.shop-stock-filter { position:relative; display:flex; align-items:center; gap:9px; color:#555a69; font-size:11px; cursor:pointer; }
.shop-filter-options label small { margin-left:auto; color:#9296a2; font-size:9px; }
.shop-filter-options input,.shop-stock-filter input { position:absolute; width:1px; height:1px; opacity:0; }
.shop-check { position:relative; width:15px; height:15px; flex:0 0 15px; border:1px solid #bdc1ce; background:#fff; transition:background .15s,border-color .15s; }
.shop-filter-options input:checked + .shop-check,.shop-stock-filter input:checked + .shop-check { border-color:var(--ed-primary); background:var(--ed-primary); }
.shop-filter-options input:checked + .shop-check::after,.shop-stock-filter input:checked + .shop-check::after { position:absolute; top:2px; left:4px; width:5px; height:8px; border:solid #fff; border-width:0 1.5px 1.5px 0; content:''; transform:rotate(45deg); }
.shop-filter-options input:focus-visible + .shop-check,.shop-stock-filter input:focus-visible + .shop-check { outline:2px solid var(--ed-highlight); outline-offset:2px; }
.shop-price-fields { display:grid; grid-template-columns:1fr 1fr; gap:8px; padding-top:13px; }
.shop-price-fields label { display:grid; gap:5px; color:#777b89; font-size:9px; }
.shop-price-fields input { width:100%; height:37px; padding:0 8px; border:1px solid #d7dae4; border-radius:0; color:#303342; font:12px 'DM Sans',Arial,sans-serif; }
.shop-stock-filter { padding:15px 0; border-top:1px solid var(--shop-line); }
.shop-apply,.shop-visit-inner > a { min-height:46px; display:inline-flex; align-items:center; justify-content:space-between; gap:22px; padding:0 16px; border:1px solid var(--ed-primary); color:#fff; background:var(--ed-primary); font:700 11px 'DM Sans',Arial,sans-serif; text-decoration:none; cursor:pointer; transition:background .2s,color .2s,transform .2s; }
.shop-apply { width:100%; margin-top:5px; }
.shop-apply:hover,.shop-visit-inner > a:hover { color:#fff; background:var(--ed-deep); transform:translateY(-2px); }
.shop-apply span,.shop-visit-inner > a span { font-size:17px; }
.shop-results { min-width:0; }
.nslab-shop-page ul.products { display:grid!important; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px 18px; margin:0!important; padding:0!important; }
.nslab-shop-page ul.products::before,.nslab-shop-page ul.products::after { display:none!important; }
.nslab-shop-page ul.products li.product { float:none!important; width:auto!important; margin:0!important; }
.nslab-product-card { min-width:0; list-style:none; }
.nslab-card-image { position:relative; display:block; overflow:hidden; aspect-ratio:1.15/1; color:inherit; background:#eceef3; }
.nslab-card-image > img { width:100%; height:100%; margin:0!important; object-fit:cover; transition:transform .7s cubic-bezier(.16,1,.3,1); }
.nslab-product-card:hover .nslab-card-image > img { transform:scale(1.035); }
.nslab-card-index { position:absolute; top:13px; left:14px; color:#fff; font-size:9px; font-weight:700; letter-spacing:.13em; text-shadow:0 1px 8px rgba(0,0,0,.4); }
.nslab-card-stock { position:absolute; right:10px; bottom:10px; display:flex; align-items:center; gap:7px; padding:8px 10px; color:#333746; background:rgba(255,255,255,.94); font-size:9px; font-weight:600; }
.nslab-card-stock i,.nslab-product-stock i { width:6px; height:6px; border-radius:50%; background:#527c65; }
.nslab-card-stock.is-out-stock i,.nslab-product-stock i.is-out-stock { background:#a76a63; }
.nslab-card-copy { padding:14px 2px 0; }
.nslab-card-meta { display:flex; flex-wrap:wrap; justify-content:space-between; gap:4px 10px; color:#717585; font-size:9px; letter-spacing:.045em; }
.nslab-card-meta span:first-child { color:var(--ed-primary); font-weight:700; text-transform:uppercase; }
.nslab-card-copy h3 { margin:8px 0 13px; color:var(--shop-ink); font:400 clamp(20px,2vw,26px)/1.15 Georgia,'Times New Roman',serif; }
.nslab-card-copy h3 a { color:inherit; text-decoration:none; }
.nslab-card-copy h3 a:hover { color:var(--ed-primary); }
.nslab-card-bottom { display:flex; align-items:center; justify-content:space-between; gap:10px; padding-top:10px; border-top:1px solid var(--shop-line); }
.nslab-card-price { color:#555a69; font-size:10px; }
.nslab-card-price .amount { color:var(--shop-ink); font-size:12px; font-weight:700; }
.nslab-card-link { width:32px; height:32px; display:grid; place-items:center; border:1px solid #d5d8e2; border-radius:50%; color:var(--ed-primary); text-decoration:none; transition:color .2s,background .2s,border .2s; }
.nslab-card-link:hover { border-color:var(--ed-primary); color:#fff; background:var(--ed-primary); }
.nslab-card-link span { font-size:15px; }
.nslab-shop-page .woocommerce-pagination { margin-top:42px!important; }
.nslab-shop-page .woocommerce-pagination ul { display:flex!important; justify-content:center; gap:7px; border:0!important; }
.nslab-shop-page .woocommerce-pagination li { border:0!important; }
.nslab-shop-page .woocommerce-pagination a,.nslab-shop-page .woocommerce-pagination span { min-width:38px; height:38px; display:grid!important; place-items:center; border:1px solid var(--shop-line)!important; color:#484d5d!important; background:#fff!important; font-size:11px!important; text-decoration:none!important; }
.nslab-shop-page .woocommerce-pagination .current { border-color:var(--ed-primary)!important; color:#fff!important; background:var(--ed-primary)!important; }
.shop-empty { grid-column:1/-1; padding:70px 24px; border:1px solid var(--shop-line); text-align:center; }
.shop-empty > span { color:var(--ed-highlight); font-size:28px; }
.shop-empty h3 { margin:12px 0 7px; color:var(--shop-ink); font:400 29px Georgia,serif; }
.shop-empty p { color:var(--shop-muted); font-size:13px; }
.shop-empty a { color:var(--ed-primary); font-size:12px; font-weight:700; }
.shop-visit { padding:65px 0; border-top:1px solid var(--shop-line); background:#f1f2f7; }
.shop-visit-inner { display:grid; grid-template-columns:1fr .8fr auto; align-items:center; gap:45px; }
.shop-visit .shop-eyebrow { margin-bottom:13px; }
.shop-visit h2 { margin:0; color:var(--shop-ink); font:400 clamp(34px,4vw,51px)/1.06 Georgia,'Times New Roman',serif; }
.shop-visit-inner > p { max-width:370px; margin:0; color:#5b5e6c; font-size:13px; line-height:1.8; }

/* Product detail */
.nslab-product-main { padding-top:88px; }
.nslab-product-breadcrumb { padding-top:28px; }
.nslab-product-top { display:grid; grid-template-columns:minmax(0,1.24fr) minmax(340px,.76fr); align-items:start; gap:clamp(36px,6vw,84px); }
.nslab-product-hero-image { min-width:0; }
.nslab-image-open { position:relative; display:block; overflow:hidden; aspect-ratio:1.2/1; color:#fff; background:#e8e9ee; }
.nslab-product-hero-img { width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.16,1,.3,1); }
.nslab-image-open:hover .nslab-product-hero-img { transform:scale(1.025); }
.nslab-image-open > span { position:absolute; right:14px; bottom:14px; display:flex; gap:12px; align-items:center; padding:10px 13px; color:#fff; background:rgba(51,61,101,.92); font-size:9px; font-weight:700; letter-spacing:.06em; }
.nslab-image-open > span i { font-size:14px; font-style:normal; }
.nslab-product-info { padding:22px 0 0; }
.nslab-product-info .shop-eyebrow { margin-bottom:18px; }
.nslab-product-info h1 { font-size:clamp(43px,5.2vw,69px); line-height:1.02; }
.nslab-product-lead { margin-top:20px; color:#5b5e6c; font-size:14px; line-height:1.8; }
.nslab-product-lead p { margin:0; }
.nslab-product-price-row { display:flex; align-items:baseline; gap:12px; margin-top:26px; padding:17px 0; border-top:1px solid var(--shop-line); border-bottom:1px solid var(--shop-line); }
.nslab-product-price-row > span { color:#777b89; font-size:10px; }
.nslab-product-price-row > strong { color:var(--ed-deep); font-size:12px; }
.nslab-product-price-row > b { margin-left:auto; color:var(--shop-ink); font-size:17px; }
.nslab-product-price-row .amount { font-weight:700; }
.nslab-product-stock { display:flex; align-items:center; gap:8px; margin:17px 0 0; color:#555a69; font-size:10px; }
.nslab-product-sku { margin:9px 0 0; color:#858997; font-size:9px; }
.nslab-product-sku span { margin-left:7px; color:#555a69; }
.nslab-product-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:23px; }
.nslab-primary-action,.nslab-secondary-action { min-height:48px; display:inline-flex; justify-content:center; align-items:center; gap:18px; padding:0 16px; border:1px solid var(--ed-primary); color:#fff!important; background:var(--ed-primary); font-size:10px; font-weight:700; text-decoration:none; transition:background .2s,transform .2s; }
.nslab-primary-action:hover { background:var(--ed-deep); transform:translateY(-2px); }
.nslab-primary-action span { font-size:16px; }
.nslab-secondary-action { color:var(--ed-primary)!important; background:transparent; }
.nslab-secondary-action:hover { color:#fff!important; background:var(--ed-deep); }
.nslab-product-actions .single_add_to_cart_button { min-height:48px!important; padding:0 18px!important; border-radius:0!important; color:#fff!important; background:var(--ed-primary)!important; font-size:11px!important; }
.nslab-product-actions .quantity input { min-height:48px; border:1px solid var(--shop-line); border-radius:0; }
.nslab-product-appointment-note { margin:11px 0 0; color:#777b89; font-size:9px; }
.nslab-product-facts { margin:25px 0 0; border-top:1px solid var(--shop-line); }
.nslab-product-facts > div { display:grid; grid-template-columns:minmax(110px,.75fr) 1.25fr; gap:12px; padding:12px 0; border-bottom:1px solid var(--shop-line); }
.nslab-product-facts dt { color:#737787; font-size:9px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.nslab-product-facts dd { margin:0; color:#383c4a; font-size:11px; text-align:right; }
.nslab-gallery-strip { margin-top:76px; }
.nslab-gallery-heading { display:flex; justify-content:space-between; gap:16px; margin-bottom:14px; padding-bottom:12px; border-bottom:1px solid var(--shop-line); color:var(--shop-ink); font:400 19px Georgia,'Times New Roman',serif; }
.nslab-gallery-heading span:last-child { align-self:center; color:#737787; font:700 9px 'DM Sans',Arial,sans-serif; letter-spacing:.12em; text-transform:uppercase; }
.nslab-gallery-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.nslab-gallery-image { position:relative; display:block; overflow:hidden; aspect-ratio:1.65/1; background:#e8e9ee; }
.nslab-gallery-image img { width:100%; height:100%; object-fit:cover; transition:transform .7s cubic-bezier(.16,1,.3,1); }
.nslab-gallery-image:hover img { transform:scale(1.03); }
.nslab-gallery-image > span { position:absolute; right:12px; bottom:12px; left:12px; display:flex; justify-content:space-between; align-items:center; color:#fff; font-size:9px; font-weight:700; text-shadow:0 1px 8px rgba(0,0,0,.4); }
.nslab-gallery-image > span i { width:30px; height:30px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.8); border-radius:50%; font-size:14px; font-style:normal; }
.nslab-product-details { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(40px,8vw,115px); padding-top:100px; padding-bottom:105px; }
.nslab-detail-intro .shop-eyebrow { margin-bottom:18px; }
.nslab-detail-intro h2 { margin:0; color:var(--shop-ink); font:400 clamp(37px,4.4vw,58px)/1.05 Georgia,'Times New Roman',serif; }
.nslab-detail-copy { max-width:730px; color:#565b6b; font-size:14px; line-height:1.85; }
.nslab-detail-copy p { margin:0 0 15px; }
.nslab-detail-note { display:grid; grid-template-columns:34px 1fr; gap:8px 14px; margin-top:30px; padding:20px 0; border-top:1px solid var(--shop-line); border-bottom:1px solid var(--shop-line); }
.nslab-detail-note > span { color:var(--ed-primary); font-size:10px; font-weight:700; letter-spacing:.12em; }
.nslab-detail-note p { margin:0; color:#565b6b; font-size:12px; }
.nslab-detail-note a { grid-column:2; color:var(--ed-primary); font-size:10px; font-weight:700; text-decoration:none; }
.nslab-detail-note a i { margin-left:6px; font-size:15px; font-style:normal; }
.nslab-image-dialog { position:fixed; inset:0; width:min(92vw,1200px); max-width:none; max-height:90vh; padding:0; border:0; color:#fff; background:#171a26; }
.nslab-image-dialog::backdrop { background:rgba(18,20,31,.9); }
.nslab-image-dialog img { width:100%; max-height:90vh; object-fit:contain; }
.nslab-image-dialog button { position:absolute; top:12px; right:12px; z-index:1; width:42px; height:42px; border:1px solid rgba(255,255,255,.7); border-radius:50%; color:#fff; background:rgba(51,61,101,.8); font-size:25px; cursor:pointer; }

@media(max-width:1050px) {
  .shop-wrap { width:calc(100% - 64px); }
  .shop-catalog-grid { grid-template-columns:190px minmax(0,1fr); gap:24px; }
  .nslab-shop-page ul.products { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .shop-visit-inner { grid-template-columns:1fr 1fr; gap:26px; }
  .shop-visit-inner > a { justify-self:start; }
  .nslab-product-top { grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr); gap:34px; }
}
@media(max-width:720px) {
  .nslab-shop-page #main-content,.nslab-product-main { padding-top:70px; }
  .shop-wrap { width:calc(100% - 40px); }
  .shop-intro { padding:27px 0 47px; }
  .nslab-shop-page .woocommerce-breadcrumb { margin-bottom:20px; font-size:9px; }
  .shop-intro h1 { font-size:clamp(45px,12vw,68px); }
  .shop-description { margin-top:17px; font-size:14px; }
  .shop-catalog { padding-top:39px; padding-bottom:70px; }
  .shop-catalog-top { align-items:start; flex-direction:column; gap:18px; margin-bottom:18px; padding-bottom:16px; }
  .shop-catalog-top h2 { font-size:27px; }
  .shop-toolbar { width:100%; flex-wrap:wrap; justify-content:space-between; gap:10px; }
  .shop-filter-toggle { min-height:39px; display:inline-flex; align-items:center; gap:8px; padding:0 12px; border:1px solid #d7dae4; color:var(--ed-deep); background:#fff; font-size:10px; font-weight:700; cursor:pointer; }
  .shop-filter-toggle::before { width:14px; height:1px; background:var(--ed-primary); box-shadow:0 4px 0 var(--ed-primary),0 8px 0 var(--ed-primary); content:''; }
  .nslab-shop-page .woocommerce-result-count { margin-left:auto; font-size:9px; }
  .nslab-shop-page .woocommerce-ordering { width:100%; }
  .nslab-shop-page .woocommerce-ordering select { width:100%; height:40px; }
  .shop-catalog-grid { grid-template-columns:1fr; gap:15px; }
  .shop-filter-panel { position:static; }
  .shop-filter-panel.is-collapsed { display:none; }
  .shop-filter-form { display:grid; grid-template-columns:1fr 1fr; gap:0 14px; padding:0 14px 14px; border:1px solid var(--shop-line); }
  .shop-filter-head { grid-column:1/-1; }
  .shop-filter-group { min-width:0; }
  .shop-filter-options { max-height:170px; }
  .shop-stock-filter { grid-column:1/-1; }
  .shop-apply { grid-column:1/-1; }
  .nslab-shop-page ul.products { gap:24px 11px; }
  .nslab-card-image { aspect-ratio:.9/1; }
  .nslab-card-stock { right:6px; bottom:6px; gap:5px; padding:6px 7px; font-size:7px; }
  .nslab-card-meta { font-size:8px; }
  .nslab-card-copy h3 { margin:7px 0 10px; font-size:19px; }
  .nslab-card-price { font-size:8px; }
  .nslab-card-price .amount { font-size:10px; }
  .nslab-card-link { width:28px; height:28px; }
  .shop-visit { padding:48px 0; }
  .shop-visit-inner { grid-template-columns:1fr; gap:17px; }
  .shop-visit h2 { font-size:39px; }
  .shop-visit-inner > p { font-size:12px; }
  .nslab-product-main { padding-top:70px; }
  .nslab-product-breadcrumb { padding-top:20px; }
  .nslab-product-top { grid-template-columns:1fr; gap:27px; }
  .nslab-image-open { aspect-ratio:1.08/1; }
  .nslab-product-info { padding-top:0; }
  .nslab-product-info .shop-eyebrow { margin-bottom:13px; }
  .nslab-product-info h1 { font-size:clamp(43px,11vw,62px); }
  .nslab-product-lead { margin-top:14px; font-size:13px; }
  .nslab-product-price-row { margin-top:19px; }
  .nslab-product-facts { margin-top:20px; }
  .nslab-gallery-strip { margin-top:48px; }
  .nslab-gallery-grid { gap:9px; }
  .nslab-gallery-image { aspect-ratio:1.05/1; }
  .nslab-gallery-heading { font-size:17px; }
  .nslab-gallery-heading span:last-child { font-size:8px; }
  .nslab-product-details { grid-template-columns:1fr; gap:23px; padding-top:64px; padding-bottom:68px; }
  .nslab-detail-intro h2 { font-size:41px; }
}

@media(max-width:390px) {
  .shop-wrap { width:calc(100% - 30px); }
  .nslab-shop-page ul.products { gap:20px 8px; }
  .nslab-card-copy h3 { font-size:17px; }
  .nslab-card-meta span:last-child { font-size:7px; }
}
@media(prefers-reduced-motion:reduce) { .nslab-shop-page *, .nslab-product-page * { scroll-behavior:auto!important; transition-duration:.01ms!important; animation-duration:.01ms!important; } }

/* Filter drawer: intentionally closed until requested. */
.shop-catalog-grid { display:block; }
.shop-filter-toggle { min-height:43px; display:inline-flex; align-items:center; gap:12px; padding:0 15px; border:1px solid #cfd2df; color:var(--ed-deep); background:#fff; font:700 11px 'DM Sans',Arial,sans-serif; cursor:pointer; transition:color .2s,background .2s,border-color .2s; }
.shop-filter-toggle::before { width:14px; height:1px; background:currentColor; box-shadow:0 4px 0 currentColor,0 8px 0 currentColor; content:''; }
.shop-filter-toggle:hover,.shop-filter-toggle[aria-expanded="true"] { border-color:var(--ed-primary); color:#fff; background:var(--ed-primary); }
.shop-filter-toggle:focus-visible,.shop-filter-close:focus-visible,.nslab-gallery-control:focus-visible { outline:2px solid var(--ed-highlight); outline-offset:3px; }
.shop-filter-toggle b { min-width:19px; height:19px; display:grid; place-items:center; border-radius:50%; color:var(--ed-primary); background:#fff; font-size:9px; }
.shop-filter-overlay[hidden] { display:none!important; }
.shop-filter-overlay { position:fixed; inset:0; z-index:260; display:flex; justify-content:flex-end; }
.shop-filter-scrim { position:absolute; inset:0; border:0; background:rgba(27,30,48,.52); opacity:0; transition:opacity .32s ease; cursor:pointer; }
.shop-filter-panel { position:relative; z-index:1; width:min(460px,100vw); height:100%; overflow:hidden auto; padding:0 30px; color:var(--shop-ink); background:#fff; box-shadow:-24px 0 70px rgba(24,28,53,.18); transform:translateX(102%); transition:transform .48s cubic-bezier(.16,1,.3,1); }
.shop-filter-overlay.is-open .shop-filter-scrim { opacity:1; }
.shop-filter-overlay.is-open .shop-filter-panel { transform:translateX(0); }
.shop-filter-form { min-height:100%; display:flex; flex-direction:column; border:0; }
.shop-filter-head { flex:0 0 auto; align-items:center; padding:30px 0 23px; border-bottom:1px solid var(--shop-line); }
.shop-filter-head .shop-overline { margin-bottom:8px; color:var(--ed-primary); }
.shop-filter-head h3 { font-size:30px; }
.shop-filter-close { width:40px; height:40px; display:grid; place-items:center; border:1px solid #d8dae4; border-radius:50%; color:var(--ed-deep); background:#fff; font:300 26px/1 Arial,sans-serif; cursor:pointer; transition:color .2s,background .2s; }
.shop-filter-close:hover { color:#fff; background:var(--ed-primary); }
.shop-filter-group { padding:19px 0; }
.shop-filter-group summary { font-size:13px; }
.shop-filter-options { max-height:210px; grid-template-columns:1fr 1fr; gap:13px 16px; }
.shop-stock-filter { margin-top:auto; padding:17px 0; border-top:1px solid var(--shop-line); }
.shop-filter-actions { position:sticky; bottom:0; display:flex; align-items:center; justify-content:space-between; gap:15px; margin:0 -30px; padding:15px 30px max(16px,env(safe-area-inset-bottom)); border-top:1px solid var(--shop-line); background:#fff; }
.shop-filter-actions > a { color:var(--ed-primary); font-size:10px; font-weight:700; text-underline-offset:3px; }
.shop-filter-actions .shop-apply { width:auto; min-width:190px; min-height:50px; margin:0; }
body.shop-filter-open { overflow:hidden; }

/* Product gallery and refined product information. */
.nslab-product-top { grid-template-columns:minmax(0,1.2fr) minmax(355px,.8fr); align-items:stretch; gap:clamp(42px,6.5vw,96px); }
.nslab-product-info { align-self:center; max-width:570px; padding:24px 0 24px 30px; border-left:1px solid var(--shop-line); }
.nslab-product-info h1 { max-width:100%; font-size:clamp(43px,4.8vw,67px); line-height:1.03; }
.nslab-product-info .shop-eyebrow { margin-bottom:19px; }
.nslab-product-lead { margin-top:18px; font-size:14px; line-height:1.8; }
.nslab-product-price-row { min-height:58px; align-items:center; margin-top:22px; padding:12px 0; }
.nslab-product-price-row > strong { font-size:13px; }
.nslab-product-price-row > b { font-size:20px; }
.nslab-product-stock { margin-top:16px; font-size:11px; }
.nslab-product-actions { flex-direction:column; align-items:stretch; gap:11px; margin-top:25px; }
.nslab-primary-action { width:100%; min-height:56px; justify-content:space-between; padding-inline:19px; font-size:11px; }
.nslab-secondary-action { min-height:32px; justify-content:flex-start; padding:0; border:0; color:var(--ed-primary)!important; background:transparent; text-decoration:underline; text-decoration-color:#b5bad8; text-underline-offset:4px; }
.nslab-secondary-action:hover { color:var(--ed-deep)!important; background:transparent; }
.nslab-product-actions form.cart { width:100%; display:flex; align-items:stretch; gap:8px; }
.nslab-product-actions form.cart .quantity { flex:0 0 78px; }
.nslab-product-actions form.cart .quantity input { width:100%; height:56px; }
.nslab-product-actions form.cart .single_add_to_cart_button { flex:1; min-height:56px!important; text-align:left; }
.nslab-product-facts { margin-top:21px; }
.nslab-quick-specs { margin-top:22px; }
.nslab-quick-specs > span { color:var(--ed-primary); font-size:9px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.nslab-quick-specs .nslab-product-facts { margin-top:8px; }
.nslab-product-facts > div { grid-template-columns:.8fr 1.2fr; padding:12px 0; }
.nslab-product-facts dd { color:#303342; font-weight:600; }
.nslab-gallery-viewer { position:relative; overflow:hidden; background:#eef0f4; }
.nslab-gallery-viewport { aspect-ratio:1.2/1; overflow:hidden; }
.nslab-gallery-track { height:100%; display:flex; transition:transform .58s cubic-bezier(.2,.75,.2,1); touch-action:pan-y; }
.nslab-gallery-slide { position:relative; flex:0 0 100%; width:100%; height:100%; display:block; overflow:hidden; background:#eef0f4; }
.nslab-gallery-slide img { width:100%; height:100%; object-fit:cover; }
.nslab-gallery-control { position:absolute; top:50%; z-index:2; width:44px; height:44px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.8); border-radius:50%; color:#fff; background:rgba(51,61,101,.88); box-shadow:0 5px 18px rgba(32,34,43,.12); font-size:19px; cursor:pointer; transform:translateY(-50%); transition:background .2s,transform .2s; }
.nslab-gallery-control:hover { background:var(--ed-primary); transform:translateY(-50%) scale(1.06); }
.nslab-gallery-control.is-prev { left:16px; }
.nslab-gallery-control.is-next { right:16px; }
.nslab-gallery-count { position:absolute; right:15px; bottom:15px; z-index:2; display:flex; align-items:center; gap:7px; padding:9px 11px; color:#fff; background:rgba(51,61,101,.9); font-size:9px; font-weight:700; letter-spacing:.09em; }
.nslab-gallery-count i { color:#c7cbe4; font-style:normal; }
.nslab-gallery-slide:focus-visible,.nslab-gallery-image:focus-visible { outline:3px solid var(--ed-highlight); outline-offset:-3px; }
.nslab-gallery-strip { margin-top:65px; }
.nslab-gallery-grid { gap:18px; }
.nslab-gallery-image { aspect-ratio:1.7/1; }
.nslab-product-faq { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(40px,8vw,115px); padding-top:100px; padding-bottom:105px; border-top:1px solid var(--shop-line); }
.nslab-faq-heading .shop-eyebrow { margin-bottom:18px; }
.nslab-faq-heading h2 { margin:0; color:var(--shop-ink); font:400 clamp(40px,4.5vw,59px)/1.04 Georgia,'Times New Roman',serif; }
.nslab-faq-heading h2 em { color:var(--ed-primary); font-weight:400; }
.nslab-faq-heading > p:last-child { max-width:280px; margin:19px 0 0; color:#6a6e7d; font-size:12px; line-height:1.7; }
.nslab-faq-list { border-top:1px solid #cfd2df; }
.nslab-faq-list details { border-bottom:1px solid #cfd2df; }
.nslab-faq-list summary { min-height:76px; display:grid; grid-template-columns:36px 1fr 30px; align-items:center; gap:10px; color:#292c38; font-size:13px; font-weight:600; cursor:pointer; list-style:none; }
.nslab-faq-list summary::-webkit-details-marker { display:none; }
.nslab-faq-list summary > span { color:var(--ed-highlight); font-size:9px; font-weight:700; letter-spacing:.12em; }
.nslab-faq-list summary > i { width:29px; height:29px; display:grid; place-items:center; border:1px solid #d8dae4; border-radius:50%; color:var(--ed-primary); font-size:18px; font-style:normal; font-weight:400; transition:transform .2s,background .2s,color .2s; }
.nslab-faq-list details[open] summary > i { color:#fff; background:var(--ed-primary); transform:rotate(45deg); }
.nslab-faq-answer { padding:0 40px 22px 46px; color:#5b5e6c; font-size:12px; line-height:1.8; animation:nslab-faq-in .24s ease both; }
.nslab-faq-answer p { margin:0 0 12px; }
.nslab-faq-answer a { color:var(--ed-primary); font-weight:700; text-decoration:underline; text-underline-offset:3px; }
.nslab-faq-answer .nslab-product-facts { margin:0; }
@keyframes nslab-faq-in { from { opacity:0; transform:translateY(5px); } to { opacity:1; transform:none; } }
.nslab-related { padding-top:10px; padding-bottom:100px; }
.nslab-related-heading { display:flex; align-items:end; justify-content:space-between; gap:20px; margin-bottom:24px; padding-bottom:17px; border-bottom:1px solid var(--shop-line); }
.nslab-related-heading .shop-eyebrow { margin-bottom:8px; }
.nslab-related-heading h2 { margin:0; color:var(--shop-ink); font:400 clamp(34px,4vw,48px)/1.08 Georgia,'Times New Roman',serif; }
.nslab-related-heading > a { color:var(--ed-primary); font-size:10px; font-weight:700; text-decoration:none; }
.nslab-related-heading > a span { margin-left:8px; font-size:15px; }
.nslab-shop-page ul.nslab-related-products { grid-template-columns:repeat(4,minmax(0,1fr)); }

@media(max-width:1050px) {
  .nslab-product-top { grid-template-columns:minmax(0,1.05fr) minmax(310px,.95fr); gap:34px; }
  .shop-filter-panel { padding-inline:25px; }
  .shop-filter-actions { margin-inline:-25px; padding-inline:25px; }
  .nslab-product-faq { gap:42px; }
  .nslab-shop-page ul.nslab-related-products { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:720px) {
  .shop-toolbar { justify-content:flex-start; }
  .shop-toolbar .woocommerce-result-count { margin-left:auto; }
  .shop-toolbar .woocommerce-ordering { flex-basis:100%; }
  .shop-filter-panel { width:min(460px,100vw); padding:0 20px; }
  .shop-filter-head { padding-top:22px; }
  .shop-filter-actions { margin-inline:-20px; padding-inline:20px; }
  .shop-filter-actions .shop-apply { min-width:0; flex:1; }
  .nslab-product-top { grid-template-columns:1fr; gap:22px; }
  .nslab-gallery-viewport { aspect-ratio:1.06/1; }
  .nslab-product-info { max-width:none; padding:4px 0 0; border-left:0; }
  .nslab-product-info h1 { font-size:clamp(42px,10vw,61px); }
  .nslab-product-actions { margin-top:19px; }
  .nslab-gallery-control { width:39px; height:39px; }
  .nslab-gallery-control.is-prev { left:10px; }
  .nslab-gallery-control.is-next { right:10px; }
  .nslab-gallery-strip { margin-top:44px; }
  .nslab-gallery-grid { gap:9px; }
  .nslab-gallery-image { aspect-ratio:1/1; }
  .nslab-product-faq { grid-template-columns:1fr; gap:25px; padding-top:65px; padding-bottom:70px; }
  .nslab-faq-heading h2 { font-size:43px; }
  .nslab-faq-heading > p:last-child { margin-top:13px; }
  .nslab-faq-list summary { min-height:68px; grid-template-columns:28px 1fr 28px; gap:7px; font-size:12px; }
  .nslab-faq-answer { padding:0 10px 20px 35px; font-size:11px; }
  .nslab-related { padding-bottom:68px; }
  .nslab-related-heading { align-items:flex-start; flex-direction:column; }
  .nslab-shop-page ul.nslab-related-products { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(prefers-reduced-motion:reduce) {
  .nslab-gallery-track,.nslab-gallery-slide img,.nslab-gallery-control,.shop-filter-panel,.shop-filter-scrim { transition:none!important; }
  .nslab-faq-answer { animation:none; }
}

/* Keep product detail content inside its grid column for long names and attributes. */
.nslab-product-page .nslab-product-top{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(28px,5vw,72px)}
.nslab-product-page .nslab-product-top>*{min-width:0}
.nslab-product-page .nslab-product-info{width:100%;min-width:0;max-width:none;box-sizing:border-box}
.nslab-product-page .nslab-product-info>*{min-width:0;max-width:100%}
.nslab-product-page .nslab-quick-specs{display:block;width:100%;min-width:0}
.nslab-product-page .nslab-product-info h1{max-width:100%;font-size:clamp(40px,4.15vw,62px);line-height:1.04;overflow-wrap:anywhere;text-wrap:pretty}
.nslab-product-page .nslab-product-lead,.nslab-product-page .nslab-product-lead p{max-width:100%;overflow-wrap:anywhere}
.nslab-product-page .nslab-product-price-row{width:100%;min-width:0;flex-wrap:wrap;column-gap:14px;row-gap:6px}
.nslab-product-page .nslab-product-price-row>span{flex:0 0 auto}
.nslab-product-page .nslab-product-price-row>strong{min-width:0;flex:1 1 42%;overflow-wrap:anywhere}
.nslab-product-page .nslab-product-price-row>b{min-width:0;max-width:100%;margin-left:auto;overflow-wrap:anywhere;text-align:right}
.nslab-product-page .nslab-product-facts{display:block!important;width:100%!important;min-width:0;table-layout:fixed}
.nslab-product-page .nslab-product-facts>div{display:grid!important;width:100%;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;column-gap:clamp(28px,4vw,56px)!important;align-items:start}
.nslab-product-page .nslab-product-facts dt,.nslab-product-page .nslab-product-facts dd{min-width:0;overflow-wrap:anywhere;word-break:normal}
.nslab-product-page .nslab-product-facts dd{justify-self:stretch;text-align:right!important;line-height:1.55}
.nslab-product-page .nslab-product-stock{max-width:100%;align-items:flex-start;line-height:1.55;overflow-wrap:anywhere}
.nslab-product-page .nslab-product-stock i{flex:0 0 6px;margin-top:4px}
.nslab-product-page .nslab-product-sku{max-width:100%;overflow-wrap:anywhere}
.nslab-product-page .nslab-product-actions,.nslab-product-page .nslab-product-actions form.cart{width:100%;min-width:0;max-width:100%}
.nslab-product-page .nslab-product-actions form.cart>*{min-width:0}
.nslab-product-page .nslab-product-actions form.cart .quantity{flex:0 0 72px}
.nslab-product-page .nslab-product-actions .single_add_to_cart_button{overflow-wrap:anywhere;white-space:normal}
.nslab-product-page .nslab-product-actions .variations_form table.variations{width:100%;table-layout:fixed}
.nslab-product-page .nslab-product-actions .variations_form table.variations td,.nslab-product-page .nslab-product-actions .variations_form table.variations th{min-width:0;overflow-wrap:anywhere}
.nslab-product-page .nslab-product-actions .variations_form table.variations select{width:100%;max-width:100%;min-width:0}
.nslab-product-page .nslab-product-actions .woocommerce-variation-add-to-cart{display:flex;gap:8px;min-width:0}
.nslab-product-page .nslab-product-actions .woocommerce-variation-add-to-cart .quantity{flex:0 0 72px}
.nslab-product-page .nslab-product-breadcrumb{min-width:0;overflow-wrap:anywhere}
@media(max-width:1050px){.nslab-product-page .nslab-product-top{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(22px,3vw,34px)}.nslab-product-page .nslab-product-info{padding-left:clamp(18px,2.4vw,30px)}}
@media(max-width:720px){.nslab-product-page .nslab-product-top{grid-template-columns:minmax(0,1fr);gap:22px}.nslab-product-page .nslab-product-info{padding:4px 0 0}.nslab-product-page .nslab-product-info h1{font-size:clamp(39px,9vw,58px)}.nslab-product-page .nslab-product-facts>div{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:15px}.nslab-product-page .nslab-product-facts dd{text-align:right}}
@media(max-width:390px){.nslab-product-page .nslab-product-facts>div{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.nslab-product-page .nslab-product-facts dt{font-size:8px;letter-spacing:.06em}}

/* The quick specs use a full-width table so values align to the far edge. */
.nslab-product-page .nslab-quick-specs{display:block!important;width:100%!important;min-width:0!important}
.nslab-product-page .nslab-product-spec-table{display:table!important;width:100%!important;min-width:100%!important;max-width:none!important;table-layout:fixed!important;border-collapse:collapse!important;margin:8px 0 0!important}
.nslab-product-page .nslab-product-spec-table tbody{display:table-row-group!important;width:100%!important}
.nslab-product-page .nslab-product-spec-table tr{display:table-row!important;width:100%!important}
.nslab-product-page .nslab-product-spec-table th,.nslab-product-page .nslab-product-spec-table td{display:table-cell!important;width:50%!important;min-width:0!important;padding:12px 0!important;border-bottom:1px solid var(--shop-line)!important;vertical-align:top!important;overflow-wrap:anywhere}
.nslab-product-page .nslab-product-spec-table th{text-align:left!important;font-weight:600!important}
.nslab-product-page .nslab-product-spec-table td{text-align:right!important;font-weight:500!important}
@media(max-width:720px){.nslab-product-page .nslab-product-spec-table th,.nslab-product-page .nslab-product-spec-table td{padding:11px 0!important}}

/* Product attributes are entered as a table in the WooCommerce short description. */
.nslab-product-page .nslab-product-lead table{display:table!important;width:100%!important;min-width:100%!important;max-width:none!important;table-layout:fixed!important;border-collapse:collapse!important;margin:18px 0 0!important;font:inherit!important;color:inherit!important}
.nslab-product-page .nslab-product-lead table tr{display:table-row!important}
.nslab-product-page .nslab-product-lead table td{display:table-cell!important;width:50%!important;min-width:0!important;padding:10px 0!important;border:0!important;border-bottom:1px solid var(--shop-line)!important;vertical-align:top!important;overflow-wrap:anywhere!important}
.nslab-product-page .nslab-product-lead table td:first-child{text-align:left!important}
.nslab-product-page .nslab-product-lead table td:last-child{text-align:right!important}

/* WooCommerce variable products need a stacked form, not the simple-cart row. */
.nslab-product-page .nslab-product-price-row>b,
.nslab-product-page .nslab-product-price-row .amount{color:var(--ed-primary)!important}
.nslab-product-page .nslab-product-actions form.cart.variations_form{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:16px!important;width:100%!important;min-width:0!important;margin:0!important}
.nslab-product-page .nslab-product-actions form.cart.variations_form .variations{display:block!important;width:100%!important;max-width:100%!important;margin:0!important;border:0!important;border-collapse:collapse!important;table-layout:fixed!important}
.nslab-product-page .nslab-product-actions form.cart.variations_form .variations tbody,
.nslab-product-page .nslab-product-actions form.cart.variations_form .variations tr{display:block!important;width:100%!important}
.nslab-product-page .nslab-product-actions form.cart.variations_form .variations th.label,
.nslab-product-page .nslab-product-actions form.cart.variations_form .variations td.value{display:block!important;width:100%!important;padding:0!important;text-align:left!important;background:transparent!important}
.nslab-product-page .nslab-product-actions form.cart.variations_form .variations th.label{margin:0 0 8px!important;color:var(--ed-deep)!important;font-size:11px!important;font-weight:700!important}
.nslab-product-page .nslab-product-actions form.cart.variations_form .variations td.value{position:relative!important}
.nslab-product-page .nslab-product-actions form.cart.variations_form .variations select{display:block!important;width:100%!important;max-width:100%!important;min-width:0!important;height:54px!important;margin:0!important;padding:0 44px 0 15px!important;border:1px solid #cdd1e0!important;border-radius:2px!important;color:#292d3b!important;background-color:#fff!important;font:500 14px/1.3 'DM Sans',Arial,sans-serif!important;box-shadow:0 1px 2px rgba(35,40,70,.04)!important;cursor:pointer}
.nslab-product-page .nslab-product-actions form.cart.variations_form .variations select:hover{border-color:var(--ed-primary)!important}
.nslab-product-page .nslab-product-actions form.cart.variations_form .variations select:focus{border-color:var(--ed-primary)!important;outline:3px solid rgba(61,67,133,.15)!important;outline-offset:1px}
.nslab-product-page .nslab-product-actions form.cart.variations_form .variations option{color:#292d3b;background:#fff}
.nslab-product-page .nslab-product-actions form.cart.variations_form .reset_variations{display:inline-block!important;margin:8px 0 0!important;color:var(--ed-primary)!important;font-size:11px!important;text-decoration:underline;text-underline-offset:3px}
.nslab-product-page .nslab-product-actions form.cart.variations_form .single_variation_wrap{display:block!important;width:100%!important;min-width:0!important;margin:0!important}
.nslab-product-page .nslab-product-actions form.cart.variations_form .woocommerce-variation{display:flex!important;flex-direction:column!important;gap:8px!important;width:100%!important;min-width:0!important;margin:0 0 14px!important;padding:14px 16px!important;border:1px solid #e0e3ed!important;border-left:3px solid var(--ed-highlight)!important;background:#f7f8fc!important;color:#4e5364!important;box-sizing:border-box!important}
.nslab-product-page .nslab-product-actions form.cart.variations_form .woocommerce-variation-description{width:100%!important;min-width:0!important;margin:0!important;color:#4e5364!important;font-size:13px!important;line-height:1.65!important;overflow-wrap:anywhere}
.nslab-product-page .nslab-product-actions form.cart.variations_form .woocommerce-variation-price{color:var(--ed-primary)!important;font-size:18px!important;font-weight:700!important}
.nslab-product-page .nslab-product-actions form.cart.variations_form .woocommerce-variation-price .amount{color:var(--ed-primary)!important}
.nslab-product-page .nslab-product-actions form.cart.variations_form .woocommerce-variation-availability{color:#4e5364!important;font-size:12px!important}
.nslab-product-page .nslab-product-actions form.cart.variations_form .woocommerce-variation-availability .in-stock{color:#3f765d!important}
.nslab-product-page .nslab-product-actions form.cart.variations_form .woocommerce-variation-add-to-cart{display:flex!important;align-items:stretch!important;gap:10px!important;width:100%!important;min-width:0!important;margin:0!important}
.nslab-product-page .nslab-product-actions form.cart.variations_form .woocommerce-variation-add-to-cart .quantity{display:block!important;flex:0 0 76px!important;width:76px!important;margin:0!important}
.nslab-product-page .nslab-product-actions form.cart.variations_form .woocommerce-variation-add-to-cart .quantity input{width:100%!important;height:56px!important;min-height:56px!important;padding:0 8px!important;border:1px solid #cdd1e0!important;border-radius:2px!important;background:#fff!important;color:#292d3b!important;text-align:center!important}
.nslab-product-page .nslab-product-actions form.cart.variations_form .single_add_to_cart_button{display:flex!important;flex:1 1 auto!important;align-items:center!important;justify-content:center!important;width:auto!important;min-width:0!important;min-height:56px!important;margin:0!important;padding:12px 20px!important;border:1px solid var(--ed-primary)!important;border-radius:2px!important;background:var(--ed-primary)!important;color:#fff!important;font:700 12px/1.3 'DM Sans',Arial,sans-serif!important;text-align:center!important;white-space:normal!important;overflow-wrap:normal!important;writing-mode:horizontal-tb!important;transform:none!important}
.nslab-product-page .nslab-product-actions form.cart.variations_form .single_add_to_cart_button:hover:not(:disabled){border-color:var(--ed-deep)!important;background:var(--ed-deep)!important}
.nslab-product-page .nslab-product-actions form.cart.variations_form .single_add_to_cart_button:disabled{opacity:.48!important;cursor:not-allowed!important}
@media(max-width:480px){.nslab-product-page .nslab-product-actions form.cart.variations_form .woocommerce-variation-add-to-cart{gap:8px!important}.nslab-product-page .nslab-product-actions form.cart.variations_form .woocommerce-variation-add-to-cart .quantity{flex-basis:68px!important;width:68px!important}.nslab-product-page .nslab-product-actions form.cart.variations_form .single_add_to_cart_button{padding:10px 12px!important;font-size:11px!important}}
.nslab-price-access{display:inline-flex!important;align-items:center!important;gap:7px!important;color:var(--ed-primary)!important;font-size:12px!important;font-weight:700!important;line-height:1.5!important;text-decoration:underline!important;text-decoration-color:rgba(61,67,133,.35)!important;text-underline-offset:4px!important}
.nslab-price-access:hover,.nslab-price-access:focus-visible{color:var(--ed-deep)!important;text-decoration-color:currentColor!important}
.nslab-product-page .woocommerce-variation-price .nslab-price-access{font-size:12px!important}
.nslab-card-price .nslab-price-access{font-size:10px!important}
@media(max-width:480px){.nslab-product-page .nslab-price-access{font-size:11px!important}}

/* Breadcrumb removed: keep the spacing it used to provide above the product */
.nslab-product-main .nslab-product-top{padding-top:28px}
@media(max-width:720px){.nslab-product-main .nslab-product-top{padding-top:20px}}
.woocommerce-breadcrumb,.nslab-product-breadcrumb{display:none!important}
