/* DoFirmy 1.1: compact purchase panel and information pages. */
:root{--df-button-radius:14px;--df-green:#00873d;--df-green-hover:#006d30}
.df-site button,.df-site input[type=submit],.df-site input[type=button],.df-site input[type=reset],.df-site .button,.df-site .df-button,.df-site .wp-block-button__link,.df-site .wc-block-components-button{border-radius:var(--df-button-radius)!important}
.df-site .df-quantity-control{border-radius:var(--df-button-radius)}
.df-site .df-search input[type=search]{border-radius:var(--df-button-radius) 0 0 var(--df-button-radius)}
.df-site .df-search button{border-radius:0 var(--df-button-radius) var(--df-button-radius) 0!important}
.df-site .df-price-label{font-size:12px;font-weight:500;letter-spacing:0;color:#697584}
.df-site .df-dual-price{display:grid;gap:5px;letter-spacing:0;line-height:1.3}
.df-site .df-price-line{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px}
.df-site .df-price-value{min-width:0}
.df-site .df-price-net .df-price-value{font-size:1em;font-weight:600;color:var(--df-ink)}
.df-site .df-price-gross .df-price-value{font-size:.77em;font-weight:500;color:#596677}
.df-site .df-dual-price del{font-size:.58em!important;display:block!important;opacity:.6;letter-spacing:0!important}
.df-site .df-dual-price ins{text-decoration:none}
.df-site .df-dual-price .df-price-gross ins{color:#596677}
/* DoFirmy 1.3: vivid prices and purchase actions. */
.df-site .df-dual-price .df-price-label,
.df-site .df-dual-price .df-price-line .df-price-value,
.df-site .df-dual-price .df-price-line .df-price-value ins,
.df-site .price .df-dual-price .df-price-line .df-price-value ins{color:var(--df-green)}
body.df-site :is(a.button.add_to_cart_button,button.button.single_add_to_cart_button){background:var(--df-green);border-color:var(--df-green);color:#fff}
body.df-site :is(a.button.add_to_cart_button,button.button.single_add_to_cart_button):is(:hover,:focus-visible){background:var(--df-green-hover);border-color:var(--df-green-hover);color:#fff}
body.df-site .df-purchase-panel button.df-wholesale-open{background:var(--df-blue);color:#fff}
body.df-site .df-purchase-panel button.df-wholesale-open:is(:hover,:focus-visible){background:#d52e37;color:#fff}
.df-header-contact .df-contact-email{display:inline-flex;align-items:center;gap:8px;font-size:13px;white-space:nowrap}
.df-header-contact .df-contact-email>.df-icon{width:20px;height:20px;flex-shrink:0;color:var(--df-blue)}
/* Net and gross share a row. Compact cards place the labels above their values. */
.df-card-price{container-type:inline-size}
.df-site .df-card-price .df-dual-price{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:10px}
.df-site .df-card-price .df-price-line{flex-wrap:nowrap;justify-content:center;gap:4px}
.df-site .df-card-price .df-price-value{font-size:clamp(12px,6cqi,18px);font-weight:600}
.df-site .df-card-price .df-price-label{font-size:clamp(10px,3.3cqi,12px)}
.df-site ul.products li.product .df-card-image img{object-fit:contain;object-position:center}
@container(max-width:300px){.df-site .df-card-price .df-price-line{flex-direction:column;align-items:center;gap:2px}}
.df-site.woocommerce div.product .df-purchase-content>p.price,.df-site .woocommerce div.product .df-purchase-content>p.price{font-size:clamp(24px,2vw,36px);line-height:1.25;letter-spacing:0;margin:0 0 22px}
.df-purchase-inner{border:1px solid #e9edf3;border-radius:20px;box-shadow:0 6px 28px #16334b07;overflow:hidden}
.df-purchase-content{padding:22px}
.df-fulfilment{display:grid;gap:14px;font-size:12px;line-height:1.6;margin:0 0 22px;padding:18px 0;border-top:1px solid var(--df-line);border-bottom:1px solid var(--df-line)}
.df-fulfilment>div{display:grid;gap:3px}
.df-fulfilment dt{font-weight:500;color:#77818d}
.df-fulfilment dd{margin:0;overflow-wrap:anywhere}
.df-fulfilment dd .stock{margin:0!important;font-size:12px!important}
.df-fulfilment a{color:var(--df-blue);text-underline-offset:3px}
.df-fulfilment a:hover{text-decoration:underline}
.df-native-buy-form>.stock,.df-native-buy-form .woocommerce-variation-price,.df-native-buy-form .woocommerce-variation-availability{display:none}
.df-site.woocommerce div.product .df-native-buy-form .cart .single_add_to_cart_button{font-weight:500;text-transform:none;white-space:normal;min-height:48px}
.df-native-buy-form .cart{gap:15px}
.df-product-favourite .df-wishlist-button{font-size:12px;padding:8px 0}
.df-product-contact{flex-wrap:wrap;justify-content:flex-start;border-radius:14px;overflow-wrap:anywhere}
.df-product-contact a{font-size:14px}
.df-site .df-product-information .woocommerce-product-details__short-description{display:none}
.df-product-overview{min-height:0}
@media(min-width:1280px){.df-product-layout{grid-template-columns:minmax(0,1fr) minmax(0,18.333334%);gap:30px}.df-purchase-content{padding:clamp(16px,1.4vw,26px)}.df-site.woocommerce div.product .df-native-buy-form .cart .single_add_to_cart_button{flex-basis:100%;width:100%}.df-fulfilment{font-size:12px}}
@media(min-width:1600px){.df-fulfilment>div{grid-template-columns:90px minmax(0,1fr);gap:10px}}
@media(min-width:769px) and (max-width:1279px){.df-product-layout{grid-template-columns:minmax(0,1fr) minmax(286px,33%)}.df-purchase-content{padding:20px}}
@media(max-width:768px){.df-purchase-panel{width:100%}.df-purchase-content{padding:24px}.df-site.woocommerce div.product .df-purchase-content>p.price{font-size:32px}.df-fulfilment>div{grid-template-columns:100px minmax(0,1fr);gap:12px}.df-mobile-purchase .df-dual-price{font-size:15px;gap:2px}.df-mobile-purchase .df-price-label{font-size:10px}.df-mobile-purchase .df-price-value{font-size:1em}.df-mobile-purchase del{display:none!important}}
/* Four clear groups and a separate company card, all editable native menus. */
.df-footer-grid{grid-template-columns:repeat(4,minmax(0,1fr)) minmax(180px,1.15fr);gap:28px;padding-top:52px;padding-bottom:48px}
.df-footer-column{min-width:0}
.df-footer-title{display:inline-flex;align-items:center;gap:10px!important;font-size:14px!important;letter-spacing:0!important;text-transform:none!important;font-weight:600!important;padding:0 0 14px;margin-bottom:12px!important;border-bottom:2px solid #3788e4}
.df-footer-title>.df-icon{width:21px;height:21px;color:#75b2f7}
.df-footer-links{display:grid;gap:3px}
.df-footer-links li{margin:0!important}
.df-footer-links a{display:block;padding:8px 0;font-size:13px;line-height:1.6;color:#c5cbd3;text-decoration:none;border-radius:8px;transition:color .15s,background .15s}
.df-footer-links a:hover{color:#fff;background:#ffffff06}
.df-footer-company{border-left:1px solid #ffffff15;padding-left:24px}
@media(max-width:1200px){.df-footer-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.df-footer-company{grid-column:1/-1;border-left:0;border-top:1px solid #ffffff15;padding:24px 0 0}}
@media(max-width:768px){.df-footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 18px}.df-footer-title{font-size:13px!important}.df-footer-links a{font-size:12px}}
/* Readable information pages with a persistent group navigation. */
.df-info-shell{display:grid;grid-template-columns:270px minmax(0,1fr);gap:28px;align-items:start}
.df-info-menu{position:sticky;top:calc(var(--df-admin) + 100px);background:#fff;border:1px solid #e8edf4;border-radius:18px;padding:22px}
.df-info-menu h2{font-size:16px;margin:0 0 16px}
.df-info-menu details{border-top:1px solid #e8edf4;padding:12px 0}
.df-info-menu summary{cursor:pointer;font-size:13px;font-weight:600;color:var(--df-ink)}
.df-info-menu ul{list-style:none;padding:8px 0 0;margin:0}
.df-info-menu a{display:block;font-size:12px;padding:8px 10px;line-height:1.5;border-radius:9px;color:#627082}
.df-info-menu a:hover,.df-info-menu a[aria-current=page]{background:#eef5ff;color:var(--df-blue)}
.df-page.df-information-page{border:1px solid #e8edf4;border-radius:20px;padding:0;overflow:hidden}
.df-information-page .df-page-header{padding:34px 40px 26px;background:linear-gradient(120deg,#f0f6ff,#fff);border-bottom:1px solid #e8edf4}
.df-information-page .df-page-header h1{font-size:clamp(24px,2.1vw,34px);margin:0;font-weight:600}
.df-page-eyebrow{display:block;color:#6892be;font-size:11px;letter-spacing:.1em;text-transform:uppercase;margin-bottom:10px}
.df-information-page .df-page-content{padding:30px 40px 40px;font-size:14px;line-height:1.9;max-width:100%}
.df-information-page .df-page-content h2{font-size:22px;margin:30px 0 15px}
.df-information-page .df-page-content h3{font-size:18px;margin:25px 0 12px}
.df-information-page .df-page-content p{margin:0 0 17px}
.df-information-page .df-page-content a{color:var(--df-blue);text-underline-offset:3px}
.df-information-page .df-page-content img{display:block;max-width:100%;height:auto;margin:20px auto;border-radius:12px}
.df-information-page .df-page-content table{width:100%;max-width:100%;border-collapse:collapse;margin:24px 0;border:1px solid #e5ebf4;table-layout:auto;font-size:13px}
.df-information-page .df-page-content th,.df-information-page .df-page-content td{border:0;border-bottom:1px solid #e5ebf4;padding:14px 16px;text-align:left;overflow-wrap:anywhere}
.df-information-page .df-page-content tr:nth-child(odd){background:#f5f8fc}
.df-information-page .df-page-content tr:first-child{background:#edf4ff;color:#173d6b}
.df-information-page .df-page-content td[colspan]{background:#edf4ff;color:#173d6b;font-weight:600}
.df-information-page .df-page-content td p,.df-information-page .df-page-content th p{margin:0}
.df-information-page .df-page-content blockquote{border-left:3px solid var(--df-blue);padding:16px 24px;background:#f4f8ff;border-radius:0 12px 12px 0}
.df-contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:25px}
.df-contact-grid label{display:block;font-size:13px;font-weight:500;margin-bottom:7px}
.df-contact-grid input,.df-contact-grid textarea{width:100%;border-radius:11px}
.df-contact-grid .df-contact-wide{grid-column:1/-1}
.df-contact-honeypot{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}
.df-contact-result{padding:15px 18px;background:#eaf7ed;border-radius:12px;font-size:13px;margin:20px 0}
.df-contact-result.is-error{background:#fff0ee;color:#a63327}
.df-review-card{padding:24px;border:1px solid #e2eaf5;background:#f6f9ff;border-radius:16px}
@media(max-width:1024px){.df-info-shell{grid-template-columns:225px minmax(0,1fr);gap:20px}.df-information-page .df-page-header,.df-information-page .df-page-content{padding:26px}}
@media(max-width:768px){.df-info-shell{grid-template-columns:minmax(0,1fr)}.df-info-menu{position:static;padding:18px}.df-info-menu details:not([open]){padding:10px 0}.df-information-page .df-page-header{padding:24px}.df-information-page .df-page-content{padding:24px;font-size:13px}.df-contact-grid{grid-template-columns:minmax(0,1fr)}.df-information-page .df-page-content th,.df-information-page .df-page-content td{padding:10px 9px;font-size:12px}}
/* DoFirmy 1.2: quantity and stock, cart and square favourite, light footer. */
.df-purchase-content{container-type:inline-size}
.df-stock-quantity-row{display:grid;grid-template-columns:minmax(88px,1fr) minmax(0,1fr);align-items:center;gap:10px;width:100%}
.df-stock-summary{min-width:0;font-size:12px;line-height:1.45;margin:0 0 14px}
.df-stock-quantity-row .df-stock-summary{margin:0}
.df-stock-caption{display:block;color:#626e7e;margin-bottom:4px}
.df-stock-summary .stock{display:block;font-size:clamp(11px,5cqi,14px)!important;font-weight:600;line-height:1.45;margin:0!important;color:#246b4d!important;overflow-wrap:normal}
.df-stock-summary .stock.df-stock-low{color:#a25b11!important}
.df-stock-summary .stock.out-of-stock{color:#b32939!important}
.df-stock-summary .stock.available-on-backorder{color:#735a31!important}
.df-site .df-stock-quantity-row .quantity{width:100%;min-width:0;float:none!important}
.df-stock-quantity-row:has(input.qty[type=hidden]){grid-template-columns:1fr}
.df-stock-quantity-row .quantity:has(input.qty[type=hidden]){display:none}
.df-purchase-panel .df-quantity-control{width:100%;min-width:0;height:46px;border-radius:10px}
.df-purchase-panel .df-quantity-control button{width:clamp(22px,10cqi,34px);min-width:22px;padding:2px;flex-shrink:0;border-radius:0!important;font-size:18px}
.df-site .df-purchase-panel .df-quantity-control input.qty{width:24px!important;min-width:0;flex:1;border-right:0!important;font-size:13px}
.df-quantity-unit{display:flex;align-items:center;padding-right:4px;font-size:10px;color:#616e80;border-right:1px solid #e0e2e5}
.df-cart-actions{display:grid;grid-template-columns:minmax(0,1fr) 46px;align-items:stretch;gap:9px;width:100%;margin-top:2px}
.df-cart-actions:not(:has(.df-wishlist-button)){grid-template-columns:1fr}
.df-site.woocommerce div.product .df-native-buy-form .cart .df-cart-actions>.single_add_to_cart_button,.df-site .woocommerce div.product .df-native-buy-form .cart .df-cart-actions>.single_add_to_cart_button{width:100%;min-width:0;float:none;flex-basis:auto;min-height:48px;margin:0;padding:10px 9px;font-size:clamp(11px,5cqi,15px);line-height:1.4;font-weight:500;border-radius:14px!important}
.df-site .df-cart-actions>.df-wishlist-button{width:46px;height:48px;min-width:46px;min-height:48px;margin:0;padding:10px;border:1px solid #a7b5c9;border-radius:8px!important;background:#fff;color:#42516a}
.df-site .df-cart-actions>.df-wishlist-button:hover,.df-site .df-cart-actions>.df-wishlist-button.is-active{color:var(--df-blue);border-color:var(--df-blue);background:#f0f6ff}
.df-cart-actions .df-wishlist-button svg{width:23px;height:23px}
.df-fulfilment{margin:20px 0 16px;padding:18px 0;gap:12px}
.df-fulfilment>div{grid-template-columns:minmax(70px,auto) minmax(0,1fr);gap:8px}
.df-site .df-native-buy-form form.cart{margin-bottom:0}
.df-site .df-native-buy-form .single_variation_wrap{width:100%}
.df-footer{background:#eef4fb;color:#4b6078;border-top:1px solid #d5e3f2}
.df-footer .df-footer-title,.df-footer .df-footer-grid h2,.df-footer .df-footer-grid h3{color:#193f69}
.df-footer .df-footer-title{border-bottom-color:#408bd0}
.df-footer .df-footer-title>.df-icon{color:#478dc6}
.df-footer .df-footer-links a{color:#455d77}
.df-footer .df-footer-grid a:hover{color:#0649c7;background:#e0ecf9}
.df-footer-company{border-color:#d0dfef}
.df-footer-bottom{background:#e2edf8;color:#45607c;border-top:1px solid #d1e0f0}
.df-footer .df-logo-text{color:#193f69}
@media(max-width:1200px){.df-footer-company{border-top-color:#d0dfef}}
@media(max-width:768px){.df-stock-quantity-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px}.df-cart-actions{grid-template-columns:minmax(0,1fr) 50px;gap:10px}.df-site .df-cart-actions>.df-wishlist-button{width:50px;min-height:50px;height:50px}.df-stock-summary{font-size:13px}.df-quantity-unit{font-size:12px;padding-right:6px}.df-stock-summary .stock{font-size:14px!important}}
