/* Saasveld · woocommerce/single-product — PDP, qty, gewicht, opties, galerij, cross-sell */

/* ---------- Single product ---------- */
.single-product div.product{display:grid;gap:var(--wp--preset--spacing--50) var(--wp--preset--spacing--70)}
@media (min-width:782px){
	.single-product div.product{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}
	/* Alleen galerij + samenvatting naast elkaar; tabs/related/upsells over volle breedte */
	.single-product div.product > .woocommerce-tabs,
	.single-product div.product > .related,
	.single-product div.product > .up-sells{grid-column:1 / -1}
}
/* Galerij vult de linkerkolom netjes; foto in een nette kaart */
.single-product .woocommerce-product-gallery{width:100% !important;float:none !important;margin:0 !important}
.single-product .woocommerce-product-gallery__wrapper{margin:0}
.single-product .woocommerce-product-gallery__image{background:var(--wp--preset--color--surface-muted);border:1px solid var(--wp--preset--color--line);border-radius:var(--wp--custom--radius--card);overflow:hidden}
/* Beeld vult de kolom (appetite appeal); geen zwevend beeld in witruimte (CRO-onderzoek). */
.single-product .woocommerce-product-gallery__image img{width:100%;aspect-ratio:1/1;object-fit:cover;padding:0;background:var(--wp--preset--color--surface-muted);display:block}
.single-product .woocommerce-product-gallery .flex-control-thumbs{display:flex;gap:.5rem;padding:0;margin:.5rem 0 0;list-style:none}
.single-product .woocommerce-product-gallery .flex-control-thumbs li{width:64px}
.single-product .product_title{font-weight:800;font-size:clamp(1.6rem,1rem+2vw,2.4rem);margin:0 0 .5rem}
.single-product p.price{color:var(--wp--preset--color--ink);font-weight:800;font-size:1.5rem}
.single-product p.price del{color:var(--wp--preset--color--muted);font-weight:400;font-size:1rem}
.single-product p.price ins{color:var(--wp--preset--color--sale);text-decoration:none}
.single-product p.price .saasveld-price-suffix{font-size:.85rem;font-weight:400;color:var(--wp--preset--color--muted)}
.single-product form.cart{margin:1.25rem 0;padding:1.25rem;border:1px solid var(--wp--preset--color--line);border-radius:var(--wp--custom--radius--card);background:var(--wp--preset--color--surface-muted)}
.single-product .single_add_to_cart_button{width:100%;padding:1rem 1.25rem;font-size:1.05rem;margin-top:.5rem;min-height:52px;font-weight:700}
.saasveld-qty-label{display:block;font-weight:700;margin-bottom:.35rem}
/* "Opmerking"-veld dempen: het mag niet met de CTA concurreren (CRO-onderzoek). */
.single-product form.cart textarea{min-height:56px}
.single-product form.cart p:has(> textarea) > label,.single-product form.cart label[for*="opmerk" i]{color:var(--wp--preset--color--muted);font-weight:600;font-size:.85rem}

/* PDP trust-/reassurance-strip (onder de CTA) */
.saasveld-pdp-trust{list-style:none;margin:1rem 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:.6rem .9rem}
.saasveld-pdp-trust li{display:flex;align-items:center;gap:.5rem;font-size:.85rem;line-height:1.25;color:var(--wp--preset--color--ink)}
.saasveld-pdp-trust__ico{font-size:1.1rem;flex:0 0 auto;line-height:1}
@media (min-width:1000px){ .saasveld-pdp-trust{grid-template-columns:1fr 1fr} }

/* Portie-hulp "Hoeveel heb je nodig?" */
.saasveld-portion{display:flex;gap:.7rem;align-items:flex-start;margin:1rem 0 0;padding:.9rem 1rem;background:var(--wp--preset--color--surface-muted);border:1px solid var(--wp--preset--color--line);border-radius:var(--wp--custom--radius--card)}
.saasveld-portion__ico{font-size:1.35rem;line-height:1;flex:0 0 auto}
.saasveld-portion__body strong{display:block;font-size:.95rem;margin-bottom:.1rem}
.saasveld-portion__body p{margin:0;font-size:.9rem;color:var(--wp--preset--color--muted);line-height:1.4}
/* FAK product-opties + gewicht-invoer leesbaar maken */
.single-product form.cart input[type="number"],.single-product form.cart input.qty,.single-product form.cart select:not(.dwSelect),.single-product form.cart textarea{border:1px solid var(--wp--preset--color--line);border-radius:var(--wp--custom--radius--button);padding:.5rem .6rem;background:#fff}
.single-product form.cart label{font-weight:600}
/* WooCommerce tabs → moderne pill-tabs (één rij, horizontaal scrollbaar, geen tekst-wrap) */
.woocommerce-tabs ul.tabs{display:flex;flex-wrap:nowrap;gap:.5rem;list-style:none;margin:0 0 1.25rem;padding:0 0 .25rem;border:0;overflow-x:auto;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
.woocommerce-tabs ul.tabs::before{display:none}
.woocommerce-tabs ul.tabs li{flex:0 0 auto;background:none;border:1px solid var(--wp--preset--color--line);border-radius:var(--wp--custom--radius--pill);margin:0;padding:0}
.woocommerce-tabs ul.tabs li.active{background:var(--wp--preset--color--primary);border-color:var(--wp--preset--color--primary)}
.woocommerce-tabs ul.tabs li a{display:block;padding:.5rem 1rem;color:var(--wp--preset--color--ink);text-decoration:none;font-weight:600;white-space:nowrap}
.woocommerce-tabs ul.tabs li.active a{color:#fff}
.woocommerce-tabs ul.tabs li::before,.woocommerce-tabs ul.tabs li::after{display:none}

/* Quantity-stepper (mand + product) */
.quantity{display:inline-flex;align-items:center;border:1px solid var(--wp--preset--color--line);border-radius:var(--wp--custom--radius--pill);overflow:hidden}
.quantity input.qty{width:3rem;text-align:center;border:0;padding:.5rem 0;-moz-appearance:textfield;appearance:textfield}
.quantity input.qty::-webkit-outer-spin-button,.quantity input.qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.saasveld-qty-btn{border:0;background:var(--wp--preset--color--surface-muted);width:2.75rem;height:2.75rem;font-size:1.15rem;cursor:pointer;line-height:1;color:var(--wp--preset--color--ink)}
.saasveld-qty-btn:hover{background:var(--wp--preset--color--line)}

/* ---------- FAK dynamische gewicht-widget (bv. Pulled pork: "Gewicht 500 g") ---------- */
/* FAK rendert een .variations-tabel met .dynamic-weight; wij maken er een nette control van. */
.single-product .fak-variations-table{display:block;width:100%;border:0;border-collapse:collapse;margin:.25rem 0 1rem}
.single-product .fak-variations-table tbody,.single-product .fak-variations-table tr{display:block}
.single-product .fak-variations-table th.label{display:block;text-align:left;padding:0 0 .4rem;border:0;width:auto}
.single-product .fak-variations-table th.label label{font-weight:700;font-size:.95rem;color:var(--wp--preset--color--ink)}
.single-product .fak-variations-table td.value{display:block;padding:0;border:0}
/* FAK's EIGEN plugin-CSS is nog geladen en zet .dwValue op visibility:hidden en de pill op
   position:absolute (wrapper klapt in tot h=0, waarde onzichtbaar). We overschrijven dat
   met !important en bouwen een nette, in-flow gewicht-control. */
.single-product .dynamic-weight{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;min-height:52px}
.single-product .dynamic-weight__input-block{display:flex;align-items:center;gap:.6rem;flex:1 1 auto}
.single-product .dwBlock{display:flex;align-items:center;gap:.6rem;min-height:52px}
/* Pill: waarde + eenheid-dropdown, IN-FLOW (override FAK's absolute) */
.single-product form.cart .dynamic-weight__select{position:static !important;display:inline-flex !important;align-items:center;gap:.15rem;border:1.5px solid var(--wp--preset--color--line);border-radius:var(--wp--custom--radius--button);background:#fff;padding:.5rem .9rem;min-height:52px;width:auto;height:auto}
.single-product form.cart .dwValue{visibility:visible !important;position:static !important;display:inline-block !important;font-weight:800;font-size:1.15rem;line-height:1;font-variant-numeric:tabular-nums;color:var(--wp--preset--color--ink)}
.single-product form.cart .dwSelect{border:0 !important;background:transparent !important;box-shadow:none !important;outline:0;font:inherit;font-weight:700;font-size:1rem;color:var(--wp--preset--color--ink);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0 1.15rem 0 .1rem;min-height:0;height:auto;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 4.5l4 4 4-4' stroke='%23c1121f' stroke-width='1.7' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .05rem center}
/* Bij select-type is de readonly .dwInput overbodig; verberg 'm. */
.single-product .dwBlock[data-selected-type="select"] .dwInput{display:none !important}
/* Input-variant (vrije gram-invoer): net invoerveld + stepper */
.single-product .dwBlock[data-selected-type="input"] .dynamic-weight__select{display:none !important}
.single-product .dwInput{width:6.5rem;height:52px;text-align:center;border:1.5px solid var(--wp--preset--color--line);border-radius:var(--wp--custom--radius--button);font-weight:800;font-size:1.05rem;background:#fff;font-variant-numeric:tabular-nums}
.single-product .dwActions{display:inline-flex;gap:.4rem}
.single-product .dwActionBtn{width:44px;height:44px;border:1.5px solid var(--wp--preset--color--line);border-radius:50%;background:var(--wp--preset--color--surface-muted);cursor:pointer;display:grid;place-items:center;font-size:1.2rem;line-height:1;color:var(--wp--preset--color--ink)}
.single-product .dwActionBtn:hover{border-color:var(--wp--preset--color--primary)}
.single-product .dwActionBtn[data-type="plus"]::before{content:"+"}
.single-product .dwActionBtn[data-type="minus"]::before{content:"\2212"}
.fak-weight-wrapper,.dynamic-weight-wrapper{margin:.75rem 0}
.saasveld-discount{margin:.5rem 0;padding-left:1rem;color:var(--wp--preset--color--primary)}

/* ---------- Product-meta (SKU + categorieën): rustig & clean ---------- */
.single-product .product_meta{margin:1.25rem 0 0;padding-top:1rem;border-top:1px solid var(--wp--preset--color--line);font-size:.82rem;color:var(--wp--preset--color--muted);line-height:1.6}
.single-product .product_meta > span{display:block}
.single-product .product_meta .sku_wrapper,.single-product .product_meta .posted_in{font-weight:500}
.single-product .product_meta a{color:var(--wp--preset--color--muted);text-decoration:none;font-weight:600}
.single-product .product_meta a:hover{color:var(--wp--preset--color--primary)}
/* ---------- Cross-sell rail ---------- */
.cross-sells ul.products,.up-sells ul.products{grid-template-columns:repeat(2,1fr)}
@media (min-width:600px){ .cross-sells ul.products{grid-template-columns:repeat(3,1fr)} }
/* ---------- FAK product-opties (pofw) leesbaar & ruim ---------- */
.single-product .pofw-product-options-wrapper{margin:.25rem 0 1rem}
.single-product .pofw-product-options-wrapper .field{margin:0 0 1rem}
.single-product .pofw-product-options-wrapper > .field > label,.single-product .pofw-product-options-wrapper .field > .control > label{display:block;font-weight:700;margin:0 0 .4rem}
.single-product .pofw-product-options-wrapper .choice{display:flex;align-items:center;gap:.6rem;margin:.35rem 0}
.single-product .pofw-product-options-wrapper .choice label{font-weight:500;margin:0}
.single-product input.pofw-option.mamInp,.single-product .pofw-product-options-wrapper input[type="number"]{width:4.5rem;flex:0 0 auto;text-align:center}
.single-product .pofw-price{color:var(--wp--preset--color--muted);font-size:.85rem}
.single-product .per-piece-error,.single-product .pofw-error{color:var(--wp--preset--color--sale);font-size:.85rem;font-weight:600;margin:.25rem 0}
.single-product form.cart textarea,.single-product .fak-textarea--no-resize{width:100%;min-height:84px;resize:vertical}
.single-product form.cart .quantity{margin-right:.5rem}

/* Galerij-zoomknop (photoswipe-trigger, JS-geïnjecteerd): nette ronde knop rechtsboven */
.single-product .woocommerce-product-gallery{position:relative}
.single-product .woocommerce-product-gallery__trigger{position:absolute;top:1rem;right:1rem;z-index:4;width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--wp--preset--color--line);border-radius:50%;box-shadow:var(--wp--custom--shadow--card);text-indent:0;font-size:1rem;line-height:1}
