/* Natuursteen Slab v1.19.1 - premium product cards. One bold family (Archivo, same as header/home). */
.nslab-shop-page{--nl:'Archivo',system-ui,-apple-system,'Segoe UI',Arial,sans-serif;--nl-ink:#171a26;--nl-muted:#5d6377;--nl-line:#e1e4ee;--nl-p:var(--ed-primary,#3d4385)}

/* Headings on shop pages: bold, tight */
.nslab-shop-page :is(.shop-intro h1,.shop-catalog-top h2,.shop-visit h2,.nslab-related-heading h2){font-family:var(--nl)!important;font-weight:700!important;letter-spacing:-.035em!important;line-height:1.02!important}
.nslab-shop-page .shop-intro h1{font-size:clamp(46px,6.4vw,88px)!important}
.nslab-shop-page .shop-catalog-top h2{font-size:clamp(32px,3.4vw,46px)!important}
.nslab-shop-page :is(.shop-description,.woocommerce-result-count,.woocommerce-ordering select,.shop-filter-toggle,.woocommerce-breadcrumb){font-family:var(--nl)!important}
.nslab-shop-page .shop-description{font-size:17px}
.nslab-shop-page .woocommerce-result-count{font-size:14px}
.nslab-shop-page .woocommerce-ordering select{height:50px;font-size:14px;font-weight:500}
.nslab-shop-page .shop-filter-toggle{min-height:50px;font-size:14px;font-weight:600;padding:0 22px}

/* Grid */
.nslab-shop-page ul.products{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:56px 28px!important;align-items:stretch}

/* Card shell: every card in a row is equal height */
.nslab-shop-page ul.products li.nslab-product-card{display:flex!important;flex-direction:column;height:100%;font-family:var(--nl);color:var(--nl-ink);list-style:none}

/* IMAGE: fixed ratio, always fully covered */
.nslab-shop-page li.nslab-product-card .nslab-card-image{position:relative;display:block;width:100%;aspect-ratio:4/5;overflow:hidden;background:#e7e9f0;border-radius:4px}
.nslab-shop-page li.nslab-product-card .nslab-card-image>img{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:none!important;margin:0!important;object-fit:cover!important;object-position:center!important;transition:transform 1.1s cubic-bezier(.16,1,.3,1)}
.nslab-shop-page li.nslab-product-card:hover .nslab-card-image>img{transform:scale(1.05)}
.nslab-shop-page li.nslab-product-card .nslab-card-image::after{display:none!important}
.nslab-shop-page li.nslab-product-card .nslab-card-index{display:none!important}
.nslab-shop-page li.nslab-product-card .nslab-card-stock{position:absolute;z-index:2;left:16px;right:auto;bottom:16px;display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:100px;color:var(--nl-ink);background:rgba(255,255,255,.96);font:600 13px/1 var(--nl);letter-spacing:0}
.nslab-shop-page li.nslab-product-card .nslab-card-stock i{width:8px;height:8px}

/* TEXT: category / name / spec / (price + button) */
.nslab-shop-page li.nslab-product-card .nslab-card-copy{display:flex;flex-direction:column;flex:1;padding:22px 0 0}
.nslab-shop-page li.nslab-product-card .nslab-card-cat{display:block;margin:0 0 10px;color:var(--nl-p);font:700 12px/1.2 var(--nl);letter-spacing:.14em;text-transform:uppercase}
.nslab-shop-page li.nslab-product-card h3.nslab-card-title{margin:0!important;font:700 clamp(22px,1.9vw,27px)/1.18 var(--nl)!important;letter-spacing:-.025em!important;color:var(--nl-ink);min-height:2.36em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nslab-shop-page li.nslab-product-card h3.nslab-card-title a{color:inherit!important;text-decoration:none}
.nslab-shop-page li.nslab-product-card h3.nslab-card-title a:hover{color:var(--nl-p)!important}
.nslab-shop-page li.nslab-product-card .nslab-card-detail{margin:10px 0 0;color:var(--nl-muted);font:500 15px/1.4 var(--nl);letter-spacing:0}
.nslab-shop-page li.nslab-product-card .nslab-card-bottom{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:20px 0 0;border-top:0}
.nslab-shop-page li.nslab-product-card .nslab-card-copy::after{content:none}
.nslab-shop-page li.nslab-product-card .nslab-card-detail+.nslab-card-bottom{margin-top:20px}
.nslab-shop-page li.nslab-product-card .nslab-card-bottom{border-top:1px solid var(--nl-line);margin-top:auto;padding-top:18px}
.nslab-shop-page li.nslab-product-card .nslab-card-copy{gap:0}
.nslab-shop-page li.nslab-product-card .nslab-card-detail{margin-bottom:22px}

/* PRICE */
.nslab-shop-page li.nslab-product-card .nslab-card-price{min-width:0;flex:1 1 auto;font:600 15px/1.4 var(--nl);color:var(--nl-ink)}
.nslab-shop-page li.nslab-product-card .nslab-card-price .amount,.nslab-shop-page li.nslab-product-card .nslab-card-price bdi{font:700 clamp(22px,1.9vw,26px)/1 var(--nl);letter-spacing:-.025em;color:var(--nl-ink)}
.nslab-shop-page li.nslab-product-card .nslab-card-price .nslab-price-access{font-size:14px!important;font-weight:600!important;line-height:1.4!important}

/* BUTTON: one clean row, fixed size */
.nslab-shop-page li.nslab-product-card a.nslab-card-link{display:inline-flex!important;flex:0 0 auto;align-items:center;justify-content:center;gap:10px;width:auto!important;height:48px!important;min-width:0;padding:0 20px!important;border:1.5px solid var(--nl-p)!important;border-radius:100px!important;color:var(--nl-p)!important;background:transparent!important;font:600 15px/1 var(--nl)!important;letter-spacing:0;text-decoration:none;white-space:nowrap;transition:color .3s,background .3s}
.nslab-shop-page li.nslab-product-card a.nslab-card-link svg{display:block!important;width:18px!important;height:18px!important;flex:0 0 18px;padding:0!important;background:none!important;border-radius:0!important;color:inherit!important;transition:transform .4s cubic-bezier(.16,1,.3,1)}
.nslab-shop-page li.nslab-product-card a.nslab-card-link .nslab-card-link-label{display:block;font:inherit}
.nslab-shop-page li.nslab-product-card a.nslab-card-link:hover,.nslab-shop-page li.nslab-product-card a.nslab-card-link:focus-visible{color:#fff!important;background:var(--nl-p)!important}
.nslab-shop-page li.nslab-product-card a.nslab-card-link:hover svg{transform:translate(2px,-2px)}
.nslab-shop-page li.nslab-product-card :is(a.nslab-card-link,.nslab-card-image):focus-visible{outline:3px solid var(--ed-highlight,#6e78b8);outline-offset:3px}

/* Infinite scroll status */
.nslab-infinite{display:flex;align-items:center;justify-content:center;gap:14px;min-height:96px;margin-top:56px;color:var(--nl-muted);font:500 15px/1 var(--nl,Arial)}
.nslab-infinite[hidden]{display:none}
.nslab-infinite-spinner{width:22px;height:22px;border:2px solid var(--nl-line);border-top-color:var(--nl-p);border-radius:50%;opacity:0;animation:nslab-spin .8s linear infinite;transition:opacity .2s}
.nslab-infinite.is-loading .nslab-infinite-spinner{opacity:1}
.nslab-infinite.is-error{cursor:pointer;color:var(--nl-p)}
@keyframes nslab-spin{to{transform:rotate(360deg)}}
.nslab-shop-page .woocommerce-pagination{display:none}

@media(max-width:1050px){.nslab-shop-page ul.products{grid-template-columns:repeat(2,minmax(0,1fr))!important}}

/* Mobile: one product per row */
@media(max-width:720px){
  .nslab-shop-page ul.products{grid-template-columns:minmax(0,1fr)!important;gap:48px 0!important}
  .nslab-shop-page li.nslab-product-card .nslab-card-image{aspect-ratio:1/1.1}
  .nslab-shop-page li.nslab-product-card h3.nslab-card-title{font-size:clamp(25px,7vw,30px)!important;min-height:0}
  .nslab-shop-page li.nslab-product-card .nslab-card-detail{font-size:16px}
  .nslab-shop-page li.nslab-product-card .nslab-card-price .amount,.nslab-shop-page li.nslab-product-card .nslab-card-price bdi{font-size:26px}
  .nslab-shop-page li.nslab-product-card a.nslab-card-link{height:52px!important;padding:0 24px!important;font-size:16px!important}
  .nslab-shop-page .shop-description{font-size:16px}
  .nslab-infinite{margin-top:40px}
}
@media(prefers-reduced-motion:reduce){.nslab-shop-page li.nslab-product-card *{transition:none!important}.nslab-infinite-spinner{animation-duration:2.4s}}

/* ==== v1.19.2: square images + perfectly aligned price/button row ==== */
.nslab-shop-page ul.products{grid-auto-rows:1fr!important;align-items:stretch!important}
.nslab-shop-page ul.products li.nslab-product-card{height:auto!important;align-self:stretch!important}
.nslab-shop-page li.nslab-product-card .nslab-card-image{aspect-ratio:1/1!important}

/* Text block has a fixed structure: category / 2-line title slot / spec slot / bottom row pinned to the card base */
.nslab-shop-page li.nslab-product-card .nslab-card-copy{flex:1 1 auto;display:flex;flex-direction:column}
.nslab-shop-page li.nslab-product-card h3.nslab-card-title{display:-webkit-box!important;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;height:2.36em!important;min-height:2.36em!important;max-height:2.36em!important}
.nslab-shop-page li.nslab-product-card .nslab-card-detail{min-height:1.4em;margin:10px 0 22px!important}
.nslab-shop-page li.nslab-product-card .nslab-card-bottom{margin-top:auto!important;min-height:76px;align-items:center;padding-top:18px!important}

@media(max-width:720px){
  .nslab-shop-page ul.products{grid-auto-rows:auto!important}
  .nslab-shop-page li.nslab-product-card .nslab-card-image{aspect-ratio:1/1!important}
  .nslab-shop-page li.nslab-product-card h3.nslab-card-title{height:auto!important;min-height:0!important;max-height:none!important;-webkit-line-clamp:3}
}

/* ==== v1.19.3: never clip the 2nd title line ==== */
.nslab-shop-page li.nslab-product-card h3.nslab-card-title{height:auto!important;max-height:none!important;line-height:1.2!important;min-height:calc(1.2em * 2 + .12em)!important;padding-bottom:.12em;overflow:hidden;-webkit-line-clamp:2}
.nslab-shop-page li.nslab-product-card h3.nslab-card-title a{display:inline!important;line-height:inherit!important}
@media(max-width:720px){
  .nslab-shop-page li.nslab-product-card h3.nslab-card-title{min-height:0!important;-webkit-line-clamp:3}
}

/* ==== v1.23.4: category description (SEO text) below the products ==== */
.nslab-shop-page .shop-intro--category{padding-bottom:56px}

.nslab-shop-page .shop-seo{padding:0 0 120px;background:#fff;font-family:var(--nl)}
.nslab-shop-page .shop-seo-card{position:relative;display:grid;grid-template-columns:minmax(260px,380px) minmax(0,1fr);gap:clamp(40px,6vw,104px);padding:clamp(34px,5.5vw,88px);border-radius:28px;background:#f4f5f9;overflow:hidden}
.nslab-shop-page .shop-seo-card::before{content:'';position:absolute;left:0;top:0;width:100%;height:5px;background:linear-gradient(90deg,var(--nl-p),var(--ed-highlight,#6e78b8) 60%,transparent)}

/* Side: label, big title, table of contents */
.nslab-shop-page .shop-seo-side{align-self:start;position:sticky;top:116px}
.nslab-shop-page .shop-seo-side .shop-eyebrow{margin-bottom:22px;font:700 12px/1.4 var(--nl)}
.nslab-shop-page .shop-seo-title{margin:0;color:var(--nl-ink);font:700 clamp(34px,3.5vw,50px)/1.02 var(--nl);letter-spacing:-.035em;overflow-wrap:break-word;hyphens:none}
.nslab-shop-page .shop-seo-title span{display:block;margin-bottom:.18em;color:#7b8096;font-size:.42em;font-weight:500;letter-spacing:-.01em}
.nslab-shop-page .shop-seo-title em{color:var(--nl-p);font-style:normal}
.nslab-shop-page .shop-seo-toc{margin-top:44px;padding-top:26px;border-top:1px solid #d9dce8}
.nslab-shop-page .shop-seo-toc[hidden]{display:none}
.nslab-shop-page .shop-seo-toc-label{display:block;margin:0 0 14px;color:#7b8096;font:700 11px/1.4 var(--nl);letter-spacing:.16em;text-transform:uppercase}
.nslab-shop-page .shop-seo-toc ol{display:grid;gap:2px;margin:0;padding:0;list-style:none;counter-reset:toc}
.nslab-shop-page .shop-seo-toc a{display:flex;gap:14px;align-items:baseline;padding:9px 0;color:#454a5e;font:500 15px/1.4 var(--nl);text-decoration:none;transition:color .2s,transform .3s cubic-bezier(.16,1,.3,1)}
.nslab-shop-page .shop-seo-toc a::before{counter-increment:toc;content:counter(toc,decimal-leading-zero);flex:0 0 auto;color:var(--nl-p);font:700 11px/1 var(--nl);letter-spacing:.08em}
.nslab-shop-page .shop-seo-toc a:hover,.nslab-shop-page .shop-seo-toc a:focus-visible{color:var(--nl-p);transform:translateX(4px)}

/* Main: prose */
.nslab-shop-page .shop-seo-main{min-width:0}
.nslab-shop-page .shop-seo-body{max-width:740px;color:#3f4455;font:400 17px/1.82 var(--nl)}
.nslab-shop-page .shop-seo-body > *:first-child{margin-top:0}
.nslab-shop-page .shop-seo-body > *:last-child{margin-bottom:0}
.nslab-shop-page .shop-seo-body p{margin:0 0 1.35em}
.nslab-shop-page .shop-seo-body > p:first-of-type{margin-bottom:1.5em;color:var(--nl-ink);font-size:clamp(21px,1.9vw,26px);font-weight:500;line-height:1.5;letter-spacing:-.02em}
.nslab-shop-page .shop-seo-body :is(h2,h3,h4){scroll-margin-top:120px;margin:2.2em 0 .65em;color:var(--nl-ink);font-family:var(--nl);font-weight:700;letter-spacing:-.03em;line-height:1.16}
.nslab-shop-page .shop-seo-body h2{padding-top:1.3em;border-top:1px solid #d9dce8;font-size:clamp(26px,2.5vw,34px)}
.nslab-shop-page .shop-seo-body h2:first-child{padding-top:0;border-top:0}
.nslab-shop-page .shop-seo-body h3{font-size:clamp(21px,1.8vw,25px)}
.nslab-shop-page .shop-seo-body h4{font-size:18px}
.nslab-shop-page .shop-seo-body :is(h2,h3,h4):first-child{margin-top:0}
.nslab-shop-page .shop-seo-body :is(strong,b){color:var(--nl-ink);font-weight:600}
.nslab-shop-page .shop-seo-body a{color:var(--nl-p);font-weight:500;text-decoration:underline;text-decoration-color:rgba(61,67,133,.35);text-decoration-thickness:1.5px;text-underline-offset:4px;transition:text-decoration-color .2s}
.nslab-shop-page .shop-seo-body a:hover,.nslab-shop-page .shop-seo-body a:focus-visible{text-decoration-color:currentColor}
.nslab-shop-page .shop-seo-body :is(ul,ol){margin:0 0 1.6em;padding:0;list-style:none;counter-reset:seo}
.nslab-shop-page .shop-seo-body li{position:relative;margin:0 0 6px;padding:16px 20px 16px 52px;border-radius:14px;background:#fff}
.nslab-shop-page .shop-seo-body ul > li::before{content:'';position:absolute;left:20px;top:1.5em;width:12px;height:12px;border-radius:50%;background:var(--nl-p);box-shadow:0 0 0 5px rgba(61,67,133,.12)}
.nslab-shop-page .shop-seo-body ol > li{counter-increment:seo}
.nslab-shop-page .shop-seo-body ol > li::before{content:counter(seo,decimal-leading-zero);position:absolute;left:20px;top:17px;color:var(--nl-p);font:700 13px/1.9 var(--nl);letter-spacing:.04em}
.nslab-shop-page .shop-seo-body li > :is(ul,ol){margin:12px 0 0}
.nslab-shop-page .shop-seo-body blockquote{margin:2em 0;padding:8px 0 8px 26px;border-left:3px solid var(--nl-p);color:var(--nl-ink);font-size:1.18em;font-weight:500;line-height:1.55}
.nslab-shop-page .shop-seo-body blockquote p:last-child{margin-bottom:0}
.nslab-shop-page .shop-seo-body img{display:block;max-width:100%;height:auto;margin:2em 0;border-radius:16px}
.nslab-shop-page .shop-seo-body hr{margin:2.4em 0;border:0;border-top:1px solid #d9dce8}
.nslab-shop-page .shop-seo-body table{display:block;width:100%;margin:0 0 1.8em;overflow-x:auto;border-collapse:collapse;font-size:15px;line-height:1.5}
.nslab-shop-page .shop-seo-body :is(th,td){padding:13px 18px 13px 0;border-bottom:1px solid #d9dce8;text-align:left;vertical-align:top}
.nslab-shop-page .shop-seo-body th{color:var(--nl-ink);font-weight:700;white-space:nowrap}

/* "Lees meer": text stays fully in the HTML; JS only adds the collapse */
.nslab-shop-page .shop-seo-main.is-collapsible .shop-seo-body{position:relative;overflow:hidden;transition:max-height .7s cubic-bezier(.16,1,.3,1)}
.nslab-shop-page .shop-seo-main.is-collapsed .shop-seo-body{max-height:520px;-webkit-mask-image:linear-gradient(#000 62%,transparent);mask-image:linear-gradient(#000 62%,transparent)}
.nslab-shop-page .shop-seo-toggle{display:inline-flex;align-items:center;gap:12px;margin-top:30px;height:52px;padding:0 26px;border:1.5px solid var(--nl-p);border-radius:100px;color:var(--nl-p);background:transparent;font:600 15px/1 var(--nl);cursor:pointer;transition:color .3s,background .3s}
.nslab-shop-page .shop-seo-toggle[hidden]{display:none}
.nslab-shop-page .shop-seo-toggle svg{width:18px;height:18px;transition:transform .4s cubic-bezier(.16,1,.3,1)}
.nslab-shop-page .shop-seo-toggle[aria-expanded="true"] svg{transform:rotate(180deg)}
.nslab-shop-page .shop-seo-toggle:hover,.nslab-shop-page .shop-seo-toggle:focus-visible{color:#fff;background:var(--nl-p)}
.nslab-shop-page .shop-seo-toggle:focus-visible{outline:3px solid var(--ed-highlight,#6e78b8);outline-offset:3px}

@media(max-width:1050px){
  .nslab-shop-page .shop-seo{padding-bottom:88px}
  .nslab-shop-page .shop-seo-card{grid-template-columns:1fr;gap:34px}
  .nslab-shop-page .shop-seo-side{position:static}
  .nslab-shop-page .shop-seo-toc{margin-top:30px}
  .nslab-shop-page .shop-seo-toc ol{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px}
}
@media(max-width:720px){
  .nslab-shop-page .shop-intro--category{padding-bottom:38px}
  .nslab-shop-page .shop-seo{padding-bottom:64px}
  .nslab-shop-page .shop-seo-card{padding:30px 22px 34px;border-radius:20px}
  .nslab-shop-page .shop-seo-title{font-size:clamp(34px,10vw,44px)}
  .nslab-shop-page .shop-seo-toc{display:none}
  .nslab-shop-page .shop-seo-body{font-size:16px;line-height:1.75}
  .nslab-shop-page .shop-seo-body > p:first-of-type{font-size:20px}
  .nslab-shop-page .shop-seo-body h2{font-size:25px}
  .nslab-shop-page .shop-seo-body li{padding:14px 16px 14px 46px}
  .nslab-shop-page .shop-seo-body ul > li::before{left:16px}
  .nslab-shop-page .shop-seo-body ol > li::before{left:16px}
  .nslab-shop-page .shop-seo-main.is-collapsed .shop-seo-body{max-height:420px}
  .nslab-shop-page .shop-seo-toggle{width:100%;justify-content:center;height:54px}
}
@media(prefers-reduced-motion:reduce){.nslab-shop-page .shop-seo *{transition:none!important}}
