/* ── Design tokens ───────────────────────────────────────────────────────────────────────
   None of these were defined on the live site. Styles with a fallback got by; anything that
   referenced a token without one resolved to nothing, which is where the white-on-white
   footer button and weak button contrast came from (client notes, 15 Sep). Greens, background
   and fonts are Defib World's own, from the design files; neutrals come from the design
   system base those files sit on. */
:root {
  --color-bg: #FAFAFA;
  --color-surface: #e9e9ea;
  --color-text: #1d1f20;
  --color-divider: rgba(29, 31, 32, 0.16);
  --color-accent: #009A4E;
  --color-accent-100: #E0F5E8;
  --color-accent-200: #BCEBD0;
  --color-accent-300: #8FDCB0;
  --color-accent-400: #46BE7A;
  --color-accent-500: #009A4E;
  --color-accent-600: #00813F;
  --color-accent-700: #066932;
  --color-accent-800: #0B5128;
  --color-accent-900: #0C3A1E;
  --color-accent-2: #009A4E;
  --color-accent-2-100: #E0F5E8;
  --color-accent-2-300: #8FDCB0;
  --color-accent-2-500: #009A4E;
  --color-accent-2-700: #066932;
  --color-accent-2-900: #0C3A1E;
  --color-neutral-100: #f5f5f8;
  --color-neutral-200: #e7e7ea;
  --color-neutral-300: #d4d4d7;
  --color-neutral-400: #b7b7ba;
  --color-neutral-500: #98989b;
  --color-neutral-600: #7a7a7d;
  --color-neutral-700: #5d5d60;
  --color-neutral-800: #424244;
  --color-neutral-900: #2b2b2d;
  --font-heading: "futura-pt", "Futura PT", Futura, "Jost", sans-serif;
  --font-body: "futura-pt", "Futura PT", Futura, "Jost", sans-serif;
}

/* Defib World theme: behaviours the Elementor content relies on (visibility states, mega menu, drawer, icons). */

/* Elementor content is edge-to-edge; no theme wrapper spacing. */
.dw .site-main, .dw .page-content { max-width: none; margin: 0; padding: 0; }
.dw .elementor-widget-text-editor p { margin: 0; }
.dw .elementor-widget-text-editor p + p { margin-top: 0.6em; }
.dw .elementor-widget-text-editor a, .dw .elementor-heading-title a { color: inherit; }

/* Stroke-based line icons: Elementor colours SVG icons with fill; we want the stroke coloured instead. */
.dw svg.dw-line-icon { fill: none !important; stroke: currentColor; }
.dw svg.dw-line-icon [fill="currentColor"] { fill: currentColor !important; }

/* WooCommerce product loops (Products widget / archives) styled as the design's product cards */
.dw .dw-products ul.products, .dw .elementor-widget-woocommerce-archive-products ul.products { margin: 0; }
.dw .dw-products ul.products li.product, .dw .elementor-widget-woocommerce-archive-products ul.products li.product {
  background: #fff; border: 1px solid rgba(29, 31, 32, 0.16); padding: 20px; margin: 0; display: flex; flex-direction: column; gap: 10px; text-align: left; position: relative; }
.dw ul.products li.product a.woocommerce-LoopProduct-link { display: flex; flex-direction: column; gap: 10px; color: #1d1f20; text-decoration: none; flex: 1; }
.dw ul.products li.product img { width: 100%; aspect-ratio: 1; object-fit: contain; margin: 0; }
.dw ul.products li.product .woocommerce-loop-product__title { font-size: 15px; font-weight: 500; line-height: 1.3; padding: 0; margin: 0; color: #1d1f20; }
.dw ul.products li.product .price { font-family: inherit; font-weight: 500; font-size: 20px; color: #1d1f20; margin: 0; }
.dw ul.products li.product .price del { font-size: 14px; color: #7a7a7d; font-weight: 400; margin-right: 6px; }
.dw ul.products li.product .price .woocommerce-Price-amount { font-weight: 500; }
.dw ul.products li.product .button, .dw ul.products li.product .added_to_cart {
  background: #009A4E; color: #FAFAFA; border: 1px solid #009A4E; border-radius: 0; font-weight: 600; font-size: 14px; text-align: center; padding: 10px 14px; margin: 0; width: 100%; display: block; }
.dw ul.products li.product .button:hover { background: #00813F; }
.dw ul.products li.product .added_to_cart { background: transparent; color: #1d1f20; border-color: rgba(29, 31, 32, 0.16); }
.dw ul.products li.product .onsale { position: absolute; top: 14px; left: 14px; background: #E0F5E8; color: #0B5128; border-radius: 0; font-size: 14px; font-weight: 500; padding: 3px 10px; min-height: 0; line-height: 1.5; margin: 0; }
.dw .woocommerce-result-count { font-size: 14px; color: #7a7a7d; margin: 0 0 12px; }
.dw .woocommerce-ordering select { border: 1px solid #b7b7ba; background: #fff; padding: 8px 14px; font-size: 14px; font-weight: 500; }
.dw .woocommerce-pagination ul.page-numbers { border: 0; display: flex; justify-content: center; gap: 8px; margin: 18px 0 0; }
.dw .woocommerce-pagination ul.page-numbers li { border: 0; }
.dw .woocommerce-pagination .page-numbers { border: 1px solid #b7b7ba; background: #fff; padding: 8px 14px; font-size: 14px; color: #1d1f20; }
.dw .woocommerce-pagination .page-numbers.current { background: #009A4E; border-color: #009A4E; color: #fff; }
/* compare toggle injected into live product cards (site.js) */
.dw ul.products li.product .dw-compare-toggle { position: absolute; top: 14px; right: 14px; font-size: 14px; color: #7a7a7d; display: flex; align-items: center; gap: 6px; z-index: 2; cursor: pointer; }

/* Single product template: Woo widgets styled to the design */
.dw .dw-product-price .price { font-weight: 500; }
.dw .dw-product-price .price del { font-size: 15px; color: #7a7a7d; font-weight: 400; margin-right: 8px; }
.dw .dw-product-price .price ins, .dw .dw-product-price .price ins .amount, .dw .dw-product-price .price > .amount { text-decoration: none; color: #1d1f20; }
.dw .dw-add-to-cart form.cart { display: flex; gap: 12px; align-items: stretch; }
.dw .dw-add-to-cart .quantity .qty { border: 1px solid #b7b7ba; border-radius: 0; height: 46px; width: 72px; text-align: center; font: inherit; }
.dw .dw-add-to-cart form.cart button.single_add_to_cart_button.button, .woocommerce .dw .dw-add-to-cart form.cart button.button.alt { background: #009A4E; color: #FAFAFA; border: 1px solid #009A4E; border-radius: 0; font-weight: 600; font-size: 16px; padding: 0 22px; height: 46px; flex: 1; }
.dw .dw-add-to-cart form.cart button.single_add_to_cart_button.button:hover, .woocommerce .dw .dw-add-to-cart form.cart button.button.alt:hover { background: #00813F; color: #fff; }
.dw .dw-product-stock .stock { margin: 0; }
.dw .dw-product-stock .stock.in-stock::before { content: "✓ "; }
.dw .dw-product-spec table.shop_attributes { border: 0; font-size: 14px; }
.dw .dw-product-spec table.shop_attributes th, .dw .dw-product-spec table.shop_attributes td { border: 0; border-bottom: 1px solid rgba(29, 31, 32, 0.12); padding: 10px 8px; background: transparent; }
.dw .dw-product-spec table.shop_attributes th { font-weight: 500; width: 40%; color: #5d5d60; }
.dw .dw-product-content p { margin: 0 0 10px; }
.dw .dw-breadcrumb .woocommerce-breadcrumb { font-size: 14px; color: #7a7a7d; margin: 0; }
.dw .dw-breadcrumb .woocommerce-breadcrumb a { color: #066932; text-decoration: none; }
.dw .dw-product-meta .product_meta { font-size: 14px; color: #7a7a7d; }
.dw .elementor-widget-woocommerce-product-images .woocommerce-product-gallery__image img { width: 100%; height: auto; }

/* Woo pages (cart / checkout / account) sit on the design's light ground */
.dw .dw-woo-page .woocommerce-cart-form, .dw .dw-woo-page .cart_totals, .dw .dw-woo-page .woocommerce-checkout, .dw .dw-woo-page .woocommerce-MyAccount-navigation { font-size: 14px; }

/* ── Shared buttons for feature markup (compare table, finder results) ── */
.dw .dw-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; font-weight: 600; font-size: 14px; line-height: 1.2; padding: 10px 14px; border: 1px solid rgba(29, 31, 32, 0.16); text-decoration: none; color: #1d1f20; background: transparent; }
.dw .dw-btn-primary { background: #009A4E; border-color: #009A4E; color: #FAFAFA; }
.dw .dw-btn-primary:hover { background: #00813F; color: #fff; }
.dw .dw-btn-secondary:hover { background: rgba(29, 31, 32, 0.07); }
.dw .dw-tag { display: inline-flex; align-self: flex-start; font-size: 14px; letter-spacing: 0.02em; padding: 3px 10px; background: #E0F5E8; color: #0B5128; }

/* ── Compare table ([dw_compare]) ── */
.dw .dw-compare-empty { border: 1px solid #b7b7ba; background: #fff; padding: 22px; font-size: 14.5px; }
.dw .dw-compare-scroll { overflow-x: auto; }
.dw .dw-compare-table { width: 100%; border-collapse: collapse; font-size: 14px; background: #fff; border: 1px solid #b7b7ba; }
.dw .dw-compare-table th, .dw .dw-compare-table td { padding: 12px 16px; border-bottom: 1px solid rgba(29, 31, 32, 0.12); vertical-align: top; text-align: left; min-width: 180px; }
.dw .dw-compare-table th { vertical-align: bottom; border-bottom: 1px solid #b7b7ba; }
.dw .dw-compare-table .dw-compare-corner, .dw .dw-compare-label { min-width: 150px; width: 170px; font-size: 14px; letter-spacing: 0.08em; text-transform: uppercase; color: #7a7a7d; font-weight: 500; }
.dw .dw-compare-head { display: flex; flex-direction: column; gap: 8px; }
.dw .dw-compare-head img { width: 120px; height: 100px; object-fit: contain; }
.dw .dw-compare-name { font-weight: 500; font-size: 15px; line-height: 1.3; }
.dw .dw-compare-name a { color: #1d1f20; text-decoration: none; }
.dw .dw-compare-remove, .dw .dw-compare-add a { font-size: 14px; color: #066932; }
.dw .dw-compare-remove { align-self: flex-start; background: none; border: 0; padding: 0; font: inherit; font-size: 14px; color: #066932; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; } /* a button: the dead-link filter unwraps href="#" links (note 55) */
.dw .dw-compare-remove:hover, .dw .dw-compare-remove:focus { background: none; color: #0C3A1E; }
.dw .dw-compare-add { display: flex; flex-direction: column; gap: 8px; min-height: 140px; justify-content: flex-end; color: #7a7a7d; font-size: 14px; border: 1px dashed #b7b7ba; padding: 14px; }
.dw .dw-compare-inc { font-size: 14px; color: #7a7a7d; }
.dw .dw-compare-na { color: #b7b7ba; }
.dw .dw-compare-actions td { border-bottom: 0; }
.dw .dw-compare-actions .dw-btn { width: 100%; }

/* ── Defib Finder ([dw_finder]) ── */
.dw .dw-finder { display: flex; flex-direction: column; align-items: center; gap: 28px; }
.dw .dw-finder-step, .dw .dw-finder-results { width: 100%; display: flex; flex-direction: column; align-items: center; gap: 28px; }
.dw .dw-finder-step[hidden], .dw .dw-finder-results[hidden] { display: none !important; }
.dw .dw-finder-head { display: flex; flex-direction: column; align-items: center; gap: 10px; max-width: 640px; text-align: center; }
.dw .dw-finder-kicker { font-size: 14px; letter-spacing: 0.12em; text-transform: uppercase; color: #7a7a7d; font-weight: 500; }
.dw .dw-finder-progress { width: 280px; height: 6px; background: #e7e7ea; border: 1px solid #d4d4d7; }
.dw .dw-finder-progress > div { height: 100%; background: #009A4E; }
.dw .dw-finder-title { font-size: 40px; margin: 10px 0 0; font-weight: 500; text-transform: uppercase; letter-spacing: 0.02em; line-height: 1.12; }
.dw .dw-finder-intro { margin: 0; font-size: 14.5px; color: #7a7a7d; }
.dw .dw-finder-options { display: grid; grid-template-columns: repeat(3, 220px); gap: 16px; justify-content: center; }
.dw .dw-finder-option { border: 1px solid #b7b7ba; background: #fff; padding: 26px 20px; display: flex; flex-direction: column; align-items: center; gap: 12px; color: #1d1f20; cursor: pointer; font: inherit; border-radius: 0; }
.dw .dw-finder-option svg { color: #066932; }
.dw .dw-finder-option span { font-weight: 500; font-size: 17px; letter-spacing: 0.04em; text-transform: uppercase; }
.dw .dw-finder-option:hover, .dw .dw-finder-option:focus-visible { border-color: #009A4E; background: #E0F5E8; outline: none; }
.dw .dw-finder-foot { font-size: 14px; color: #7a7a7d; }
.dw .dw-finder-grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 24px; width: 100%; max-width: 1104px; align-items: start; }
.dw .dw-finder-card { border: 1px solid #b7b7ba; background: #fff; padding: 18px; display: flex; flex-direction: column; gap: 14px; }
.dw .dw-finder-card.is-recommended { border-color: #009A4E; padding: 26px; }
.dw .dw-finder-card-body { display: flex; gap: 18px; align-items: flex-start; }
.dw .dw-finder-card-body img { width: 120px; height: 120px; object-fit: contain; flex: none; }
.dw .dw-finder-card.is-recommended .dw-finder-card-body img { width: 200px; height: 200px; }
.dw .dw-finder-card-name { font-weight: 500; font-size: 17px; line-height: 1.3; }
.dw .dw-finder-card.is-recommended .dw-finder-card-name { font-size: 22px; text-transform: uppercase; letter-spacing: 0.02em; }
.dw .dw-finder-card-name a { color: #1d1f20; text-decoration: none; }
.dw .dw-finder-bullets { display: flex; flex-direction: column; gap: 4px; font-size: 14px; color: #5d5d60; margin: 8px 0; }
.dw .dw-finder-price { font-weight: 500; font-size: 20px; }
.dw .dw-finder-price span { font-size: 14px; color: #7a7a7d; font-weight: 400; }
.dw .dw-finder-cta { display: flex; gap: 10px; flex-wrap: wrap; }
.dw .dw-finder-side { display: flex; flex-direction: column; gap: 16px; }
.dw .dw-finder-panel { border: 1px solid #b7b7ba; background: #fff; padding: 20px; display: flex; flex-direction: column; gap: 12px; font-size: 14px; }
.dw .dw-finder-panel .dw-finder-card { border: 0; padding: 0; }
.dw .dw-finder-panel-title { font-weight: 500; font-size: 15px; letter-spacing: 0.06em; text-transform: uppercase; }
.dw .dw-finder-panel p { margin: 0; color: #5d5d60; }
.dw .dw-finder-restart { font-size: 14px; }
@media (max-width: 767px) {
  .dw .dw-finder-title { font-size: 28px; }
  .dw .dw-finder-options { grid-template-columns: repeat(2, 1fr); width: 100%; }
  .dw .dw-finder-grid { grid-template-columns: 1fr; }
  .dw .dw-finder-card-body { flex-direction: column; }
}

/* Menu cart: icon + count only (no subtotal text) */
.dw .elementor-menu-cart__toggle .elementor-button-text { display: none; }
.dw .elementor-menu-cart__toggle .elementor-button-icon { margin: 0; }

/* Toggleable states (site.js) */
.dw .dw-hidden { display: none !important; }

/* Mega menu: sits under the nav row, full width */
.dw .dw-nav-wrap { position: relative; z-index: 130; } /* above the mega overlay (110), otherwise the overlay steals the hover and the panel flickers */
.dw .dw-mega { position: absolute !important; left: 0; right: 0; top: 100%; z-index: 120; }
.dw .dw-mega-open .dw-mega { display: grid !important; }
.dw .dw-mega-trigger.is-open .elementor-heading-title { color: #066932; box-shadow: inset 0 -2px 0 #009A4E; }
.dw .dw-nav-link .dw-chevron { display: inline-block; vertical-align: middle; margin-left: 4px; transition: transform 0.15s; }
.dw .dw-mega-trigger.is-open .dw-chevron { transform: rotate(180deg); }
.dw .dw-mega-offer ul.products { grid-template-columns: 1fr !important; }
.dw .dw-mega-offer ul.products li.product { border: 0; padding: 0; }
.dw .dw-nav-link.is-active .elementor-heading-title { color: #066932; box-shadow: inset 0 -2px 0 #009A4E; }
.dw .dw-mega-overlay { position: fixed; inset: 0; background: rgba(29, 31, 32, 0.35); z-index: 110; }

/* Mobile drawer */
.dw .dw-drawer { position: fixed !important; inset: 0; z-index: 200; overflow-y: auto; }
.dw .dw-drawer-open .dw-drawer { display: flex !important; }
body.dw-drawer-open { overflow: hidden; }

/* Filter forms render as a sidebar list */
.dw .dw-filters .elementor-field-subgroup .elementor-field-option { display: block; }

/* Elementor menu cart: match the line-icon header */
.dw .elementor-menu-cart__toggle .elementor-button { background: transparent; border: 0; padding: 0; color: inherit; }

/* WooCommerce prints stock inside the cart form too; the template already shows it above */
.dw .dw-add-to-cart .stock { display: none; }
.dw .dw-add-to-cart form.cart .button { flex: 1; }

/* Elementor sizes product-grid columns with "auto" tracks, which let a card's widest line push the grid past the phone screen */
.dw ul.products.elementor-grid > li.product { min-width: 0; }
.dw .elementor-grid-2 ul.products.elementor-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dw .elementor-grid-3 ul.products.elementor-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dw .elementor-grid-4 ul.products.elementor-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1024px) {
  .dw .elementor-grid-tablet-2 ul.products.elementor-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dw .elementor-grid-tablet-3 ul.products.elementor-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .dw .elementor-grid-mobile-1 ul.products.elementor-grid { grid-template-columns: minmax(0, 1fr); }
  .dw .elementor-grid-mobile-2 ul.products.elementor-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ── plain (migrated) pages: FAQs, delivery, returns, policies ── */
.dw .site-main > .page, .dw .site-main > article.page { max-width: 860px; margin: 0 auto; padding: 32px 24px 72px; }
.dw .page .entry-title, .dw .page .page-header h1 { text-transform: uppercase; font-weight: 500; letter-spacing: 0.02em; font-size: 38px; margin: 0 0 18px; }
.dw .page-content, .dw .entry-content { font-size: 15.5px; line-height: 1.7; color: #3a3d40; }
.dw .page-content h2, .dw .entry-content h2 { font-size: 24px; text-transform: uppercase; font-weight: 500; letter-spacing: 0.02em; margin: 34px 0 10px; color: #1d1f20; }
.dw .page-content h3, .dw .entry-content h3 { font-size: 18px; font-weight: 500; margin: 26px 0 8px; color: #1d1f20; }
.dw .page-content p, .dw .entry-content p, .dw .page-content ul, .dw .page-content ol { margin: 0 0 14px; }
.dw .page-content a, .dw .entry-content a { color: #007A3E; }
.dw .page-content table { width: 100%; border-collapse: collapse; margin: 0 0 18px; font-size: 14px; }
.dw .page-content th, .dw .page-content td { border: 1px solid #d9d9dc; padding: 8px 10px; text-align: left; vertical-align: top; }
.dw .page-content img { max-width: 100%; height: auto; }

/* ── blog: post content ── */
.dw .dw-post-content { color: #3a3d40; }
.dw .dw-post-content h2 { font-size: 26px; text-transform: uppercase; font-weight: 500; letter-spacing: 0.02em; margin: 30px 0 10px; color: #1d1f20; scroll-margin-top: 90px; }
.dw .dw-post-content h3 { font-size: 20px; font-weight: 500; margin: 24px 0 8px; color: #1d1f20; scroll-margin-top: 90px; }
.dw .dw-post-content p, .dw .dw-post-content ul, .dw .dw-post-content ol { margin: 0 0 16px; }
.dw .dw-post-content a { color: #007A3E; text-decoration: underline; }
.dw .dw-post-content img { max-width: 100%; height: auto; display: block; margin: 8px 0 18px; }
.dw .dw-post-content blockquote { border-left: 3px solid #009A4E; margin: 0 0 16px; padding: 4px 0 4px 18px; color: #1d1f20; }
.dw .dw-post-content table { width: 100%; border-collapse: collapse; margin: 0 0 18px; font-size: 14px; }
.dw .dw-post-content th, .dw .dw-post-content td { border: 1px solid #d9d9dc; padding: 8px 10px; text-align: left; vertical-align: top; }
.dw .dw-post-hero img { width: 100%; height: 100%; object-fit: cover; display: block; }
.dw .dw-post-hero .elementor-widget-container, .dw .dw-post-hero { height: 100%; }
.dw .dw-post-terms .elementor-icon-list-items { margin: 0; padding: 0; }
.dw .dw-post-terms .elementor-icon-list-item { display: inline-flex; }
.dw .dw-post-terms .elementor-post-info__terms-list-item { display: inline-block; border: 1px solid #009A4E; color: #007A3E; font-size: 14px; padding: 3px 10px; text-decoration: none; margin: 0 6px 0 0; }
.dw .dw-post-terms .elementor-post-info__terms-list-item:not(:last-child)::after { display: none; }
.dw .dw-post-meta .elementor-icon-list-items { display: flex; flex-wrap: wrap; gap: 4px 14px; margin: 0; padding: 0; }
.dw .dw-post-meta .elementor-icon-list-item { display: inline-flex; gap: 6px; color: #7a7a7d; }
.dw .dw-post-meta .elementor-icon-list-item a { color: #1d1f20; font-weight: 500; }
.dw .dw-toc, .dw .dw-toc > .elementor-widget-container { border: 0; } /* note 64: the box around it is the design's border; Elementor's own TOC border doubled it */
.dw .dw-toc .elementor-toc__header { border: 0; padding: 0 0 10px; }
.dw .dw-toc .elementor-toc__header-title { font-family: inherit; font-size: 14px; letter-spacing: 0.08em; text-transform: uppercase; font-weight: 500; }
.dw .dw-toc .elementor-toc__body { padding: 0; }
.dw .dw-toc .elementor-toc__list-item { font-size: 14px; line-height: 1.5; margin: 0 0 6px; }
.dw .dw-toc .elementor-toc__list-item-text { color: #007A3E; }
.dw .dw-breadcrumb, .dw .dw-breadcrumb a { color: #7a7a7d; font-size: inherit; }
.dw .dw-breadcrumb a:hover { color: #007A3E; }
.dw .dw-breadcrumb .breadcrumb_last { color: #1d1f20; font-weight: 500; }

/* ── blog: post cards (Posts / Archive Posts widgets) ── */
.dw .dw-posts .elementor-posts-container { gap: 18px; }
.dw .dw-posts article.elementor-post { border: 1px solid #d9d9dc; background: #fff; margin: 0; display: flex; flex-direction: column; }
.dw .dw-posts .elementor-post__thumbnail__link { display: block; margin: 0; }
.dw .dw-posts .elementor-post__thumbnail { height: 170px; padding: 0; }
.dw .dw-posts .elementor-post__thumbnail img { width: 100%; height: 100%; object-fit: cover; }
.dw .dw-posts .elementor-post__text { padding: 18px 20px 20px; display: flex; flex-direction: column; gap: 8px; }
.dw .dw-posts .elementor-post__title { font-size: 19px; line-height: 1.15; text-transform: uppercase; letter-spacing: 0.02em; font-weight: 500; margin: 0; }
.dw .dw-posts .elementor-post__title a { color: #1d1f20; text-decoration: none; }
.dw .dw-posts .elementor-post__title a:hover { color: #007A3E; }
.dw .dw-posts .elementor-post__badge { position: static; align-self: flex-start; order: -1; background: #fff; border: 1px solid #009A4E; color: #007A3E; border-radius: 0; font-size: 14px; font-weight: 400; padding: 3px 10px; text-transform: none; }
.dw .dw-posts .elementor-post__meta-data { font-size: 14px; color: #7a7a7d; margin: 0; }
.dw .dw-posts .elementor-post__meta-data span + span::before { content: " · "; }
.dw .dw-posts .elementor-pagination { margin-top: 26px; display: flex; justify-content: center; gap: 8px; }
.dw .dw-posts .elementor-pagination .page-numbers { border: 1px solid #d9d9dc; min-width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; padding: 0 10px; color: #1d1f20; text-decoration: none; font-size: 14px; margin: 0; }
.dw .dw-posts .elementor-pagination .page-numbers.current { background: #E0F5E8; border-color: #009A4E; color: #0B5128; }
.dw .dw-related .elementor-posts-container { margin: 0; }
.dw .dw-checkout-note { font-size: 14px; color: #7a7a7d; margin: 0 0 12px; }

/* ── classic WooCommerce checkout / account pages ── */
.dw.woocommerce-checkout .site-main > .page, .dw.woocommerce-account .site-main > .page { max-width: 1180px; }
.dw .woocommerce form .form-row label { font-size: 14px; color: #3a3d40; margin-bottom: 4px; }
.dw .woocommerce form .form-row input.input-text, .dw .woocommerce form .form-row textarea, .dw .woocommerce form .form-row .select2-selection { border: 1px solid #d9d9dc; border-radius: 0; padding: 10px 12px; background: #fff; font: inherit; min-height: 44px; }
.dw .woocommerce form .form-row input.input-text:focus, .dw .woocommerce form .form-row textarea:focus { border-color: #009A4E; outline: none; }
.dw .woocommerce h3, .dw .woocommerce-checkout h3#order_review_heading { font-size: 22px; text-transform: uppercase; font-weight: 500; letter-spacing: 0.02em; margin: 26px 0 12px; }
.dw .woocommerce-checkout .woocommerce-checkout-review-order-table, .dw .woocommerce table.shop_table { border: 1px solid #d9d9dc; border-radius: 0; border-collapse: collapse; }
.dw .woocommerce table.shop_table th, .dw .woocommerce table.shop_table td { border-color: #e6e6e8; padding: 10px 12px; font-size: 14px; }
.dw .woocommerce-checkout #payment { background: #fafafa; border: 1px solid #d9d9dc; border-radius: 0; }
.dw .woocommerce-checkout #payment div.payment_box { background: #fff; border: 1px solid #e6e6e8; border-radius: 0; font-size: 14px; }
.dw .woocommerce-checkout #payment div.payment_box::before { display: none; }
.dw .woocommerce-checkout #payment ul.payment_methods { border-bottom-color: #e6e6e8; }
.dw .woocommerce-checkout #payment ul.payment_methods li label { font-weight: 500; }
.dw .woocommerce #payment #place_order, .dw .woocommerce button.button.alt, .dw .woocommerce .button.alt, .dw .woocommerce button.button, .dw .woocommerce a.button, .dw .woocommerce input.button { background: #009A4E; color: #fff; border-radius: 0; font-weight: 600; font-size: 15px; padding: 14px 26px; min-height: 48px; }
.dw .woocommerce #payment #place_order:hover, .dw .woocommerce button.button.alt:hover, .dw .woocommerce a.button:hover { background: #00813F; color: #fff; }
.dw .woocommerce #payment #place_order { width: 100%; }
.dw .woocommerce-privacy-policy-text, .dw .woocommerce-terms-and-conditions-wrapper { font-size: 14px; color: #7a7a7d; }
.dw .woocommerce-message, .dw .woocommerce-info, .dw .woocommerce-error { border-top-color: #009A4E; background: #f3faf6; border-radius: 0; }
.dw .woocommerce-info::before, .dw .woocommerce-message::before { color: #009A4E; }
.dw .woocommerce-checkout .woocommerce-checkout-payment .dw-checkout-note { padding: 0 1em; }

/* ── empty basket, in-stock alternatives ── */
.dw .dw-empty-cart { max-width: 1180px; margin: 0 auto; }
.dw .dw-empty-cart__actions { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; margin: 0 0 40px; }
.dw .dw-empty-cart .button.dw-btn-secondary { background: #fff; color: #1d1f20; border: 1px solid rgba(29,31,32,0.16); }
.dw .dw-empty-cart__title { font-size: 26px; text-transform: uppercase; font-weight: 500; letter-spacing: 0.02em; margin: 0 0 18px; }
.dw .woocommerce-cart .cart-empty.woocommerce-info { text-align: center; max-width: 640px; margin: 24px auto 20px; }
.dw .return-to-shop { display: none; }
.dw .dw-alternatives { padding: 8px 0 24px; }
.dw .dw-alternatives__head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin: 0 0 16px; }
.dw .dw-alternatives__head h2 { font-size: 26px; text-transform: uppercase; font-weight: 500; letter-spacing: 0.02em; margin: 0; }
.dw .dw-alternatives__head a { color: #007A3E; font-size: 14px; font-weight: 500; }
.dw .dw-alternatives ul.products { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin: 0; }
@media (max-width: 767px) { .dw .dw-alternatives ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ── rent box, cart add-ons, availability ── */
.dw .dw-rent-box { display: flex; gap: 16px; align-items: center; justify-content: space-between; border: 1px solid #d9d9dc; background: #fff; padding: 16px 18px; margin: 16px 0 0; }
.dw .dw-rent-box > div { display: flex; flex-direction: column; gap: 4px; font-size: 14px; color: #3a3d40; }
.dw .dw-rent-box strong { font-size: 15px; color: #1d1f20; }
.dw .dw-rent-box .button { white-space: nowrap; }
.dw .dw-cart-availability { font-size: 14px; color: #0B5128; margin-top: 4px; }
.dw .dw-cart-addons { max-width: 1180px; margin: 32px auto 0; }
.dw .dw-cart-addons h2 { font-size: 22px; text-transform: uppercase; font-weight: 500; letter-spacing: 0.02em; margin: 0 0 14px; }
.dw .dw-cart-addons ul.products { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
@media (max-width: 767px) { .dw .dw-rent-box { flex-direction: column; align-items: stretch; } .dw .dw-cart-addons ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ── nav links (row containers with chevron) and active state ── */
.dw .dw-nav-link.e-con { --flex-wrap: nowrap; }
.dw .dw-nav-link.e-con > .elementor-element { width: auto; }
.dw .dw-nav-link.is-active .elementor-heading-title, .dw .dw-nav-link.is-active .elementor-widget-text-editor, .dw .dw-nav-link.is-active .dw-chevron { color: #066932; }
.dw .dw-nav-link.is-active .elementor-heading-title, .dw .dw-nav-link.is-active .elementor-widget-text-editor p { box-shadow: inset 0 -2px 0 #009A4E; }
.dw .dw-nav-link .dw-chevron { margin: 0; }

/* ── product cards: availability/sale strip sits just above the title, image and title link to the product ── */
.dw ul.products li.product .onsale { position: static; order: 1; width: 100%; box-sizing: border-box; text-align: left; padding: 4px 10px; font-size: 14px; background: #E0F5E8; color: #0B5128; }
.dw ul.products li.product .dw-loop-availability { order: 1; width: 100%; box-sizing: border-box; padding: 4px 10px; font-size: 14px; background: #E0F5E8; color: #0B5128; }
.dw ul.products li.product .dw-loop-availability.is-backorder { background: #fff; border: 1px solid #009A4E; }
.dw ul.products li.product img, .dw ul.products li.product .attachment-woocommerce_thumbnail { order: 0; }
.dw ul.products li.product .woocommerce-loop-product__title { order: 2; }
.dw ul.products li.product .price { order: 3; }
.dw ul.products li.product a.woocommerce-LoopProduct-link { position: relative; z-index: 1; }
.dw ul.products li.product a.woocommerce-LoopProduct-link, .dw .elementor-widget-woocommerce-products ul.products li.product a.woocommerce-LoopProduct-link { display: flex !important; flex-direction: column !important; gap: 10px; }
.dw .dw-nav, .dw .dw-nav-wrap > .dw-nav { position: relative; z-index: 125; } /* nav row above the overlay inside the header stacking context */

/* more room around the sale / availability strip (Elementor note 8) */
.dw ul.products li.product .onsale, .dw ul.products li.product .dw-loop-availability { padding: 7px 12px; margin: 4px 0 2px; }
/* mega-menu tiles hover (note 7) */
.dw .dw-mega .e-con[class*="elementor-element"]:has(> .elementor-widget-image + .elementor-widget-heading):hover { border-color: #009A4E !important; background: #E0F5E8 !important; }

/* ── 11 Sep notes ── */
/* text blocks end flush, so rows of icon + text + arrow centre properly (note 11) */
.dw .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
/* sale and availability strips share one size (note 12) */
.dw ul.products li.product .onsale, .dw ul.products li.product .dw-loop-availability { padding: 7px 12px !important; line-height: 1.7 !important; min-height: 0 !important; min-width: 0 !important; font-size: 14px !important; margin: 4px 0 2px !important; border-radius: 0 !important; }
/* rental term as segmented radio options (note 15) */
.dw .elementor-field-type-radio .elementor-field-subgroup { display: flex; flex-wrap: wrap; gap: 0; }
.dw .elementor-field-type-radio .elementor-field-option { margin: 0 -1px 0 0; }
.dw .elementor-field-type-radio .elementor-field-option input { position: absolute; opacity: 0; }
.dw .elementor-field-type-radio .elementor-field-option label { display: inline-block; border: 1px solid #d9d9dc; background: #fff; padding: 9px 14px; font-size: 14px; cursor: pointer; }
.dw .elementor-field-type-radio .elementor-field-option input:checked + label { background: #009A4E; border-color: #009A4E; color: #fff; }
.dw .elementor-field-type-radio .elementor-field-option input:focus-visible + label { outline: 2px solid #066932; outline-offset: 2px; }
/* frequently bought with, checkout add-ons */
.dw .dw-fbt, .dw .dw-checkout-addons { border: 1px solid #d9d9dc; background: #fff; padding: 16px 18px; margin: 16px 0; }
.dw .dw-fbt h2.dw-addons__title, .dw .dw-checkout-addons h2.dw-addons__title { font-size: 14px; letter-spacing: 0.08em; text-transform: uppercase; font-weight: 500; margin: 0 0 10px; }
.dw .dw-addons { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.dw .dw-addons li { display: flex; align-items: center; gap: 12px; font-size: 14px; }
.dw .dw-addon__name { display: flex; align-items: center; gap: 10px; flex: 1; color: #1d1f20; text-decoration: none; min-width: 0; }
.dw .dw-addon__name img { width: 40px; height: 40px; object-fit: contain; flex: none; }
.dw .dw-addon__price { white-space: nowrap; font-weight: 500; }
.dw .dw-addon__price small, .dw .dw-addon__price .woocommerce-price-suffix { display: none; }
.dw .dw-addons .button.dw-addon__add { padding: 6px 14px; min-height: 0; font-size: 14px; background: #fff; color: #1d1f20; border: 1px solid rgba(29,31,32,0.16); }
.dw .dw-sector-products ul.products { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin: 0; }
@media (max-width: 767px) { .dw .dw-sector-products ul.products { grid-template-columns: 1fr; } }
/* Elementor gives each non-inline option flex-basis 100%: keep the rental term options on one row (note 15) */
.dw .elementor-field-type-radio .elementor-field-subgroup .elementor-field-option { flex-basis: auto !important; width: auto !important; }
/* icon widgets: no inline line box under the SVG, so icons centre with the text beside them (note 11) */
.dw .elementor-widget-icon .elementor-icon-wrapper, .dw .elementor-widget-icon .elementor-icon { display: flex; line-height: 0; }

/* WooCommerce buttons centre their label vertically, like Elementor buttons (note 17) */
.dw ul.products li.product .button, .dw ul.products li.product .added_to_cart,
.dw .woocommerce a.button, .dw .woocommerce button.button, .dw .woocommerce input.button, .dw .woocommerce #payment #place_order,
.dw .dw-addons .button, .dw .dw-rent-box .button, .dw .dw-empty-cart .button { display: inline-flex !important; align-items: center; justify-content: center; text-align: center; line-height: 1.2; }
.dw ul.products li.product .button, .dw ul.products li.product .added_to_cart { display: flex !important; }

/* fixed compare bars span the viewport exactly: no sideways scroll on phones (mobile scan) */
.dw .dw-if--showBar.e-con { left: 0 !important; right: 0 !important; width: auto !important; max-width: 100vw; margin: 0 !important; transform: none !important; box-sizing: border-box; }

/* WooCommerce's columns-N float widths shrink items inside our CSS grids (basket add-ons crushed on mobile) */
.dw .dw-cart-addons ul.products li.product, .dw .dw-sector-products ul.products li.product, .dw .dw-alternatives ul.products li.product,
.dw .dw-empty-cart ul.products li.product, .dw .dw-mega-offer ul.products li.product { width: auto !important; float: none !important; margin: 0 !important; }
.dw .dw-cart-addons ul.products::before, .dw .dw-cart-addons ul.products::after { display: none; }

/* Header search (note 29): the panel under the nav that the magnifier opens. */
.dw-nav-wrap .dw-search-panel { display: none; }
.dw-nav-wrap.dw-search-open .dw-search-panel { display: flex; }
.dw-nav-wrap .dw-search-panel > .elementor-widget-search-form { flex: 1 1 auto; max-width: 720px; width: auto; }
.dw-search-panel .elementor-search-form__input { min-width: 0; }
.dw-search-toggle[aria-expanded="true"] { color: var(--color-accent-700); }

/* Search results: the archive loop uses the same card rhythm as a category page. */
.dw-search-results .elementor-posts-container { gap: 18px; }

/* Note 31: the foot-of-page add to basket, now a labelled strip rather than a stray quantity box. */
.dw-buy-again .dw-add-to-cart form.cart { margin: 0; display: flex; align-items: center; gap: 12px; }

/* Classic checkout needs the same page heading as everywhere else. */
.dw-checkout-title { font-family: var(--font-heading); font-weight: 500; font-size: 40px; text-transform: uppercase; letter-spacing: 0.02em; margin: 0 0 24px; }
@media (max-width: 767px) { .dw-checkout-title { font-size: 28px; } }

/* Note 30: 151 of the published products carry no attributes, weight or dimensions, which left the
   Specification block as a bare heading. Hide the block when the attributes table came back empty.
   (Elementor's container should_render filter is never called in 3.3x, so this is done here.) */
.e-con:has(> .elementor-widget-woocommerce-product-additional-information):not(:has(.woocommerce-product-attributes tr)) { display: none !important; }

/* Mobile product page: the quantity box and Add to basket shared a fixed-width row, so 35px of the
   main button was clipped off the right edge. The mobile artboard's buy bar is price + button with no
   stepper, so drop the stepper on phones and let the button have the width. Quantity is still editable
   in the basket. */
@media (max-width: 767px) {
  .dw-mobile-section .elementor-widget-woocommerce-product-add-to-cart { flex: 1 1 auto; min-width: 0; width: auto; }
  .dw-mobile-section .e-atc-qty-button-holder { width: 100%; gap: 0; }
  .dw-mobile-section .e-atc-qty-button-holder .quantity { display: none; }
  .dw-mobile-section .single_add_to_cart_button { flex: 1 1 auto; min-width: 0; white-space: nowrap; }
}

/* ── My Account: the sidebar, device cards and rental panels from the design ───────────── */
.woocommerce-account .woocommerce { display: grid; grid-template-columns: 228px 1fr; gap: 40px; align-items: start; }
.woocommerce-account .woocommerce-MyAccount-navigation { border: 1px solid var(--color-neutral-400, #b7b7ba); background: #fff; }
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--color-neutral-300, #e2e2e4); }
.woocommerce-account .woocommerce-MyAccount-navigation li:last-child { border-bottom: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation a {
  display: block; padding: 15px 18px; text-decoration: none; color: var(--color-text, #1d1f20);
  font-family: var(--font-heading); font-weight: 500; font-size: 15px; border-left: 3px solid transparent;
}
.woocommerce-account .woocommerce-MyAccount-navigation a:hover { background: #f6f7f6; }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { border-left-color: var(--color-accent, #009A4E); background: #eaf6ee; color: var(--color-accent-700, #066932); }
.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a { color: #6b6f6c; font-weight: 400; }
.woocommerce-account .woocommerce-MyAccount-content { min-width: 0; }
.dw-acc-intro { color: #5c6a63; margin: 0 0 22px; max-width: 70ch; }
.dw-acc-empty { border: 1px dashed var(--color-neutral-400, #b7b7ba); padding: 28px; text-align: center; }
.dw-acc-empty p { margin: 0 0 14px; }
.dw-acc-empty p:last-child { margin: 0; }
.dw-acc-alert {
  display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap;
  background: #eaf6ee; border: 1px solid #b7e0c6; padding: 16px 20px; margin-bottom: 22px;
}
.dw-acc-alert .button { flex: none; }
.dw-acc-add { border: 1px dashed var(--color-neutral-400, #b7b7ba); padding: 18px 20px; color: #5c6a63; font-size: 15px; }

.dw-device { display: grid; grid-template-columns: 120px 1fr 230px; gap: 22px; border: 1px solid var(--color-neutral-400, #b7b7ba); background: #fff; padding: 22px; margin-bottom: 18px; }
.dw-device__img img { width: 100%; height: auto; display: block; }
.dw-device__main { min-width: 0; }
.dw-device__head { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 10px; margin: 0 0 6px; }
.dw .dw-device h2.dw-device__title { font-family: var(--font-heading); font-weight: 500; font-size: 20px; text-transform: uppercase; letter-spacing: .02em; margin: 0; line-height: 1.2; color: #1d1f20; }
.dw-device__head .dw-device__tag { margin-left: 0; vertical-align: 0; }
.dw-device__edit { margin: 14px 0 0; padding-top: 12px; border-top: 1px solid var(--color-neutral-300, #e2e2e4); }
.dw-device__edit summary { cursor: pointer; font-size: 14px; color: #066932; }
.dw-device__edit .dw-device__form { border-top: 0; padding-top: 0; margin-top: 10px; }
.dw-device__tag { display: inline-block; vertical-align: 2px; margin-left: 8px; background: #eaf6ee; color: var(--color-accent-700, #066932); font-family: var(--font-body); font-size: 14px; font-weight: 500; text-transform: none; letter-spacing: 0; padding: 3px 9px; border-radius: 3px; }
.dw-device__meta { color: #5c6a63; font-size: 14px; margin: 0 0 14px; }
.dw-device__bars { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 26px; }
.dw-bar__head { display: flex; justify-content: space-between; gap: 10px; font-size: 14px; margin-bottom: 5px; }
.dw-bar__head span:first-child { font-weight: 500; }
.dw-bar__head .is-soon { color: #b3241a; font-weight: 500; }
.dw-bar__unknown { color: #8a9089; }
.dw-bar__track { height: 5px; background: #e2e6e3; }
.dw-bar__track i { display: block; height: 100%; background: var(--color-accent, #009A4E); }
.dw-bar__track.is-empty { opacity: .45; }
.dw-device__rental { margin: 14px 0 0; font-size: 14px; color: #5c6a63; }
.dw-device__form { display: flex; align-items: flex-end; gap: 12px; flex-wrap: wrap; margin: 16px 0 0; padding-top: 14px; border-top: 1px solid var(--color-neutral-300, #e2e2e4); }
.dw-device__form label { font-size: 14px; color: #5c6a63; display: flex; flex-direction: column; gap: 4px; }
.dw-device__form input[type=text] { padding: 8px 10px; border: 1px solid var(--color-neutral-400, #b7b7ba); font-size: 14px; min-width: 190px; }
.dw-device__form .dw-device__check { flex-direction: row; align-items: center; gap: 7px; padding-bottom: 9px; }
.dw-device__form .button { padding: 9px 18px; }
.dw-device__actions { display: flex; flex-direction: column; gap: 9px; align-items: stretch; }
.dw-device__actions .button { text-align: center; }
.dw-device__actions .button.is-quiet { background: #fff; color: var(--color-text, #1d1f20); border: 1px solid var(--color-neutral-400, #b7b7ba); }
.dw-device__link { font-size: 14px; text-align: center; }

.dw-rental { border: 1px solid var(--color-neutral-400, #b7b7ba); background: #fff; padding: 22px; margin-bottom: 18px; }
.dw-rental__head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.dw-rental__head h3 { font-family: var(--font-heading); font-weight: 500; font-size: 19px; text-transform: uppercase; letter-spacing: .02em; margin: 0; }
.dw-rental__status { font-size: 14px; color: #5c6a63; }
.dw-rental__facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 14px 20px; margin: 18px 0 0; }
.dw-rental__facts dt { font-size: 14px; text-transform: uppercase; letter-spacing: .08em; color: #5c6a63; margin-bottom: 3px; }
.dw-rental__facts dd { margin: 0; font-weight: 500; }
.dw-rental__invoices { margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--color-neutral-300, #e2e2e4); }
.dw-rental__invoices h4 { font-family: var(--font-heading); font-size: 14px; text-transform: uppercase; letter-spacing: .08em; margin: 0 0 8px; }
.dw-rental__invoices ul { list-style: none; margin: 0; padding: 0; font-size: 14px; }
.dw-rental__invoices li { padding: 5px 0; border-bottom: 1px solid #f0f2f0; }
.dw-rental__actions { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin: 18px 0 0; }

@media (max-width: 900px) {
  .woocommerce-account .woocommerce { grid-template-columns: 1fr; gap: 24px; }
  .dw-device { grid-template-columns: 84px 1fr; }
  .dw-device__actions { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; }
  .dw-device__actions .button { flex: 1 1 auto; }
}
@media (max-width: 560px) {
  .dw-device__bars { grid-template-columns: 1fr; }
  .dw-acc-alert { flex-direction: column; align-items: flex-start; }
}

/* The "ex VAT · £x inc" suffix is a footnote to the price, not part of it: smaller, grey,
   and it must not inherit the price's own colour anywhere it appears. */
.woocommerce-price-suffix,
.price .woocommerce-price-suffix,
.dw-product-price .woocommerce-price-suffix,
li.product .price .woocommerce-price-suffix {
  font-size: 14px;
  font-weight: 400;
  color: #6b7370;
  letter-spacing: 0;
  white-space: nowrap;
}
.woocommerce-price-suffix .woocommerce-Price-amount,
.woocommerce-price-suffix .woocommerce-Price-currencySymbol { color: inherit; font-size: inherit; font-weight: inherit; }

/* ── Sign in: the card and the "why bother with an account" panel ─────────────────────── */
.woocommerce-account:not(.logged-in) .woocommerce { display: block; }
.dw-signin { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 40px; align-items: start; }
.dw-signin__form { border: 1px solid var(--color-neutral-400, #b7b7ba); background: #fff; padding: 28px; }
.dw-signin__form h2 { margin-top: 0; }
.dw-signin__pitch { padding: 4px 0; }
.dw-signin__pitch h2 { font-family: var(--font-heading); font-weight: 500; font-size: 24px; text-transform: uppercase; letter-spacing: .02em; margin: 0 0 8px; }
.dw-signin__pitch > p { color: #5c6a63; margin: 0 0 18px; max-width: 46ch; }
.dw-signin__benefits { list-style: none; margin: 0 0 22px; padding: 0; display: grid; gap: 14px; }
.dw-signin__benefits li { display: grid; gap: 2px; padding-left: 26px; position: relative; }
.dw-signin__benefits li::before { content: ""; position: absolute; left: 3px; top: 7px; width: 10px; height: 5px; border-left: 2px solid var(--color-accent, #009A4E); border-bottom: 2px solid var(--color-accent, #009A4E); transform: rotate(-45deg); }
.dw-signin__benefits strong { font-weight: 500; }
.dw-signin__benefits span { color: #5c6a63; font-size: 14.5px; }
.dw-signin__note { font-size: 14px; color: #5c6a63; margin: 14px 0 0; }
/* the register form is the thing "Create a free account" opens */
.woocommerce-account .u-column2.col-2:has(.woocommerce-form-register) { display: none; }
.woocommerce-account.dw-register-open .u-column2.col-2:has(.woocommerce-form-register) { display: block; grid-column: 1 / -1; }
@media (max-width: 860px) { .dw-signin { grid-template-columns: 1fr; gap: 28px; } }

/* ── Order confirmation ───────────────────────────────────────────────────────────────── */

/* ── Ending a rental ──────────────────────────────────────────────────────────────────── */
.dw-end { border: 1px solid var(--color-neutral-400, #b7b7ba); background: #fff; padding: 26px 28px; max-width: 720px; }
.dw-end__step { font-family: var(--font-heading); font-size: 14px; font-weight: 500; text-transform: uppercase; letter-spacing: .12em; color: var(--color-accent-700, #066932); margin-bottom: 8px; }
.dw-end h2 { font-family: var(--font-heading); font-weight: 500; font-size: 26px; text-transform: uppercase; letter-spacing: .02em; margin: 0 0 16px; }
.dw-end__device { display: flex; align-items: center; gap: 16px; padding: 14px 0; border-top: 1px solid var(--color-neutral-300, #e2e2e4); border-bottom: 1px solid var(--color-neutral-300, #e2e2e4); margin-bottom: 18px; }
.dw-end__device img { width: 64px; height: 64px; object-fit: contain; flex: none; }
.dw-end__device span { display: block; color: #5c6a63; font-size: 14px; margin-top: 3px; }
.dw-end__reasons { border: 0; margin: 0 0 18px; padding: 0; display: grid; gap: 9px; }
.dw-end__reasons legend { padding: 0; font-weight: 500; margin-bottom: 9px; }
.dw-end__reasons label { display: flex; align-items: center; gap: 9px; }
.dw-end__sums { margin: 18px 0; display: grid; gap: 8px; }
.dw-end__sums div { display: flex; justify-content: space-between; gap: 20px; }
.dw-end__sums dt, .dw-end__sums dd { margin: 0; }
.dw-end__sums .is-total { border-top: 1px solid var(--color-neutral-400, #b7b7ba); padding-top: 10px; font-size: 20px; font-weight: 500; }
.dw-end__sums .is-total span { font-size: 14px; color: #5c6a63; font-weight: 400; }
.dw-end__note { color: #5c6a63; font-size: 14.5px; }
.dw-end__facts { list-style: none; margin: 0 0 18px; padding: 0; display: grid; gap: 10px; }
.dw-end__facts li { padding-left: 26px; position: relative; }
.dw-end__facts li::before { content: ""; position: absolute; left: 3px; top: 8px; width: 10px; height: 5px; border-left: 2px solid var(--color-accent, #009A4E); border-bottom: 2px solid var(--color-accent, #009A4E); transform: rotate(-45deg); }
.dw-end__field label { display: block; font-size: 14px; color: #5c6a63; margin-bottom: 5px; }
.dw-end__field textarea { width: 100%; padding: 10px 12px; border: 1px solid var(--color-neutral-400, #b7b7ba); font: inherit; font-size: 15px; }
.dw-end__actions { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin: 20px 0 0; }
.dw-rental__pending { color: var(--color-accent-700, #066932); font-size: 14px; font-weight: 500; }

.dw-signin__or { display: flex; align-items: center; gap: 12px; margin: 18px 0 14px; color: #8a9089; font-size: 14px; }
.dw-signin__or::before, .dw-signin__or::after { content: ""; flex: 1; height: 1px; background: var(--color-neutral-300, #e2e2e4); }
.dw-signin__guest { display: block; text-align: center; }

/* ── Category filters (replacing the design's static rail) ─────────────────────────────── */
.dw-filters { font-size: 15px; }
.dw-filters__head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding-bottom: 12px; border-bottom: 1px solid var(--color-neutral-400, #b7b7ba); }
.dw-filters__head h2 { font-family: var(--font-heading); font-weight: 500; font-size: 14px; text-transform: uppercase; letter-spacing: .1em; margin: 0; }
.dw-filters__clear { font-size: 14px; }
.dw-filters__group { padding: 16px 0; border-bottom: 1px solid var(--color-neutral-300, #e2e2e4); }
.dw-filters__group:last-child { border-bottom: 0; }
.dw-filters__group h2.dw-filters__title, .dw .dw-filters__group h2.dw-filters__title { font-family: var(--font-heading); font-weight: 500; font-size: 14px; text-transform: uppercase; letter-spacing: .08em; margin: 0 0 10px; color: #5c6a63; }
.dw-filters__group ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 7px; }
.dw-filters__group a { display: flex; align-items: center; gap: 8px; text-decoration: none; color: var(--color-text, #1d1f20); }
.dw-filters__group a:hover { color: var(--color-accent-700, #066932); }
.dw-filters__group a span { margin-left: auto; color: #8a9089; font-size: 14px; font-variant-numeric: tabular-nums; }
.dw-filters__group li.is-on > a { font-weight: 600; color: var(--color-accent-700, #066932); }
/* the brand rows read as checkboxes, because that is what they behave like */
.dw-filters__checks i { width: 15px; height: 15px; flex: none; border: 1px solid var(--color-neutral-400, #b7b7ba); background: #fff; position: relative; }
.dw-filters__checks li.is-on i { background: var(--color-accent, #009A4E); border-color: var(--color-accent, #009A4E); }
.dw-filters__checks li.is-on i::after { content: ""; position: absolute; left: 3px; top: 4px; width: 7px; height: 3px; border-left: 2px solid #fff; border-bottom: 2px solid #fff; transform: rotate(-45deg); }
.dw-filters__price { display: flex; align-items: flex-end; gap: 8px; flex-wrap: wrap; }
.dw-filters__price label { display: flex; flex-direction: column; gap: 3px; font-size: 14px; color: #5c6a63; }
.dw-filters__price input { width: 78px; padding: 7px 8px; border: 1px solid var(--color-neutral-400, #b7b7ba); font-size: 14px; }
.dw-filters__price .button { padding: 8px 14px; }
.dw-filters__range { flex: 1 0 100%; font-size: 14px; color: #8a9089; }
.dw-filters-wrap--mobile .dw-filters { display: flex; gap: 20px; overflow-x: auto; }
@media (max-width: 767px) {
  .dw-filters__group { padding: 12px 0; }
  .dw-filters__group ul { gap: 9px; }
}

/* ── Product lists are grids, not floats ───────────────────────────────────────────────
   WooCommerce lays li.product out with float and a right margin on every item, including the
   last in a row, so three items in a "columns-3" list add up to 103.65% and the third wraps.
   That is what put the sector pages' three recommended products on two lines. One grid,
   everywhere, and the arithmetic stops mattering. */
.woocommerce ul.products, .woocommerce-page ul.products {
  display: grid;
  grid-template-columns: repeat(var(--dw-cols, 4), minmax(0, 1fr));
  gap: 18px; margin: 0; padding: 0; list-style: none;
}
.woocommerce ul.products::before, .woocommerce ul.products::after,
.woocommerce-page ul.products::before, .woocommerce-page ul.products::after { content: none; display: none; }
.woocommerce ul.products li.product, .woocommerce-page ul.products li.product {
  float: none; width: auto; margin: 0; clear: none;
}
ul.products.columns-1 { --dw-cols: 1; }
ul.products.columns-2 { --dw-cols: 2; }
ul.products.columns-3 { --dw-cols: 3; }
ul.products.columns-4 { --dw-cols: 4; }
ul.products.columns-5 { --dw-cols: 5; }
ul.products.columns-6 { --dw-cols: 6; }
@media (max-width: 1024px) { ul.products { --dw-cols: 2 !important; } }
/* two up on a phone, matching the archive templates' own mobile setting */
@media (max-width: 560px)  { ul.products { --dw-cols: 2 !important; gap: 12px; } }
/* package listings carry photos of wildly different shapes: give every card the same window */
.woocommerce ul.products li.product img,
.woocommerce-page ul.products li.product img { aspect-ratio: 1; object-fit: contain; width: 100%; height: auto; }

/* ── FAQs open and close ───────────────────────────────────────────────────────────────
   Built from the existing question/answer pairs by site.js, so the markup stays as it is. */
.dw-faq { border-top: 1px solid var(--color-neutral-300, #e2e2e4); }
.dw-faq__item { border-bottom: 1px solid var(--color-neutral-300, #e2e2e4); }
.dw-faq__q {
  width: 100%; display: flex; align-items: flex-start; justify-content: space-between; gap: 18px;
  background: none; border: 0; padding: 16px 0; text-align: left; cursor: pointer;
  font: inherit; font-weight: 500; color: inherit;
}
.dw-faq__q:hover { color: var(--color-text); background: var(--color-accent-100); }
.dw-faq__q { padding-left: 10px; padding-right: 10px; margin: 0 -10px; width: calc(100% + 20px); }
.dw-faq__q::after {
  content: ""; flex: none; width: 10px; height: 10px; margin-top: 6px;
  border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
  transform: rotate(45deg); transition: transform .18s ease;
}
.dw-faq__q[aria-expanded="true"]::after { transform: rotate(-135deg); }
.dw-faq__a { padding: 0 0 18px; max-width: 72ch; }
.dw-faq__a[hidden] { display: none; }
@media (prefers-reduced-motion: reduce) { .dw-faq__q::after { transition: none; } }

/* ── 14px floor on text we do not author (client, 15 Sep) ──────────────────────────────
   Our own styles and the Elementor data are clamped at source, so nothing here touches an
   Elementor widget: an !important rule there would override deliberate sizes (a 42px heading
   would collapse to its parent's size). These are only the defaults that arrive small from
   WooCommerce and the cookie banner, set to a flat 14px. */
small, sub, sup, .stock, p.stock, .woocommerce div.product p.stock,
.woocommerce-breadcrumb, .woocommerce-result-count, .woocommerce-ordering select,
.woocommerce form .form-row label, .woocommerce .required, .woocommerce-privacy-policy-text,
.wc-item-meta, .wc-item-meta li, .woocommerce-password-strength, .woocommerce-password-hint,
.woocommerce table.shop_table small, .product-quantity, .woocommerce-remove-coupon,
.elementor-menu-cart__product-price, .elementor-menu-cart__product-name .variation,
.cmplz-cookiebanner .cmplz-message, .cmplz-cookiebanner .cmplz-message *,
.cmplz-cookiebanner .cmplz-btn, .cmplz-cookiebanner .cmplz-link, .cmplz-cookiebanner .cmplz-links a,
.cmplz-cookiebanner .cmplz-categories *, .cmplz-cookiebanner .cmplz-description, .cmplz-manage-consent {
  font-size: 14px !important;
}

/* ── Basket, to the design (client notes 34 and 35) ─────────────────────────────────────
   The design has no table: each line is its own white card with space between, and no header
   row. WooCommerce's table stays in the markup (it carries the quantity form) but reads as cards. */
.woocommerce-cart-form table.shop_table.cart { border: 0; border-collapse: separate; border-spacing: 0 14px; margin-top: -14px; background: transparent; }
.woocommerce-cart-form table.shop_table.cart thead { display: none; }
.woocommerce-cart-form table.shop_table.cart td { border: 0; background: #fff; padding: 20px 16px; vertical-align: middle; }
.woocommerce-cart-form table.shop_table.cart tr.cart_item td {
  border-top: 1px solid var(--color-neutral-400); border-bottom: 1px solid var(--color-neutral-400);
}
.woocommerce-cart-form table.shop_table.cart tr.cart_item td:first-child { border-left: 1px solid var(--color-neutral-400); padding-left: 20px; }
.woocommerce-cart-form table.shop_table.cart tr.cart_item td:last-child { border-right: 1px solid var(--color-neutral-400); padding-right: 20px; }
.woocommerce-cart-form table.shop_table.cart td.actions { background: transparent; padding: 6px 0 0; border: 0; }
.woocommerce-cart-form table.shop_table.cart .product-thumbnail img { width: 72px; height: 72px; object-fit: contain; }
.woocommerce-cart-form table.shop_table.cart .product-subtotal { font-family: var(--font-heading); font-weight: 500; font-size: 20px; text-align: right; }
.woocommerce-cart-form table.shop_table.cart .product-price { color: var(--color-neutral-700); }
.woocommerce-cart-form table.shop_table.cart .product-remove a.remove { color: var(--color-neutral-600) !important; font-size: 22px; }
.woocommerce-cart-form table.shop_table.cart .product-remove a.remove:hover { color: #b3241a !important; background: transparent; }

/* Contrast: white on the brand green is about 3.3:1, under the 4.5:1 readable minimum for text this
   size. Filled buttons in the basket use the darker green (about 6.9:1). Only checkout is filled; the
   coupon and update actions are outline buttons, and a disabled button looks disabled. The light blue
   border came from a WooCommerce default and is gone. */
.woocommerce-cart .button, .woocommerce-cart button.button, .woocommerce-cart a.button { border-color: transparent; }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
  background: var(--color-accent-700) !important; color: #fff !important; border: 1px solid var(--color-accent-700) !important;
  font-weight: 600; font-size: 16px; padding: 14px 22px;
}
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover { background: var(--color-accent-800) !important; border-color: var(--color-accent-800) !important; }
.woocommerce-cart .coupon button.button, .woocommerce-cart button[name="update_cart"], .woocommerce-cart .shipping-calculator-form button.button {
  background: #fff !important; color: var(--color-text) !important; border: 1px solid var(--color-neutral-400) !important; font-weight: 600;
}
.woocommerce-cart .coupon button.button:hover, .woocommerce-cart button[name="update_cart"]:not(:disabled):hover, .woocommerce-cart .shipping-calculator-form button.button:hover {
  border-color: var(--color-accent-700) !important; color: var(--color-accent-700) !important;
}
.woocommerce-cart button[name="update_cart"]:disabled { opacity: .45; cursor: default; }
@media (max-width: 767px) {
  .woocommerce-cart-form table.shop_table.cart tr.cart_item td { border-left: 1px solid var(--color-neutral-400); border-right: 1px solid var(--color-neutral-400); }
  .woocommerce-cart-form table.shop_table.cart tr.cart_item td:not(:first-child) { border-top: 0; }
  .woocommerce-cart-form table.shop_table.cart tr.cart_item td:not(:last-child) { border-bottom: 0; }
}

/* Forms: a clear gap between each label and its field, and between rows (client note 42). The
   Elementor settings carry this too; this covers the radio chips, which Elementor spaces separately. */
.elementor-form .elementor-field-group > label.elementor-field-label { display: block; margin-bottom: 6px; }
.elementor-form .elementor-field-type-radio .elementor-field-subgroup { gap: 8px 10px; }

/* Filter "Apply" in the brand's readable green (client note 39) */
.dw-filters__price .dw-filters__apply { background: var(--color-accent-700); color: #fff; border: 1px solid var(--color-accent-700); font-weight: 600; }
.dw-filters__price .dw-filters__apply:hover { background: var(--color-accent-800); border-color: var(--color-accent-800); color: #fff; }

/* product details from ACF: key features, what's in the box, downloads (design: ticked lists under About) */
.dw .dw-details { display: flex; flex-direction: column; gap: 16px; }
.dw h2.dw-details__title { font-family: var(--font-heading); font-size: 28px; font-weight: 500; text-transform: uppercase; letter-spacing: 0.03em; margin: 24px 0 0; color: #1d1f20; }
.dw .dw-details__list, .dw .dw-details__downloads { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; font-size: 14.5px; color: #3a3d40; }
.dw .dw-details__list li:not(.dw-details__sub)::before { content: "\2713\00a0"; }
.dw .dw-details__list .dw-details__sub { font-weight: 600; color: #1d1f20; margin-top: 8px; }
.dw .dw-details__downloads a { color: var(--color-accent-700, #00813F); text-decoration: underline; text-underline-offset: 3px; }
.dw .dw-details__downloads span { color: #6b6e72; }
@media (max-width: 767px) { .dw h2.dw-details__title { font-size: 22px; } }

/* article byline and sidebar product (ACF: reviewed by, sidebar product) */
.dw .dw-byline { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 14px; color: #7a7a7d; }
.dw .dw-byline strong { color: #1d1f20; font-weight: 500; }
.dw .dw-article-product-wrap:has(.elementor-shortcode:empty) { display: none; }
.dw .dw-article-product { border: 1px solid #b7b7ba; background: #fff; padding: 20px 22px; display: flex; flex-direction: column; gap: 10px; }
.dw .dw-article-product__heading { font-family: var(--font-heading); font-weight: 500; font-size: 15px; letter-spacing: 0.06em; text-transform: uppercase; }
.dw .dw-article-product__img { width: 100%; height: 110px; object-fit: contain; }
.dw .dw-article-product__name { font-size: 14px; font-weight: 500; line-height: 1.35; color: #1d1f20; text-decoration: none; }
.dw .dw-article-product__price { font-size: 14px; }
.dw .dw-article-product__price span { color: #7a7a7d; }
.dw .dw-article-product .button { display: inline-flex; justify-content: center; font-size: 14px; }

/* case studies (DW_Content): listing, rescue story block, single story */
.dw .dw-stories { display: flex; flex-direction: column; gap: 22px; }
.dw .dw-stories__chips { display: flex; gap: 8px; flex-wrap: wrap; }
.dw .dw-stories__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.dw .dw-stories__empty { border: 1px solid #b7b7ba; background: #fff; padding: 24px; font-size: 15px; }
.dw .dw-story-card { display: flex; flex-direction: column; background: #fff; border: 1px solid #b7b7ba; color: #1d1f20; text-decoration: none; }
.dw .dw-story-card__photo { height: 180px; overflow: hidden; background: #ececed; }
.dw .dw-story-card__photo img, .dw .dw-story__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.dw .dw-story-card__body { padding: 18px 20px 20px; display: flex; flex-direction: column; gap: 8px; }
.dw .dw-story__tags { display: flex; gap: 8px; flex-wrap: wrap; }
.dw h2.dw-story-card__title { font-family: var(--font-heading); font-weight: 500; font-size: 20px; line-height: 1.12; text-transform: uppercase; letter-spacing: 0.02em; margin: 0; }
.dw .dw-story-card__line { font-size: 14px; line-height: 1.5; color: #7a7a7d; }
.dw .dw-story-card__more { font-size: 14px; font-weight: 500; color: #066932; }
.dw .dw-story-wrap:has(.elementor-shortcode:empty), .dw .e-con:has(> .dw-story-wrap .elementor-shortcode:empty), .dw .e-con:has(> .e-con-inner > .dw-story-wrap .elementor-shortcode:empty) { display: none; } /* no story for this sector: no block, no gap */
.dw .dw-story { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid #b7b7ba; background: #fff; }
.dw .dw-story__photo { position: relative; min-height: 380px; border-right: 1px solid #b7b7ba; background: #ececed; }
.dw .dw-story__photo img { position: absolute; inset: 0; }
.dw .dw-story__body { display: flex; flex-direction: column; gap: 14px; align-items: flex-start; justify-content: center; padding: 48px; }
.dw h2.dw-story__title { font-family: var(--font-heading); font-size: 32px; margin: 0; font-weight: 500; text-transform: uppercase; letter-spacing: 0.03em; line-height: 1.08; }
.dw .dw-story__body p { margin: 0; font-size: 15px; line-height: 1.6; color: #3a3d40; max-width: 56ch; }
.dw .dw-story__stats { display: flex; gap: 32px; border-top: 1px solid #b7b7ba; padding-top: 16px; }
.dw .dw-story__stats strong { display: block; font-family: var(--font-heading); font-size: 26px; font-weight: 500; line-height: 1; }
.dw .dw-story__stats span { display: block; font-size: 14px; color: #7a7a7d; margin-top: 3px; }
.dw .dw-story-single__line { font-size: 16px; color: #3a3d40; }
.dw .dw-story-single__photo img { width: 100%; height: auto; margin: 8px 0 24px; }
.dw .dw-story--stats .dw-story__photo { order: 2; border-right: 0; border-left: 1px solid #b7b7ba; } /* home: story first, photo right */
.dw .dw-story-single__next { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 32px; }
@media (max-width: 1023px) { .dw .dw-stories__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) {
  .dw .dw-stories__grid { grid-template-columns: 1fr; gap: 14px; }
  .dw .dw-stories__chips { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; }
  .dw .dw-stories__chips .btn { flex: none; }
  .dw .dw-story-card__photo { height: 150px; }
  .dw .dw-story { grid-template-columns: 1fr; }
  .dw .dw-story__photo, .dw .dw-story--stats .dw-story__photo { order: 0; min-height: 150px; border-right: 0; border-left: 0; border-bottom: 1px solid #b7b7ba; }
  .dw .dw-story__body { padding: 16px; gap: 8px; }
  .dw h2.dw-story__title { font-size: 19px; }
  .dw .dw-story__body p { font-size: 14px; }
}

/* Hello Elementor's reset paints every plain button #c36 pink on hover and focus (notes 51 and 54) */
.dw-faq__q:focus, .dw-faq__q:active { color: var(--color-text); background: var(--color-accent-100); }
.dw-faq__q:focus:not(:focus-visible) { background: none; }
.dw-faq__q:focus-visible { outline: 2px solid #009A4E; outline-offset: -2px; }
.elementor-search-form .elementor-search-form__submit { background-color: #009A4E; color: #fff; }
.elementor-search-form .elementor-search-form__submit:hover, .elementor-search-form .elementor-search-form__submit:focus { background-color: #066932; color: #fff; }
.cmplz-cookiebanner .cmplz-btn.cmplz-accept, .cmplz-cookiebanner .cmplz-btn.cmplz-accept:hover, .cmplz-cookiebanner .cmplz-btn.cmplz-accept:focus { background-color: #009A4E; border-color: #009A4E; color: #fff; }
.cmplz-cookiebanner .cmplz-btn.cmplz-accept:hover, .cmplz-cookiebanner .cmplz-btn.cmplz-accept:focus { background-color: #066932; border-color: #066932; }
.cmplz-cookiebanner .cmplz-btn:not(.cmplz-accept):hover, .cmplz-cookiebanner .cmplz-btn:not(.cmplz-accept):focus, button.cmplz-manage-consent:hover, button.cmplz-manage-consent:focus { background-color: #E0F5E8; border-color: #009A4E; color: #1d1f20; }
.cmplz-cookiebanner .cmplz-category-toggle, .cmplz-cookiebanner .cmplz-category-toggle:hover, .cmplz-cookiebanner .cmplz-category-toggle:focus { background: none; color: #066932; border-color: #066932; }

/* back in stock sign-up under the add to basket (note 53; design: Out of Stock) */
.dw .dw-notify { display: flex; flex-direction: column; gap: 8px; margin: 16px 0 0; }
.dw .dw-notify__label { font-weight: 600; font-size: 15px; }
.dw .dw-notify__row { display: flex; gap: 8px; }
.dw .dw-notify__row input { flex: 1; min-width: 0; min-height: 44px; padding: 10px 12px; border: 1px solid #b7b7ba; font-size: 15px; }
.dw .dw-notify__row .button { min-width: 160px; background: #009A4E; color: #fff; border: 0; font-weight: 600; }
.dw .dw-notify__row .button:hover, .dw .dw-notify__row .button:focus { background: #066932; color: #fff; }
.dw .dw-notify__small { margin: 0; font-size: 14px; color: #7a7a7d; }
.dw .dw-notify__hp { position: absolute; left: -9999px; }
.dw .dw-notify--done { border: 1px solid #009A4E; background: #E0F5E8; padding: 12px 14px; font-size: 15px; }
@media (max-width: 560px) { .dw .dw-notify__row { flex-direction: column; } }

/* search results (notes 58 to 60, design: Search Results) */
.search .dw-archive-cta { display: none; }
.dw-search-match-wrap:has(.elementor-shortcode:empty), .dw-search-cta-wrap:has(.elementor-shortcode:empty) { display: none; }
.dw .dw-search-match { border: 1px solid #009A4E; background: #fff; display: grid; grid-template-columns: auto 1fr auto; gap: 22px; align-items: center; padding: 18px 26px; margin: 0 0 22px; }
.dw .dw-search-match:not(:has(img)) { grid-template-columns: 1fr auto; }
.dw .dw-search-match__img { width: 96px; height: 96px; object-fit: contain; }
.dw h2.dw-search-match__title { font-family: var(--font-heading); font-weight: 500; font-size: 20px; text-transform: uppercase; letter-spacing: 0.02em; margin: 0; line-height: 1.2; }
.dw .dw-search-match__line { font-size: 14px; color: #7a7a7d; margin-top: 3px; }
.dw .dw-search-match__line strong { font-family: var(--font-heading); font-weight: 500; font-size: 16px; color: #1d1f20; }
.dw .dw-search-match__actions { display: flex; flex-direction: column; gap: 8px; text-align: center; font-size: 14px; }
.dw .dw-search-match__actions .button { min-width: 170px; background: #009A4E; color: #fff; }
.dw .dw-search-cta { border: 1px solid #b7b7ba; background: #fff; padding: 36px 44px; display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.dw .dw-search-cta > div:first-child { max-width: 60ch; }
.dw h2.dw-search-cta__title { font-family: var(--font-heading); font-size: 22px; font-weight: 500; text-transform: uppercase; letter-spacing: 0.02em; margin: 0; }
.dw .dw-search-cta p { font-size: 14px; color: #3a3d40; margin: 4px 0 0; }
.dw .dw-search-cta__actions { display: flex; gap: 12px; flex: none; }
.dw .dw-search-cta__actions .button { min-width: 180px; justify-content: center; background: #009A4E; color: #fff; border: 1px solid #009A4E; }
.dw .dw-search-cta__actions .button.is-secondary { min-width: 0; background: #fff; color: #1d1f20; border-color: #b7b7ba; }
.dw .dw-search-cta__actions .button:hover { background: #066932; border-color: #066932; color: #fff; }
@media (max-width: 767px) {
  .dw .dw-search-match { grid-template-columns: 64px 1fr; padding: 14px; gap: 12px; }
  .dw .dw-search-match__img { width: 64px; height: 64px; }
  .dw .dw-search-match__actions { grid-column: 1 / -1; }
  .dw .dw-search-cta { flex-direction: column; align-items: stretch; padding: 22px 18px; gap: 16px; }
  .dw .dw-search-cta__actions { flex-direction: column; }
}

/* product FAQs (ACF repeater, native <details>) */
.dw .e-con:has(> .dw-pfaq-wrap .elementor-shortcode:empty), .dw .dw-pfaq-wrap:has(.elementor-shortcode:empty) { display: none; }
.dw .dw-pfaq { border-top: 1px solid #b7b7ba; padding-top: 48px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: 48px; align-items: start; }
.dw h2.dw-pfaq__title { font-family: var(--font-heading); font-size: 28px; font-weight: 500; text-transform: uppercase; letter-spacing: 0.03em; line-height: 1.1; margin: 0; }
.dw .dw-pfaq__list { border-top: 1px solid #b7b7ba; }
.dw .dw-pfaq__item { border-bottom: 1px solid #b7b7ba; }
.dw .dw-pfaq__q { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; padding: 16px 10px; margin: 0 -10px; font-weight: 500; font-size: 15.5px; line-height: 1.4; color: #1d1f20; }
.dw .dw-pfaq__q::-webkit-details-marker { display: none; }
.dw .dw-pfaq__q::after { content: ""; flex: none; width: 10px; height: 10px; margin-top: 5px; border-right: 2px solid #009A4E; border-bottom: 2px solid #009A4E; transform: rotate(45deg); transition: transform .18s ease; }
.dw .dw-pfaq__item[open] > .dw-pfaq__q::after { transform: rotate(-135deg); margin-top: 9px; }
.dw .dw-pfaq__q:hover { background: var(--color-accent-100); }
.dw .dw-pfaq__q:focus-visible { outline: 2px solid #009A4E; outline-offset: -2px; }
.dw .dw-pfaq__a { padding: 0 0 18px; max-width: 72ch; font-size: 14.5px; line-height: 1.6; color: #3a3d40; }
.dw .dw-pfaq__a p { margin: 0 0 10px; }
.dw .dw-pfaq__a p:last-child { margin: 0; }
.dw .dw-pfaq__a ul { margin: 0 0 10px 18px; }
.dw .dw-pfaq__a a { color: #066932; }
@media (prefers-reduced-motion: reduce) { .dw .dw-pfaq__q::after { transition: none; } }
@media (max-width: 1023px) { .dw .dw-pfaq { grid-template-columns: 1fr; gap: 20px; padding-top: 32px; } }
@media (max-width: 767px) { .dw h2.dw-pfaq__title { font-size: 22px; } .dw .dw-pfaq__q { font-size: 15px; } }

/* ───── basket (notes 81 to 84, design: Basket) ───── */
.dw-basket-wrap:has(.dw-basket) { width: 100%; }
.dw .dw-basket { display: flex; flex-direction: column; gap: 18px; }
.dw h1.dw-basket__title { font-family: var(--font-heading); font-weight: 500; font-size: 40px; text-transform: uppercase; letter-spacing: .02em; line-height: 1.05; margin: 0; color: #1d1f20; }
.dw h1.dw-basket__title span { font-size: 18px; text-transform: none; letter-spacing: 0; color: #7a7a7d; font-weight: 400; }
.dw .dw-basket__grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(300px, 1fr); gap: 32px; align-items: start; }
.dw .dw-basket__main { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.dw .dw-basket__items { display: flex; flex-direction: column; gap: 14px; margin: 0; }
.dw .dw-basket__item { display: grid; grid-template-columns: 96px minmax(0, 1fr) auto auto; gap: 18px; align-items: center; background: #fff; border: 1px solid #b7b7ba; padding: 18px 22px; }
.dw .dw-basket__thumb img { width: 96px; height: 96px; object-fit: contain; display: block; }
.dw .dw-basket__info { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.dw h2.dw-basket__name { font-family: var(--font-heading); font-size: 17px; font-weight: 500; text-transform: none; letter-spacing: 0; margin: 0; line-height: 1.3; }
.dw h2.dw-basket__name a { color: #1d1f20; text-decoration: none; }
.dw h2.dw-basket__name a:hover { color: #066932; }
.dw .dw-basket__stock { font-size: 14px; color: #066932; }
.dw .dw-basket__stock::before { content: "\2713\00a0"; }
.dw .dw-basket__stock.is-backorder { color: #8a6b14; }
.dw .dw-basket__stock.is-backorder::before { content: ""; }
.dw .dw-basket__note { font-size: 14px; color: #7a7a7d; }
.dw .dw-basket__remove { font-size: 14px; color: #5c6a63; text-decoration: underline; text-underline-offset: 3px; align-self: flex-start; }
.dw .dw-basket__qty { display: inline-flex; border: 1px solid #b7b7ba; height: 42px; }
.dw .dw-basket__qty.is-fixed { border: 0; width: 0; }
.dw .dw-basket__step { width: 40px; background: #fff; border: 0; font-size: 18px; color: #1d1f20; cursor: pointer; padding: 0; }
.dw .dw-basket__step:hover, .dw .dw-basket__step:focus { background: #E0F5E8; color: #1d1f20; }
.dw .dw-basket__qty input { width: 48px; border: 0; border-left: 1px solid #b7b7ba; border-right: 1px solid #b7b7ba; text-align: center; font-size: 16px; -moz-appearance: textfield; padding: 0; }
.dw .dw-basket__qty input::-webkit-outer-spin-button, .dw .dw-basket__qty input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.dw .dw-basket__price { display: flex; flex-direction: column; align-items: flex-end; min-width: 96px; }
.dw .dw-basket__price strong { font-family: var(--font-heading); font-size: 22px; font-weight: 500; }
.dw .dw-basket__price span { font-size: 14px; color: #7a7a7d; }
.dw .dw-basket__addons { background: #E0F5E8; border: 1px solid #9ad3b3; padding: 20px 22px; display: flex; flex-direction: column; gap: 14px; }
.dw h2.dw-basket__h2 { font-family: var(--font-heading); font-size: 18px; font-weight: 500; text-transform: uppercase; letter-spacing: .06em; margin: 0; color: #1d1f20; }
.dw .dw-basket__addon-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.dw .dw-basket__addon { background: #fff; border: 1px solid #b7b7ba; padding: 16px; display: flex; flex-direction: column; gap: 6px; }
.dw .dw-basket__addon-img img { width: 100%; height: 110px; object-fit: contain; display: block; }
.dw h3.dw-basket__addon-name { font-family: var(--font-body, inherit); font-size: 15px; font-weight: 500; text-transform: none; letter-spacing: 0; margin: 4px 0 0; line-height: 1.3; }
.dw h3.dw-basket__addon-name a { color: #1d1f20; text-decoration: none; }
.dw .dw-basket__addon-price { font-size: 14px; color: #7a7a7d; }
.dw .dw-basket__addon-price strong { color: #1d1f20; }
.dw .dw-basket__add { margin-top: auto; display: block; text-align: center; border: 1px solid #b7b7ba; padding: 9px; font-size: 14px; font-weight: 600; color: #1d1f20; text-decoration: none; background: #fff; }
.dw .dw-basket__add:hover, .dw .dw-basket__add:focus { border-color: #009A4E; background: #009A4E; color: #fff; }
.dw .dw-basket__back { font-size: 14px; color: #066932; text-decoration: underline; text-underline-offset: 3px; align-self: flex-start; }
.dw .dw-basket__side { display: flex; flex-direction: column; gap: 14px; position: sticky; top: 24px; }
.dw .dw-basket__summary { background: #fff; border: 1px solid #b7b7ba; padding: 24px; display: flex; flex-direction: column; gap: 14px; }
.dw .dw-basket__summary dl { margin: 0; display: flex; flex-direction: column; gap: 10px; }
.dw .dw-basket__summary dl > div { display: flex; justify-content: space-between; gap: 12px; font-size: 15px; }
.dw .dw-basket__summary dt { color: #3a3d40; }
.dw .dw-basket__summary dd { margin: 0; font-variant-numeric: tabular-nums; }
.dw .dw-basket__summary dd.is-free { color: #066932; font-weight: 500; }
.dw .dw-basket__summary .is-discount dt a { font-size: 14px; color: #5c6a63; margin-left: 6px; }
.dw .dw-basket__total { display: flex; justify-content: space-between; align-items: baseline; border-top: 1px solid #e2e2e4; padding-top: 14px; }
.dw .dw-basket__total span { font-family: var(--font-heading); font-size: 18px; font-weight: 500; }
.dw .dw-basket__total strong { font-family: var(--font-heading); font-size: 28px; font-weight: 500; font-variant-numeric: tabular-nums; }
.dw .dw-basket__checkout { display: block; text-align: center; background: #009A4E; color: #fff; padding: 14px; font-weight: 600; font-size: 16px; text-decoration: none; }
.dw .dw-basket__checkout:hover, .dw .dw-basket__checkout:focus { background: #066932; color: #fff; }
.dw .dw-basket__pay { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.dw .dw-basket__pay li { border: 1px solid #e2e2e4; padding: 4px 8px; font-size: 14px; color: #3a3d40; }
.dw .dw-basket__trust { list-style: none; margin: 0; padding: 12px 0 0; border-top: 1px solid #e2e2e4; display: flex; flex-direction: column; gap: 6px; font-size: 14px; color: #3a3d40; }
.dw .dw-basket__trust li::before { content: "\2713\00a0"; color: #066932; }
.dw .dw-basket__trust a { color: #066932; }
.dw .dw-basket__coupon summary { cursor: pointer; font-size: 14px; color: #5c6a63; }
.dw .dw-basket__coupon form { display: flex; gap: 8px; margin-top: 8px; }
.dw .dw-basket__coupon input { flex: 1; min-width: 0; border: 1px solid #b7b7ba; padding: 8px 10px; }
.dw .dw-basket__coupon button { background: #fff; border: 1px solid #b7b7ba; padding: 8px 14px; color: #1d1f20; cursor: pointer; }
.dw .dw-dispatch { margin: 0; font-size: 14px; color: #5d5d60; }
.dw .dw-dispatch strong { color: #1d1f20; }
@media (max-width: 1023px) { .dw .dw-basket__grid { grid-template-columns: 1fr; } .dw .dw-basket__side { position: static; } }
@media (max-width: 640px) {
  .dw h1.dw-basket__title { font-size: 28px; }
  .dw .dw-basket__item { grid-template-columns: 72px minmax(0, 1fr); gap: 12px; padding: 14px; }
  .dw .dw-basket__thumb img { width: 72px; height: 72px; }
  .dw .dw-basket__qty { grid-column: 1 / 2; }
  .dw .dw-basket__price { grid-column: 2 / 3; align-items: flex-end; }
  .dw .dw-basket__addon-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ───── order confirmed (note 86, design: Order Confirmation) ───── */
.woocommerce-order-received .dw-page-heading { display: none; }
.dw .dw-confirm { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(300px, 1fr); gap: 28px; align-items: start; margin: 16px 0 32px; }
.dw .dw-confirm__main, .dw .dw-confirm__side { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.dw .dw-confirm__head { background: #E0F5E8; border: 1px solid #9ad3b3; padding: 26px 28px; }
.dw .dw-confirm__head h1 { font-family: var(--font-heading); font-weight: 500; font-size: 34px; text-transform: uppercase; letter-spacing: .02em; margin: 0 0 8px; line-height: 1.05; }
.dw .dw-confirm__head p { margin: 0 0 4px; }
.dw .dw-confirm__eta { color: #066932; font-weight: 500; }
.dw .dw-confirm__panel { border: 1px solid #b7b7ba; background: #fff; padding: 22px 24px; }
.dw .dw-confirm__panel h2, .dw .dw-confirm__extras h2 { font-family: var(--font-heading); font-weight: 500; font-size: 18px; text-transform: uppercase; letter-spacing: .04em; margin: 0 0 10px; }
.dw .dw-confirm__panel p { margin: 0 0 10px; max-width: 72ch; }
.dw .dw-confirm__panel p:last-child { margin-bottom: 0; }
.dw .dw-confirm__hint { color: #5c6a63; font-size: 14px; }
.dw .dw-confirm__actions { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.dw .dw-confirm__extras { display: flex; flex-direction: column; gap: 10px; }
.dw .dw-confirm__extras .dw-confirm__hint { margin: 0; }
.dw .dw-confirm__cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.dw .dw-confirm__card { background: #fff; border: 1px solid #b7b7ba; padding: 16px; display: flex; flex-direction: column; gap: 6px; }
.dw .dw-confirm__card-img img { width: 100%; height: 110px; object-fit: contain; display: block; }
.dw .dw-confirm__card h3 { font-size: 15px; font-weight: 500; margin: 4px 0 0; line-height: 1.3; text-transform: none; letter-spacing: 0; }
.dw .dw-confirm__card h3 a { color: #1d1f20; text-decoration: none; }
.dw .dw-confirm__price { font-size: 14px; color: #7a7a7d; }
.dw .dw-confirm__price strong { color: #1d1f20; }
.dw .dw-confirm__add { margin-top: auto; text-align: center; border: 1px solid #b7b7ba; padding: 9px; font-size: 14px; font-weight: 600; color: #1d1f20; text-decoration: none; }
.dw .dw-confirm__add:hover, .dw .dw-confirm__add:focus { background: #009A4E; border-color: #009A4E; color: #fff; }
.dw .dw-confirm__lines { list-style: none; margin: 0; padding: 0; }
.dw .dw-confirm__lines li { display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 12px 0; border-bottom: 1px solid #e2e2e4; }
.dw .dw-confirm__lines img { width: 52px; height: 52px; object-fit: contain; }
.dw .dw-confirm__line-name { font-size: 15px; display: flex; flex-direction: column; }
.dw .dw-confirm__line-name small { color: #7a7a7d; font-size: 14px; }
.dw .dw-confirm__line-total { font-variant-numeric: tabular-nums; }
.dw .dw-confirm__totals { margin: 12px 0 0; display: flex; flex-direction: column; gap: 8px; }
.dw .dw-confirm__totals > div { display: flex; justify-content: space-between; font-size: 15px; }
.dw .dw-confirm__totals dd { margin: 0; }
.dw .dw-confirm__totals dd.is-free { color: #066932; font-weight: 500; }
.dw .dw-confirm__total { display: flex; justify-content: space-between; align-items: baseline; border-top: 1px solid #e2e2e4; margin-top: 12px; padding-top: 12px; }
.dw .dw-confirm__total span { font-weight: 600; }
.dw .dw-confirm__total strong { font-family: var(--font-heading); font-size: 26px; font-weight: 500; }
.dw .dw-confirm__wide { display: block; text-align: center; margin-top: 12px; }
.dw .dw-confirm__back { font-size: 14px; color: #066932; text-decoration: underline; text-underline-offset: 3px; }
.dw .dw-confirm .dw-rental-schedule { margin-top: 16px; }
@media (max-width: 1023px) { .dw .dw-confirm { grid-template-columns: 1fr; } }
@media (max-width: 640px) { .dw .dw-confirm__cards { grid-template-columns: 1fr; } .dw .dw-confirm__head h1 { font-size: 26px; } }

/* ───── account (note 73, design: Account Orders) ───── */
.woocommerce-account.logged-in .dw-page-heading { display: none; }
.woocommerce-account .dw-acc-who { border: 1px solid #b7b7ba; border-bottom: 0; background: #fff; padding: 18px 20px; display: flex; flex-direction: column; gap: 2px; }
.woocommerce-account .dw-acc-who strong { font-family: var(--font-heading); font-weight: 500; font-size: 17px; text-transform: uppercase; letter-spacing: .03em; }
.woocommerce-account .dw-acc-who span { font-size: 14px; color: #7a7a7d; }
.dw .dw-acc-head { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; flex-wrap: wrap; margin: 0 0 18px; }
.dw .dw-acc-head h1 { font-family: var(--font-heading); font-weight: 500; font-size: 36px; text-transform: uppercase; letter-spacing: .02em; margin: 0; line-height: 1.05; }
.dw .dw-acc-head span { font-size: 14px; color: #7a7a7d; }
.dw .dw-orders { overflow-x: auto; border: 1px solid #b7b7ba; background: #fff; margin: 0 0 22px; }
.dw .dw-orders__table { width: 100%; border-collapse: collapse; min-width: 640px; font-size: 15px; }
.dw .dw-orders__table th { text-align: left; font-size: 14px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; color: #5c6a63; padding: 14px 18px; border-bottom: 1px solid #e2e2e4; }
.dw .dw-orders__table td { padding: 16px 18px; border-bottom: 1px solid #e2e2e4; vertical-align: middle; }
.dw .dw-orders__table tr:last-child td { border-bottom: 0; }
.dw .dw-orders__num { font-weight: 600; color: #1d1f20; text-decoration: none; display: block; }
.dw .dw-orders__table small { color: #7a7a7d; font-size: 14px; }
.dw .dw-orders__total { font-family: var(--font-heading); font-size: 17px; font-weight: 500; white-space: nowrap; }
.dw .dw-orders__status { display: inline-block; font-size: 14px; padding: 2px 8px; background: #f1f2f1; color: #3a3d40; white-space: nowrap; }
.dw .dw-orders__status.is-completed, .dw .dw-orders__status.is-processing { background: #E0F5E8; color: #066932; }
.dw .dw-orders__status.is-pending, .dw .dw-orders__status.is-on-hold { background: #F6EFDC; color: #8a6b14; }
.dw .dw-orders__status.is-failed, .dw .dw-orders__status.is-cancelled { background: #fbe9e7; color: #b3261e; }
.dw .dw-orders__actions-h { text-align: right; }
.dw .dw-orders__actions { text-align: right; white-space: nowrap; }
.dw .dw-orders__actions .button { margin-left: 6px; padding: 7px 12px; font-size: 14px; background: #009A4E; color: #fff; border: 1px solid #009A4E; }
.dw .dw-orders__actions .button.is-quiet { background: #fff; color: #1d1f20; border-color: #b7b7ba; }
.dw .dw-orders__pages { display: flex; gap: 8px; margin: -8px 0 22px; }
.dw .dw-acc-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.dw .dw-acc-card { background: #fff; border: 1px solid #b7b7ba; padding: 22px 24px; display: flex; flex-direction: column; gap: 8px; }
.dw .dw-acc-card__tag { align-self: flex-start; font-size: 14px; border: 1px solid #009A4E; color: #066932; padding: 1px 8px; }
.dw .dw-acc-card h2 { font-family: var(--font-heading); font-weight: 500; font-size: 20px; text-transform: uppercase; letter-spacing: .03em; margin: 4px 0 0; }
.dw .dw-acc-card p { margin: 0; color: #3a3d40; }
.dw .dw-acc-card__actions { display: flex; align-items: center; gap: 16px; margin-top: 6px !important; }
.dw .dw-acc-card__actions a:not(.button) { color: #066932; font-weight: 500; }
@media (max-width: 767px) { .dw .dw-acc-cards { grid-template-columns: 1fr; } .dw .dw-acc-head h1 { font-size: 28px; } }

/* ───── article extras (notes 78 and 80) and product promises ───── */
.dw .dw-featured-wrap:has(.elementor-shortcode:empty), .dw .dw-afaq-wrap:has(.elementor-shortcode:empty) { display: none; } /* only the empty block itself: its parent is the whole article */
.dw .dw-page-heading:not(:has(h1, .elementor-heading-title)) { display: none; }
.dw .dw-featured { display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 22px; align-items: center; border: 1px solid #009A4E; background: #fff; padding: 18px 22px; margin: 8px 0; }
.dw .dw-featured__img img { width: 140px; height: 120px; object-fit: contain; display: block; }
.dw .dw-featured__body { display: flex; flex-direction: column; gap: 6px; }
.dw .dw-featured__label { font-size: 14px; letter-spacing: .06em; text-transform: uppercase; color: #066932; font-weight: 500; }
.dw .dw-featured__name { font-family: var(--font-heading); font-size: 20px; font-weight: 500; color: #1d1f20; text-decoration: none; }
.dw .dw-featured__price { font-size: 14px; color: #7a7a7d; }
.dw .dw-featured__price strong { color: #1d1f20; font-size: 16px; }
.dw .dw-featured__actions { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-top: 4px; }
.dw .dw-featured__actions .button { background: #009A4E; color: #fff; padding: 9px 16px; }
.dw .dw-featured__rent { color: #066932; font-size: 14px; }
.dw .dw-afaq { grid-template-columns: 1fr; gap: 14px; padding-top: 28px; }
.dw .dw-afaq .dw-pfaq__title { font-size: 26px; }
.dw .dw-pfaq__q h3.dw-pfaq__qt { font-family: var(--font-body, inherit); font-size: 16px; font-weight: 500; text-transform: none; letter-spacing: 0; margin: 0; line-height: 1.4; color: #1d1f20; }
.dw .dw-promises { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 14px; color: #5d5d60; }
.dw .dw-promises li::before { content: "\2713\00a0"; color: #066932; }
.dw .dw-promises a { color: #066932; }
@media (max-width: 560px) { .dw .dw-featured { grid-template-columns: 1fr; } .dw .dw-featured__img img { width: 100%; } }

/* account widget (notes 92, 93): Elementor colours its links and tabs #5BC0DE through these variables; the name card
   gets its own grid cell above the menu instead of pushing the menu into a 57px column */
.elementor-widget-woocommerce-my-account {
  --links-normal-color: #066932; --links-hover-color: #00813F;
  --tabs-normal-color: #1d1f20; --tabs-hover-color: #066932; --tabs-active-color: #066932;
  --tabs-normal-background-color: #fff; --tabs-hover-background-color: #f6f7f6; --tabs-active-background-color: #E0F5E8;
  --tab-content-spacing: 0; --sections-padding: 0; --sections-background-color: transparent;
}
/* the design sits the tab straight on the page: no inset, no white box round it */
.dw .elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce-MyAccount-content { padding: 0; }
.dw .elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce-MyAccount-content-wrapper { padding: 0; background: transparent; border: 0; box-shadow: none; }
.dw .elementor-widget-woocommerce-my-account .e-my-account-tab .dw-orders__table th { padding: 14px 18px; }
.dw .elementor-widget-woocommerce-my-account .e-my-account-tab .dw-orders__table td { padding: 16px 18px; border-bottom: 1px solid #e2e2e4; }
.dw .elementor-widget-woocommerce-my-account .e-my-account-tab .dw-orders__table tr:last-child td { border-bottom: 0; }
.dw .dw-orders__table td:first-child small { white-space: nowrap; }
.dw .dw-orders__table th:nth-child(3) { white-space: nowrap; }
.dw .elementor-widget-woocommerce-my-account .dw-acc-alert { display: flex; flex-wrap: nowrap; justify-content: space-between; align-items: center; gap: 20px; margin: 0 0 18px; }
.dw .elementor-widget-woocommerce-my-account .dw-acc-alert > div { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.dw .elementor-widget-woocommerce-my-account .dw-acc-alert .button { flex: none; }
@media (max-width: 640px) { .dw .elementor-widget-woocommerce-my-account .dw-acc-alert { flex-direction: column; align-items: stretch; } }
.woocommerce-account.logged-in .e-my-account-tab .woocommerce { grid-template-rows: auto 1fr; row-gap: 0; align-items: start; }
.woocommerce-account.logged-in .e-my-account-tab .woocommerce > .dw-acc-who { grid-column: 1; grid-row: 1; }
.woocommerce-account.logged-in .e-my-account-tab .woocommerce > .woocommerce-MyAccount-navigation { grid-column: 1; grid-row: 2; width: auto; }
.woocommerce-account.logged-in .e-my-account-tab .woocommerce > .woocommerce-MyAccount-content { grid-column: 2; grid-row: 1 / span 2; width: auto; }
.dw .elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce-MyAccount-content a.button { color: #fff; background: #009A4E; border: 1px solid #009A4E; padding: 9px 14px; font-size: 14px; font-weight: 600; line-height: 1.2; text-decoration: none; display: inline-block; }
.dw .elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce-MyAccount-content a.button:hover, .dw .elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce-MyAccount-content a.button:focus { color: #fff; background: #066932; border-color: #066932; }
.dw .elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce-MyAccount-content a.button.is-quiet { color: #1d1f20; background: #fff; border-color: #b7b7ba; }
.dw .elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce-MyAccount-content a.button.is-quiet:hover, .dw .elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce-MyAccount-content a.button.is-quiet:focus { color: #1d1f20; background: #E0F5E8; border-color: #009A4E; }
.dw .elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce-MyAccount-content a.dw-orders__num { color: #1d1f20; }
@media (max-width: 767px) {
  .woocommerce-account.logged-in .e-my-account-tab .woocommerce { grid-template-rows: none; }
  .woocommerce-account.logged-in .e-my-account-tab .woocommerce > .dw-acc-who, .woocommerce-account.logged-in .e-my-account-tab .woocommerce > .woocommerce-MyAccount-navigation, .woocommerce-account.logged-in .e-my-account-tab .woocommerce > .woocommerce-MyAccount-content { grid-column: 1; grid-row: auto; }
}

/* a price inside a button (Reorder pads · £56.00 ex VAT) takes the button's colour, not the price's */
.dw .elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce-MyAccount-content a.button * { color: inherit; }
.dw .elementor-widget-woocommerce-my-account .e-my-account-tab .woocommerce-MyAccount-navigation li.is-active a { background: #E0F5E8; color: #066932; border-left: 3px solid #009A4E; }

.dw .elementor-widget-woocommerce-my-account .dw-device__actions .button { white-space: nowrap; }
.dw-device__rental { margin: 10px 0 0; }
.dw-device__rental + .dw-device__rental { margin-top: 4px; }
.dw-device__rental a { color: #066932; }

/* note 105: ".dw .page-content a" (0,2,1) out-ranked single-class button rules (0,2,0), painting button text green on
   green. Every link styled as a button restates its colours at link-level specificity. */
.dw a.dw-basket__checkout, .dw a.dw-basket__checkout:hover, .dw a.dw-basket__checkout:focus { color: #fff; }
.dw a.dw-basket__add { color: #1d1f20; }
.dw a.dw-basket__add:hover, .dw a.dw-basket__add:focus { color: #fff; }
.dw a.dw-confirm__add { color: #1d1f20; }
.dw a.dw-confirm__add:hover, .dw a.dw-confirm__add:focus { color: #fff; }
.dw a.dw-btn-primary, .dw a.dw-btn-primary:hover, .dw a.dw-btn-primary:focus { color: #fff; }
.dw a.dw-btn-secondary { color: #1d1f20; }
.dw a.button, .dw a.button:hover, .dw a.button:focus { color: #fff; }
.dw a.button.is-quiet, .dw a.button.is-quiet:hover, .dw a.button.is-quiet:focus { color: #1d1f20; }

/* note 110: finder result images were sized by a shrinking link, so each card lined up differently */
.dw .dw-finder-card-body > a { flex: none; display: block; }
.dw .dw-finder-card-body > a img { width: 120px; height: 120px; object-fit: contain; display: block; }
.dw .dw-finder-card.is-recommended .dw-finder-card-body > a img { width: 200px; height: 200px; }
.dw h3.dw-finder-card-name { margin: 0 0 6px; font-family: var(--font-heading); font-weight: 500; font-size: 17px; line-height: 1.3; text-transform: none; letter-spacing: 0; }
.dw .dw-finder-card.is-recommended h3.dw-finder-card-name { font-size: 22px; text-transform: uppercase; letter-spacing: .02em; }
.dw h3.dw-finder-panel-title { margin: 0; font-family: var(--font-heading); font-weight: 500; font-size: 15px; letter-spacing: .06em; text-transform: uppercase; }
@media (max-width: 767px) { .dw .dw-finder-card-body > a img, .dw .dw-finder-card.is-recommended .dw-finder-card-body > a img { width: 100%; height: 180px; } }

/* note 102: an email-only form (newsletter) squeezed to 166px, the Subscribe button spilling over the field */
.dw .page-content .elementor-widget-form:has(.elementor-field-type-email):not(:has(.elementor-field-type-textarea, .elementor-field-type-text, .elementor-field-type-tel, .elementor-field-type-radio, .elementor-field-type-select, .elementor-field-type-date)) { min-width: min(440px, 100%); }
.dw .page-content .elementor-widget-form:has(.elementor-field-type-email):not(:has(.elementor-field-type-textarea, .elementor-field-type-text, .elementor-field-type-tel, .elementor-field-type-radio, .elementor-field-type-select, .elementor-field-type-date)) .elementor-form-fields-wrapper { flex-wrap: nowrap; }
.dw .page-content .elementor-widget-form:has(.elementor-field-type-email):not(:has(.elementor-field-type-textarea, .elementor-field-type-text, .elementor-field-type-tel, .elementor-field-type-radio, .elementor-field-type-select, .elementor-field-type-date)) .elementor-field-type-email { flex: 1 1 auto; width: auto; max-width: none; }
.dw .page-content .elementor-widget-form:has(.elementor-field-type-email):not(:has(.elementor-field-type-textarea, .elementor-field-type-text, .elementor-field-type-tel, .elementor-field-type-radio, .elementor-field-type-select, .elementor-field-type-date)) .elementor-field-type-submit { flex: 0 0 auto; width: auto; }
@media (max-width: 560px) { .dw .page-content .elementor-widget-form:has(.elementor-field-type-email):not(:has(.elementor-field-type-textarea, .elementor-field-type-text, .elementor-field-type-tel, .elementor-field-type-radio, .elementor-field-type-select, .elementor-field-type-date)) .elementor-form-fields-wrapper { flex-wrap: wrap; } }

/* note 116: the question heading wraps the accordion button and adds nothing of its own */
.dw h3.dw-faq__h { margin: 0; padding: 0; font: inherit; letter-spacing: inherit; text-transform: none; }

/* note 121: the 404 search sits in a 560px row as designed, not across the whole page */
.dw.error404 .elementor-widget-search-form.elementor-widget__width-initial { max-width: 560px; margin-inline: auto; }

/* note 135: the sign-in card as designed: heading, full-width fields, remember and forgotten on one line, a green button */
.dw .dw-signin__form { padding: 40px; }
.dw .dw-signin__head { margin-bottom: 22px; }
.dw .dw-signin__head h1 { font-family: var(--font-heading); font-weight: 500; font-size: 32px; text-transform: uppercase; letter-spacing: .02em; margin: 0; }
.dw .dw-signin__head p { margin: 6px 0 0; font-size: 14px; color: #7a7a7d; }
.dw .dw-signin #customer_login { display: block; width: auto; }
.dw .dw-signin #customer_login .u-column1 { float: none; width: auto; max-width: none; padding: 0; }
.dw .dw-signin #customer_login .u-column1 > h2 { display: none; }
.dw .dw-signin .woocommerce-form-login { display: grid; grid-template-columns: 1fr auto; gap: 16px 12px; align-items: center; border: 0; padding: 0; margin: 0; max-width: none; width: auto; }
.dw .dw-signin .woocommerce-form-login > * { grid-column: 1 / -1; margin: 0; }
.dw .dw-signin .woocommerce-form-login > p.form-row:not(.form-row-wide) { display: contents; }
.dw .dw-signin .woocommerce-form-login label { font-size: 14px; font-weight: 500; margin-bottom: 6px; display: block; }
.dw .dw-signin .woocommerce-form-login .form-row-wide { display: block; padding: 0; }
.dw .dw-signin .woocommerce-form-login input.input-text { width: 100%; min-height: 44px; }
.dw .dw-signin .woocommerce-form-login .password-input { display: block; position: relative; }
.dw .dw-signin .woocommerce-form-login__rememberme { grid-column: 1; grid-row: 3; display: flex !important; align-items: center; gap: 8px; margin: 0 !important; font-weight: 400 !important; }
.dw .dw-signin .woocommerce-form-login .lost_password { grid-column: 2; grid-row: 3; font-size: 14px; }
.dw .dw-signin .woocommerce-form-login .woocommerce-form-login__submit { grid-column: 1 / -1; grid-row: 4; width: 100%; margin: 4px 0 0; padding: 13px 18px; background: #009A4E; border: 1px solid #009A4E; color: #fff; border-radius: 0; font-family: var(--font-heading); font-weight: 600; font-size: 15px; }
.dw .dw-signin .woocommerce-form-login .woocommerce-form-login__submit:hover, .dw .dw-signin .woocommerce-form-login .woocommerce-form-login__submit:focus { background: #066932; border-color: #066932; color: #fff; }
.dw .dw-signin__or, .dw .dw-signin__guest { grid-column: 1 / -1; }
@media (max-width: 560px) { .dw .dw-signin__form { padding: 24px 20px; } }

/* ── Checkout, as designed (note 123): steps, three panels, the order in a sticky side column ─────────────────────── */
.dw.woocommerce-checkout .site-main > .page { max-width: 1280px; }
.dw .dw-steps { list-style: none; margin: 8px 0 28px; padding: 0; display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 8px 0; font-family: var(--font-heading); font-size: 14px; letter-spacing: .06em; text-transform: uppercase; color: #7a7a7d; }
.dw .dw-steps li { display: flex; align-items: center; gap: 10px; padding: 0 22px; }
.dw .dw-steps li + li::before { content: ""; width: 56px; border-top: 1px solid #b7b7ba; margin: 0 22px 0 -22px; }
.dw .dw-steps span { width: 26px; height: 26px; display: flex; align-items: center; justify-content: center; border: 1px solid #b7b7ba; }
.dw .dw-steps li.is-current { color: #1d1f20; font-weight: 500; }
.dw .dw-steps li.is-current span { background: #009A4E; border-color: #009A4E; color: #fff; }
.dw form.dw-checkout { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); column-gap: 40px; row-gap: 0; align-items: start; }
.dw form.dw-checkout > * { grid-column: 1; }
/* the side column starts level with the top, beside Stripe's express buttons when they show */
.dw form.dw-checkout > .dw-checkout__side { grid-column: 2; grid-row: 1 / span 6; }
.dw .dw-checkout__main { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.dw .dw-checkout__main #customer_details { display: flex; flex-direction: column; gap: 20px; width: auto; float: none; }
.dw .dw-checkout__panel { border: 1px solid #b7b7ba; background: #fff; padding: 28px; display: flex; flex-direction: column; gap: 16px; }
.dw .dw-checkout__panel > h1, .dw .dw-checkout__panel > h2, .dw .dw-checkout__summary > h2 { font-family: var(--font-heading); font-size: 26px; font-weight: 500; text-transform: uppercase; letter-spacing: .03em; margin: 0; }
.dw .dw-checkout__summary > h2 { font-size: 20px; letter-spacing: .04em; }
.dw .dw-checkout__fields { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.dw .dw-checkout__fields:empty { display: none; }
.dw .dw-checkout .dw-checkout__fields .form-row { margin: 0; padding: 0; width: auto; float: none; grid-column: 1 / -1; }
.dw .dw-checkout .dw-checkout__fields .form-row-first { grid-column: 1; }
.dw .dw-checkout .dw-checkout__fields .form-row-last { grid-column: 2; }
.dw .dw-checkout .dw-checkout__fields .form-row input.input-text, .dw .dw-checkout .dw-checkout__fields .form-row textarea, .dw .dw-checkout .dw-checkout__fields .select2-selection { width: 100%; background: #e9e9ea; border-color: #e9e9ea; }
.dw .dw-checkout .dw-checkout__fields .form-row input.input-text:focus, .dw .dw-checkout .dw-checkout__fields .form-row textarea:focus { background: #fff; border-color: #009A4E; }
.dw .dw-checkout #dw_reminders_field label, .dw .dw-checkout #ship-to-different-address label, .dw .dw-checkout .create-account label { display: flex; align-items: center; gap: 10px; font-size: 14px; color: #3a3d40; margin: 0; }
.dw .dw-checkout #ship-to-different-address { margin: 0; font-size: 14px; }
.dw .dw-checkout .shipping_address { margin-top: 14px; }
.dw .dw-checkout__label { margin: 0 0 8px; font-size: 14px; color: #3a3d40; }
.dw .dw-checkout__shipping { display: flex; flex-direction: column; gap: 10px; }
.dw .dw-checkout__shipping:empty { display: none; }
.dw .dw-ship { display: flex; align-items: center; gap: 12px; border: 1px solid #b7b7ba; background: #fff; padding: 14px 16px; font-size: 14px; cursor: pointer; margin: 0; }
.dw .dw-ship:has(input:checked), .dw .dw-ship.is-chosen { border-color: #009A4E; background: #e6f5ed; }
.dw .dw-ship__name { font-weight: 500; }
.dw .dw-ship__when { color: #5c6a63; }
.dw .dw-ship__when::before { content: "· "; }
.dw .dw-ship__cost { margin-left: auto; font-weight: 500; white-space: nowrap; }
.dw .dw-checkout__panel .woocommerce-additional-fields:has(.dw-checkout__fields:empty) { display: none; }
.dw .dw-checkout__panel #payment { background: none; border: 0; }
.dw .dw-checkout__panel #payment ul.payment_methods { padding: 0 0 16px; }
.dw .dw-checkout__panel #payment div.form-row { padding: 0; margin: 0; }
.dw .dw-checkout__panel .woocommerce-checkout-payment .dw-checkout-note { padding: 0; }
.dw .dw-checkout__side { display: flex; flex-direction: column; gap: 16px; position: sticky; top: 20px; min-width: 0; }
.dw .dw-checkout__summary { border: 1px solid #b7b7ba; background: #fff; padding: 26px; display: flex; flex-direction: column; gap: 14px; }
.dw .dw-checkout__summary #order_review { width: auto; float: none; }
.dw .dw-review { border: 0 !important; }
.dw .dw-review__items { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.dw .dw-review__items li { display: flex; gap: 14px; align-items: center; border-bottom: 1px solid #e2e2e4; padding: 0 0 12px; margin: 0 0 12px; font-size: 14px; }
.dw .dw-review__items img { width: 56px; height: 56px; object-fit: contain; flex: none; }
.dw .dw-review__name { line-height: 1.35; min-width: 0; }
.dw .dw-review__name span { display: block; color: #5c6a63; }
.dw .dw-review__name dl { margin: 2px 0 0; font-size: 13px; color: #5c6a63; }
.dw .dw-review__items strong { margin-left: auto; font-weight: 500; white-space: nowrap; font-variant-numeric: tabular-nums; }
.dw .dw-review__totals { margin: 0; display: flex; flex-direction: column; gap: 10px; }
.dw .dw-review__totals > div { display: flex; justify-content: space-between; gap: 12px; font-size: 14px; }
.dw .dw-review__totals dt { margin: 0; }
.dw .dw-review__totals dd { margin: 0; font-weight: 500; font-variant-numeric: tabular-nums; text-align: right; }
.dw .dw-review__totals dd.is-free { color: #066932; }
.dw .dw-review__totals .woocommerce-remove-coupon { font-size: 13px; color: #5c6a63; margin-left: 6px; font-weight: 400; }
.dw .dw-review__total { display: flex; justify-content: space-between; align-items: baseline; border-top: 1px solid #b7b7ba; padding-top: 12px; margin-top: 12px; }
.dw .dw-review__total span { font-weight: 500; }
.dw .dw-review__total strong { font-family: var(--font-heading); font-weight: 500; font-size: 22px; font-variant-numeric: tabular-nums; }
.dw .dw-checkout__coupon label { display: block; font-size: 14px; color: #3a3d40; margin-bottom: 4px; }
.dw .dw-checkout__coupon > div { display: flex; gap: 8px; }
.dw .dw-checkout__coupon input { flex: 1; min-width: 0; min-height: 44px; padding: 10px 12px; background: #e9e9ea; border: 1px solid #e9e9ea; font: inherit; }
.dw .dw-checkout__coupon input:focus { background: #fff; border-color: #009A4E; outline: none; }
.dw .dw-checkout__coupon .button.is-quiet { min-height: 44px; padding: 0 18px; background: #fff; color: #1d1f20; border: 1px solid #b7b7ba; font-size: 14px; }
.dw .dw-checkout__coupon .button.is-quiet:hover, .dw .dw-checkout__coupon .button.is-quiet:focus { background: #1d1f20; color: #fff; }
.dw .dw-checkout__coupon-msg { font-size: 13px; margin: 6px 0 0; }
.dw .dw-checkout__side .dw-checkout-addons { margin: 0; background: #e6f5ed; border-color: #9fd6b9; }
.dw .dw-checkout__trust { list-style: none; margin: 0; padding: 0 4px; display: flex; flex-direction: column; gap: 6px; font-size: 13px; color: #3a3d40; }
.dw .dw-checkout__trust li::before { content: "\2713\00a0"; color: #066932; }
.dw .dw-checkout__trust a { color: #066932; }
.dw .dw-checkout__back { font-size: 14px; padding: 0 4px; color: #066932; }
@media (max-width: 900px) {
  .dw form.dw-checkout { grid-template-columns: 1fr; row-gap: 20px; }
  .dw form.dw-checkout > .dw-checkout__side { grid-column: 1; grid-row: auto; }
  .dw .dw-checkout__side { position: static; }
}
@media (max-width: 560px) {
  .dw .dw-checkout__panel, .dw .dw-checkout__summary { padding: 20px 16px; }
  .dw .dw-checkout__fields { grid-template-columns: 1fr; }
  .dw .dw-checkout .dw-checkout__fields .form-row-first, .dw .dw-checkout .dw-checkout__fields .form-row-last { grid-column: 1; }
  .dw .dw-steps { font-size: 12px; letter-spacing: .03em; flex-wrap: nowrap; }
  .dw .dw-steps li { padding: 0 6px; gap: 6px; }
  .dw .dw-steps li + li::before { width: 12px; margin: 0 6px 0 -6px; }
  .dw .dw-steps span { width: 22px; height: 22px; }
  .dw .dw-ship { flex-wrap: wrap; }
}

/* note 138: the header basket icon links to the basket; Elementor's side cart never shows */
.dw .elementor-menu-cart__container, .dw .elementor-menu-cart__main { display: none !important; }

/* note 136: the 404's magnifier sat as its own widget at the page edge; it belongs inside the field, as designed */
.dw.error404 .elementor-widget-icon:has(+ .elementor-widget-search-form) { display: none; }
.dw.error404 .elementor-widget-search-form input.elementor-search-form__input { padding-left: 42px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%237a7a7d' stroke-width='1.5'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4.3-4.3'/%3E%3C/svg%3E") no-repeat 14px center; }

/* note 139: the empty basket, as designed */
.dw .dw-basket:has(.dw-empty-cart) > .dw-basket__title, .dw .dw-basket .wc-empty-cart-message { display: none; }
.dw .dw-empty-cart__hero { display: flex; flex-direction: column; align-items: center; gap: 16px; text-align: center; padding: 40px 0 40px; }
.dw .dw-empty-cart__hero h1 { font-family: var(--font-heading); font-size: 40px; font-weight: 500; text-transform: uppercase; letter-spacing: .02em; margin: 0; }
.dw .dw-empty-cart__hero p { margin: 0; font-size: 15px; color: #7a7a7d; max-width: 52ch; }
.dw .dw-empty-cart__actions { display: flex; gap: 12px; flex-wrap: wrap; justify-content: center; margin: 6px 0 0; }
.dw .dw-empty-cart__actions a { display: inline-flex; align-items: center; justify-content: center; padding: 12px 20px; font-family: var(--font-heading); font-weight: 600; font-size: 14px; text-decoration: none; border: 1px solid #b7b7ba; background: #fff; color: #1d1f20; }
.dw .dw-empty-cart__actions a.dw-btn-primary { min-width: 200px; background: #009A4E; border-color: #009A4E; color: #fff; }
.dw .dw-empty-cart__actions a:hover, .dw .dw-empty-cart__actions a:focus { background: #1d1f20; border-color: #1d1f20; color: #fff; }
.dw .dw-empty-cart__actions a.dw-btn-primary:hover, .dw .dw-empty-cart__actions a.dw-btn-primary:focus { background: #066932; border-color: #066932; }
.dw .dw-empty-cart__best { padding: 16px 0 40px; }
.dw .dw-empty-cart__head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 20px; }
.dw .dw-empty-cart__head .dw-empty-cart__title { margin: 0; }
.dw .dw-empty-cart__head a { font-size: 14px; font-weight: 500; color: #066932; }
.dw .dw-empty-cart__rent { background: #0f3b22; color: #fff; padding: 36px 44px; margin: 0 0 64px; display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.dw .dw-empty-cart__rent h2 { font-family: var(--font-heading); font-size: 24px; font-weight: 500; text-transform: uppercase; letter-spacing: .02em; margin: 0; color: #fff; }
.dw .dw-empty-cart__rent p { margin: 4px 0 0; font-size: 14px; color: #d9efe3; max-width: 58ch; }
.dw .dw-empty-cart__rent a { flex: none; min-width: 190px; text-align: center; background: #fff; color: #0f3b22; padding: 12px 20px; font-family: var(--font-heading); font-weight: 600; font-size: 14px; text-decoration: none; }
.dw .dw-empty-cart__rent a:hover, .dw .dw-empty-cart__rent a:focus { background: #e6f5ed; color: #0f3b22; }
@media (max-width: 767px) {
  .dw .dw-empty-cart__hero h1 { font-size: 28px; }
  .dw .dw-empty-cart__rent { flex-direction: column; align-items: stretch; padding: 24px 20px; }
}

/* note 141: the footer newsletter's confirmation sat dark on the dark green footer */
.dw .elementor-location-footer .elementor-message, .dw .elementor-location-footer .elementor-message-success { color: #fff; }
.dw .elementor-location-footer .elementor-message-danger { color: #ffd2cc; }

/* note 142: the cookie banner's link lists picked up the theme's list bullets */
.cmplz-cookiebanner ul, .cmplz-cookiebanner li { list-style: none; }
.cmplz-cookiebanner ul { padding-left: 0; margin-left: 0; }
.cmplz-cookiebanner li::marker { content: none; }

/* notes 148, 150: headings made from design text (h2/h3 inside Elementor heading widgets) picked up the migrated-page
   prose margins (".page-content h3 { margin: 26px 0 8px }"), pushing them off the line of their icons and neighbours */
.dw .page-content .elementor-widget-heading .elementor-heading-title { margin: 0; }

/* note 149: with a menu open, only that item is lit; the current section's underline steps aside */
.dw.dw-mega-open .dw-nav-link.is-active:not(.is-open) .elementor-heading-title,
.dw.dw-mega-open .dw-nav-link.is-active:not(.is-open) .elementor-widget-text-editor,
.dw.dw-mega-open .dw-nav-link.is-active:not(.is-open) .elementor-widget-text-editor p,
.dw.dw-mega-open .dw-nav-link.is-active:not(.is-open) .dw-chevron { color: inherit; box-shadow: none; }

/* case studies hidden for now (client, 16 Sep): their empty slots and the boxes holding only them take no room */
.dw .dw-story-wrap, .dw .dw-stories-wrap { display: none; }
.dw .e-con:has(> .dw-story-wrap, > .dw-stories-wrap):not(:has(> :not(.dw-story-wrap):not(.dw-stories-wrap))) { display: none; }

/* note 154: the one linked product under each listing card's button */
.dw ul.products li.product .dw-card-pair { order: 20; display: block; margin-top: 10px; font-size: 13px; line-height: 1.35; color: #066932; text-decoration: underline; text-underline-offset: 2px; }
.dw ul.products li.product .dw-card-pair:hover, .dw ul.products li.product .dw-card-pair:focus { color: #1d1f20; }

/* note 156: every top-level nav item answers the pointer the same way (Rental and items without a menu had nothing) */
.dw .dw-nav-link:hover .elementor-heading-title, .dw .dw-nav-link:hover .elementor-heading-title a,
.dw .dw-nav-link:hover .elementor-widget-text-editor, .dw .dw-nav-link:hover .elementor-widget-text-editor p,
.dw .dw-nav-link:hover .dw-chevron, .dw .dw-nav-link:focus-within .elementor-heading-title a { color: #066932; }
.dw .dw-nav-link:hover .elementor-heading-title, .dw .dw-nav-link:hover .elementor-widget-text-editor p { box-shadow: inset 0 -2px 0 #009A4E; }
.dw .dw-nav-link.is-active .elementor-heading-title a { color: #066932; }

/* note 157: the hero is 600px tall but its row was sized to its content, leaving a band under the photo; the row fills it */
.dw .elementor-element-1f357c3.e-grid { align-content: stretch; grid-template-rows: auto; }
/* note 158: the home product grids sat inside a second 48px gutter, narrower than their headings and the strips above */
@media (min-width: 1025px) { .dw .e-con:has(> .elementor-widget.dw-home-products) { padding-left: 0; padding-right: 0; } }
/* note 159: the rental page's closing call to action sat tight under the section above */
.dw .elementor-element-9946a46 { margin-top: 56px; }
