
.woocommerce ul.products[class*="columns-"] { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; padding:0; clear:both; }
/* Woo smallscreen assigns width:48% inside our grid. Reset its column/float rules. */
.woocommerce ul.products[class*="columns-"] > li.product:nth-child(n) { width:100%; min-width:0; float:none; clear:none; margin:0; display:flex; flex-direction:column; box-sizing:border-box; }
.woocommerce ul.products[class*="columns-"] > li.product .woocommerce-LoopProduct-link { display:block; color:var(--ink); }
.woocommerce ul.products[class*="columns-"] > li.product a img { width:100%; height:auto; aspect-ratio:4/3; object-fit:contain; background:var(--ink); margin:0 0 20px; }
.woocommerce ul.products[class*="columns-"] > li.product .woocommerce-loop-product__title { min-height:0; font-size:1.375rem; line-height:1.25; letter-spacing:-.025em; overflow-wrap:anywhere; margin-bottom:12px; }
.woocommerce ul.products[class*="columns-"] > li.product .price { color:var(--ink); font-size:1.125rem; line-height:1.5; margin-top:16px; margin-bottom:16px; }
.woocommerce ul.products[class*="columns-"] > li.product .button { display:flex; align-items:center; justify-content:center; width:calc(100% - 40px); min-height:48px; box-sizing:border-box; margin: auto 20px 0; padding:12px 16px; text-align:center; font-size:1rem; line-height:1.35; text-transform:none; letter-spacing:0; white-space:normal; word-break:normal; overflow-wrap:normal; }
.d240-loop-facts,.d240-loop-description { margin:0 20px 12px; font-size:.9375rem; line-height:1.5; color:var(--ink); }
.d240-loop-facts { font-family:var(--mono); font-size:.8125rem; }
.woocommerce .woocommerce-ordering select { max-width:100%; min-height:48px; padding:10px 36px 10px 12px; font:inherit; font-size:1rem; border:1px solid var(--line); border-radius:4px; background-color:var(--paper); color:var(--ink); }
.woocommerce ul.products a:focus-visible,.woocommerce .woocommerce-ordering select:focus-visible { outline:3px solid var(--ink); outline-offset:3px; }
@media(max-width:1024px) { .woocommerce ul.products[class*="columns-"] { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:640px) {
 .woocommerce ul.products[class*="columns-"] { grid-template-columns:minmax(0,1fr); gap:24px; }
 body.woocommerce.archive .content-shell { padding-top:32px; padding-bottom:48px; }
 .woocommerce .woocommerce-products-header h1 { margin:0 0 20px; font-size:2.25rem; line-height:1.15; }
 .woocommerce .woocommerce-result-count,.woocommerce .woocommerce-ordering { float:none; width:100%; margin:0 0 16px; }
 .woocommerce .woocommerce-result-count { font-size:.9375rem; line-height:1.5; }
 .woocommerce .woocommerce-ordering select { width:100%; }
 /* Keep the native consent control usable, but in document flow so it cannot cover a card CTA. */
 body.woocommerce.archive .cky-btn-revisit-wrapper { position:static!important; inset:auto!important; margin:0 14px 24px; width:48px; height:48px; }
}
.product-decision { padding:22px; margin:24px 0; border:1px solid var(--line); background:#eeece5; }
.product-decision .eyebrow { margin-bottom:12px; }
.purchase-anchor { display:block; scroll-margin-top:110px; }
.product-story { clear:both; padding-top:50px; }
.product-story__section { padding:clamp(36px,6vw,75px); margin-bottom:24px; background:var(--paper); border:1px solid var(--line); }
.product-story__section h2 { font-size:clamp(1.8rem,3.5vw,3.2rem); line-height:1.1; letter-spacing:-.045em; }
.product-story__section > p { max-width:75ch; font-size:1.125rem; line-height:1.8; }
.product-story__section:nth-child(3n+1) { background:#e9e7f0; }
.product-story__author { background:var(--turquoise)!important; }
.product-faq details { padding:20px 0; border-top:1px solid var(--line); }
.product-faq summary { cursor:pointer; min-height:30px; font-weight:600; }
.product-mobile-bar { display:none; }
.product-trust { padding-left:1.2em; font-size:.95rem; line-height:1.8; }
.product-author-photo { width:clamp(150px,25vw,280px); aspect-ratio:4/5; object-fit:cover; float:right; margin:0 0 24px 32px; border-radius:4px; }
.product-story__author::after { content:""; display:table; clear:both; }
.product-comparison { overflow-x:auto; }
.product-comparison table { width:100%; border-collapse:collapse; text-align:left; font-size:1rem; line-height:1.6; }
.product-comparison caption { text-align:left; padding:0 0 20px; }
.product-comparison th,.product-comparison td { padding:16px 12px; vertical-align:top; border-bottom:1px solid var(--line); }
.product-comparison th:first-child { min-width:160px; }
.product-comparison td:nth-child(2) { min-width:230px; }
.d240-booking-form { flex-basis:100%; width:100%; margin:16px 0; padding:20px; border:1px solid var(--line); background:var(--ivory); }
.d240-booking-form label,.d240-booking-form select { display:block; width:100%; margin-bottom:12px; }
.d240-booking-form select,.d240-booking-form button { min-height:48px; max-width:100%; }
.d240-booking-form input[type="date"] { display:block; min-height:48px; width:100%; margin-bottom:18px; font:inherit; padding:10px; }
.woocommerce div.product form.cart .button { min-height:48px; }
.woocommerce-error, .woocommerce-info, .woocommerce-message { overflow-wrap:anywhere; }
@media(max-width:820px) {
 .woocommerce div.product { display:flex; flex-wrap:wrap; }
 .woocommerce div.product > .summary { order:-2; width:100%!important; float:none!important; }
 .woocommerce div.product > .woocommerce-product-gallery { order:-1; width:100%!important; float:none!important; }
 .woocommerce div.product > .product-story, .woocommerce div.product > .woocommerce-tabs, .woocommerce div.product > .related { width:100%; }
 .product-story__section { padding:28px 22px; }
 body.single-product { padding-bottom:calc(90px + env(safe-area-inset-bottom)); }
 .product-mobile-bar { display:flex; position:fixed; bottom:0; left:0; right:0; z-index:30; justify-content:space-between; align-items:center; gap:16px; padding:14px 20px calc(14px + env(safe-area-inset-bottom)); background:var(--ink); color:var(--ivory); width:100%; }
 .product-mobile-bar a { min-height:44px; display:flex; align-items:center; padding:10px 16px; background:var(--turquoise); color:var(--ink); }
 body:has(.cky-consent-container:not(.cky-hide)) .product-mobile-bar { visibility:hidden; }
 .product-author-photo { float:none; width:min(100%,280px); margin:0 0 24px; }
}
