.elementor-kit-3{--e-global-color-primary:#7FD3E8;--e-global-color-secondary:#E8B44A;--e-global-color-text:#E6E8EA;--e-global-color-accent:#131517;--e-global-color-primaryhover:#5BB8D0;--e-global-color-texthover:#CFD3D6;--e-global-color-surface:#1E2124;--e-global-color-card:#2A2E32;--e-global-color-raised:#34393E;--e-global-color-border:#3A3F44;--e-global-color-muted:#9AA3AB;--e-global-color-band:#3E4A3A;--e-global-color-success:#6FCF97;--e-global-typography-primary-font-family:"Space Grotesk";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"IBM Plex Mono";--e-global-typography-secondary-font-weight:500;--e-global-typography-text-font-family:"IBM Plex Sans";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"IBM Plex Sans";--e-global-typography-accent-font-weight:600;background-color:var( --e-global-color-accent );color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-size:var( --e-global-typography-text-font-size );font-weight:var( --e-global-typography-text-font-weight );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );word-spacing:var( --e-global-typography-text-word-spacing );}.elementor-kit-3 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-kit-3{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );word-spacing:var( --e-global-typography-text-word-spacing );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-3{font-size:var( --e-global-typography-text-font-size );line-height:var( --e-global-typography-text-line-height );letter-spacing:var( --e-global-typography-text-letter-spacing );word-spacing:var( --e-global-typography-text-word-spacing );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}:root { --Primary:var(--e-global-color-primary); --FontText:var(--e-global-typography-text-font-family); --HeaderH:var(--dt-header-h); --PrimaryHover:var(--e-global-color-primaryhover); --Secondary:var(--e-global-color-secondary); --Accent:var(--e-global-color-accent); --Surface:var(--e-global-color-surface); --Card:var(--e-global-color-card); --Raised:var(--e-global-color-raised); --Border:var(--e-global-color-border); --Text:var(--e-global-color-text); --TextHover:var(--e-global-color-texthover); --Band:var(--e-global-color-band); --Muted:var(--e-global-color-muted); --Success:var(--e-global-color-success); --FontPrimary:var(--e-global-typography-primary-font-family); --FontSecondary:var(--e-global-typography-secondary-font-family); --HeaderHM:var(--dt-header-h-m); --UtilityH:var(--dt-utility-h); --ControlHSm:var(--dt-control-h-sm); --RowHLg:var(--dt-row-h-lg); --ChipH:var(--dt-chip-h); --ContainerW:var(--dt-container); --Hairline:var(--dt-hairline); --Rule:var(--dt-rule); --Radius:var(--dt-radius); --BtnMinW:var(--dt-btn-min-w); --NavSize:var(--dt-nav); --BtnSize:var(--dt-btn); --LabelSize:var(--dt-label); --GutterT:var(--dt-gutter-t); --GutterM:var(--dt-gutter-m); --S4:var(--dt-s-4); --S8:var(--dt-s-8); --S10:var(--dt-s-10); --S11:var(--dt-s-11); --S12:var(--dt-s-12); --S14:var(--dt-s-14); }
/* Start custom CSS *//* THEME 26 — OVERLANDING & OFF-ROAD RIGS · token block
   Source of truth: design-system/tokens.css in the working folder.
   Boilerplate §5.3: this block lives in the Kit and NOWHERE else.
   Do not edit here — edit tokens.css and re-push.

   COLOURS AND FONTS ARE NOT DEFINED HERE. They are Elementor Site Settings →
   Global Colors / Global Fonts (boilerplate §5.8). Every colour token below is
   var(--e-global-color-<id>) or a color-mix() of one; every family token is
   var(--e-global-typography-<id>-font-family). Re-skin a site in Site Settings.

   Selector is `:root, body` because Elementor declares --e-global-* on
   .elementor-kit-<id> (the <body>), not on :root. At :root the colour tokens
   are unresolvable and harmless; on body they resolve and every element
   inherits them. Non-colour tokens still resolve at :root, which the v4 size
   variables (compiled at :root) depend on. */

:root,
body {
  --dms-primary: var(--e-global-color-primary);
  --dms-secondary: var(--e-global-color-primaryhover);
  --dms-accent: var(--e-global-color-secondary);
  --dms-dark: var(--e-global-color-accent);
  --dms-text: var(--e-global-color-text);
  --dms-muted: var(--e-global-color-muted);
  --dms-light: var(--e-global-color-card);
  --dms-surface: var(--e-global-color-surface);
  --dms-border: var(--e-global-color-border);
  --dms-success: var(--e-global-color-success);
  --dms-radius: 2px;

  --dt-charcoal: var(--e-global-color-accent);
  --dt-graphite: var(--e-global-color-surface);
  --dt-basalt: var(--e-global-color-card);
  --dt-slate: var(--e-global-color-raised);
  --dt-edge: var(--e-global-color-border);
  --dt-bone: var(--e-global-color-text);
  --dt-bone-press: var(--e-global-color-texthover);
  --dt-glacier: var(--e-global-color-primary);
  --dt-glacier-press: var(--e-global-color-primaryhover);
  --dt-amber: var(--e-global-color-secondary);
  --dt-olive: var(--e-global-color-band);

  --dt-bone-90: color-mix(in srgb, var(--e-global-color-text) 90%, transparent);
  --dt-bone-85: color-mix(in srgb, var(--e-global-color-text) 85%, transparent);
  --dt-bone-80: color-mix(in srgb, var(--e-global-color-text) 80%, transparent);
  --dt-bone-70: color-mix(in srgb, var(--e-global-color-text) 70%, transparent);
  --dt-bone-60: color-mix(in srgb, var(--e-global-color-text) 60%, transparent);
  --dt-bone-40: color-mix(in srgb, var(--e-global-color-text) 40%, transparent);
  --dt-bone-25: color-mix(in srgb, var(--e-global-color-text) 25%, transparent);

  --dt-charcoal-80: color-mix(in srgb, var(--e-global-color-accent) 80%, transparent);
  --dt-charcoal-82: color-mix(in srgb, var(--e-global-color-accent) 82%, transparent);
  --dt-charcoal-45: color-mix(in srgb, var(--e-global-color-accent) 45%, transparent);
  --dt-charcoal-96: color-mix(in srgb, var(--e-global-color-accent) 96%, transparent);

  --dt-muted-70: color-mix(in srgb, var(--e-global-color-muted) 70%, transparent);

  --dt-font-display: var(--e-global-typography-primary-font-family), sans-serif;
  --dt-font-ui: var(--e-global-typography-text-font-family), sans-serif;
  --dt-font-mono: var(--e-global-typography-secondary-font-family), monospace;

  --dt-w-regular: 400;
  --dt-w-medium: 500;
  --dt-w-semi: 600;

  --dt-h1: 60px;
  --dt-h1-lh: 1.02;
  --dt-h1-ls: -.015em;
  --dt-h1-t: 48px;
  --dt-h1-m: 36px;
  --dt-h1-m-lh: 1.08;

  --dt-h1-page: 40px;
  --dt-h1-page-lh: 1.05;
  --dt-h1-page-m: 28px;

  --dt-h2: 36px;
  --dt-h2-lh: 1.1;
  --dt-h2-ls: -.01em;
  --dt-h2-t: 32px;
  --dt-h2-m: 28px;

  --dt-h2-sub: 28px;
  --dt-h2-sub-lh: 1.1;

  --dt-h3: 22px;
  --dt-h3-lh: 1.2;
  --dt-h3-t: 20px;
  --dt-h3-m: 19px;

  --dt-title: 17px;
  --dt-title-lh: 1.25;
  --dt-title-m: 16px;

  --dt-price: 24px;
  --dt-price-lh: 1.1;
  --dt-price-t: 22px;
  --dt-price-m: 21px;
  --dt-price-vdp: 36px;
  --dt-figure-lg: 32px;   /* offer-card figure - an EXAMPLE, Bone (DS-SPC-1) */
  --dt-price-vdp-lh: 1.05;

  --dt-body: 16px;
  --dt-body-lh: 1.6;
  --dt-ui: 15px;
  --dt-ui-lh: 1.4;
  --dt-small: 14px;
  --dt-small-lh: 1.5;
  --dt-xsmall: 13px;
  --dt-xsmall-lh: 1.4;

  --dt-trio-value: 14px;
  --dt-trio-value-lh: 1.3;
  --dt-trio-value-m: 13px;
  --dt-trio-label: 11px;
  --dt-trio-label-m: 10px;

  --dt-label: 12px;
  --dt-label-lh: 1.3;
  --dt-label-sm: 11px;

  --dt-nav: 15px;
  --dt-btn: 14px;

  --dt-ls-label: .1em;
  --dt-ls-btn: .08em;
  --dt-ls-figure: .06em;
  --dt-ls-chip: .04em;
  --dt-ls-mark: .14em;
  --dt-ls-tight: -.01em;
  --dt-ls-tighter: -.015em;

  --dt-s-1: 2px;
  --dt-s-2: 4px;
  --dt-s-3: 6px;
  --dt-s-4: 8px;
  --dt-s-5: 10px;
  --dt-s-6: 12px;
  --dt-s-7: 14px;
  --dt-s-8: 16px;
  --dt-s-9: 18px;
  --dt-s-10: 20px;
  --dt-s-11: 24px;
  --dt-s-12: 26px;
  --dt-s-13: 28px;
  --dt-s-14: 32px;
  --dt-s-15: 40px;
  --dt-s-16: 48px;
  --dt-s-17: 52px;
  --dt-s-18: 56px;
  --dt-s-19: 64px;
  --dt-s-20: 72px;
  --dt-s-21: 80px;

  --dt-rhythm-within: 104px;
  --dt-rhythm-across: 144px;
  --dt-band-pad: 72px;
  --dt-band-pad-half: 52px;
  --dt-band-pad-m: 56px;
  --dt-band-pad-m-half: 40px;
  --dt-head-gap: 20px;
  --dt-head-gap-m: 16px;
  --dt-head-to-body: 32px;
  --dt-head-to-body-m: 24px;

  --dt-container: 1280px;
  --dt-gutter: 80px;
  --dt-gutter-t: 40px;
  --dt-gutter-m: 16px;
  --dt-card-w: 413px;
  --dt-card-w-m: 343px;
  --dt-grid-gap: 20px;
  --dt-grid-gap-t: 16px;
  --dt-grid-gap-m: 12px;
  --dt-sidebar-w: 300px;

  --dt-control-h: 46px;
  --dt-control-h-sm: 44px;
  --dt-control-h-xs: 40px;
  --dt-row-h: 44px;
  --dt-row-h-lg: 56px;
  --dt-chip-h: 32px;
  --dt-box: 18px;
  --dt-header-h: 72px;
  --dt-header-h-m: 64px;
  --dt-stickybar-h: 72px;
  --dt-utility-h: 34px;
  --dt-btn-min-w: 140px;
  --dt-sort-min-w: 220px;

  --dt-hairline: 1px;
  --dt-rule: 2px;
  --dt-focus-w: 2px;
  --dt-focus-offset: 2px;
  --dt-radius: 2px;
  --dt-radius-round: 50%;

  --dt-motion: 160ms;
  --dt-ease: linear;

  --dt-icon: 20px;
  --dt-icon-sm: 16px;
  --dt-icon-md: 22px;
  --dt-icon-lg: 40px;
  --dt-icon-stroke: 1.5;
  --dt-icon-stroke-lg: .75;

  --dt-scrim-hero: linear-gradient(90deg, color-mix(in srgb, var(--e-global-color-accent) 70%, transparent) 0%, color-mix(in srgb, var(--e-global-color-accent) 45%, transparent) 45%, color-mix(in srgb, var(--e-global-color-accent) 15%, transparent) 100%);
  --dt-scrim-hero-ground: linear-gradient(180deg, color-mix(in srgb, var(--e-global-color-accent) 0%, transparent) 50%, color-mix(in srgb, var(--e-global-color-accent) 55%, transparent) 100%);
  --dt-scrim-hero-m: linear-gradient(180deg, color-mix(in srgb, var(--e-global-color-accent) 25%, transparent) 0%, color-mix(in srgb, var(--e-global-color-accent) 60%, transparent) 45%, color-mix(in srgb, var(--e-global-color-accent) 92%, transparent) 100%);

  --dt-scrim-dense: linear-gradient(90deg, color-mix(in srgb, var(--e-global-color-accent) 96%, transparent) 0%, color-mix(in srgb, var(--e-global-color-accent) 96%, transparent) 55%, color-mix(in srgb, var(--e-global-color-accent) 55%, transparent) 100%);
  --dt-scrim-dense-m: color-mix(in srgb, var(--e-global-color-accent) 96%, transparent);

  --dt-scrim-band: linear-gradient(180deg, color-mix(in srgb, var(--e-global-color-accent) 0%, transparent) 40%, color-mix(in srgb, var(--e-global-color-accent) 45%, transparent) 100%);
  --dt-scrim-band-m: linear-gradient(180deg, color-mix(in srgb, var(--e-global-color-accent) 0%, transparent) 30%, color-mix(in srgb, var(--e-global-color-accent) 70%, transparent) 100%);

  --dt-scrim-sold: color-mix(in srgb, var(--e-global-color-accent) 45%, transparent);
  --dt-scrim-overlay: color-mix(in srgb, var(--e-global-color-accent) 82%, transparent);
  --dt-scrim-viewer: color-mix(in srgb, var(--e-global-color-accent) 96%, transparent);

  --dt-ratio-card: 75%;
  --dt-ratio-scroller: 62.5%;
  --dt-ratio-wide: 56.25%;
}

/* Plugin token block. The tripled :root chain is not decoration: dms-general.css
   declares :root{--dms-focus-color:#1a73e8} and loads after post-3.css, so a
   plain :root ties on specificity and loses on source order. :root:root wins. */
:root, :root:root, html:root, body {
  --dms-focus-color: var(--e-global-color-primary);
  --dms-focus-width: 2px;
  --dms-focus-offset: 2px;

  --dms-mn-btn-bg: color-mix(in srgb, var(--e-global-color-accent) 80%, transparent);
  --dms-mn-btn-bg-hover: var(--e-global-color-accent);
  --dms-mn-btn-color: var(--e-global-color-text);
  --dms-mn-btn-color-hover: var(--e-global-color-primary);
  --dms-mn-counter-bg: color-mix(in srgb, var(--e-global-color-accent) 80%, transparent);
  --dms-mn-counter-color: var(--e-global-color-text);
  --dms-mn-progress-fill: color-mix(in srgb, var(--e-global-color-text) 90%, transparent);
  --dms-mn-progress-track: color-mix(in srgb, var(--e-global-color-text) 25%, transparent);
  --dms-mn-thumb-active-color: var(--e-global-color-primary);
  --dms-mn-cat-color: var(--e-global-color-muted);
  --dms-mn-cat-active-color: var(--e-global-color-accent);
  --dms-mn-cat-active-bg: var(--e-global-color-text);

  --dms-sa-accent: var(--e-global-color-text);
  --dms-hist-active: var(--e-global-color-primary);
  --dms-hist-inactive: var(--e-global-color-border);

  --dms-modal-container-bg: var(--e-global-color-surface);
  --dms-modal-overlay-bg: color-mix(in srgb, var(--e-global-color-accent) 82%, transparent);
  --dms-modal-border-color: var(--e-global-color-border);
  --dms-modal-close-color: var(--e-global-color-text);

  --dms-mn-thumb-active-width: 2px;
  --dms-mn-cat-gap: 6px;
  --dms-mn-cat-padding: 7px 12px;
  --dms-mn-cat-radius: 2px;
  --dms-mn-cat-font-size: 12px;
}

/* v4 VARIABLE BRIDGE (boilerplate §5.8). Elementor compiles v4 variables at
   :root, where --e-global-* does not exist, so each colour/font variable is
   re-declared here on body, where it resolves. The variables' stored values are
   the same var() strings; this block is what makes them live. Keep the two in
   step — a variable renamed in the Variables Manager must be renamed here. */
body {
  --Primary: var(--e-global-color-primary);
  --PrimaryHover: var(--e-global-color-primaryhover);
  --Secondary: var(--e-global-color-secondary);
  --Text: var(--e-global-color-text);
  --TextHover: var(--e-global-color-texthover);
  --Accent: var(--e-global-color-accent);
  --Surface: var(--e-global-color-surface);
  --Card: var(--e-global-color-card);
  --Raised: var(--e-global-color-raised);
  --Border: var(--e-global-color-border);
  --Muted: var(--e-global-color-muted);
  --Band: var(--e-global-color-band);
  --Success: var(--e-global-color-success);
  --FontPrimary: var(--e-global-typography-primary-font-family);
  --FontText: var(--e-global-typography-text-font-family);
  --FontSecondary: var(--e-global-typography-secondary-font-family);
}

.dms-category-dropdown-container .ts-wrapper,
.dms-order-by-container .ts-wrapper,
.dms-search-form .ts-wrapper { --dms-focus-width: 0; }

/* ==========================================================================
   THEME 26 — HEADER. Rules that must reach plugin / Pro markup we do not own.
   Visual styling only: every layout and responsive decision lives in a native
   Elementor control. Written 2026-09-18 against the rendered DOM, not guessed.
   ========================================================================== */

/* white-space has no v4 style prop. The wordmark must never wrap. */
.dt-header-solid .dt-wordmark-name, .dt-header-solid .dt-wordmark-suffix,
.dt-header-over  .dt-wordmark-name, .dt-header-over  .dt-wordmark-suffix,
.dt-mobile-bar   .dt-wordmark-name, .dt-mobile-bar   .dt-wordmark-suffix { white-space: nowrap; }

/* ---- Utility strip nav ------------------------------------------------- */
.dt-utility-nav .elementor-nav-menu a.elementor-item { line-height: 1; }

/* ---- Primary nav ------------------------------------------------------- */
/* The <li> must stretch to the header row, or the flyout opens at the bottom
   of the link TEXT and cuts the header hairline. margin-top would leave a dead
   pointer gap the flyout closes across; stretch + height:100% does not. */
.dt-nav, .dt-nav > .elementor-widget-container,
.dt-nav .elementor-nav-menu--main,
.dt-nav .elementor-nav-menu--main > ul.elementor-nav-menu { height: 100%; }
.dt-nav .elementor-nav-menu--main > ul.elementor-nav-menu { display: flex; align-items: stretch; }
.dt-nav .elementor-nav-menu--main > ul.elementor-nav-menu > li.menu-item {
  align-self: stretch; display: flex; align-items: center; position: relative;
}
.dt-nav .elementor-nav-menu--main a.elementor-item {
  height: var(--dt-header-h);
  display: inline-flex; align-items: center;
  /* H-20. Padding is NOT declared here. It is the widget's native Horizontal and
     Vertical Padding, both 0 (hdr0007 on headers 64 and 65), which Elementor
     emits at (0,5,0) and which therefore beats pro-elements' stock
     :hover / :focus / .highlighted { padding: 13px 20px } (0,3,1). A padding
     rule in this file only TIES with those and loses on load order, which made
     every hovered item grow 40px and shove the row 20px. The 2px transparent
     top border replaces the old 2px padding-top, so the label still centres
     against the 2px bottom rule. Same native fix on utl0006 (utility strip). */
  border-top: var(--dt-rule) solid transparent;
  border-bottom: var(--dt-rule) solid transparent;
  line-height: 1;
  transition: color var(--dt-motion) var(--dt-ease);
}
/* Hover moves COLOUR only — the border stays transparent. */
.dt-nav .elementor-nav-menu--main a.elementor-item:hover { color: var(--dt-bone); }
/* The one place the 2px Glacier rule is spent. */
.dt-nav .elementor-nav-menu--main a.elementor-item[aria-current="page"],
.dt-nav .elementor-nav-menu--main li[aria-expanded="true"] > a.elementor-item,
.dt-nav .elementor-nav-menu--main a.elementor-item[aria-expanded="true"] {
  border-bottom-color: var(--dt-glacier); color: var(--dt-bone);
}

/* ---- Desktop flyout = ul.sub-menu inside the MAIN nav ------------------ */
/* `elementor-nav-menu--dropdown` is on two different things: this panel and
   the widget's own burger <nav>. Every rule below is qualified with
   .elementor-nav-menu--main so the burger panel keeps Elementor's display:none. */
.dt-nav .elementor-nav-menu--main ul.sub-menu {
  /* SmartMenus (Elementor Pro's own nav JS) writes inline width/min-width/
     max-width/left on the open panel, and inline beats a stylesheet. These
     four !important declarations exist only to restore the drawn panel size
     and offset. RETIREMENT TRIGGER: an Elementor control that exposes the
     sub-menu width and horizontal offset. `top` is NOT set here — Elementor
     already ships `top:100%!important`, which with the stretched <li> lands
     exactly on the header hairline. */
  width: 320px !important;
  min-width: 0 !important;
  max-width: none !important;
  /* Elementor positions the panel at left:calc(menu_space_between/2) = 10px,
     which is the nav item's TEXT edge because menu_space_between puts a 10px
     margin on every <a>. The panel's own rows are inset 20px, so the panel is
     pulled back 20px to land row text on item text — board 1c's -20. Expressed
     as a negative margin because SmartMenus owns `left` at runtime. */
  margin: 0 0 0 calc(var(--dt-s-10) * -1) !important;
  padding: var(--dt-s-4) 0 0;
  background: var(--dt-graphite);
  border: var(--dt-hairline) solid var(--dt-edge);
  border-radius: var(--dt-radius);
  box-shadow: none;
  font-size: var(--dt-nav);
  z-index: 5;
}
.dt-nav .elementor-nav-menu--main ul.sub-menu a.elementor-sub-item {
  display: flex; align-items: center; justify-content: space-between;
  height: var(--dt-control-h-sm);
  padding: 0 var(--dt-s-10);
  border: 0;
  border-bottom: var(--dt-hairline) solid var(--dt-edge);
  border-inline-start: 0;
  font-family: var(--dt-font-ui);
  font-size: var(--dt-nav);
  font-weight: var(--dt-w-medium);
  line-height: 1;
  color: var(--dt-bone);
  background: transparent;
  text-shadow: none;
  transition: background-color var(--dt-motion) var(--dt-ease);
}
.dt-nav .elementor-nav-menu--main ul.sub-menu a.elementor-sub-item:hover,
.dt-nav .elementor-nav-menu--main ul.sub-menu a.elementor-sub-item:focus,
.dt-nav .elementor-nav-menu--main ul.sub-menu a.elementor-sub-item.highlighted {
  background: var(--dt-basalt); color: var(--dt-bone);
}
/* Closing row — 600 14, 48px, no bottom rule. */
.dt-nav .elementor-nav-menu--main ul.sub-menu > li:last-child > a.elementor-sub-item {
  height: 48px; border-bottom: 0; font-weight: var(--dt-w-semi); font-size: 14px;
}
/* The Glacier rule never lights inside the flyout. */
.dt-nav .elementor-nav-menu--main ul.sub-menu a.elementor-sub-item.elementor-item-active { background: transparent; }

/* ---- Mobile menu (popup) ---------------------------------------------- */
.dt-mobile-nav .elementor-nav-menu--main > ul.elementor-nav-menu > li.menu-item > a.elementor-item {
  display: flex; align-items: center;
  min-height: var(--dt-row-h-lg);
  padding: 0;
  border-bottom: var(--dt-hairline) solid var(--dt-edge);
  font-family: var(--dt-font-display);
  font-size: 26px; font-weight: var(--dt-w-semi);
  line-height: var(--dt-h3-lh); letter-spacing: var(--dt-ls-tight);
  color: var(--dt-bone); background: transparent;
}
/* The rig types are a STATIC two-column list here, always open — there is no
   hover at this width. This display rule is the list's appearance, not a
   disclosure mechanism. */
.dt-mobile-nav .elementor-nav-menu--main ul.sub-menu {
  display: grid; grid-template-columns: 1fr 1fr; gap: 0 var(--dt-s-8);
  position: static; width: auto; margin: 0;
  padding: var(--dt-s-3) 0 var(--dt-s-4);
  background: transparent; border: 0; box-shadow: none;
}
.dt-mobile-nav .elementor-nav-menu--main ul.sub-menu a.elementor-sub-item {
  display: flex; align-items: center;
  min-height: var(--dt-chip-h);
  padding: 0; border: 0; border-inline-start: 0;
  font-family: var(--dt-font-mono);
  font-size: var(--dt-label); font-weight: var(--dt-w-regular);
  line-height: var(--dt-label-lh); letter-spacing: var(--dt-ls-chip);
  color: var(--dms-muted); background: transparent; text-shadow: none;
}
.dt-mobile-nav .elementor-nav-menu--main ul.sub-menu a.elementor-sub-item:hover,
.dt-mobile-nav .elementor-nav-menu--main ul.sub-menu a.elementor-sub-item.elementor-item-active { background: transparent; color: var(--dms-muted); }

/* The Over-Hero band carries the transition itself, not only the scrolled
   state, so the fade back to transparent is the same 160ms linear as the fade
   in. Without it Elementor's .e-con base transition (0.3s ease) owns the way
   back and the two directions do not match. */
.elementor .dt-header-over,
.elementor .dt-header-solid { transition: background-color var(--dt-motion) var(--dt-ease), border-color var(--dt-motion) var(--dt-ease); }

/* ---- Sticky solid state ------------------------------------------------ */
/* Elementor Pro Sticky exposes no per-state style controls, so the scrolled
   state is carried here. background-color and border-color only. */
.elementor .elementor-sticky--effects .dt-header-over {
  background-color: var(--dt-graphite);
  border-bottom: var(--dt-hairline) solid var(--dt-edge);
  transition: background-color var(--dt-motion) var(--dt-ease), border-color var(--dt-motion) var(--dt-ease);
}

/* ---- Focus — 2px Glacier, offset 2, on every focusable element --------- */
.dt-utility a:focus-visible,
#site-header a:focus-visible, #site-header button:focus-visible,
.dt-mobile-popup a:focus-visible, .dt-mobile-popup button:focus-visible {
  outline: var(--dt-focus-w) solid var(--dt-glacier);
  outline-offset: var(--dt-focus-offset);
}
/* Elementor writes its own focus styles; reset the non-keyboard case. */
.dt-utility a:focus:not(:focus-visible),
#site-header a:focus:not(:focus-visible), #site-header button:focus:not(:focus-visible),
.dt-mobile-popup a:focus:not(:focus-visible), .dt-mobile-popup button:focus:not(:focus-visible) { outline: none; }

/* ---- Reduced motion ---------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .dt-nav .elementor-nav-menu--main a.elementor-item,
  .dt-nav .elementor-nav-menu--main ul.sub-menu a.elementor-sub-item,
  .elementor .elementor-sticky--effects .dt-header-over { transition: none; }
}

/* ==========================================================================
   THEME 26 — FOOTER. Rules that must reach Pro `nav-menu` markup we do not
   own, plus the two things v4 cannot express: a parent-hover on a child, and
   flex-wrap on a menu's own <ul>. Visual styling only — every layout and
   responsive decision lives in a native control or a v4 breakpoint variant.
   Written 2026-09-18 against the rendered DOM, not guessed.
   ========================================================================== */

/* ---- The three column menus (.dt-footer-nav, 3 instances) -------------- */
/* Padding, typography and colour are native nav-menu controls. Only the box
   model of the <a> is here: inline-flex is what keeps the 44px target when a
   label wraps, which the 11px vertical padding alone does not guarantee. */
.dt-footer-nav .elementor-nav-menu--main a.elementor-item {
  display: inline-flex; align-items: center;
  transition: color var(--dt-motion) var(--dt-ease);
}
/* The footer marks no current page (PAGE_SPEC_Footer §1.1). The eleven
   post_type items would otherwise light on their own page. */
.dt-footer-nav .elementor-nav-menu--main a.elementor-item.elementor-item-active { color: var(--dms-muted); }

/* ---- The legal menu (.dt-footer-legal-nav, 1 instance) ----------------- */
.dt-footer-legal-nav .elementor-nav-menu--main > ul.elementor-nav-menu { flex-wrap: wrap; }
/* menu_space_between writes calc(24px/2) as a margin on BOTH sides of every
   <a>, the outer two included. Left alone the row starts 12px right of the
   copyright and stops 12px short of the credit. */
.dt-footer-legal-nav .elementor-nav-menu--main > ul.elementor-nav-menu > li:first-child > a.elementor-item { margin-inline-start: 0; }
.dt-footer-legal-nav .elementor-nav-menu--main > ul.elementor-nav-menu > li:last-child  > a.elementor-item { margin-inline-end: 0; }
.dt-footer-legal-nav .elementor-nav-menu--main a.elementor-item { transition: color var(--dt-motion) var(--dt-ease); }
.dt-footer-legal-nav .elementor-nav-menu--main a.elementor-item.elementor-item-active { color: var(--dms-muted); }

/* ---- The Dealer.ms credit --------------------------------------------- */
/* Rest opacity (.75) and the −2.1px baseline correction are v4 style props on
   the image itself (PAGE_SPEC_Footer §7-F). Only the hover is here, and only
   because it is driven by the PARENT <a>: hovering the words must brighten the
   mark, and a v4 hover variant on the image fires on the image alone. */
.dt-footer-credit img { transition: opacity var(--dt-motion) var(--dt-ease); }
.dt-footer-credit:hover img,
.dt-footer-credit:focus-visible img { opacity: 1; }

/* ---- Focus — 2px Glacier, offset 2 ------------------------------------- */
.dt-footer a:focus-visible, .dt-footer button:focus-visible {
  outline: var(--dt-focus-w) solid var(--dt-glacier);
  outline-offset: var(--dt-focus-offset);
}
.dt-footer a:focus:not(:focus-visible),
.dt-footer button:focus:not(:focus-visible) { outline: none; }

/* ---- Reduced motion ---------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .dt-footer-nav .elementor-nav-menu--main a.elementor-item,
  .dt-footer-legal-nav .elementor-nav-menu--main a.elementor-item,
  .dt-footer-credit img { transition: none; }
}


/* ==========================================================================
   THEME 26 - SRI CARD (boxed).
   EVERY CLASS IS DOUBLED. dms-frontend-framework.css and dms-general.css are
   enqueued AFTER post-3.css, so a single-class rule ties on specificity and
   loses on source order - measured on the card: the title came out #7A7A7A and
   centred, the price grey, and display:none on a label did nothing.
   Boilerplate 5.2: repeating the class is the reliable lever, not !important.
   ========================================================================== */

.dt-card.dt-card { background: var(--dt-basalt); border: var(--dt-hairline) solid var(--dt-edge); border-radius: var(--dms-radius); height: 100%; transition: border-color var(--dt-motion) var(--dt-ease); }
.dt-card.dt-card:hover { border-color: var(--dt-bone-60); }

/* Every widget in the card fills its column: the plugin wrapper is the one
   that shrink-wraps and it is why the trio resolved to three 31px tracks. */
.dt-card.dt-card .elementor-widget-container,
.dt-card.dt-card .dms-elementor-widget-container { width: 100%; min-width: 0; }

/* ---- Media -------------------------------------------------------------- */
.dt-card.dt-card .dt-card__media { position: relative; }
.dt-card.dt-card .dt-card__photo .listing-main-image-container { position: relative; width: 100%; aspect-ratio: 4 / 3; }
.dt-card.dt-card .dt-card__photo .listing-main-image-container > a { display: block; width: 100%; height: 100%; }
.dt-card.dt-card .dt-card__photo .dms-image-arrow-scroller { position: absolute; inset: 0; }
.dt-card.dt-card .dt-card__photo img.listing-main-image { display: block; width: 100%; height: 100%; object-fit: cover; }

/* Arrows: 32px squares, hover-only above 1024 */
.dt-card.dt-card .dms-image-arrows { position: absolute; inset: 0; display: flex; align-items: center; justify-content: space-between; padding-inline: 10px; pointer-events: none; }
.dt-card.dt-card .dms-image-arrows button { width: 32px; height: 32px; border: 0; border-radius: var(--dms-radius); display: inline-flex; align-items: center; justify-content: center; padding: 0; pointer-events: auto; opacity: 0; transition: opacity var(--dt-motion) var(--dt-ease); }
.dt-card.dt-card .dms-image-arrows button svg { width: 18px; height: 18px; }
.dt-card.dt-card:hover .dms-image-arrows button,
.dt-card.dt-card .dms-image-arrows button:focus-visible { opacity: 1; }
@media (max-width: 1024px) { .dt-card.dt-card .dms-image-arrows button { opacity: 1; } }

.dt-card.dt-card .dms-media-nav__counter { font: var(--dt-w-regular) 11px/1 var(--dt-font-mono); letter-spacing: var(--dt-ls-figure); padding: 5px 6px; border-radius: var(--dms-radius); }
.dt-card.dt-card .dms-media-nav__progress { bottom: 8px; gap: 3px; }
.dt-card.dt-card .dms-media-nav__progress-seg { height: 2px; border-radius: 0; }

.dt-card.dt-card .dt-card__history { position: absolute; bottom: 18px; left: 10px; z-index: 3; width: auto; }
.dt-card.dt-card .dt-card__history .dms-elementor-widget-container { width: auto; background: var(--dt-basalt); border-left: var(--dt-rule) solid var(--dt-amber); padding: 4px 8px; font: var(--dt-w-regular) 11px/1 var(--dt-font-mono); letter-spacing: var(--dt-ls-figure); color: var(--dms-text); text-transform: uppercase; }

/* ---- Build strip -------------------------------------------------------- */
.dt-card.dt-card .dt-card__strip { background: var(--dt-charcoal); border-top: var(--dt-hairline) solid var(--dt-edge); border-bottom: var(--dt-hairline) solid var(--dt-edge); min-height: 42px; align-items: center; }
.dt-card.dt-card .dt-card__bg { width: auto; }
.dt-card.dt-card .dt-card__bg .elementor-widget-container,
.dt-card.dt-card .dt-card__bg .dms-elementor-widget-container { width: auto; display: inline-flex; }
.dt-card.dt-card .dt-bgi { display: inline-flex; align-items: center; color: var(--dt-edge); }
.dt-card.dt-card .dt-bgi--lit { color: var(--dt-glacier); }

/* ---- Title, sub line ---------------------------------------------------- */
.dt-card.dt-card .dt-card__title { text-align: left; }
.dt-card.dt-card .dt-card__title .listing-title-container { text-align: left; }
.dt-card.dt-card .dt-card__title a { text-decoration: none; display: block; }
.dt-card.dt-card .dt-card__title .listing-title { margin: 0; text-align: left; font: var(--dt-w-semi) 17px/1.25 var(--dt-font-ui); color: var(--dms-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.dt-card.dt-card .dt-card__sub { margin-top: 4px; }
.dt-card.dt-card .dt-card__sub .dms-listing-categories-list { display: flex; flex-wrap: wrap; align-items: baseline; }
.dt-card.dt-card .dt-card__sub .category-row { display: inline-flex; }
.dt-card.dt-card .dt-card__sub .category-label { display: none; }
.dt-card.dt-card .dt-card__sub .category-value { font: var(--dt-w-regular) 14px/1.4 var(--dt-font-ui); color: var(--dms-muted); }
.dt-card.dt-card .dt-card__sub .category-row + .category-row::before { content: '·'; color: var(--dms-muted); margin: 0 6px; }

/* ---- Trio --------------------------------------------------------------- */
.dt-card.dt-card .dt-card__trio { margin-top: 16px; padding-top: 14px; border-top: var(--dt-hairline) solid var(--dt-edge); }
/* total_columns IS a working control - it emits `columns: 3` (CSS multicol) on
   the WIDGET element, not a grid on the list. An earlier grid override here was
   fighting it and produced three 31px tracks; it was withdrawn. The native
   multicol does the three columns, so only the gap and the break rule are ours. */
.dt-card.dt-card .dt-card__trio { column-gap: 12px; }
.dt-card.dt-card .dt-card__trio .category-row { display: block; break-inside: avoid; }
.dt-card.dt-card .dt-card__trio .category-label { display: block; }
.dt-card.dt-card .dt-card__trio .category-label-text { font: var(--dt-w-medium) 11px/1.3 var(--dt-font-mono); letter-spacing: var(--dt-ls-label); text-transform: uppercase; color: var(--dms-muted); white-space: nowrap; }
.dt-card.dt-card .dt-card__trio .category-value { display: block; margin-top: 4px; font: var(--dt-w-semi) 14px/1.2 var(--dt-font-ui); color: var(--dms-text); white-space: nowrap; }

/* ---- Second spec row ----------------------------------------------------- */
.dt-card.dt-card .dt-card__row2 { padding-bottom: 14px; border-bottom: var(--dt-hairline) solid var(--dt-edge); }
.dt-card.dt-card .dt-card__row2 .dms-listing-info-table { display: flex; flex-wrap: wrap; align-items: baseline; }
.dt-card.dt-card .dt-card__row2 .dms-listing-info-row { display: inline-flex; }
.dt-card.dt-card .dt-card__row2 .dms-listing-info-label { display: none; }
.dt-card.dt-card .dt-card__row2 .dms-listing-info-value { font: var(--dt-w-regular) 13px/1.5 var(--dt-font-ui); color: var(--dms-muted); }
.dt-card.dt-card .dt-card__row2 .dms-listing-info-row + .dms-listing-info-row::before { content: '·'; color: var(--dms-muted); margin: 0 6px; }

/* ---- Price row, CTA, compare -------------------------------------------- */
.dt-card.dt-card .dt-card__price-row { margin-top: auto; align-items: baseline; justify-content: flex-start; }
.dt-card.dt-card .dt-card__price .dms-listing-price { display: flex; align-items: baseline; gap: 8px; text-align: left; }
.dt-card.dt-card .dt-card__price .price-value { font: var(--dt-w-semi) 24px/1.1 var(--dt-font-ui); color: var(--dt-amber); }
.dt-card.dt-card .dt-card__price .dms-sold-text { font: var(--dt-w-semi) 24px/1.1 var(--dt-font-ui); color: var(--dms-muted); }
.dt-card.dt-card .dt-card__price .dms-original-price,
.dt-card.dt-card .dt-card__price .original-price-value { font: var(--dt-w-regular) 14px/1.1 var(--dt-font-ui); color: var(--dms-muted); text-decoration: line-through; }

.dt-card.dt-card .dt-card__cta { margin-top: 14px; }
.dt-card.dt-card .dt-card__cta .dms-listing-button { display: inline-flex; align-items: center; justify-content: center; width: 100%; min-height: 44px; background: transparent; border: var(--dt-hairline) solid var(--dt-bone-60); border-radius: var(--dms-radius); color: var(--dms-text); font: var(--dt-w-semi) var(--dt-btn)/1 var(--dt-font-ui); letter-spacing: var(--dt-ls-btn); text-transform: uppercase; text-decoration: none; transition: background-color var(--dt-motion) var(--dt-ease); }
.dt-card.dt-card .dt-card__cta .dms-listing-button:hover { background: var(--dt-slate); }
.dt-card.dt-card .dt-card__compare { margin-top: 8px; }
.dt-card.dt-card .dt-card__compare .dms-listing-comparison { display: flex; align-items: center; min-height: 44px; gap: 10px; }
.dt-card.dt-card .dt-card__compare .dms-checkbox-text { font: var(--dt-w-regular) 13px/1 var(--dt-font-ui); color: var(--dms-muted); }

/* ---- Focus, reduced motion, 343 ----------------------------------------- */
.dt-card.dt-card a:focus-visible, .dt-card.dt-card button:focus-visible, .dt-card.dt-card input:focus-visible { outline: var(--dt-focus-w) solid var(--dt-glacier); outline-offset: var(--dt-focus-offset); }
.dt-card.dt-card a:focus:not(:focus-visible), .dt-card.dt-card button:focus:not(:focus-visible) { outline: none; }
@media (prefers-reduced-motion: reduce) { .dt-card.dt-card, .dt-card.dt-card .dms-image-arrows button, .dt-card.dt-card .dms-listing-button { transition: none; } }
@media (max-width: 767px) {
  .dt-card.dt-card .dt-card__body { padding: 14px; }
  .dt-card.dt-card .dt-card__strip { padding-inline: 14px; }
  .dt-card.dt-card .dt-card__title .listing-title { font-size: 16px; }
  .dt-card.dt-card .dt-card__sub .category-value { font-size: 13px; }
  .dt-card.dt-card .dt-card__trio { margin-top: 14px; padding-top: 12px; }
  .dt-card.dt-card .dt-card__trio .dms-listing-categories-list { gap: 10px; }
  .dt-card.dt-card .dt-card__trio .category-label-text { font-size: 10px; }
  .dt-card.dt-card .dt-card__trio .category-value { font-size: 13px; }
  .dt-card.dt-card .dt-card__row2 { padding-bottom: 12px; }
  .dt-card.dt-card .dt-card__price-row { padding-top: 14px; }
  .dt-card.dt-card .dt-card__price .price-value, .dt-card.dt-card .dt-card__price .dms-sold-text { font-size: 21px; }
  .dt-card.dt-card .dt-card__cta { margin-top: 12px; }
}

/* ---- Scrollers (theme 8.3) - dms_scroller with icon_position: bottom. Home region 6 and
   VDP Similar builds. The widget prints .dms-scroller-buttons-under after the rail, so the
   rail keeps the full container width and slides_per_view 3 / 2 / 1 give the drawn
   413 / 343 cards (PAGE_SPEC_Home HV-2). Visual only: spacing, alignment, chrome. ---- */
.dt-scroller.dt-scroller .dms-scroller-buttons-under { display: flex; justify-content: flex-end; gap: var(--dt-s-4); margin-top: var(--dt-s-10); }
/* .dt-scroller--head (Home region 6, Adam 2026-10-06): the arrows sit in the section head's
   right slot, as drawn. icon_position has no head option, so the widget keeps `bottom` and
   the arrow row is lifted out of flow, anchored to the widget's top edge. Offset = the head's
   margin-bottom + padding-bottom + hairline, so the arrows' bottom meets the H2's bottom at
   any H2 height. The head reserves the arrows' width in its own padding-inline-end. */
.dt-scroller--head.dt-scroller--head { position: relative; }
.dt-scroller--head.dt-scroller--head .dms-scroller-buttons-under { position: absolute; right: 0; bottom: calc(100% + var(--dt-head-to-body) + var(--dt-head-gap) + var(--dt-hairline)); margin: 0; }
@media (max-width:767px){ .dt-scroller--head.dt-scroller--head .dms-scroller-buttons-under { bottom: calc(100% + var(--dt-head-to-body-m) + var(--dt-head-gap-m) + var(--dt-hairline)); } }

/* The compare tick renders in any SRI context but only an SRP can show the
   'Compare N' toolbar (dms_srp_compare_buttons is ['srp']). Off an SRP it would
   collect selections the visitor cannot see or act on, so it is suppressed on
   the scroller - one template, not two. PAGE_SPEC_SRI_boxed R7. */
.dt-scroller.dt-scroller .dt-card__compare { display: none; }

/* Scroller arrows: doubled, because dms-frontend-framework.css loads later. */
.dt-scroller.dt-scroller .dms-scroller-button-prev,
.dt-scroller.dt-scroller .dms-scroller-button-next { position: static; transform: none; margin: 0; width: 44px; height: 44px; flex: 0 0 44px; border-radius: var(--dms-radius); border: var(--dt-hairline) solid var(--dt-edge); background: var(--dt-basalt); color: var(--dms-text); display: inline-flex; align-items: center; justify-content: center; padding: 0; transition: background-color var(--dt-motion) var(--dt-ease), color var(--dt-motion) var(--dt-ease); }
.dt-scroller.dt-scroller .dms-scroller-button-prev:hover,
.dt-scroller.dt-scroller .dms-scroller-button-next:hover { background: var(--dt-charcoal); color: var(--dt-glacier); }
/* Tabler chevrons are stroked: Scroller.php also writes the icon colour to fill,
   which fills the open wedge solid (boilerplate 8.4). */
/* Five classes: the widget's own fill rule is .elementor-<post> .elementor-element.elementor-element-<id> ... svg (0,4,1), (0,5,1) on :hover, and post-<id>.css loads after the Kit. */
.dt-scroller.dt-scroller.dt-scroller.dt-scroller.dt-scroller .dms-scroller-button-prev svg,
.dt-scroller.dt-scroller.dt-scroller.dt-scroller.dt-scroller .dms-scroller-button-next svg { width: 20px; height: 20px; fill: none; stroke: currentColor; }

/* The scroller rendering of the card is 16:10 (theme 10.1, card-system board 05);
   the grid rendering stays 4:3 (PAGE_SPEC_Home HV-4). */
.dt-scroller.dt-scroller .dt-card__photo .listing-main-image-container { aspect-ratio: 16 / 10; }

/* Equal height across a scroller row - the scroller's half of the card's equal-height contract
   (the card owns min-height 100% and the price row's margin-top auto). Same pattern as the SRP
   grids' li > .dms-listing-sri-inner > .elementor rule. dms_equal_height was tried on the sub
   line and broke its layout (PAGE_SPEC_Home HV-5). */
.dt-scroller.dt-scroller .swiper-slide { height: auto; }
.dt-scroller.dt-scroller .swiper-slide > .elementor { height: 100%; }

/* ======================================================================
   HOME - band heights (rhythm tokens; mirrored in design-system/tokens.css)
   ====================================================================== */
:root{ --dt-hero-h:602px; --dt-hero-h-m:469px; --dt-band-sell-h:520px; --dt-band-rent-h:560px; }

/* ======================================================================
   HOME - REGION 3 hero . REGION 4 mobile tray . REGION 5 rig types
   Scrims alpha-authored FIRST, image LAST (PAGE_SPEC_Home 5.4).
   ====================================================================== */
.dt-hero{ background-color:var(--dt-charcoal); background-repeat:no-repeat; background-attachment:scroll; background-size:cover,cover,cover; background-position:center 25%; background-image:var(--dt-scrim-hero-ground),var(--dt-scrim-hero),url(https://demo.dealerthemes.com/overland-rigs/wp-content/uploads/sites/8/2026/09/t26-hero-expedition-band.jpg); }
/* Mobile variant is COMPLETE, never a merge: the grounding layer is dropped. */
@media (max-width:767px){ .dt-hero{ background-size:cover,cover; background-position:center 35%; background-image:var(--dt-scrim-hero-m),url(https://demo.dealerthemes.com/overland-rigs/wp-content/uploads/sites/8/2026/09/t26-hero-expedition-band.jpg); } }
.dt-hero__inner{ max-width:var(--dt-container); margin-inline:auto; }
.dt-hero__eyebrow{ font-family:var(--dt-font-mono); font-weight:400; font-size:var(--dt-label); line-height:var(--dt-label-lh); letter-spacing:var(--dt-ls-label); text-transform:uppercase; color:var(--dt-bone-70); margin:0; }
.dt-hero__h1{ font-family:var(--dt-font-display); font-weight:600; font-size:var(--dt-h1); line-height:var(--dt-h1-lh); letter-spacing:var(--dt-ls-tighter); color:var(--dt-bone); white-space:pre-line; margin:0; }
.dt-hero__support{ font-family:var(--dt-font-ui); font-size:var(--dt-body); line-height:var(--dt-body-lh); color:var(--dt-bone-85); margin:0; max-width:52ch; }
@media (max-width:1024px){ .dt-hero__h1{ font-size:var(--dt-h1-t); } }
@media (max-width:767px){ .dt-hero__h1{ font-size:var(--dt-h1-m); line-height:var(--dt-h1-m-lh); } }
/* ---- Live count line + arrow link ------------------------------------ */
.dt-hero__countline, .dt-hero__countline .dms-total-listings{ font-family:var(--dt-font-mono); font-size:var(--dt-label); letter-spacing:var(--dt-ls-btn); text-transform:uppercase; color:var(--dt-bone-85); }
/* ---- Section head, shared by every banded region --------------------- */
.dt-band--graphite{ background:var(--dt-graphite); }
.dt-band--charcoal{ background:var(--dt-charcoal); }
.dt-band--olive{ background:var(--dt-olive); }
.dt-eyebrow{ font-family:var(--dt-font-mono); font-weight:400; font-size:var(--dt-label); line-height:var(--dt-label-lh); letter-spacing:var(--dt-ls-label); text-transform:uppercase; color:var(--dt-muted); margin:0; }
.dt-h2{ font-family:var(--dt-font-display); font-weight:600; font-size:var(--dt-h2); line-height:var(--dt-h2-lh); letter-spacing:var(--dt-ls-tight); color:var(--dt-bone); margin:0; }
.dt-h3{ font-family:var(--dt-font-display); font-weight:600; font-size:var(--dt-h3); line-height:var(--dt-h3-lh); letter-spacing:var(--dt-ls-tight); color:var(--dt-bone); margin:0; }
@media (max-width:1024px){ .dt-h2{ font-size:var(--dt-h2-t); } .dt-h3{ font-size:var(--dt-h3-t); } }
@media (max-width:767px){ .dt-h2{ font-size:var(--dt-h2-m); } .dt-h3{ font-size:var(--dt-h3-m); } }
/* ---- Rig-type plate = DS-RT-5 (.dt-catlinks--plate) ----------------- */
/* Shared by Home hm0058 and Rig Types R2. The plugin renders
   Term <span class=dms-category-link-count>(n)</span>; the span takes the
   design's .dt-plate__count. The parentheses are hard-coded in the plugin
   template. .dt-catlinks--cols (Home only, Adam 2026-10-05) = the design's
   .dt-plate--cols: two columns, column-major, Edge rule between. */
.dt-catlinks--plate.dt-catlinks--plate .dms-category-links{list-style:none;margin:0;padding:0;background:var(--dt-charcoal);border:1px solid var(--dt-edge)}
.dt-catlinks--plate .dms-category-links li{margin:0;padding:0}
.dt-catlinks--plate.dt-catlinks--plate .dms-category-links a{display:flex;align-items:center;justify-content:space-between;gap:var(--dt-s-6);height:var(--dt-row-h-lg);padding-inline:var(--dt-s-10);border-bottom:1px solid var(--dt-edge);font:var(--dt-w-medium) var(--dt-body)/1 var(--dt-font-ui);letter-spacing:0;text-transform:none;color:var(--dt-bone);text-decoration:none;transition:background-color var(--dt-motion) var(--dt-ease)}
.dt-catlinks--plate.dt-catlinks--plate .dms-category-link-count{flex:none;font:var(--dt-w-regular) var(--dt-xsmall)/1 var(--dt-font-mono);letter-spacing:var(--dt-ls-figure);color:var(--dms-muted)}
.dt-catlinks--plate.dt-catlinks--plate .dms-category-links li:last-child a{border-bottom:0}
.dt-catlinks--plate.dt-catlinks--plate .dms-category-links a:hover{background:var(--dt-graphite);color:var(--dt-bone)}
.dt-catlinks--plate .dms-category-links a:focus-visible{outline:var(--dt-focus-w) solid var(--dms-primary);outline-offset:calc(var(--dt-focus-offset) * -1)}
.dt-catlinks--cols.dt-catlinks--plate .dms-category-links{columns:2;column-gap:0;column-rule:1px solid var(--dt-edge);border-bottom:0}
.dt-catlinks--cols .dms-category-links li{break-inside:avoid}
.dt-catlinks--cols.dt-catlinks--plate .dms-category-links li:last-child a{border-bottom:1px solid var(--dt-edge)}
@media (max-width:767px){ .dt-catlinks--plate.dt-catlinks--plate .dms-category-links a{height:52px;padding-inline:var(--dt-s-8)} .dt-catlinks--cols.dt-catlinks--plate .dms-category-links{columns:1;border-bottom:1px solid var(--dt-edge)} .dt-catlinks--cols.dt-catlinks--plate .dms-category-links li:last-child a{border-bottom:0} }
/* ---- Region 4 mobile tray ------------------------------------------- */
.dt-traym{ background:var(--dt-charcoal); }
.dt-traym__inner{ max-width:var(--dt-container); margin-inline:auto; }
/* ================================================================
   HOME - the search tray (F1, regions 3 and 4)
   Layout is NATIVE: a flex column holding two grid containers inside the F1
   document (1.1fr 1fr 1.5fr / 1.2fr 1.7fr auto, 2 columns at tablet, 1 at
   mobile) - PAGE_SPEC_Home HV-10. Colours of the dropdowns and ranges are
   native controls bound to Global Colors (HV-9). What is here is the panel
   chrome and the plugin markup no control reaches. Classes are doubled:
   form.css and dms-frontend-framework.css load after post-3.css.
   ====================================================================== */
.dt-tray.dt-tray{ display:block; background:var(--dt-graphite); border:1px solid var(--dt-edge); border-radius:var(--dt-radius); padding:var(--dt-s-10); }
.dt-tray--m.dt-tray--m{ background:transparent; border:0; padding:0; }
.dt-tray.dt-tray .elementor-element{ min-width:0; }
/* Labels. dms_form_category_dropdown has no label control: the plugin prints a
   real <label for> with .dms-visually-hidden, which is shown here rather than
   duplicated. The range's own label is set in the same role. */
.dt-tray.dt-tray label, .dt-tray.dt-tray label.dms-visually-hidden, .dt-tray.dt-tray .dms-range-category-label{ position:static; width:auto; height:auto; overflow:visible; clip:auto; clip-path:none; white-space:normal; display:block; font-family:var(--dt-font-mono); font-weight:var(--dt-w-medium); font-size:var(--dt-label); line-height:var(--dt-label-lh); letter-spacing:var(--dt-ls-label); text-transform:uppercase; color:var(--dt-muted); margin:0 0 var(--dt-s-3); padding:0; }
.dt-tray.dt-tray .dms-range-slider-label{ flex-wrap:wrap; margin-top:0; }
/* Reading order: label, inputs, then the slider - the plugin prints the slider first. */
.dt-tray.dt-tray .dms-range-filter-container{ display:flex; flex-direction:column; }
.dt-tray.dt-tray.dt-tray .dms-range-filter{ order:2; margin-top:var(--dt-s-8); }
/* Tripled: form.css sets flex:0 0 auto at (0,3,0) and loads later. */
.dt-tray.dt-tray.dt-tray .dms-range-category-label{ flex:1 0 100%; }
/* Text input */
.dt-tray.dt-tray input.dms-form-text-input{ width:100%; height:var(--dt-control-h); background:var(--dt-charcoal); border:1px solid var(--dt-edge); border-radius:var(--dt-radius); padding:0 var(--dt-s-6); font-family:var(--dt-font-ui); font-size:var(--dt-ui); color:var(--dt-bone); box-shadow:none; }
.dt-tray.dt-tray input::placeholder{ color:var(--dt-muted-70); }
.dt-tray.dt-tray input:focus-visible{ outline:var(--dt-focus-w) solid var(--dt-glacier); outline-offset:var(--dt-focus-offset); }
/* Tom Select: box metrics and type. Same treatment as the SRP dropdown bar. */
.dt-tray.dt-tray .ts-wrapper .ts-control{ min-height:var(--dt-control-h); display:flex; align-items:center; padding:0 var(--dt-s-15) 0 var(--dt-s-6); font-family:var(--dt-font-ui); font-size:var(--dt-ui); box-shadow:none; }
.dt-tray.dt-tray .ts-wrapper .ts-control input::placeholder{ color:var(--dt-bone); }
.dt-tray.dt-tray .ts-wrapper.focus .ts-control{ outline:var(--dt-focus-w) solid var(--dt-glacier); outline-offset:var(--dt-focus-offset); }
.dt-tray.dt-tray .ts-dropdown .option{ font-family:var(--dt-font-ui); font-size:var(--dt-ui); }
.dt-tray.dt-tray .ts-dropdown .dms-checkbox label{ width:var(--dt-box); height:var(--dt-box); margin:0; background:var(--dt-charcoal); border:1px solid var(--dt-edge); border-radius:var(--dt-radius); box-shadow:none; }
.dt-tray.dt-tray .ts-dropdown .dms-checkbox input:checked+label{ background:var(--dt-glacier); border-color:var(--dt-glacier); }
.dt-tray.dt-tray .ts-dropdown .dms-checkbox input:checked+label:after{ border-color:var(--dt-charcoal); }
/* The plugin's custom-skin.css paints counts as a green pill with !important. */
.dt-tray.dt-tray .term-count{ background:transparent !important; color:var(--dt-muted) !important; font-family:var(--dt-font-mono); font-size:var(--dt-label); padding:0; border-radius:0; }
/* Submit - Glacier primary, scoped to the submit (button.button catches every button in a form). */
.dt-tray.dt-tray button[type=submit]{ min-width:var(--dt-btn-min-w); height:var(--dt-control-h); padding:0 var(--dt-s-10); background:var(--dt-glacier); border:0; border-radius:var(--dt-radius); font-family:var(--dt-font-ui); font-weight:var(--dt-w-medium); font-size:var(--dt-btn); letter-spacing:var(--dt-ls-btn); text-transform:uppercase; color:var(--dt-charcoal); cursor:pointer; transition:background var(--dt-motion) var(--dt-ease); }
.dt-tray.dt-tray button[type=submit]:hover{ background:var(--dt-glacier-press); }
.dt-tray.dt-tray button[type=submit]:focus-visible{ outline:var(--dt-focus-w) solid var(--dt-glacier); outline-offset:var(--dt-focus-offset); }
.dt-tray--m.dt-tray--m button[type=submit]{ width:100%; }
/* ---- Text link = design .dt-link (Home hm0039, hm0056) ------------- */
/* Bone underlined; hover brightens the underline only. Case and tracking
   inherit (the hero meta line is uppercase). Tripled class: .elementor
   .e-button-base ties at (0,2,0) and loads AFTER post-3.css (boilerplate 5.2). */
.dt-link.dt-link.dt-link{ background:none; background-color:transparent; background-image:none; border:0; border-radius:0; box-shadow:none; padding:0; min-width:0; width:auto; height:auto; min-height:var(--dt-control-h-sm); display:inline-flex; align-items:center; flex:none; font:var(--dt-w-medium) var(--dt-btn)/1 var(--dt-font-ui); letter-spacing:inherit; text-transform:inherit; color:var(--dt-bone); text-decoration:underline; text-decoration-color:var(--dt-bone-40); text-underline-offset:4px; transition:text-decoration-color var(--dt-motion) var(--dt-ease), color var(--dt-motion) var(--dt-ease); }
.dt-link.dt-link.dt-link:hover{ background-color:transparent; color:var(--dt-bone); text-decoration-color:var(--dt-bone); }
.dt-link.dt-link.dt-link:focus-visible{ outline:var(--dt-focus-w) solid var(--dms-primary); outline-offset:var(--dt-focus-offset); }
.dt-link.dt-link.dt-link:focus:not(:focus-visible){ outline:none; }
/* Hero meta line is uppercase in the design (.hero__meta). */
.dt-hero__count .dt-link.dt-link.dt-link{ text-transform:uppercase; letter-spacing:var(--dt-ls-btn); }

/* ==========================================================================
   THEME 26 - SRI CARD (wide row), post 196.
   The boxed card's sibling: same nine widgets, three columns. EVERY CLASS IS
   DOUBLED for the same reason as the boxed block - dms-general.css loads after
   post-3.css and a single-class rule ties and loses on source order.
   Scoped to .dt-card--wide throughout: both cards share this Kit block and an
   unscoped rule here would retune the boxed card too.
   ========================================================================== */

.dt-card--wide.dt-card--wide .dt-card__main { flex: 1 1 auto; min-width: 0; }
.dt-card--wide.dt-card--wide .dt-card__media-col,
.dt-card--wide.dt-card--wide .dt-card__body { border-right: var(--dt-hairline) solid var(--dt-edge); min-width: 0; }
.dt-card--wide.dt-card--wide .dt-card__rail { min-width: 0; }

/* 16:9 here, 4:3 there - the same element the boxed block sets, scoped. */
.dt-card--wide.dt-card--wide .dt-card__photo .listing-main-image-container { aspect-ratio: 16 / 9; }

/* The strip GROWS on this card (it is exactly 42 on the boxed one): a 16:9
   media is shorter than the body, and the strip is what carries the media
   column down to the card's bottom edge. */
.dt-card--wide.dt-card--wide .dt-card__strip { flex: 1 0 auto; min-height: 42px; border-bottom: 0; }

/* Trio pinned to the body's bottom so rig and trailer rows align down a list. */
.dt-card--wide.dt-card--wide .dt-card__trio { margin-top: auto; }
.dt-card--wide.dt-card--wide .dt-card__row2 { padding-bottom: 0; border-bottom: 0; }

/* Rail: price at the top, CTA pushed to the bottom, tick under it. */
.dt-card--wide.dt-card--wide .dt-card__price-row { margin-top: 0; padding-top: 0; }
.dt-card--wide.dt-card--wide .dt-card__cta { margin-top: auto; }

/* --- THE 944 FLOOR -------------------------------------------------------
   The wide row is drawn at 1280 and 944 and has no rendering below 944: the
   fixed 260 rail takes over and the 40% media collapses. Below it the card
   renders the BOXED anatomy.
   Keyed on the CARD's own width, never the viewport - the same viewport gives
   SRP A a 1280 card and SRP B a 960 one, and at 1025 SRP A's is 945 while
   SRP B's is 625. No media query can be right for both.
   --width is Elementor's own container variable; setting it (not just width)
   is what beats the per-element rule that carries the 40/60 split.
   ------------------------------------------------------------------------ */
li.dms-column.dms-listing-sri { container-type: inline-size; }

@container (max-width: 943px) {
  .dt-card--wide.dt-card--wide,
  .dt-card--wide.dt-card--wide .dt-card__main { flex-direction: column; }
  .dt-card--wide.dt-card--wide .dt-card__media-col,
  .dt-card--wide.dt-card--wide .dt-card__body,
  .dt-card--wide.dt-card--wide .dt-card__rail { --width: 100%; width: 100%; border-right: 0; }
  .dt-card--wide.dt-card--wide .dt-card__photo .listing-main-image-container { aspect-ratio: 4 / 3; }
  .dt-card--wide.dt-card--wide .dt-card__strip { flex: none; min-height: 42px; }
  .dt-card--wide.dt-card--wide .dt-card__trio { margin-top: var(--dt-s-8); }
  .dt-card--wide.dt-card--wide .dt-card__body { padding: var(--dt-s-8); }
  .dt-card--wide.dt-card--wide .dt-card__rail { padding: 0 var(--dt-s-8) var(--dt-s-8); }
}

/* ====== THEME 26 - SRP B (sidebar), template 197, host page 198. Classes doubled. ====== */
.dt-srp-root.dt-srp-root{background:var(--dt-charcoal)}
.dt-srp-head.dt-srp-head{background:var(--dt-graphite);min-height:160px;justify-content:center}
.dt-srp-head.dt-srp-head .dt-h1{font:var(--dt-w-semi) var(--dt-h1-page)/1.05 var(--dt-font-display);color:var(--dms-text);margin:8px 0 0}
.dt-srp-head.dt-srp-head .dt-eyebrow{font:var(--dt-w-medium) var(--dt-label)/1 var(--dt-font-mono);letter-spacing:var(--dt-ls-label);text-transform:uppercase;color:var(--dms-muted);margin:0}
.dt-srp-count.dt-srp-count{font:var(--dt-w-medium) var(--dt-label)/1 var(--dt-font-mono);letter-spacing:var(--dt-ls-btn);text-transform:uppercase;color:var(--dms-muted);margin-top:12px}
/* The sidebar docks only where the wide row still fits: results must clear 944 (SRI_wide 8), which needs ~1344 of viewport. */
.dt-srp-b.dt-srp-b{align-items:flex-start}
@media(max-width:1365px){.dt-srp-b.dt-srp-b{flex-direction:column}.dt-srp-sidebar.dt-srp-sidebar{--width:100%;width:100%;position:static;max-height:none}}
@media(min-width:1366px){.dt-srp-sidebar.dt-srp-sidebar{position:sticky;top:var(--dt-s-11);max-height:calc(100vh - var(--dt-s-11)*2);overflow-y:auto;overscroll-behavior:contain}}
.dt-srp-sidebar.dt-srp-sidebar{background:var(--dt-graphite);border:1px solid var(--dt-edge);border-radius:var(--dms-radius)}
.dt-srp-group.dt-srp-group+.dt-srp-group{border-top:1px solid var(--dt-edge)}
.dt-srp-group__head.dt-srp-group__head{font:var(--dt-w-medium) var(--dt-body)/1.4 var(--dt-font-ui);color:var(--dms-text);margin:0 0 4px}
.dt-srp-sidebar.dt-srp-sidebar .dms-checkbox label{border-color:var(--dt-edge)}
.dt-srp-sidebar.dt-srp-sidebar .term-count{background:transparent!important;color:var(--dms-muted);font:var(--dt-w-regular) var(--dt-label)/1 var(--dt-font-mono);padding:0}
.dt-srp-reset.dt-srp-reset a{color:var(--dms-text);text-decoration:underline;text-underline-offset:4px}
/* Results column */
.dt-srp-results.dt-srp-results{min-width:0}
.dt-srp-tools.dt-srp-tools{align-items:center;justify-content:space-between;flex-wrap:wrap}
.dt-srp-listings.dt-srp-listings li.dms-column.dms-listing-sri>.dms-listing-sri-inner>.elementor{height:100%}
.dt-srp-listings.dt-srp-listings li.dms-column.dms-listing-sri{display:flex}
.dt-srp-listings.dt-srp-listings li.dms-column.dms-listing-sri>.dms-listing-sri-inner{width:100%}
/* The results column must take the REMAINDER, not its content's width: a 1280
   wide card inside set the flex-basis and pushed the page 252px sideways at 1440.
   flex-basis 0 + min-width 0 is what makes a flex item narrower than its content. */
.dt-srp-b.dt-srp-b>.dt-srp-results.dt-srp-results{flex:1 1 0;min-width:0;max-width:100%}
.dt-srp-b.dt-srp-b>.dt-srp-sidebar.dt-srp-sidebar{flex:0 0 auto}

/* ====== SRP B TYPOGRAPHY + HEAD. Bone, never Glacier: a page head is not a decision (theme 2.3). ====== */
.dt-srp-head.dt-srp-head .dt-h1,.dt-srp-head.dt-srp-head .dt-h1 *{color:var(--dms-text)!important}
.dt-srp-head.dt-srp-head .dt-eyebrow,.dt-srp-head.dt-srp-head .dt-eyebrow *{color:var(--dms-muted)!important}
.dt-srp-count.dt-srp-count,.dt-srp-count.dt-srp-count p{font:var(--dt-w-medium) var(--dt-label)/1.4 var(--dt-font-mono);letter-spacing:var(--dt-ls-btn);text-transform:uppercase;color:var(--dms-muted);margin:12px 0 0}
.dt-srp-count.dt-srp-count .dt-live{color:var(--dms-text);border-bottom:1px dotted var(--dt-edge)}
.dt-srp-reassure.dt-srp-reassure,.dt-srp-reassure.dt-srp-reassure p{font:var(--dt-w-regular) var(--dt-ui)/1.5 var(--dt-font-ui);color:var(--dms-muted);margin:6px 0 0}
/* Rig-type row: the Home plate laid horizontally. Selected is Charcoal-on-BONE. */
.dt-typerow.dt-typerow ul{display:flex;list-style:none;margin:0;padding:0;background:var(--dt-graphite);border:1px solid var(--dt-edge);border-radius:var(--dms-radius);overflow-x:auto}
.dt-typerow.dt-typerow li{flex:1;min-width:112px}
.dt-typerow.dt-typerow li+li{border-left:1px solid var(--dt-edge)}
.dt-typerow.dt-typerow a{display:flex;flex-direction:column;justify-content:center;gap:5px;min-height:60px;padding-inline:14px;color:var(--dms-text);text-decoration:none;font:var(--dt-w-medium) var(--dt-btn)/1.25 var(--dt-font-ui);transition:background-color var(--dt-motion) var(--dt-ease)}
.dt-typerow.dt-typerow a:hover{background:var(--dt-basalt)}
.dt-typerow.dt-typerow .dms-category-count,.dt-typerow.dt-typerow span{font:var(--dt-w-regular) var(--dt-label)/1 var(--dt-font-mono);letter-spacing:var(--dt-ls-figure);color:var(--dms-muted)}

/* ====== SRP B SIDEBAR CONTROLS ====== */
/* Accordion: the nested widget emits native details/summary. 56px rows, Edge rule. */
.dt-srp-acc.dt-srp-acc .e-n-accordion-item{border-bottom:1px solid var(--dt-edge)}
.dt-srp-acc.dt-srp-acc summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;padding:0 16px;cursor:pointer;list-style:none;background:transparent;border:0;font:var(--dt-w-medium) var(--dt-body)/1.4 var(--dt-font-ui);color:var(--dms-text)}
.dt-srp-acc.dt-srp-acc summary::-webkit-details-marker{display:none}
.dt-srp-acc.dt-srp-acc summary:focus-visible{outline:2px solid var(--dms-primary);outline-offset:2px}
.dt-srp-pane.dt-srp-pane{padding-inline:16px}
.dt-srp-strap.dt-srp-strap p{font:var(--dt-w-regular) var(--dt-small)/1.5 var(--dt-font-ui);color:var(--dms-muted);margin:0 0 8px}
.dt-srp-sub.dt-srp-sub{font:var(--dt-w-medium) var(--dt-label-sm)/1 var(--dt-font-mono);letter-spacing:var(--dt-ls-label);text-transform:uppercase;color:var(--dms-muted);margin:10px 0 2px}
/* The heading widget's inner title carries Elementor's widget-default Global Font
   and Colour (Primary). The wrapper rules above are the design; the title inherits
   them. Measured 2026-09-24: without this the four group heads and the eyebrow
   rendered in the Primary colour and font. */
.dt-srp-sub.dt-srp-sub .elementor-heading-title,
.dt-srp-head.dt-srp-head .dt-eyebrow .elementor-heading-title{font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit}
.dt-srp-disclaimer.dt-srp-disclaimer p{font:var(--dt-w-regular) var(--dt-small)/1.5 var(--dt-font-ui);color:var(--dms-muted);margin:12px 0 0}
/* Checkboxes: GLACIER when checked - a checked filter is a decision (theme 10.2). */
.dt-srp-check.dt-srp-check .dms-checkbox label{width:18px;height:18px;border:1px solid var(--dt-edge);border-radius:var(--dms-radius);background:var(--dt-charcoal);box-shadow:none}
.dt-srp-check.dt-srp-check .dms-checkbox input:checked+label{background:var(--dms-primary);border-color:var(--dms-primary)}
.dt-srp-check.dt-srp-check .dms-checkbox input:checked+label:after{border-color:var(--dt-charcoal)}
.dt-srp-check.dt-srp-check .term-title{font:var(--dt-w-regular) var(--dt-ui)/1.4 var(--dt-font-ui);color:var(--dms-text)}
/* The green pill from custom-skin.css, reset on every place a count renders. */
.dt-srp-check.dt-srp-check .term-count,.dt-srp-sidebar.dt-srp-sidebar .term-count{background:transparent!important;color:var(--dms-muted)!important;font:var(--dt-w-regular) var(--dt-label)/1 var(--dt-font-mono);padding:0;border-radius:0}

/* ====== SRP B RANGES AND FIELDS ====== */
/* noUiSlider defaults to Bootstrap blue; the histogram vars are set on the widget. */
.dt-srp-range.dt-srp-range .noUi-target{background:var(--dt-edge);border:0;box-shadow:none;height:2px}
.dt-srp-range.dt-srp-range .noUi-connect{background:var(--dms-primary)}
.dt-srp-range.dt-srp-range .noUi-handle{width:16px;height:16px;right:-8px;top:-7px;background:var(--dms-primary);border:1px solid var(--dt-charcoal);border-radius:var(--dms-radius);box-shadow:none;cursor:pointer}
.dt-srp-range.dt-srp-range .noUi-handle:before,.dt-srp-range.dt-srp-range .noUi-handle:after{display:none}
.dt-srp-range.dt-srp-range .noUi-handle:focus-visible{outline:2px solid var(--dms-primary);outline-offset:2px}
.dt-srp-range.dt-srp-range label,.dt-srp-range.dt-srp-range .dms-range-label{font:var(--dt-w-medium) var(--dt-label)/1 var(--dt-font-mono);letter-spacing:var(--dt-ls-label);text-transform:uppercase;color:var(--dms-muted)}
/* Editable min/max: never a slider as the only way to enter a value (boilerplate 8.2). */
.dt-srp-range.dt-srp-range input[type=text],.dt-srp-range.dt-srp-range input[type=number]{height:40px;background:var(--dt-charcoal);border:1px solid var(--dt-edge);border-radius:var(--dms-radius);color:var(--dms-text);font:var(--dt-w-regular) var(--dt-ui)/1 var(--dt-font-ui);padding:0 10px;width:100%}
/* Selects: Charcoal fill inside the Graphite panel - Graphite on Graphite is invisible. */
.dt-srp-sidebar.dt-srp-sidebar select,.dt-srp-sidebar.dt-srp-sidebar .ts-control,.dt-srp-sidebar.dt-srp-sidebar input[type=text]{background:var(--dt-charcoal);border:1px solid var(--dt-edge);border-radius:var(--dms-radius);color:var(--dms-text);min-height:46px;font:var(--dt-w-regular) var(--dt-ui)/1.4 var(--dt-font-ui)}
.dt-srp-sidebar.dt-srp-sidebar .dms-filter-dropdowns>*{display:grid;gap:12px}
.dt-srp-keyword.dt-srp-keyword input{width:100%}

/* ====== SRP B RESULTS CHROME: matching bar, sort, view switch, pagination, compare ====== */
/* Bulma markup. Reset the tag first or it paints its own pill. */
.dt-matching.dt-matching .dms-matching-row{background:transparent;display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.dt-matching.dt-matching .tag.tag:not(body){background:var(--dt-slate);color:var(--dms-text);border-radius:var(--dms-radius);height:32px;padding:0 10px;font:var(--dt-w-regular) var(--dt-label)/1 var(--dt-font-mono);letter-spacing:var(--dt-ls-chip)}
.dt-matching.dt-matching .tag.tag:not(body).has-right-arrow:after{display:none}
.dt-matching.dt-matching .dms-srp-selected-remove{color:var(--dms-muted);background:transparent;border:0}
.dt-matching.dt-matching .dms-srp-selected-remove:hover{color:var(--dms-text)}
.dt-matching.dt-matching .icon.icon{width:14px;height:14px}
.dt-matching.dt-matching a.dms-button.dms-reset-all-filters{color:var(--dms-text);background:transparent;border:0;text-decoration:underline;text-underline-offset:4px;font:var(--dt-w-regular) var(--dt-ui)/1 var(--dt-font-ui)}
/* Sort By: 220px min, 44px, on Graphite. */
.dt-sort.dt-sort select,.dt-sort.dt-sort .ts-control{min-width:220px;min-height:44px;background:var(--dt-graphite);border:1px solid var(--dt-edge);border-radius:var(--dms-radius);color:var(--dms-text);font:var(--dt-w-regular) var(--dt-ui)/1 var(--dt-font-ui);padding:0 12px}
/* View switch: 44px squares, active Charcoal-on-BONE (selected is not a decision). */
.dt-view-switch.dt-view-switch .dms-view-switcher{display:flex;gap:2px;list-style:none;margin:0;padding:0}
.dt-view-switch.dt-view-switch .dms-view-switcher li a,.dt-view-switch.dt-view-switch .dms-view-switcher li button{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;background:var(--dt-basalt);border:1px solid var(--dt-edge);border-radius:var(--dms-radius);color:var(--dms-text);font:var(--dt-w-medium) var(--dt-label)/1 var(--dt-font-mono);letter-spacing:var(--dt-ls-btn);text-transform:uppercase;padding:0 10px;text-decoration:none}
.dt-view-switch.dt-view-switch .dms-view-switcher li.active a,.dt-view-switch.dt-view-switch .dms-view-switcher li a.active{background:var(--dt-bone);border-color:var(--dt-bone);color:var(--dt-charcoal)}

/* ====== SRP B PAGINATION AND COMPARE ====== */
.dt-pagination.dt-pagination ul,.dt-pagination.dt-pagination .dms-pagination{display:flex;align-items:center;gap:6px;list-style:none;margin:0;padding:0}
.dt-pagination.dt-pagination a,.dt-pagination.dt-pagination span{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;background:transparent;border:1px solid transparent;border-radius:var(--dms-radius);color:var(--dms-text);font:var(--dt-w-medium) var(--dt-ui)/1 var(--dt-font-ui);text-decoration:none}
.dt-pagination.dt-pagination a:hover{background:var(--dt-basalt)}
.dt-pagination.dt-pagination .current,.dt-pagination.dt-pagination .active a,.dt-pagination.dt-pagination a.current{background:var(--dt-bone);color:var(--dt-charcoal)}
/* Compare bar: FIXED to the viewport bottom. Sticky reserves its height and leaves a dead band (PARITY A.3). Bone, never Glacier. */
.dt-stickybar.dt-stickybar{position:fixed;left:0;right:0;bottom:0;z-index:20;min-height:var(--dt-stickybar-h);background:var(--dt-graphite);border-top:1px solid var(--dt-edge);justify-content:center}
/* Scoped: only a page that actually carries the fixed bar gets the offset. An
   unscoped body rule here would pad every page on the site. */
.dt-stickybar.dt-stickybar:has(.dms-compare-button.compare-hidden){visibility:hidden}
body:has(.dt-stickybar .dms-compare-button:not(.compare-hidden)){padding-bottom:var(--dt-stickybar-h)}
.dt-comparebar__btns.dt-comparebar__btns .dms-comparison-buttons{display:flex;align-items:center;gap:16px}
.dt-comparebar__btns.dt-comparebar__btns a.dms-button.dms-compare-button{background:var(--dt-bone);color:var(--dt-charcoal);border:0;border-radius:var(--dms-radius);min-height:46px;padding:0 20px;display:inline-flex;align-items:center;font:var(--dt-w-medium) var(--dt-btn)/1 var(--dt-font-ui);letter-spacing:var(--dt-ls-btn);text-transform:uppercase;text-decoration:none}
.dt-comparebar__btns.dt-comparebar__btns a.dms-button.dms-deselect-all-compare{background:transparent;color:var(--dms-text);border:0;text-decoration:underline;text-underline-offset:4px}
.dt-comparebar__btns.dt-comparebar__btns .compare-hidden{display:none}

/* ====== SRP B NESTED ACCORDION TEXT ======
   The nested widget colours its own inner title element, so a rule on <summary>
   loses. Target the element the widget actually paints. ====== */
.dt-srp-acc.dt-srp-acc .e-n-accordion-item-title-text,.dt-srp-acc.dt-srp-acc .e-n-accordion-item-title-header,.dt-srp-acc.dt-srp-acc .e-n-accordion-item-title-text p{color:var(--dms-text)!important;font:var(--dt-w-medium) var(--dt-body)/1.4 var(--dt-font-ui);margin:0}
.dt-srp-acc.dt-srp-acc .e-n-accordion-item-title-icon,.dt-srp-acc.dt-srp-acc .e-n-accordion-item-title-icon svg{fill:var(--dms-text);color:var(--dms-text);width:16px;height:16px}
.dt-srp-acc.dt-srp-acc details[open] summary{border-bottom:1px solid var(--dt-edge)}
/* View switch: the widget emits ul.dms-view-switcher with li > a|button|label. */
.dt-view-switch.dt-view-switch .dms-view-switcher{display:flex;gap:2px;list-style:none;margin:0;padding:0;justify-content:flex-end}
.dt-view-switch.dt-view-switch .dms-view-switcher li{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;padding:0 12px;background:var(--dt-basalt);border:1px solid var(--dt-edge);border-radius:var(--dms-radius);color:var(--dms-text);font:var(--dt-w-medium) var(--dt-label)/1 var(--dt-font-mono);letter-spacing:var(--dt-ls-btn);text-transform:uppercase;text-decoration:none;cursor:pointer;white-space:nowrap}
.dt-view-switch.dt-view-switch .dms-view-switcher li.active>*,.dt-view-switch.dt-view-switch .dms-view-switcher li [aria-checked=true]{background:var(--dt-bone);border-color:var(--dt-bone);color:var(--dt-charcoal)}
/* Matching bar tag: the widget's own bg control now carries it; kill Bulma's box. */
.dt-matching.dt-matching .tag.tag:not(body).has-right-arrow{clip-path:none}

/* The plugin positions each arrow absolutely, so the flex row above never places
   them and the right arrow sat 23px past the card at 375. The arrow buttons are
   positioned by the plugin; making them static hands placement back to the flex
   container that already has the drawn 10px inset. Both cards, one rule. */
.dt-card.dt-card .dms-image-arrows button{position:static;flex:none}

/* view switch: the LI is the control (role=radio, aria-checked, data-layout);
   the <i> is an icon slot. Sizing the child made a 44px icon inside a 30px li
   and pushed the page 4px sideways at 375. */
.dt-view-switch.dt-view-switch .dms-view-switcher li{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;background:var(--dt-basalt);border:1px solid var(--dt-edge);border-radius:var(--dms-radius);color:var(--dms-text);cursor:pointer;list-style:none}
.dt-view-switch.dt-view-switch .dms-view-switcher li>i{width:auto;min-width:0;font-size:16px;line-height:1}
.dt-view-switch.dt-view-switch .dms-view-switcher li[aria-checked=true]{background:var(--dt-bone);border-color:var(--dt-bone);color:var(--dt-charcoal)}
.dt-view-switch.dt-view-switch .dms-view-switcher li:focus-visible{outline:2px solid var(--dms-primary);outline-offset:2px}

/* ====== SRP B CHECKBOX MARKUP ======
   The checkbox WIDGET emits label.dms-checkbox-wrapper > input.dms-custom-checkbox
   + span.dms-custom-checkbox-label + span(term). It is NOT the .dms-checkbox
   markup the boilerplate 5.1 documents - that is the DROPDOWN option markup.
   Two different controls, two different class sets. ====== */
.dt-srp-check.dt-srp-check ul{margin:0;padding:0}
.dt-srp-check.dt-srp-check .dms-checkbox-wrapper{display:flex;align-items:center;gap:10px;min-height:36px;cursor:pointer;font:var(--dt-w-regular) var(--dt-ui)/1.4 var(--dt-font-ui);color:var(--dms-text)}
.dt-srp-check.dt-srp-check .dms-custom-checkbox{position:absolute;opacity:0;width:0;height:0}
.dt-srp-check.dt-srp-check .dms-custom-checkbox-label{flex:none;width:18px;height:18px;background:var(--dt-charcoal);border:1px solid var(--dt-edge);border-radius:var(--dms-radius);display:inline-block;position:relative;transition:background-color var(--dt-motion) var(--dt-ease)}
/* GLACIER when checked - a checked filter is a decision (theme 10.2). */
.dt-srp-check.dt-srp-check .dms-custom-checkbox:checked+.dms-custom-checkbox-label{background:var(--dms-primary);border-color:var(--dms-primary)}
.dt-srp-check.dt-srp-check .dms-custom-checkbox:checked+.dms-custom-checkbox-label:after{content:'';position:absolute;left:5px;top:1px;width:5px;height:10px;border:solid var(--dt-charcoal);border-width:0 2px 2px 0;transform:rotate(45deg)}
.dt-srp-check.dt-srp-check .dms-custom-checkbox:focus-visible+.dms-custom-checkbox-label{outline:2px solid var(--dms-primary);outline-offset:2px}
/* Accordion title sits left; the sign sits right. */

/* ====== THEME 26 - VDP, template 203. Visual styling only: layout, widths, gaps,
   panels and responsive direction are container controls. Classes doubled because
   the plugin stylesheets load after the kit. PAGE_SPEC_VDP.md. ====== */
.dt-vdp-root.dt-vdp-root{color:var(--dms-text);font-family:var(--dt-font-ui)}
.dt-vdp-root.dt-vdp-root .e-con{min-width:0}
.dt-vdp-root .dt-eyebrow.dt-eyebrow .elementor-heading-title{font:var(--dt-w-medium) var(--dt-label)/var(--dt-label-lh) var(--dt-font-mono);letter-spacing:var(--dt-ls-label);text-transform:uppercase;color:var(--dms-muted)}
.dt-vdp-root .dt-h2.dt-h2 .elementor-heading-title{font:var(--dt-w-semi) var(--dt-h2)/var(--dt-h2-lh) var(--dt-font-display);letter-spacing:var(--dt-ls-tight);color:var(--dms-text);margin-top:var(--dt-s-4)}
.dt-vdp-root .dt-h2--sub.dt-h2--sub .elementor-heading-title{font-size:var(--dt-h2-sub);line-height:var(--dt-h2-sub-lh)}
@media(max-width:1024px){.dt-vdp-root .dt-h2.dt-h2 .elementor-heading-title{font-size:var(--dt-h2-t)}}
@media(max-width:767px){.dt-vdp-root .dt-h2.dt-h2 .elementor-heading-title{font-size:var(--dt-h2-m)}}
.dt-vdp-root .dt-section-head.dt-section-head{padding-bottom:var(--dt-s-10);margin-bottom:var(--dt-s-14);border-bottom:1px solid var(--dt-edge)}
@media(max-width:767px){.dt-vdp-root .dt-section-head.dt-section-head{padding-bottom:var(--dt-s-7);margin-bottom:var(--dt-s-7)}}
.dt-vdp-root .dt-small.dt-small{font:var(--dt-w-regular) var(--dt-small)/var(--dt-small-lh) var(--dt-font-ui);color:var(--dms-muted)}
.dt-vdp-root .dt-xsmall.dt-xsmall{font:var(--dt-w-regular) var(--dt-xsmall)/var(--dt-small-lh) var(--dt-font-ui);color:var(--dms-muted)}
.dt-vdp-root .dt-xsmall.dt-xsmall a,.dt-vdp-root .dt-small.dt-small a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.dt-vdp-root .dt-body.dt-body{font:var(--dt-w-regular) var(--dt-body)/1.7 var(--dt-font-ui);color:var(--dms-text);text-wrap:pretty}

/* ---- Breadcrumb: 48px mono row ---- */
.dt-crumbs.dt-crumbs .dms-breadcrumbs{display:flex;flex-wrap:wrap;align-items:center;gap:var(--dt-s-5);list-style:none;margin:0;padding:0;min-height:48px;font:var(--dt-w-regular) var(--dt-label)/1 var(--dt-font-mono);letter-spacing:var(--dt-ls-figure);color:var(--dms-muted)}
.dt-crumbs.dt-crumbs .dms-breadcrumbs li{margin:0;display:inline-flex;align-items:center}
.dt-crumbs.dt-crumbs .dms-breadcrumbs a{color:inherit;text-decoration:none;min-height:44px;display:inline-flex;align-items:center}
.dt-crumbs.dt-crumbs .dms-breadcrumbs a:hover{color:var(--dms-text)}
.dt-crumbs.dt-crumbs .dms-breadcrumbs li:last-child{color:var(--dms-text)}

/* ---- Title row ---- */
.dt-vdp-h1.dt-vdp-h1 .listing-title{font:var(--dt-w-semi) var(--dt-h2)/var(--dt-h2-lh) var(--dt-font-display);letter-spacing:var(--dt-ls-tighter);color:var(--dms-text);margin:var(--dt-s-7) 0 0}
@media(max-width:767px){.dt-vdp-h1.dt-vdp-h1 .listing-title{font-size:var(--dt-h2-m)}}
.dt-vdp-sub.dt-vdp-sub .dms-listing-categories-list{display:flex;flex-wrap:wrap;gap:0;margin-top:var(--dt-s-3)}
.dt-vdp-root .dt-vdp-sub.dt-vdp-sub .category-label{display:none}
.dt-vdp-root .dt-vdp-sub.dt-vdp-sub .category-row{display:inline-flex}
.dt-vdp-sub.dt-vdp-sub .category-value{font:var(--dt-w-regular) var(--dt-body)/var(--dt-small-lh) var(--dt-font-ui);color:var(--dms-muted)}
.dt-vdp-root .dt-vdp-sub.dt-vdp-sub .category-row+.category-row::before{content:'·';color:var(--dms-muted);margin:0 var(--dt-s-4)}
.dt-vdp-ids.dt-vdp-ids .dms-listing-categories-list{display:block;margin-top:var(--dt-s-5);font:var(--dt-w-regular) var(--dt-label)/1.3 var(--dt-font-mono);letter-spacing:var(--dt-ls-btn);text-transform:uppercase}
.dt-vdp-ids.dt-vdp-ids .category-label{color:var(--dms-muted);margin-right:var(--dt-s-3)}
.dt-vdp-ids.dt-vdp-ids .category-value{color:var(--dms-text)}
/* Badge chip - VDP and every listing card: the plugin's Pill style, squared to the radius
   token, mono caps. On a card the plugin lifts the badge out of its widget into
   .dms-listing-sri-inner, so the card rule keys on the listing, not the widget class. */
.dt-vdp-badge.dt-vdp-badge .dms-listing-badge-pill,.dms-listing-sri.dms-listing-sri .dms-listing-badge-pill{border-radius:var(--dms-radius);padding:5px 8px;font:var(--dt-w-medium) 11px/1 var(--dt-font-mono)!important;letter-spacing:var(--dt-ls-label);text-transform:uppercase}
.dt-vdp-history.dt-vdp-history .dms-elementor-widget-container:not(:empty){display:inline-flex;align-items:center;min-height:21px;padding:0 8px;border:1px solid var(--dt-edge);border-left:2px solid var(--dt-amber);font:var(--dt-w-medium) 11px/1 var(--dt-font-mono);letter-spacing:var(--dt-ls-label);text-transform:uppercase;color:var(--dms-text)}
.dt-vdp-share.dt-vdp-share .dms-share-url-button,.dt-vdp-save.dt-vdp-save .dms-favorites-button{min-height:44px;padding:0 var(--dt-s-6);display:inline-flex;align-items:center;gap:var(--dt-s-4);background:transparent;border:0;border-radius:0;box-shadow:none;color:var(--dt-bone-80);font:var(--dt-w-medium) var(--dt-label)/1 var(--dt-font-mono);letter-spacing:var(--dt-ls-btn);text-transform:uppercase;cursor:pointer;transition:color var(--dt-motion) var(--dt-ease)}
.dt-vdp-share.dt-vdp-share .dms-button-text{flex-grow:0}
.dt-vdp-save.dt-vdp-save .dms-favorites-button.dms-is-favorite{color:var(--dms-text)}
.dt-vdp-share.dt-vdp-share .dms-share-url-button:hover,.dt-vdp-save.dt-vdp-save .dms-favorites-button:hover{color:var(--dms-text);background:transparent}
.dt-vdp-share.dt-vdp-share svg,.dt-vdp-save.dt-vdp-save svg{margin:0;fill:none;stroke:currentColor}
.dt-vdp-save.dt-vdp-save .dms-favorites-button-label{color:inherit}

/* ---- Gallery: colours are widget controls; these are the properties the widget exposes no control for (boilerplate 8.4). ---- */
.dt-vdp-gallery.dt-vdp-gallery{--dms-mn-thumb-active-color:var(--dt-glacier);--dms-mn-thumb-active-width:2px;--dms-mn-cat-gap:6px;--dms-mn-cat-padding:7px 12px;--dms-mn-cat-radius:2px;--dms-mn-cat-font-size:12px;--dms-mn-btn-color-hover:var(--dt-glacier)}
.dt-vdp-gallery.dt-vdp-gallery,.dt-vdp-gallery.dt-vdp-gallery .elementor-widget-container,.dt-vdp-gallery.dt-vdp-gallery .dms-elementor-widget-container,.dt-vdp-gallery.dt-vdp-gallery .dms-listing-slideshow-container{width:100%;max-width:100%;min-width:0}
.dt-vdp-gallery.dt-vdp-gallery .dms-slideshow-category-filter__tab{border:0;min-height:var(--dt-chip-h);font-family:var(--dt-font-mono);font-weight:var(--dt-w-medium);letter-spacing:var(--dt-ls-figure)}
.dt-vdp-gallery.dt-vdp-gallery .dms-slideshow-category-filter__tab:not(.is-active){background:var(--dt-slate);color:var(--dms-muted)}
.dt-vdp-gallery.dt-vdp-gallery .dms-slideshow-category-filter__tab:not(.is-active):hover{color:var(--dms-text)}
.dt-vdp-gallery.dt-vdp-gallery .dms-media-nav__prev,.dt-vdp-gallery.dt-vdp-gallery .dms-media-nav__next,.dt-vdp-gallery.dt-vdp-gallery .dms-media-nav__expand{width:44px;height:44px;border-radius:var(--dms-radius)}
.dt-vdp-gallery.dt-vdp-gallery .dms-media-nav__counter{font:var(--dt-w-regular) 12px/1 var(--dt-font-mono);letter-spacing:var(--dt-ls-figure);padding:6px 8px;border-radius:var(--dms-radius)}
.dt-vdp-gallery.dt-vdp-gallery .dms-media-nav__progress{height:2px;gap:2px}
.dt-vdp-gallery.dt-vdp-gallery .dms-other-images img{border:1px solid var(--dt-edge)}
@media(max-width:767px){.dt-vdp-gallery.dt-vdp-gallery .dms-listing-slideshow-container{--dms-slideshow-ratio:4 / 3!important}.dt-vdp-gallery.dt-vdp-gallery .dms-slideshow-category-filter{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}}

/* ---- Price panel ---- */
.dt-vdp-price.dt-vdp-price .dms-listing-price{text-align:left}
.dt-vdp-price.dt-vdp-price .price-value{display:inline;font:var(--dt-w-semi) var(--dt-price-vdp)/var(--dt-price-vdp-lh) var(--dt-font-ui);font-variant-numeric:tabular-nums;letter-spacing:var(--dt-ls-tighter);color:var(--dt-amber)}
.dt-vdp-price.dt-vdp-price .dms-price-wrapper{display:flex;flex-direction:row-reverse;justify-content:flex-end;align-items:baseline;gap:var(--dt-s-6);margin-top:var(--dt-s-4)}
.dt-vdp-price.dt-vdp-price .original-price,.dt-vdp-price.dt-vdp-price s,.dt-vdp-price.dt-vdp-price del{font:var(--dt-w-regular) var(--dt-body)/1 var(--dt-font-ui);color:var(--dms-muted);text-decoration:line-through}
.dt-vdp-est.dt-vdp-est{margin-top:var(--dt-s-3);font:var(--dt-w-regular) var(--dt-xsmall)/1.4 var(--dt-font-ui)}
.dt-vdp-est.dt-vdp-est a{color:var(--dms-text);text-decoration:underline;text-underline-offset:3px}
/* Figure plates: a 1px Edge grid from gap:1px on an Edge ground (theme 10.3). */
.dt-figstrip.dt-figstrip .dms-listing-info-table,.dt-figures.dt-figures .dms-listing-info-table{display:grid;gap:1px;background:var(--dt-edge);border:1px solid var(--dt-edge)}
.dt-figstrip.dt-figstrip .dms-listing-info-table{grid-template-columns:repeat(3,minmax(0,1fr))}
.dt-figures.dt-figures .dms-listing-info-table{grid-template-columns:repeat(2,minmax(0,1fr))}
.dt-figstrip.dt-figstrip .dms-listing-info-row,.dt-figures.dt-figures .dms-listing-info-row{display:flex;flex-direction:column;gap:var(--dt-s-3);background:var(--dt-charcoal);padding:var(--dt-s-9) var(--dt-s-10);border:0}
.dt-figstrip.dt-figstrip .dms-listing-info-td,.dt-figures.dt-figures .dms-listing-info-td{padding:0;border:0;background:transparent}
.dt-figstrip.dt-figstrip .dms-category-label,.dt-figures.dt-figures .dms-category-label{font:var(--dt-w-medium) var(--dt-label-sm)/var(--dt-label-lh) var(--dt-font-mono);letter-spacing:var(--dt-ls-label);text-transform:uppercase;color:var(--dms-muted)}
.dt-figstrip.dt-figstrip .dms-listing-info-value,.dt-figures.dt-figures .dms-listing-info-value{font:var(--dt-w-semi) 24px/1.1 var(--dt-font-ui);font-variant-numeric:tabular-nums;color:var(--dms-text)}
.dt-figstrip.dt-figstrip .dms-listing-info-value{font-size:18px;white-space:nowrap}
.dt-figstrip.dt-figstrip .dms-listing-info-row{padding:var(--dt-s-7) var(--dt-s-6)}
.dt-vdp-sheetpdf.dt-vdp-sheetpdf .dms-listing-button{white-space:nowrap}
.dt-vdp-trio.dt-vdp-trio{margin-top:var(--dt-s-10)}
.dt-vdp-cta.dt-vdp-cta{margin-top:var(--dt-s-10)}
.dt-vdp-cta.dt-vdp-cta .dms-listing-button,.dt-vdp-sheetpdf.dt-vdp-sheetpdf .dms-listing-button,.dt-vdp-sticky__btn.dt-vdp-sticky__btn .dms-listing-button{display:flex;align-items:center;justify-content:center;min-height:var(--dt-control-h);padding:0 var(--dt-s-10);border-radius:var(--dms-radius);font:var(--dt-w-semi) var(--dt-btn)/1 var(--dt-font-ui);letter-spacing:var(--dt-ls-btn);text-transform:uppercase;min-width:var(--dt-btn-min-w);cursor:pointer;transition:background-color var(--dt-motion) var(--dt-ease),border-color var(--dt-motion) var(--dt-ease);text-decoration:none}
.dt-vdp-cta.dt-vdp-cta .dms-button-icon,.dt-vdp-sheetpdf.dt-vdp-sheetpdf .dms-button-icon,.dt-vdp-sticky__btn.dt-vdp-sticky__btn .dms-button-icon{display:none}
.dt-vdp-cta__primary.dt-vdp-cta__primary .dms-listing-button,.dt-vdp-sticky__btn.dt-vdp-sticky__btn .dms-listing-button{background:var(--dt-glacier);border:1px solid var(--dt-glacier);color:var(--dt-charcoal)}
.dt-vdp-cta__primary.dt-vdp-cta__primary .dms-listing-button:hover,.dt-vdp-sticky__btn.dt-vdp-sticky__btn .dms-listing-button:hover{background:var(--dt-glacier-press);border-color:var(--dt-glacier-press)}
.dt-vdp-cta__outline.dt-vdp-cta__outline .dms-listing-button,.dt-vdp-sheetpdf.dt-vdp-sheetpdf .dms-listing-button{background:transparent;min-height:var(--dt-control-h-sm);border:1px solid var(--dt-bone-60);color:var(--dms-text)}
.dt-vdp-cta__outline.dt-vdp-cta__outline .dms-listing-button:hover,.dt-vdp-sheetpdf.dt-vdp-sheetpdf .dms-listing-button:hover{background:var(--dt-slate);color:var(--dms-text)}
/* More actions: the nested accordion emits native details/summary. */
.dt-vdp-more.dt-vdp-more{margin-top:var(--dt-s-8);border-top:1px solid var(--dt-edge)}
.dt-vdp-more.dt-vdp-more .e-n-accordion-item-title{min-height:44px;padding:0;background:transparent;border:0;display:flex;align-items:center;justify-content:space-between}
.dt-vdp-more.dt-vdp-more .e-n-accordion-item-title-text{font:var(--dt-w-medium) var(--dt-btn)/1 var(--dt-font-ui);color:var(--dms-text);margin:0}

.dt-vdp-more.dt-vdp-more .e-n-accordion-item>[role=region]{border:0;padding:0 0 var(--dt-s-2)}
.dt-vdp-more__btn.dt-vdp-more__btn .dms-listing-button{display:flex;align-items:center;justify-content:flex-start;text-align:left;gap:var(--dt-s-6);min-height:44px;padding:0;border:0;border-top:1px solid var(--dt-edge);background:transparent;color:var(--dt-bone-85);font:var(--dt-w-regular) var(--dt-btn)/1 var(--dt-font-ui);text-decoration:none;cursor:pointer}
.dt-vdp-more__btn.dt-vdp-more__btn .dms-listing-button:hover{color:var(--dt-bone);text-decoration:underline;text-underline-offset:3px}
.dt-vdp-more__btn.dt-vdp-more__btn .dms-button-icon{display:inline-flex;align-items:center;flex:0 0 20px}
.dt-vdp-more__btn.dt-vdp-more__btn .dms-button-icon svg{width:20px;height:20px;fill:none;stroke:currentColor}
.dt-vdp-privacy.dt-vdp-privacy{margin-top:var(--dt-s-6)}

/* ---- Layout & capacities ---- */
.dt-vdp-drawing.dt-vdp-drawing img{display:block;width:100%;height:auto;background:var(--dt-basalt);border:1px solid var(--dt-edge)}
/* VDP-L1. vdp.css ships `.dms-image-category-grid img:hover{transform:scale(1.1)}`
   (0,2,1) and the widget has no control for it. Scaled 10% inside an unclipped
   column, the drawing grew past the panel's left and top edges and under the
   capacities plate. A layout drawing is a data sheet: it does not zoom (the
   theme's no-zoom rule for media, SRI §1 / Comparison §1.2). Click still opens
   the lightbox. (0,3,1) beats the plugin's (0,2,1). Visual only.
   RETIREMENT TRIGGER: a Dealer.ms control to disable the image-category hover zoom. */
.dt-vdp-drawing.dt-vdp-drawing img:hover{transform:none}
/* State C: no Layout image -> the drawing column collapses; figures take the row. Data-dependent suppression, listed in the readme (boilerplate 10.5). */
.dt-vdp-layout.dt-vdp-layout:has(.dms-image-category-grid:empty) .dt-vdp-layout__drawing{display:none}
.dt-vdp-fuel__w.dt-vdp-fuel__w{border:1px solid var(--dt-edge);padding:var(--dt-s-9) var(--dt-s-10);font-family:var(--dt-font-ui);color:var(--dms-text)}

/* ---- Build sheet: four etched plates ---- */
.dt-plate__title.dt-plate__title{display:flex;align-items:center;gap:var(--dt-s-6);padding:var(--dt-s-7) var(--dt-s-10);border-bottom:1px solid var(--dt-edge)}
.dt-plate__title.dt-plate__title::before{content:"";flex:0 0 20px;width:20px;height:20px;background:var(--dt-bone-80);-webkit-mask:var(--dt-plate-icon) center/20px no-repeat;mask:var(--dt-plate-icon) center/20px no-repeat}
.dt-plate__title.dt-plate__title .elementor-heading-title{font:var(--dt-w-medium) var(--dt-label)/1 var(--dt-font-mono);letter-spacing:var(--dt-ls-label);text-transform:uppercase;color:var(--dms-text)}
.dt-plate--suspension.dt-plate--suspension{--dt-plate-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5'%3E%3Cpath d='M5 3h14M5 21h14M8 3v2l8 3-8 3 8 3-8 3v2'/%3E%3C/svg%3E")}
.dt-plate--armour.dt-plate--armour{--dt-plate-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5'%3E%3Cpath d='M12 3l7 3v6c0 4-3 7-7 9-4-2-7-5-7-9V6z'/%3E%3C/svg%3E")}
.dt-plate--power.dt-plate--power{--dt-plate-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5'%3E%3Crect x='3' y='7' width='16' height='10' rx='1'/%3E%3Cpath d='M19 10h2v4h-2M8 9l-2 3h4l-2 3'/%3E%3C/svg%3E")}
.dt-plate--sleeping.dt-plate--sleeping{--dt-plate-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5'%3E%3Cpath d='M3 18l9-13 9 13M9 18l3-4.5 3 4.5'/%3E%3C/svg%3E")}
.dt-plate__terms.dt-plate__terms .checkbox-tab-content{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));list-style:none;margin:0;padding:0}
.dt-plate__terms.dt-plate__terms .checkbox-tab-content li{display:flex;align-items:center;min-height:40px;padding:0 var(--dt-s-10);margin:0;font:var(--dt-w-regular) var(--dt-small)/1.3 var(--dt-font-ui);color:var(--dms-text);background:var(--dt-charcoal)}
/* Zebra by ROW, not by cell: two cells Charcoal, two Graphite. */
.dt-plate__terms.dt-plate__terms .checkbox-tab-content li:nth-child(4n+3),.dt-plate__terms.dt-plate__terms .checkbox-tab-content li:nth-child(4n+4){background:var(--dt-graphite)}
@media(max-width:767px){.dt-plate__terms.dt-plate__terms .checkbox-tab-content{grid-template-columns:minmax(0,1fr)}.dt-plate__terms.dt-plate__terms .checkbox-tab-content li:nth-child(n){background:var(--dt-charcoal)}.dt-plate__terms.dt-plate__terms .checkbox-tab-content li:nth-child(even){background:var(--dt-graphite)}}
.dt-vdp-sheet__note.dt-vdp-sheet__note{margin-top:var(--dt-s-10)}

/* ---- Spec plates (theme 10.3): Bulma reset first. ---- */
.dt-vdp-spec.dt-vdp-spec .dms-listing-info-table{display:block;border:0;background:transparent;border-top:1px solid var(--dt-edge)}
.dt-vdp-spec.dt-vdp-spec .dms-listing-info-row{display:grid;grid-template-columns:minmax(0,40fr) minmax(0,60fr);align-items:center;min-height:44px;border:0;border-bottom:1px solid var(--dt-edge);background:transparent}
.dt-vdp-spec.dt-vdp-spec .dms-listing-info-td{padding:var(--dt-s-4) 0;border:0;background:transparent}
.dt-vdp-spec.dt-vdp-spec .dms-category-label{font:var(--dt-w-regular) var(--dt-label)/1.2 var(--dt-font-mono);letter-spacing:var(--dt-ls-figure);color:var(--dms-muted)}
.dt-vdp-spec.dt-vdp-spec .dms-listing-info-value{font:var(--dt-w-regular) 15px/1.3 var(--dt-font-ui);font-variant-numeric:tabular-nums;color:var(--dms-text)}
@media(max-width:1024px){.dt-vdp-spec.dt-vdp-spec+.dt-vdp-spec .dms-listing-info-table{border-top:0}}

/* ---- Calculator: Bulma table markup; Calculate is the SECONDARY (Bone). ---- */
.dt-calc.dt-calc{margin-top:var(--dt-s-11)}
.dt-calc.dt-calc table{border:0;background:transparent;width:100%;margin:0}
.dt-calc.dt-calc td{border:0;background:transparent;padding:var(--dt-s-4) 0;vertical-align:middle;color:var(--dms-muted);font:var(--dt-w-regular) var(--dt-label)/1.3 var(--dt-font-mono);letter-spacing:var(--dt-ls-figure)}
.dt-calc.dt-calc .input,.dt-calc.dt-calc select{width:100%;min-height:var(--dt-control-h);padding:0 var(--dt-s-7);background:var(--dt-graphite);border:1px solid var(--dt-edge);border-radius:var(--dms-radius);color:var(--dms-text);font:var(--dt-w-regular) var(--dt-ui)/1 var(--dt-font-ui);font-variant-numeric:tabular-nums;box-shadow:none}
.dt-calc.dt-calc .select{width:100%}
.dt-calc.dt-calc .select::after{border-color:var(--dms-muted)!important}
.dt-calc.dt-calc .dms-button.calculate{display:inline-flex;align-items:center;justify-content:center;min-height:var(--dt-control-h);padding:0 var(--dt-s-11);background:var(--dt-bone);border:1px solid var(--dt-bone);border-radius:var(--dms-radius);color:var(--dt-charcoal);font:var(--dt-w-semi) var(--dt-btn)/1 var(--dt-font-ui);cursor:pointer}
.dt-calc.dt-calc .dms-button.calculate:hover{background:var(--dt-bone-press)}
.dt-calc.dt-calc .has-text-centered{text-align:left!important}
.dt-calc.dt-calc .calculation table{display:block;border:1px solid var(--dt-edge)}
.dt-calc.dt-calc .calculation tbody{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--dt-edge)}
.dt-calc.dt-calc .calculation tr{display:flex;flex-direction:column;gap:var(--dt-s-3);background:var(--dt-charcoal);padding:var(--dt-s-9) var(--dt-s-10)}
.dt-calc.dt-calc .calculation td{padding:0}
.dt-calc.dt-calc .calculation td:first-child strong{font:var(--dt-w-regular) var(--dt-label-sm)/1.2 var(--dt-font-mono);letter-spacing:var(--dt-ls-label);text-transform:uppercase;color:var(--dms-muted)}
.dt-calc.dt-calc .calculation td:last-child strong{font:var(--dt-w-semi) 24px/1.1 var(--dt-font-ui);font-variant-numeric:tabular-nums;color:var(--dt-bone)}
@media(max-width:767px){.dt-calc.dt-calc tr{display:flex;flex-direction:column}.dt-calc.dt-calc .calculation tbody{grid-template-columns:minmax(0,1fr)}}
.dt-vdp-calc__note.dt-vdp-calc__note{margin-top:var(--dt-s-8)}

/* ---- Video ---- */
.dt-vdp-video__empty.dt-vdp-video__empty{aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;margin-top:var(--dt-s-4);background:var(--dt-basalt);border:1px solid var(--dt-edge)}
.dt-vdp-video__msg.dt-vdp-video__msg{font:var(--dt-w-regular) var(--dt-label)/1.3 var(--dt-font-mono);letter-spacing:var(--dt-ls-btn);text-transform:uppercase;color:var(--dms-muted);text-align:center}
/* State D: a real player exists -> the empty plate is suppressed (readme, 10.5). */
.dt-vdp-video.dt-vdp-video:has(.dt-vdp-video__player) .dt-vdp-video__empty{display:none}

/* ---- Lead form + modal forms ---- */
.dt-vdp-lead__intro.dt-vdp-lead__intro{margin-top:var(--dt-s-6);color:var(--dms-muted)}
.dt-vdp-form.dt-vdp-form{margin-top:var(--dt-s-11)}
:is(.dt-vdp-root,.dt-fin-form,.dt-svc-form,.dt-oft-form,.dt-ct-form,.dt-lp-form,.dt-rent-form,.dt-ti-form,.dt-alert-form) .dms-form .dms-form-field-label,.dms-modal .dms-form .dms-form-field-label{display:block;margin-bottom:var(--dt-s-3);font:var(--dt-w-regular) var(--dt-label)/1.3 var(--dt-font-mono);letter-spacing:var(--dt-ls-figure);color:var(--dms-muted)}
:is(.dt-vdp-root,.dt-fin-form,.dt-svc-form,.dt-oft-form,.dt-ct-form,.dt-lp-form,.dt-rent-form,.dt-ti-form,.dt-alert-form) .dms-form .input,:is(.dt-vdp-root,.dt-fin-form,.dt-svc-form,.dt-oft-form,.dt-ct-form,.dt-lp-form,.dt-rent-form,.dt-ti-form,.dt-alert-form) .dms-form textarea,.dms-modal .dms-form .input,.dms-modal .dms-form textarea{width:100%;min-height:var(--dt-control-h);padding:var(--dt-s-5) var(--dt-s-7);background:var(--dt-charcoal);border:1px solid var(--dt-edge);border-radius:var(--dms-radius);color:var(--dms-text);font:var(--dt-w-regular) var(--dt-ui)/1.4 var(--dt-font-ui);box-shadow:none}
:is(.dt-vdp-root,.dt-fin-form,.dt-svc-form,.dt-oft-form,.dt-ct-form,.dt-lp-form,.dt-rent-form,.dt-ti-form,.dt-alert-form) .dms-form textarea,.dms-modal .dms-form textarea{min-height:120px}
:is(.dt-vdp-root,.dt-fin-form,.dt-svc-form,.dt-oft-form,.dt-ct-form,.dt-lp-form,.dt-rent-form,.dt-ti-form,.dt-alert-form) .dms-form .input:focus,:is(.dt-vdp-root,.dt-fin-form,.dt-svc-form,.dt-oft-form,.dt-ct-form,.dt-lp-form,.dt-rent-form,.dt-ti-form,.dt-alert-form) .dms-form textarea:focus,.dms-modal .dms-form .input:focus,.dms-modal .dms-form textarea:focus{border-color:var(--dms-text);outline:2px solid var(--dms-focus-color);outline-offset:2px}
:is(.dt-vdp-root,.dt-fin-form,.dt-svc-form,.dt-oft-form,.dt-ct-form,.dt-lp-form,.dt-rent-form,.dt-ti-form,.dt-alert-form) .dms-form .dms-form-field-error,.dms-modal .dms-form .dms-form-field-error{display:block;margin-top:var(--dt-s-3);font:var(--dt-w-regular) var(--dt-xsmall)/1.4 var(--dt-font-ui);color:var(--dt-amber)}
:is(.dt-vdp-root,.dt-fin-form,.dt-svc-form,.dt-oft-form,.dt-ct-form,.dt-lp-form,.dt-rent-form,.dt-ti-form,.dt-alert-form) .dms-form [aria-invalid=true],.dms-modal .dms-form [aria-invalid=true]{border-color:var(--dt-amber)}
:is(.dt-vdp-root,.dt-fin-form,.dt-svc-form,.dt-oft-form,.dt-ct-form,.dt-lp-form,.dt-rent-form,.dt-ti-form,.dt-alert-form) .dms-form input[type=submit],:is(.dt-vdp-root,.dt-fin-form,.dt-svc-form,.dt-oft-form,.dt-ct-form,.dt-lp-form,.dt-rent-form,.dt-ti-form,.dt-alert-form) .dms-form button[type=submit],.dms-modal .dms-form input[type=submit],.dms-modal .dms-form button[type=submit]{min-height:var(--dt-control-h);min-width:var(--dt-btn-min-w);padding:0 var(--dt-s-11);background:var(--dt-glacier);border:1px solid var(--dt-glacier);border-radius:var(--dms-radius);color:var(--dt-charcoal);font:var(--dt-w-semi) var(--dt-btn)/1 var(--dt-font-ui);cursor:pointer}
:is(.dt-vdp-root,.dt-fin-form,.dt-svc-form,.dt-oft-form,.dt-ct-form,.dt-lp-form,.dt-rent-form,.dt-ti-form,.dt-alert-form) .dms-form input[type=submit]:hover,:is(.dt-vdp-root,.dt-fin-form,.dt-svc-form,.dt-oft-form,.dt-ct-form,.dt-lp-form,.dt-rent-form,.dt-ti-form,.dt-alert-form) .dms-form button[type=submit]:hover,.dms-modal .dms-form input[type=submit]:hover,.dms-modal .dms-form button[type=submit]:hover{background:var(--dt-glacier-press)}
:is(.dt-vdp-root,.dt-fin-form,.dt-svc-form,.dt-oft-form,.dt-ct-form,.dt-lp-form,.dt-rent-form,.dt-ti-form,.dt-alert-form) .dms-form .dms-form-field-required{color:var(--dms-muted)}

/* ---- Location ---- */
.dt-vdp-addr.dt-vdp-addr{width:100%;margin-top:var(--dt-s-11);border:0;border-top:1px solid var(--dt-edge);border-collapse:collapse;background:transparent}
.dt-vdp-addr.dt-vdp-addr th,.dt-vdp-addr.dt-vdp-addr td{border:0;border-bottom:1px solid var(--dt-edge);background:transparent;padding:var(--dt-s-5) 0;vertical-align:top;text-align:left}
.dt-vdp-addr.dt-vdp-addr th{width:120px;font:var(--dt-w-regular) var(--dt-label)/1.6 var(--dt-font-mono);letter-spacing:var(--dt-ls-figure);color:var(--dms-muted)}
.dt-vdp-addr.dt-vdp-addr td{font:var(--dt-w-regular) 15px/1.5 var(--dt-font-ui);color:var(--dms-text)}
.dt-vdp-addr.dt-vdp-addr a{color:inherit;text-decoration:none}
.dt-vdp-dir.dt-vdp-dir{margin-top:var(--dt-s-10)}
.dt-vdp-dir.dt-vdp-dir a{color:var(--dt-bone);text-decoration:underline;text-underline-offset:4px;font:var(--dt-w-medium) var(--dt-btn)/1 var(--dt-font-ui);display:inline-flex;min-height:44px;align-items:center}
/* Map height chain (boilerplate 6) and the monochrome tile filter (theme 8.6). */
.dt-map.dt-map,.dt-map.dt-map .elementor-widget-container,.dt-map.dt-map .dms-elementor-widget-container,.dt-map.dt-map .dms-map-wrapper,.dt-map.dt-map .openlayers-map{width:100%;height:100%;min-height:320px;align-self:stretch}
.dt-map.dt-map .ol-layer canvas{filter:grayscale(1) invert(.92) contrast(.9) brightness(.9)}
/* Map zoom controls: the Glacier focus ring (Contact Pass 2, every .dt-map — VDP + Contact) */
.dt-map.dt-map .ol-control button:focus{outline:none}
.dt-map.dt-map .ol-control button:focus-visible{outline:var(--dt-focus-w) solid var(--dms-primary);outline-offset:var(--dt-focus-offset)}
.dt-vdp-map.dt-vdp-map{border:1px solid var(--dt-edge);background:var(--dt-graphite)}

/* ---- Figures disclaimer + sticky bar ---- */
.dt-vdp-disclaimer__text.dt-vdp-disclaimer__text{padding-top:var(--dt-s-10);border-top:1px solid var(--dt-edge)}
.dt-vdp-sticky__tel.dt-vdp-sticky__tel a{display:inline-flex;align-items:center;min-height:var(--dt-control-h);padding:0 var(--dt-s-7);border:1px solid var(--dt-edge);border-radius:var(--dms-radius);color:var(--dms-text);font:var(--dt-w-medium) var(--dt-btn)/1 var(--dt-font-mono);text-decoration:none;white-space:nowrap}
.dms-modal .dms-modal-title,.dms-modal h2{font:var(--dt-w-semi) var(--dt-h3)/var(--dt-h3-lh) var(--dt-font-display);color:var(--dms-text)}
/* Form alerts: Bulma message boxes restyled. Success is a readout, not a decision: Bone rule, no Glacier. */
:is(.dt-vdp-root,.dt-fin-form,.dt-svc-form,.dt-oft-form,.dt-ct-form,.dt-lp-form,.dt-rent-form,.dt-ti-form,.dt-alert-form) .dms-form .dms-form-alerts .message,.dms-modal .dms-form .dms-form-alerts .message{background:var(--dt-basalt);border:1px solid var(--dt-edge);border-left:2px solid var(--dt-bone);border-radius:var(--dms-radius);margin:0 0 var(--dt-s-8)}
:is(.dt-vdp-root,.dt-fin-form,.dt-svc-form,.dt-oft-form,.dt-ct-form,.dt-lp-form,.dt-rent-form,.dt-ti-form,.dt-alert-form) .dms-form .dms-form-alerts .message.is-danger,.dms-modal .dms-form .dms-form-alerts .message.is-danger{border-left-color:var(--dt-amber)}
:is(.dt-vdp-root,.dt-fin-form,.dt-svc-form,.dt-oft-form,.dt-ct-form,.dt-lp-form,.dt-rent-form,.dt-ti-form,.dt-alert-form) .dms-form .dms-form-alerts .message-header,.dms-modal .dms-form .dms-form-alerts .message-header{display:none}
:is(.dt-vdp-root,.dt-fin-form,.dt-svc-form,.dt-oft-form,.dt-ct-form,.dt-lp-form,.dt-rent-form,.dt-ti-form,.dt-alert-form) .dms-form .dms-form-alerts .message-body,.dms-modal .dms-form .dms-form-alerts .message-body{background:transparent;border:0;padding:var(--dt-s-7) var(--dt-s-10);color:var(--dms-text);font:var(--dt-w-regular) var(--dt-ui)/1.5 var(--dt-font-ui)}
:is(.dt-vdp-root.dt-vdp-root,.dt-fin-form.dt-fin-form,.dt-svc-form.dt-svc-form,.dt-oft-form.dt-oft-form,.dt-ct-form.dt-ct-form,.dt-lp-form.dt-lp-form,.dt-rent-form.dt-rent-form,.dt-ti-form.dt-ti-form,.dt-alert-form.dt-alert-form) .dms-form .dms-form-field-required,.dms-modal.dms-modal .dms-form .dms-form-field-required{color:var(--dms-muted)}
/* ====== END THEME 26 - VDP ====== */


/* NAV-MENU FONT FAMILIES (boilerplate §5.8). The v3 nav-menu Typography control
   can bind a Global Font only as a whole preset, which drops the widget's own
   size, weight and letter-spacing (measured 2026-09-24), and its font-family
   field cannot hold a var(). So the widgets carry size/weight only and the
   FAMILY comes from the Global Font here. Visual styling, not layout.
   RETIREMENT TRIGGER: an Elementor typography control that can reference a
   Global Font's family alone. Doubled class beats the widget-default rule
   Elementor writes into each document's post-<id>.css. */
.dt-nav.dt-nav .elementor-nav-menu .elementor-item,
.dt-footer-nav.dt-footer-nav .elementor-nav-menu .elementor-item { font-family: var(--dt-font-ui); }
.dt-utility-nav.dt-utility-nav .elementor-nav-menu .elementor-item,
.dt-footer-legal-nav.dt-footer-legal-nav .elementor-nav-menu .elementor-item { font-family: var(--dt-font-mono); }

/* VDP stock and VIN: one mono line, a middle dot between the pairs; a pair wraps whole (VDP-S1, 2026-09-24) */
.dt-vdp-ids.dt-vdp-ids .category-row{display:inline-block;white-space:nowrap;width:auto}
.dt-vdp-ids.dt-vdp-ids .category-row+.category-row::before{content:'·';color:var(--dms-muted);margin:0 var(--dt-s-4)}
.dt-vdp-ids.dt-vdp-ids .category-row .category-label,.dt-vdp-ids.dt-vdp-ids .category-row .category-value{display:inline;width:auto;overflow:visible}
/* Sold (SRI-4, 2026-09-24): the plugin's stamp becomes the drawn Charcoal/45 wash on the card photo and a muted Sold in the price row */
.dt-card.dt-card .dt-card__photo .dms-has-sold-text .dms-sold-text{position:absolute;inset:0;left:0;top:0;transform:none;z-index:1;border:0;border-radius:0;padding:0;background:var(--dt-scrim-sold);font-size:0;line-height:0;color:transparent;pointer-events:none}
.dt-card.dt-card .dt-card__photo .dms-has-sold-text .dms-image-arrows,.dt-card.dt-card .dt-card__photo .dms-has-sold-text .dms-media-nav{z-index:2}
.dt-card.dt-card .dt-card__price .dms-sold-text,.dt-vdp-price.dt-vdp-price .dms-sold-text{position:static;display:inline;transform:none;border:0;border-radius:0;background:none;padding:0;text-transform:none;z-index:auto}
.dt-vdp-price.dt-vdp-price .dms-sold-text{font:var(--dt-w-semi) var(--dt-price-vdp)/var(--dt-price-vdp-lh) var(--dt-font-ui);letter-spacing:var(--dt-ls-tighter);color:var(--dms-muted)}


/* ====== COMPARISON PAGE (PAGE_SPEC_Comparison, 2026-09-24) ====== */
/* Compare — the NATIVE dms_comparison widget (PAGE_SPEC_Comparison §1.1, D1).
   Column-major: one self-contained column per listing, every cell carries its
   own label. Carried VERBATIM from design-system/components.css (PAGE_SPEC_Comparison).
   Visual only — the columns' layout is the plugin's (flex at ≥769,
   stacked below; D2). Not an accent anywhere but the price and the focus ring. */
.dt-compare .dms-comparison-container .dms-comparison-column { border: var(--dt-hairline) solid var(--dms-border); border-radius: var(--dms-radius); background: var(--dms-dark); color: var(--dms-text); min-width: 0; }
.dt-compare .dms-columns > .dms-column { min-width: 0; }
.dt-compare .dms-comparison-container .dms-comparison-column .dms-comparison-header,
.dt-compare .dms-comparison-container .dms-comparison-column .dms-comparison-categories { padding: 0; }
/* Title row — the row header_sticky pins: the 72px strip. */
.dt-compare .dms-comparison-container .dms-comparison-column .dms-comparison-header { box-sizing: border-box; min-height: var(--dt-s-20); padding: var(--dt-s-10); background: var(--dt-graphite); border-bottom: var(--dt-hairline) solid var(--dms-border); font: var(--dt-w-semi) var(--dt-title) / var(--dt-title-lh) var(--dt-font-ui); color: var(--dms-text); }
.dt-compare .dms-comparison-container .dms-comparison-column .dms-comparison-header a { color: var(--dms-text); text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 4px; transition: text-decoration-color var(--dt-motion) var(--dt-ease); }
.dt-compare .dms-comparison-container .dms-comparison-column .dms-comparison-header a:hover { text-decoration-color: var(--dms-text); }
/* Logged in, the WP admin bar pushes the sticky site header down by its own height; the widget's header_sticky_top (72 / 64) cannot know that. Add the bar's height, from WP's own --wp-admin--admin-bar--height. At <=600 the bar scrolls away and the header returns to 0. Visitors never get .admin-bar. */
body.admin-bar .dt-compare .dms-comparison-container .dms-comparison-column .dms-comparison-header { top: calc(var(--dt-header-h) + var(--wp-admin--admin-bar--height, 32px)); }
@media (max-width: 1024px) { body.admin-bar .dt-compare .dms-comparison-container .dms-comparison-column .dms-comparison-header { top: calc(var(--dt-header-h-m) + var(--wp-admin--admin-bar--height, 32px)); } }
@media (max-width: 600px) { body.admin-bar .dt-compare .dms-comparison-container .dms-comparison-column .dms-comparison-header { top: var(--dt-header-h-m); } }
.dt-compare .dms-comparison-container .dms-comparison-column .dms-comparison-image { box-sizing: border-box; margin: 0; padding: var(--dt-s-10); background: var(--dt-graphite); border-bottom: var(--dt-hairline) solid var(--dms-border); }
.dt-compare .dms-comparison-container .dms-comparison-column .dms-comparison-image a { color: var(--dms-text); }
.dt-compare .dms-comparison-container .dms-comparison-column .dms-comparison-image img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; border: var(--dt-hairline) solid var(--dms-border); border-radius: var(--dms-radius); background: var(--dms-dark); }
.dt-compare .dms-comparison-container .dms-comparison-column .dms-comparison-column-actions { top: calc(var(--dt-s-10) + var(--dt-s-4)); right: calc(var(--dt-s-10) + var(--dt-s-4)); gap: var(--dt-s-2); }
.dt-compare .dms-comparison-container .dms-comparison-column .dms-comparison-column-actions button { justify-content: center; width: var(--dt-control-h-sm); height: var(--dt-control-h-sm); padding: 0; background: var(--dt-charcoal-80); border: 0; border-radius: var(--dms-radius); box-shadow: none; color: var(--dt-bone-80); }
.dt-compare .dms-comparison-container .dms-comparison-column .dms-comparison-column-actions button:hover { background: var(--dms-dark); box-shadow: none; color: var(--dms-text); }
.dt-compare .dms-comparison-container .dms-comparison-column .dms-comparison-column-actions button svg { width: 18px; height: 18px; }
/* Rows — label above value in every cell (D1). */
.dt-compare .dms-comparison-container .dms-comparison-column .dms-comparison-row { box-sizing: border-box; align-content: flex-start; align-items: flex-start; gap: var(--dt-s-2) 0; min-height: var(--dt-row-h); margin: 0; padding: var(--dt-s-6) var(--dt-s-10); border-bottom: var(--dt-hairline) solid var(--dms-border); }
.dt-compare .dms-comparison-container .dms-comparison-column .dms-comparison-row:last-child { margin: 0; border-bottom: 0; }
.dt-compare .dms-comparison-container .dms-comparison-column .dms-comparison-row .dms-comparison-category { width: 100%; font: var(--dt-w-medium) var(--dt-label-sm) / var(--dt-label-lh) var(--dt-font-mono); letter-spacing: var(--dt-ls-label); text-transform: uppercase; color: var(--dms-muted); }
.dt-compare .dms-comparison-container .dms-comparison-column .dms-comparison-row .dms-comparison-value { width: 100%; min-width: 0; font: var(--dt-w-regular) var(--dt-ui) / var(--dt-ui-lh) var(--dt-font-ui); font-variant-numeric: tabular-nums; color: var(--dms-text); overflow-wrap: anywhere; }
/* An empty value: the plugin prints no_data_text (set to an em dash) in a .dms-comparison-empty span or li - 0.14.1. */
.dt-compare .dms-comparison-container .dms-comparison-column .dms-comparison-row .dms-comparison-value .dms-comparison-empty { color: var(--dms-muted); }
.dt-compare .dms-comparison-container .dms-comparison-column .dms-comparison-row .clearfix { display: none; }
/* Price — row 1, Amber (theme §2.3). 'price' is the plugin's own literal, not an install id. */
.dt-compare .dms-comparison-container .dms-comparison-column .dms-comparison-row[data-category-id="price"] .dms-comparison-value { font: var(--dt-w-semi) var(--dt-price) / var(--dt-price-lh) var(--dt-font-ui); letter-spacing: var(--dt-ls-tight); color: var(--dms-accent); }
/* Build groups — the four checkbox rows, numbered 01–04 by a counter over the
   plugin's own is-fullwidth class (portable: no category ids). */
.dt-compare .dms-comparison-container .dms-comparison-column .dms-comparison-categories { counter-reset: dt-group; }
.dt-compare .dms-comparison-container .dms-comparison-column .dms-comparison-row .dms-comparison-category.is-fullwidth { counter-increment: dt-group; font-size: var(--dt-label); color: var(--dms-text); }
.dt-compare .dms-comparison-container .dms-comparison-column .dms-comparison-row .dms-comparison-category.is-fullwidth .dms-comparison-category-text::before { content: counter(dt-group, decimal-leading-zero) " "; }
.dt-compare .dms-comparison-container .dms-comparison-column .dms-comparison-row .dms-comparison-value.is-fullwidth .dms-comparison-list { columns: 1; margin: 0; padding: 0; list-style: none; }
.dt-compare .dms-comparison-container .dms-comparison-column .dms-comparison-row .dms-comparison-value.is-fullwidth .dms-comparison-list > li { margin: 0; padding: 0; font: var(--dt-w-regular) var(--dt-btn) / 1.45 var(--dt-font-ui); }
.dt-compare .dms-comparison-container .dms-comparison-column .dms-comparison-row .dms-comparison-value.is-fullwidth .dms-comparison-list > li::before,
.dt-compare .dms-comparison-container .dms-comparison-column .dms-comparison-row .dms-comparison-value.is-fullwidth .dms-comparison-list > li::after { content: none; }
/* "View build" — a Bone underlined link (theme §11.1-1), not a button. */
.dt-compare .dms-comparison-container .dms-comparison-column .dms-comparison-footer { margin: 0; padding: var(--dt-s-4) var(--dt-s-10) var(--dt-s-8); text-align: left; border-top: var(--dt-hairline) solid var(--dms-border); }
.dt-compare .dms-comparison-container .dms-comparison-column .dms-comparison-footer .dms-button { display: inline-flex; align-items: center; min-height: var(--dt-control-h-sm); padding: 0; background: transparent; border: 0; border-radius: 0; box-shadow: none; color: var(--dms-text); font: var(--dt-w-medium) var(--dt-btn) / 1 var(--dt-font-ui); text-transform: none; text-decoration: underline; text-decoration-color: var(--dt-bone-40); text-underline-offset: 4px; }
.dt-compare .dms-comparison-container .dms-comparison-column .dms-comparison-footer .dms-button:hover { background: transparent; color: var(--dms-text); text-decoration-color: var(--dms-text); }
/* The add column — dashed Edge, muted plus, Bone outline label. */
.dt-compare .dms-comparison-container .dms-comparison-add-column { min-height: 240px; height: 100%; box-sizing: border-box; border: var(--dt-hairline) dashed var(--dms-border); background: transparent; transition: background-color var(--dt-motion) var(--dt-ease); }
.dt-compare .dms-comparison-container .dms-comparison-add-column:hover { background: var(--dt-basalt); }
/* Hello Elementor paints every button:hover / :focus #c36 pink; each button here sets its own ground at rest, which outranks it. */
.dt-compare .dms-comparison-container .dms-comparison-add-btn,
.dt-compare .dms-comparison-container .dms-comparison-add-btn:hover,
.dt-compare .dms-comparison-container .dms-comparison-add-btn:focus { background: transparent; color: var(--dms-text); }
.dt-compare .dms-comparison-container .dms-comparison-add-btn { gap: var(--dt-s-7); padding: var(--dt-s-10); color: var(--dms-text); font: var(--dt-w-medium) var(--dt-btn) / 1 var(--dt-font-ui); }
.dt-compare .dms-comparison-container .dms-comparison-add-btn svg { width: 32px; height: 32px; opacity: 1; color: var(--dms-muted); stroke-width: 1; }
.dt-compare .dms-comparison-container .dms-comparison-add-btn span { display: inline-flex; align-items: center; min-height: var(--dt-control-h-sm); padding: 0 var(--dt-s-10); border: var(--dt-hairline) solid var(--dt-bone-60); border-radius: var(--dms-radius); letter-spacing: var(--dt-ls-btn); text-transform: uppercase; }
/* Toolbar — left-aligned, muted; the tick is Bone when checked (a selection). */
.dt-compare .dms-comparison-container .dms-comparison-toolbar { justify-content: flex-start; margin: 0 0 var(--dt-s-8); font: var(--dt-w-regular) var(--dt-btn) / var(--dt-label-lh) var(--dt-font-ui); color: var(--dms-muted); }
.dt-compare .dms-comparison-container .dms-comparison-toolbar .dms-checkbox { gap: var(--dt-s-5); min-height: var(--dt-control-h-sm); }
.dt-compare .dms-comparison-container .dms-comparison-toolbar .dms-checkbox input { position: absolute; opacity: 0; width: 0; height: 0; }
.dt-compare .dms-comparison-container .dms-comparison-toolbar .dms-checkbox label { position: relative; flex: none; width: var(--dt-box); height: var(--dt-box); margin: 0; border: var(--dt-hairline) solid var(--dms-border); border-radius: var(--dms-radius); background: var(--dms-dark); box-shadow: none; cursor: pointer; }
.dt-compare .dms-comparison-container .dms-comparison-toolbar .dms-checkbox:hover label { border-color: var(--dms-text); }
.dt-compare .dms-comparison-container .dms-comparison-toolbar .dms-checkbox input:checked + label { background: var(--dt-bone); border-color: var(--dt-bone); }
.dt-compare .dms-comparison-container .dms-comparison-toolbar .dms-checkbox input:checked + label::after { content: ""; position: absolute; top: 4px; left: 4px; width: 8px; height: 4px; border: solid var(--dms-dark); border-width: 0 0 2px 2px; transform: rotate(-45deg); }
.dt-compare .dms-comparison-container .dms-comparison-toolbar .dms-checkbox input:focus-visible + label { outline: var(--dt-focus-w) solid var(--dms-primary); outline-offset: var(--dt-focus-offset); }
/* Over max — the plugin's <p> + <ul> of remove links. */
.dt-compare .dms-comparison-container > p { margin: 0 0 var(--dt-s-4); font: var(--dt-w-regular) var(--dt-ui) / var(--dt-ui-lh) var(--dt-font-ui); color: var(--dms-text); }
.dt-compare .dms-comparison-container > ul { margin: var(--dt-s-6) 0 0; padding: 0; list-style: none; }
.dt-compare .dms-comparison-container > ul a { display: inline-flex; align-items: center; min-height: var(--dt-control-h-sm); color: var(--dms-text); text-decoration: underline; text-decoration-color: var(--dt-bone-40); text-underline-offset: 4px; }
/* The add / replace modal — the theme's modal recipe. */
.dt-compare .dms-comparison-modal .dms-comparison-modal-backdrop { background: var(--dt-charcoal-82); }
.dt-compare .dms-comparison-modal .dms-comparison-modal-inner { background: var(--dt-graphite); border: var(--dt-hairline) solid var(--dms-border); border-radius: var(--dms-radius); box-shadow: none; color: var(--dms-text); }
.dt-compare .dms-comparison-modal .dms-comparison-modal-header,
.dt-compare .dms-comparison-modal .dms-comparison-modal-search { border-bottom: var(--dt-hairline) solid var(--dms-border); }
.dt-compare .dms-comparison-modal .dms-comparison-modal-title { font: var(--dt-w-semi) var(--dt-title) / var(--dt-title-lh) var(--dt-font-ui); color: var(--dms-text); }
.dt-compare .dms-comparison-modal .dms-comparison-modal-close,
.dt-compare .dms-comparison-modal .dms-comparison-modal-close:hover,
.dt-compare .dms-comparison-modal .dms-comparison-modal-close:focus { background: transparent; }
.dt-compare .dms-comparison-modal .dms-comparison-modal-close { justify-content: center; width: var(--dt-control-h-sm); height: var(--dt-control-h-sm); padding: 0; color: var(--dt-bone-80); opacity: 1; }
.dt-compare .dms-comparison-modal .dms-comparison-modal-close:hover { color: var(--dms-text); }
.dt-compare .dms-comparison-modal .dms-comparison-modal-close svg { width: 20px; height: 20px; }
.dt-compare .dms-comparison-modal .dms-comparison-modal-search input { min-height: var(--dt-control-h-sm); padding: 0 var(--dt-s-7); background: var(--dms-dark); border: var(--dt-hairline) solid var(--dms-border); border-radius: var(--dms-radius); box-shadow: none; color: var(--dms-text); font: var(--dt-w-regular) var(--dt-ui) / 1 var(--dt-font-ui); }
.dt-compare .dms-comparison-modal .dms-comparison-modal-search input:focus { border-color: var(--dms-text); outline: var(--dt-focus-w) solid var(--dms-primary); outline-offset: var(--dt-focus-offset); }
.dt-compare .dms-comparison-modal .dms-comparison-modal-item:hover { background: var(--dt-basalt); }
.dt-compare .dms-comparison-modal .dms-comparison-modal-item img { border-radius: var(--dms-radius); }
.dt-compare .dms-comparison-modal .dms-comparison-modal-item-title { font: var(--dt-w-regular) var(--dt-btn) / 1.4 var(--dt-font-ui); color: var(--dms-text); }
.dt-compare .dms-comparison-modal .dms-comparison-modal-add-btn { display: inline-flex; align-items: center; min-height: var(--dt-control-h-sm); padding: 0 var(--dt-s-8); background: transparent; border: var(--dt-hairline) solid var(--dt-bone-60); border-radius: var(--dms-radius); color: var(--dms-text); font: var(--dt-w-medium) var(--dt-btn) / 1 var(--dt-font-ui); letter-spacing: var(--dt-ls-btn); text-transform: uppercase; }
.dt-compare .dms-comparison-modal .dms-comparison-modal-add-btn:hover { background: var(--dt-basalt); }
.dt-compare .dms-comparison-modal .dms-comparison-modal-searching,
.dt-compare .dms-comparison-modal .dms-comparison-modal-empty { opacity: 1; color: var(--dms-muted); }
.dt-compare a:focus-visible,
.dt-compare button:focus-visible { outline: var(--dt-focus-w) solid var(--dms-primary); outline-offset: var(--dt-focus-offset); }
@media (max-width: 767px) {
  .dt-compare .dms-comparison-container .dms-comparison-column .dms-comparison-header { font-size: var(--dt-title-m); }
  .dt-compare .dms-comparison-container .dms-comparison-column .dms-comparison-row[data-category-id="price"] .dms-comparison-value { font-size: var(--dt-price-m); }
}
/* Comparison page: the figures disclaimer under the table. */
.dt-cmp-note.dt-cmp-note, .dt-cmp-note.dt-cmp-note p { margin: 0; font: var(--dt-w-regular) var(--dt-small) / var(--dt-small-lh) var(--dt-font-ui); color: var(--dms-muted); }

/* ====== THEME 26 - SRP A (wide), template 334, host page 23. Classes doubled.
   Colour, border, padding, gaps, the tray grid, the button row and the drawers'
   geometry are NATIVE controls on the template (Pass 4). What is here is what
   no control reaches: plugin markup inside one widget, the 1025-1439 tray step
   (no native breakpoint), the off-canvas overlay alpha, and type. ====== */
/* Bar: the plugin renders all five dropdowns inside ONE .dms-column; that child
   is the grid (spec 4, region 3). No control lays out the inside of the widget. */
.dt-srp-dropdowns.dt-srp-dropdowns .dms-filter-dropdowns{margin:0}
.dt-srp-dropdowns.dt-srp-dropdowns .dms-filter-dropdowns>.dms-column{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--dt-s-6);padding:0;font-size:var(--dt-ui)}
.dt-srp-dropdowns--bar.dt-srp-dropdowns--bar .dms-filter-dropdowns>.dms-column{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:1024px){.dt-srp-dropdowns--bar.dt-srp-dropdowns--bar .dms-filter-dropdowns>.dms-column{grid-template-columns:repeat(3,minmax(0,1fr))}}
.dt-srp-dropdowns.dt-srp-dropdowns .dms-category-dropdown-container{min-width:0;margin:0}
.dt-srp-dropdowns.dt-srp-dropdowns .ts-wrapper .ts-control{min-height:var(--dt-control-h);align-items:center;padding:0 var(--dt-s-10) 0 var(--dt-s-6);box-shadow:none}
.dt-srp-dropdowns.dt-srp-dropdowns .ts-wrapper .ts-control input::placeholder{color:var(--dms-text)}
.dt-srp-dropdowns.dt-srp-dropdowns .ts-wrapper.focus .ts-control{border-color:var(--dms-primary)}
.dt-srp-dropdowns.dt-srp-dropdowns .ts-dropdown .dms-checkbox label{width:18px;height:18px;background:var(--dt-charcoal);border:1px solid var(--dt-edge);border-radius:var(--dms-radius);box-shadow:none}
.dt-srp-dropdowns.dt-srp-dropdowns .ts-dropdown .dms-checkbox input:checked+label{background:var(--dms-primary);border-color:var(--dms-primary)}
.dt-srp-dropdowns.dt-srp-dropdowns .ts-dropdown .dms-checkbox input:checked+label:after{border-color:var(--dt-charcoal)}
.dt-srp-dropdowns.dt-srp-dropdowns .term-count{background:transparent!important;color:var(--dms-muted)!important;font:var(--dt-w-regular) var(--dt-label)/1 var(--dt-font-mono);padding:0;border-radius:0}
/* Sort on the results row: 220px min, 44px (spec 4, region 4). */
.dt-sort.dt-sort .ts-wrapper .ts-control{min-height:var(--dt-control-h-sm);align-items:center;box-shadow:none}
/* Outline buttons: Bone/60 edge has no Global Colour, so it is a token here. No count. */
.dt-srp-morebtn.dt-srp-morebtn .elementor-button,.dt-srp-mbtn.dt-srp-mbtn .elementor-button{min-height:var(--dt-control-h);display:inline-flex;align-items:center;justify-content:center;padding:0 var(--dt-s-10);background:transparent;border:var(--dt-hairline) solid var(--dt-bone-60);border-radius:var(--dms-radius);color:var(--dms-text);fill:var(--dms-text);font:var(--dt-w-medium) var(--dt-btn)/1 var(--dt-font-ui);letter-spacing:var(--dt-ls-btn);text-transform:uppercase;white-space:nowrap;transition:background-color var(--dt-motion) var(--dt-ease)}
.dt-srp-morebtn.dt-srp-morebtn .elementor-button:hover,.dt-srp-mbtn.dt-srp-mbtn .elementor-button:hover{background:var(--dt-slate);border-color:var(--dms-text)}
.dt-srp-morebtn.dt-srp-morebtn .elementor-button:focus-visible,.dt-srp-mbtn.dt-srp-mbtn .elementor-button:focus-visible{outline:var(--dt-focus-w) solid var(--dms-primary);outline-offset:var(--dt-focus-offset)}
.dt-srp-morebtn.dt-srp-morebtn .elementor-button svg,.dt-srp-mbtn.dt-srp-mbtn .elementor-button svg{width:16px;height:16px;fill:currentColor}
/* Tray: 7 -> 2 -> 1. The 7 and the 2/1 are native grid controls; the 2-column
   step from 1439 down has no native breakpoint (A-5), so it sets the same var. */
@media(max-width:1439px) and (min-width:1025px){.dt-srp-groups.dt-srp-groups.dt-srp-groups:not(.dt-srp-groups--stack){--e-con-grid-template-columns:repeat(2,minmax(0,1fr))}}
.dt-srp-trayhead.dt-srp-trayhead{align-items:baseline}
.dt-srp-trayhead__eyebrow.dt-srp-trayhead__eyebrow .elementor-heading-title{font:var(--dt-w-medium) var(--dt-label)/1 var(--dt-font-mono);letter-spacing:var(--dt-ls-label);text-transform:uppercase;color:var(--dms-text)}
.dt-srp-trayhead.dt-srp-trayhead .dt-srp-strap p{margin:0}
.dt-srp-group.dt-srp-group{min-width:0}
.dt-srp-group.dt-srp-group+.dt-srp-group{border-top-width:1px}
.dt-srp-sub--icon.dt-srp-sub--icon .dt-srp-grouphead{display:flex;align-items:center;gap:var(--dt-s-5);margin:0 0 var(--dt-s-2);font:var(--dt-w-medium) var(--dt-label-sm)/1 var(--dt-font-mono);letter-spacing:var(--dt-ls-label);text-transform:uppercase;color:var(--dms-muted)}
.dt-srp-sub--icon.dt-srp-sub--icon .dt-bgi{display:inline-flex;width:var(--dt-icon);height:var(--dt-icon);color:var(--dt-bone-80)}
.dt-srp-sub--icon.dt-srp-sub--icon .dt-bgi svg{width:100%;height:100%}
.dt-srp-group--range.dt-srp-group--range .dt-srp-sub{margin-top:0}
/* Range inputs: tabular figures, 40px, no unit (the unit is in the heading). */
.dt-srp-range.dt-srp-range .dms-range-slider-label{gap:var(--dt-s-4);margin-top:var(--dt-s-8)}
.dt-srp-range.dt-srp-range .dms-range-slider-label input{height:var(--dt-control-h-xs);padding:0 var(--dt-s-4);font-size:var(--dt-btn);font-variant-numeric:tabular-nums;min-width:0}
.dt-srp-range.dt-srp-range .dms-dash-space{color:var(--dms-muted)}
.dt-srp-range.dt-srp-range .dms-range-filter{margin-inline:var(--dt-s-4)}
/* The tray on Charcoal boxes: reset the plugin's list indent. */
.dt-srp-groups.dt-srp-groups .dms-filter-checkboxes{margin:0;padding:0}
/* Drawers. Width, height, side, fill and left rule are the off-canvas widget's
   own controls; the overlay's Charcoal/82 has no Global (alpha), so it is here. */
.dt-srp-offcanvas.dt-srp-offcanvas.dt-srp-offcanvas .e-off-canvas__overlay.e-off-canvas__overlay{background-color:var(--dt-scrim-overlay)}
/* The foot stays in view: the drawer fills the off-canvas and only its body scrolls. */
.dt-srp-drawer.dt-srp-drawer{height:100%}
.dt-srp-drawerbody.dt-srp-drawerbody{min-height:0;scrollbar-width:thin}
.dt-srp-drawerhead.dt-srp-drawerhead,.dt-srp-drawerfoot.dt-srp-drawerfoot{flex:none}
.dt-srp-drawer-eyebrow.dt-srp-drawer-eyebrow .elementor-heading-title{font:var(--dt-w-medium) var(--dt-label)/1 var(--dt-font-mono);letter-spacing:var(--dt-ls-label);text-transform:uppercase;color:var(--dms-muted)}
.dt-srp-drawer-title.dt-srp-drawer-title .elementor-heading-title{font:var(--dt-w-semi) var(--dt-h3)/var(--dt-h3-lh) var(--dt-font-display);color:var(--dms-text);margin-top:var(--dt-s-2)}
.dt-srp-close.dt-srp-close .elementor-button{width:var(--dt-control-h-sm);height:var(--dt-control-h-sm);padding:0;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:var(--dt-hairline) solid var(--dt-edge);border-radius:var(--dms-radius);color:var(--dms-text);fill:var(--dms-text)}
.dt-srp-close.dt-srp-close .elementor-button:hover{background:var(--dt-slate)}
.dt-srp-close.dt-srp-close .elementor-button svg{width:16px;height:16px;fill:currentColor}
.dt-srp-show.dt-srp-show .elementor-button{min-height:var(--dt-control-h);text-transform:uppercase;letter-spacing:var(--dt-ls-btn)}
.dt-srp-show.dt-srp-show .elementor-button:focus-visible{outline:var(--dt-focus-w) solid var(--dms-primary);outline-offset:var(--dt-focus-offset)}
.dt-srp-reset__link.dt-srp-reset__link .dms-reset-button{background:transparent;border:0;padding:0;color:var(--dms-text);text-decoration:underline;text-underline-offset:4px;font:var(--dt-w-regular) var(--dt-ui)/1 var(--dt-font-ui);cursor:pointer}
/* The drawer's live count: [dms_get_total_listings] - the plugin rewrites every
   .dms-total-listings after each fetch. Never a second dms_srp_matching: srp.js
   builds its chip rail with new Swiper('.dms-swiper-selected-terms'), which
   returns an array when two exist, and the chips stop rendering (Pass 4). */
.dt-srp-footcount.dt-srp-footcount p{margin:0;white-space:nowrap;font:var(--dt-w-medium) var(--dt-label)/1 var(--dt-font-mono);letter-spacing:var(--dt-ls-btn);text-transform:uppercase;color:var(--dms-muted)}
.dt-srp-footcount.dt-srp-footcount .dt-live{color:var(--dms-text)}
.dt-srp-acc.dt-srp-acc .e-n-accordion-item>.e-con{padding-block:var(--dt-s-8)}
/* Pagination style_2: sizes and colours are the widget's controls; spacing here. */
.dt-pagination.dt-pagination .dms-pagination ul{margin-top:var(--dt-s-11);gap:var(--dt-s-3)}
.dt-pagination.dt-pagination .dms-pagination ul li{margin-right:0}
.dt-pagination.dt-pagination .dms-pagination ul li a,.dt-pagination.dt-pagination .dms-pagination ul li .current{border:var(--dt-hairline) solid var(--dt-edge);font-variant-numeric:tabular-nums}
.dt-pagination.dt-pagination .dms-pagination ul li .dots{border-color:transparent;background:transparent;color:var(--dms-muted)}
/* No results: plugin-native block (global no_results_* options), drawn as .dt-noresults. */
.dt-srp-listings.dt-srp-listings li.no-listings-found-message{display:block;flex:1 1 100%;max-width:100%;background:var(--dt-basalt);border:var(--dt-hairline) solid var(--dt-edge);border-radius:var(--dms-radius);padding:var(--dt-s-19) var(--dt-s-15);text-align:center}
.dt-srp-listings.dt-srp-listings .no-listings-found-image{max-width:280px;margin:0 auto}
.dt-srp-listings.dt-srp-listings .no-listings-found-message .message{background:transparent;margin:var(--dt-s-13) 0 0}
.dt-srp-listings.dt-srp-listings .no-listings-found-message .message-header{justify-content:center;background:transparent;padding:0;color:var(--dms-text);font:var(--dt-w-semi) var(--dt-h3)/var(--dt-h3-lh) var(--dt-font-display)}
.dt-srp-listings.dt-srp-listings .no-listings-found-message .message-header .delete{display:none}
.dt-srp-listings.dt-srp-listings .no-listings-found-message .message-body{max-width:460px;margin:var(--dt-s-6) auto 0;padding:0;border:0;background:transparent;color:var(--dms-muted);font:var(--dt-w-regular) var(--dt-body)/1.5 var(--dt-font-ui)}
.dt-srp-listings.dt-srp-listings .no-listings-found-actions{margin-top:var(--dt-s-13);gap:var(--dt-s-6)}
.dt-srp-listings.dt-srp-listings .no-listings-found-actions .button{min-height:var(--dt-control-h-sm);padding:0 var(--dt-s-10);display:inline-flex;align-items:center;background:transparent;border:var(--dt-hairline) solid var(--dt-bone-60);border-radius:var(--dms-radius);color:var(--dms-text);font:var(--dt-w-medium) var(--dt-btn)/1 var(--dt-font-ui);letter-spacing:var(--dt-ls-btn);text-transform:uppercase;text-decoration:none}
.dt-srp-listings.dt-srp-listings .no-listings-found-actions .button:hover{background:var(--dt-slate)}
.dt-srp-listings.dt-srp-listings .dms-stock-alert-form{--dms-sa-accent:var(--dt-bone);--dms-sa-line:var(--dt-edge);--dms-sa-line-dark:var(--dt-edge);--dms-sa-muted:var(--dms-muted);max-width:560px;margin:var(--dt-s-15) auto 0;padding:var(--dt-s-13);background:var(--dt-graphite);border:var(--dt-hairline) solid var(--dt-edge);border-radius:var(--dms-radius)}
.dt-srp-listings.dt-srp-listings .dms-stock-alert-form .dms-stock-alert-intro{color:var(--dms-text);font:var(--dt-w-regular) var(--dt-ui)/1.5 var(--dt-font-ui)}
.dt-srp-listings.dt-srp-listings .dms-stock-alert-form .dms-stock-alert-field label>span{font:var(--dt-w-medium) var(--dt-label)/1 var(--dt-font-mono);letter-spacing:var(--dt-ls-label);text-transform:uppercase;color:var(--dms-muted)}
.dt-srp-listings.dt-srp-listings .dms-stock-alert-form .dms-stock-alert-field input[type=text],.dt-srp-listings.dt-srp-listings .dms-stock-alert-form .dms-stock-alert-field input[type=email]{height:var(--dt-control-h);background:var(--dt-charcoal);color:var(--dms-text);border-radius:var(--dms-radius);box-shadow:none}
.dt-srp-listings.dt-srp-listings .dms-stock-alert-form .dms-stock-alert-field input:focus{border-color:var(--dms-primary);box-shadow:none;outline:var(--dt-focus-w) solid var(--dms-primary);outline-offset:0}
.dt-srp-listings.dt-srp-listings .dms-stock-alert-form .dms-stock-alert-consent input{accent-color:var(--dms-primary)}
.dt-srp-listings.dt-srp-listings .dms-stock-alert-form .dms-stock-alert-field.dms-stock-alert-consent label>span{font:var(--dt-w-regular) var(--dt-small)/1.45 var(--dt-font-ui);letter-spacing:normal;text-transform:none;color:var(--dms-muted)}
.dt-srp-listings.dt-srp-listings .dms-stock-alert-form .dms-stock-alert-submit{min-height:var(--dt-control-h);background:var(--dt-bone);color:var(--dt-charcoal);border-radius:var(--dms-radius);font:var(--dt-w-medium) var(--dt-btn)/1 var(--dt-font-ui);letter-spacing:var(--dt-ls-btn);text-transform:uppercase}
.dt-srp-listings.dt-srp-listings .dms-stock-alert-form .dms-stock-alert-alert{border-radius:var(--dms-radius);background:var(--dt-charcoal);border:var(--dt-hairline) solid var(--dt-edge);color:var(--dms-text)}
@media(max-width:767px){.dt-srp-listings.dt-srp-listings li.no-listings-found-message{padding:var(--dt-s-15) var(--dt-s-8)}.dt-srp-listings.dt-srp-listings .dms-stock-alert-form{padding:var(--dt-s-10)}}
/* Select arrow: the widget's arrow control writes 'border-color: VALUE transparent
   transparent'; a Global binding replaces the whole value and paints a bar. The
   control keeps its default; the Muted top edge is set here. Dropdowns + Sort. */
.dt-srp-dropdowns.dt-srp-dropdowns.dt-srp-dropdowns .ts-wrapper.ts-wrapper .ts-control.ts-control::after,.dt-sort.dt-sort.dt-sort .ts-wrapper.ts-wrapper .ts-control.ts-control::after{border-top-color:var(--dms-muted)}
/* style_2 follows the widget's own alignment class. */
.dt-pagination.dt-pagination .dms-pagination-align-center .dms-pagination{justify-content:center}
.dt-srp-group--range.dt-srp-group--range .dt-srp-sub .elementor-heading-title{line-height:1.3}
/* Chip rail (SRP A and B, one widget, one rule set). The plugin's Swiper arrows
   are white 30px discs positioned over the rail; at 375 the rail shared a row
   with the count and Reset, shrank to 72px and the disabled prev disc sat on the
   first chip's remove button. Below 768 the rail takes its own line. */
.dt-matching.dt-matching .dms-button-next,.dt-matching.dt-matching .dms-button-prev{width:28px;height:28px;background:var(--dt-basalt);border:var(--dt-hairline) solid var(--dt-edge);border-radius:var(--dms-radius);color:var(--dms-text);box-shadow:none}
.dt-matching.dt-matching .dms-button-next svg,.dt-matching.dt-matching .dms-button-prev svg{stroke:currentColor;color:var(--dms-text)}
.dt-matching.dt-matching .swiper-button-disabled{opacity:0;pointer-events:none}
@media(max-width:767px){.dt-matching.dt-matching .dms-matching-row>.dms-swiper-selected-column{flex:1 0 100%;order:3;min-width:0;padding-top:0}}
/* Every listing (SRP rows, scroller slides, every page that lists them): the plugin's angled
   badge carries z-index 999 and painted over the fixed compare bar (z 20) and
   would over any sticky header. The card becomes its own stacking context, so
   the badge stays above the photo and below page chrome. */
.dms-listing-sri.dms-listing-sri{isolation:isolate}
/* Page head (SRP A and B): title left, live count + reassurance right, bottom
   aligned; stacked left at <=1024. Layout is the containers' own controls; the
   two paragraphs only lose the stacked-layout margins here. */
.dt-srp-head__meta.dt-srp-head__meta .dt-srp-count p{margin:0 0 var(--dt-s-4)}
.dt-srp-head__meta.dt-srp-head__meta .dt-srp-reassure p{margin:0}
/* Select labels (SRP A bar + phone drawer, SRP B sidebar): the plugin already
   prints a real <label for> per select, visually hidden; shown here as the
   prototype's .dt-label. Text is the category's plural name. */
.dt-srp-dropdowns.dt-srp-dropdowns .dms-category-dropdown-container>label.dms-visually-hidden{position:static;display:block;width:auto;height:auto;margin:0 0 var(--dt-s-3);padding:0;overflow:visible;clip:auto;white-space:normal;font:var(--dt-w-medium) var(--dt-label-sm)/var(--dt-label-lh) var(--dt-font-mono);letter-spacing:var(--dt-ls-label);text-transform:uppercase;color:var(--dms-muted)}
/* ====== END THEME 26 - SRP A ====== */

/* ====== THEME 26 - FINANCE (PAGE_SPEC_Finance, Pass 3) ======
   Shared form scope: every rule below is written against
   :is(.dt-vdp-root,.dt-fin-form,.dt-svc-form,.dt-oft-form,.dt-ct-form,.dt-lp-form,.dt-rent-form,.dt-ti-form,.dt-alert-form,.dms-modal) .dms-form so the VDP lead form,
   the VDP modals and the Finance pre-qualification form read as one system. */

/* One column, one gap: the form document is a flat list of field widgets. */
.dt-fin-form.dt-fin-form .dms-form > .elementor{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--dt-s-8)}
.dt-fin-form.dt-fin-form .dms-form > .elementor > .elementor-element{min-width:0;width:100%}

/* Select: Bulma div.select, arrow recoloured (the calculator's construction). */
:is(.dt-vdp-root,.dt-fin-form,.dt-svc-form,.dt-oft-form,.dt-ct-form,.dt-lp-form,.dt-rent-form,.dt-ti-form,.dt-alert-form,.dms-modal) .dms-form .select{display:block;position:relative;width:100%;height:auto}
:is(.dt-vdp-root,.dt-fin-form,.dt-svc-form,.dt-oft-form,.dt-ct-form,.dt-lp-form,.dt-rent-form,.dt-ti-form,.dt-alert-form,.dms-modal) .dms-form .select select{width:100%;min-height:var(--dt-control-h);padding:0 var(--dt-s-15) 0 var(--dt-s-7);appearance:none;background:var(--dt-charcoal);border:1px solid var(--dt-edge);border-radius:var(--dms-radius);color:var(--dms-text);font:var(--dt-w-regular) var(--dt-ui)/1.4 var(--dt-font-ui);box-shadow:none;cursor:pointer}
:is(.dt-vdp-root,.dt-fin-form,.dt-svc-form,.dt-oft-form,.dt-ct-form,.dt-lp-form,.dt-rent-form,.dt-ti-form,.dt-alert-form,.dms-modal) .dms-form .select select:focus{border-color:var(--dms-text);outline:2px solid var(--dms-focus-color);outline-offset:2px}
:is(.dt-vdp-root,.dt-fin-form,.dt-svc-form,.dt-oft-form,.dt-ct-form,.dt-lp-form,.dt-rent-form,.dt-ti-form,.dt-alert-form,.dms-modal) .dms-form .select:not(.is-multiple):not(.is-loading)::after{border-color:var(--dms-muted);right:var(--dt-s-7);z-index:1}
:is(.dt-vdp-root,.dt-fin-form,.dt-svc-form,.dt-oft-form,.dt-ct-form,.dt-lp-form,.dt-rent-form,.dt-ti-form,.dt-alert-form,.dms-modal) .dms-form .select select option{background:var(--dt-graphite);color:var(--dms-text)}

/* Radio group: one <div> per option; the grid sits on the group itself. */
:is(.dt-vdp-root,.dt-fin-form,.dt-svc-form,.dt-oft-form,.dt-ct-form,.dt-lp-form,.dt-rent-form,.dt-ti-form,.dt-alert-form,.dms-modal) .dms-form .dms-form-input-radio{display:grid;grid-template-columns:repeat(3,max-content);column-gap:var(--dt-s-11);row-gap:0;align-items:center}
/* The plugin's own `columns` control on dms_form_radio: columns 1 = one option per row (F2 condition, F11 rental_class). The 3-up grid above is for columns 0. */
:is(.dt-vdp-root,.dt-fin-form,.dt-svc-form,.dt-oft-form,.dt-ct-form,.dt-lp-form,.dt-rent-form,.dt-ti-form,.dt-alert-form,.dms-modal) .dms-form .dms-form-input-radio.dms-form-input-columns-1{grid-template-columns:minmax(0,1fr)}
:is(.dt-vdp-root,.dt-fin-form,.dt-svc-form,.dt-oft-form,.dt-ct-form,.dt-lp-form,.dt-rent-form,.dt-ti-form,.dt-alert-form,.dms-modal) .dms-form .dms-form-input-radio > .dms-form-field-label,
:is(.dt-vdp-root,.dt-fin-form,.dt-svc-form,.dt-oft-form,.dt-ct-form,.dt-lp-form,.dt-rent-form,.dt-ti-form,.dt-alert-form,.dms-modal) .dms-form .dms-form-input-radio > .dms-form-field-error{grid-column:1 / -1}
:is(.dt-vdp-root,.dt-fin-form,.dt-svc-form,.dt-oft-form,.dt-ct-form,.dt-lp-form,.dt-rent-form,.dt-ti-form,.dt-alert-form,.dms-modal) .dms-form .dms-form-input-radio > div > label{display:flex;align-items:center;gap:var(--dt-s-5);min-height:var(--dt-control-h-sm);margin:0;cursor:pointer;color:var(--dms-text);font:var(--dt-w-regular) var(--dt-btn)/1.4 var(--dt-font-ui)}
:is(.dt-vdp-root,.dt-fin-form,.dt-svc-form,.dt-oft-form,.dt-ct-form,.dt-lp-form,.dt-rent-form,.dt-ti-form,.dt-alert-form,.dms-modal) .dms-form .dms-form-input-radio input[type=radio]{appearance:none;flex:none;width:var(--dt-box);height:var(--dt-box);margin:0;border:1px solid var(--dt-edge);border-radius:var(--dt-radius-round);background:var(--dt-charcoal);box-shadow:none;cursor:pointer}
:is(.dt-vdp-root,.dt-fin-form,.dt-svc-form,.dt-oft-form,.dt-ct-form,.dt-lp-form,.dt-rent-form,.dt-ti-form,.dt-alert-form,.dms-modal) .dms-form .dms-form-input-radio input[type=radio]:checked{border-color:var(--dt-glacier);background:radial-gradient(circle,var(--dt-glacier) 0 4px,var(--dt-charcoal) 4.5px)}
:is(.dt-vdp-root,.dt-fin-form,.dt-svc-form,.dt-oft-form,.dt-ct-form,.dt-lp-form,.dt-rent-form,.dt-ti-form,.dt-alert-form,.dms-modal) .dms-form .dms-form-input-radio input[type=radio]:focus-visible{outline:2px solid var(--dt-glacier);outline-offset:2px}

/* Consent / checkbox: 18px box, Edge on Charcoal; checked = Glacier fill with a Charcoal inset. */
:is(.dt-vdp-root,.dt-fin-form,.dt-svc-form,.dt-oft-form,.dt-ct-form,.dt-lp-form,.dt-rent-form,.dt-ti-form,.dt-alert-form,.dms-modal) .dms-form .dms-form-input-checkbox > div > label{display:flex;align-items:flex-start;gap:var(--dt-s-5);min-height:var(--dt-control-h-sm);margin:0;cursor:pointer;color:var(--dms-muted);font:var(--dt-w-regular) var(--dt-btn)/1.5 var(--dt-font-ui)}
:is(.dt-vdp-root,.dt-fin-form,.dt-svc-form,.dt-oft-form,.dt-ct-form,.dt-lp-form,.dt-rent-form,.dt-ti-form,.dt-alert-form,.dms-modal) .dms-form .dms-form-input-checkbox input[type=checkbox]{appearance:none;flex:none;width:var(--dt-box);height:var(--dt-box);margin:2px 0 0;border:1px solid var(--dt-edge);border-radius:var(--dms-radius);background:var(--dt-charcoal);box-shadow:none;cursor:pointer}
:is(.dt-vdp-root,.dt-fin-form,.dt-svc-form,.dt-oft-form,.dt-ct-form,.dt-lp-form,.dt-rent-form,.dt-ti-form,.dt-alert-form,.dms-modal) .dms-form .dms-form-input-checkbox input[type=checkbox]:checked{border-color:var(--dt-glacier);background:var(--dt-glacier);box-shadow:inset 0 0 0 3px var(--dt-charcoal)}
:is(.dt-vdp-root,.dt-fin-form,.dt-svc-form,.dt-oft-form,.dt-ct-form,.dt-lp-form,.dt-rent-form,.dt-ti-form,.dt-alert-form,.dms-modal) .dms-form .dms-form-input-checkbox input[type=checkbox]:focus-visible{outline:2px solid var(--dt-glacier);outline-offset:2px}

/* Submit: Elementor writes hover as :hover,:focus - reset the click focus. */
:is(.dt-vdp-root,.dt-fin-form,.dt-svc-form,.dt-oft-form,.dt-ct-form,.dt-lp-form,.dt-rent-form,.dt-ti-form,.dt-alert-form,.dms-modal) .dms-form button[type=submit]:focus:not(:focus-visible){outline:none}
:is(.dt-vdp-root,.dt-fin-form,.dt-svc-form,.dt-oft-form,.dt-ct-form,.dt-lp-form,.dt-rent-form,.dt-ti-form,.dt-alert-form,.dms-modal) .dms-form button[type=submit]:focus-visible{outline:2px solid var(--dt-glacier);outline-offset:2px}
:is(.dt-vdp-root,.dt-fin-form,.dt-svc-form,.dt-oft-form,.dt-ct-form,.dt-lp-form,.dt-rent-form,.dt-ti-form,.dt-alert-form,.dms-modal) .dms-form button[type=submit].button{text-transform:uppercase;letter-spacing:var(--dt-ls-btn)}

@media (max-width:767px){
  :is(.dt-vdp-root,.dt-fin-form,.dt-svc-form,.dt-oft-form,.dt-ct-form,.dt-lp-form,.dt-rent-form,.dt-ti-form,.dt-alert-form,.dms-modal) .dms-form .dms-form-input-radio{grid-template-columns:minmax(0,1fr)}
  .dt-fin-form.dt-fin-form .dms-form button[type=submit]{width:100%}
}

/* Calculator on a Graphite panel: Charcoal inputs (theme §10.4, spec §7-A). */
.dt-calc.dt-calc.dt-calc--panel{margin-top:0}
.dt-calc.dt-calc.dt-calc--panel .input,.dt-calc.dt-calc.dt-calc--panel select{background:var(--dt-charcoal)}

/* FAQ accordion - the html widget's <details> (boilerplate §3.6 #2). One open. */
.dt-accordion > details{border-bottom:1px solid var(--dt-edge)}
.dt-accordion summary{display:flex;align-items:center;justify-content:space-between;gap:var(--dt-s-6);min-height:var(--dt-row-h-lg);padding:var(--dt-s-4) 0;list-style:none;cursor:pointer;color:var(--dms-text);font:var(--dt-w-medium) var(--dt-body)/1.3 var(--dt-font-ui)}
.dt-accordion summary::-webkit-details-marker{display:none}
.dt-accordion summary::marker{content:""}
.dt-accordion summary:focus:not(:focus-visible){outline:none}
.dt-accordion summary:focus-visible{outline:2px solid var(--dt-glacier);outline-offset:2px}
.dt-accordion__sign{display:inline-flex;flex:none;width:var(--dt-icon);height:var(--dt-icon);color:var(--dms-text)}
.dt-accordion__sign svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:var(--dt-icon-stroke);stroke-linecap:round}
.dt-accordion details[open] .dt-acc-v{display:none}
.dt-accordion__body{padding-bottom:var(--dt-s-6)}
.dt-accordion__body p{max-width:68ch;margin:0;color:var(--dms-muted);font:var(--dt-w-regular) var(--dt-body)/1.6 var(--dt-font-ui)}
.dt-accordion__body a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.dt-accordion__body a:focus-visible{outline:2px solid var(--dt-glacier);outline-offset:2px}
:is(.dt-vdp-root,.dt-fin-form,.dt-svc-form,.dt-oft-form,.dt-ct-form,.dt-lp-form,.dt-rent-form,.dt-ti-form,.dt-alert-form,.dms-modal) .dms-form .dms-form-text-input.dms-form-text-input::placeholder,:is(.dt-vdp-root,.dt-fin-form,.dt-svc-form,.dt-oft-form,.dt-ct-form,.dt-lp-form,.dt-rent-form,.dt-ti-form,.dt-alert-form,.dms-modal) .dms-form textarea.textarea::placeholder{color:var(--dt-muted-70);opacity:1}
.dt-calc.dt-calc .dms-button.calculate:focus:not(:focus-visible){outline:none;box-shadow:none}
.dt-calc.dt-calc .dms-button.calculate:focus-visible{outline:2px solid var(--dt-glacier);outline-offset:2px}
/* ====== END THEME 26 - FINANCE ====== */


/* ====== THEME 26 - SERVICE & INSTALL (PAGE_SPEC_Service_Install, Pass 1) ======
   Page 25 + form F9. The shared form scope above now includes .dt-svc-form.
   Visual styling only; layout is container controls on page 25 and F9. */

/* F9: a conditional field hidden by the plugin (inline display:none on the
   widget body) must not leave its grid cell and 16px gap behind (trap G). */
:is(.dt-svc-form.dt-svc-form,.dt-oft-form.dt-oft-form,.dt-ct-form.dt-ct-form,.dt-lp-form.dt-lp-form,.dt-rent-form.dt-rent-form,.dt-ti-form.dt-ti-form,.dt-alert-form.dt-alert-form,.dms-modal.dms-modal) .dt-formgrid > .elementor-element:has(> .elementor-widget-container > [data-conditions][style*="none"]){display:none}

/* Checkbox GROUP options read as Bone; only the consent line stays muted. */
:is(.dt-svc-form.dt-svc-form,.dt-oft-form.dt-oft-form,.dt-lp-form.dt-lp-form) .dms-form .dms-form-input-checkbox:not(.dms-form-input-consent) > .dms-form-field-label{display:block;margin-bottom:var(--dt-s-3)}
:is(.dt-svc-form.dt-svc-form,.dt-oft-form.dt-oft-form,.dt-lp-form.dt-lp-form) .dms-form .dms-form-input-checkbox:not(.dms-form-input-consent) > div > label{align-items:center;color:var(--dms-text);line-height:1.4}
:is(.dt-svc-form.dt-svc-form,.dt-oft-form.dt-oft-form,.dt-lp-form.dt-lp-form) .dms-form .dms-form-input-checkbox:not(.dms-form-input-consent) input[type=checkbox]{margin:0}

/* Date field — DS-SVC-1. Safari collapses an empty date input and centres the
   value; the picker is browser chrome, reached only by color-scheme (no filter).
   The empty mm/dd/yyyy hint has no CSS hook on a non-required field. */
.dt-svc-form.dt-svc-form .dms-form input[type=date]{min-height:var(--dt-control-h);text-align:left;color-scheme:dark;-webkit-appearance:none;appearance:none}
.dt-svc-form.dt-svc-form .dms-form input[type=date]::-webkit-date-and-time-value{text-align:left}
.dt-svc-form.dt-svc-form .dms-form input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer}

/* Package table — the page's html widget #1 (DS-SVC-2, theme §10.3).
   Bulma reset first; Edge bottom rules only; mono header on Graphite;
   "from" figures in Bone (examples, never Amber). */
.dt-svc-table{margin-top:var(--dt-s-14);min-width:0}
:is(.dt-svc-table,.dt-rt-table,.dt-ct-table,.dt-rent-table) .dt-table{width:100%;border-collapse:collapse;border:1px solid var(--dt-edge);background:transparent;margin:0}
:is(.dt-svc-table,.dt-rt-table,.dt-ct-table,.dt-rent-table) .dt-table th,:is(.dt-svc-table,.dt-rt-table,.dt-ct-table,.dt-rent-table) .dt-table td{border:0;border-bottom:1px solid var(--dt-edge);background:transparent;padding:var(--dt-s-8) var(--dt-s-10);text-align:left;vertical-align:top;color:var(--dms-text);font:var(--dt-w-regular) var(--dt-ui)/1.4 var(--dt-font-ui);font-variant-numeric:tabular-nums}
:is(.dt-svc-table,.dt-rt-table,.dt-ct-table,.dt-rent-table) .dt-table thead th{height:var(--dt-row-h);padding-block:0;vertical-align:middle;background:var(--dt-graphite);color:var(--dms-muted);font:var(--dt-w-medium) var(--dt-label-sm)/1.3 var(--dt-font-mono);letter-spacing:var(--dt-ls-label);text-transform:uppercase}
:is(.dt-svc-table,.dt-rt-table,.dt-ct-table,.dt-rent-table) .dt-table tbody th{width:26%;color:var(--dms-muted);font:var(--dt-w-medium) var(--dt-label)/1.3 var(--dt-font-mono);letter-spacing:var(--dt-ls-figure)}
:is(.dt-svc-table,.dt-rt-table,.dt-ct-table,.dt-rent-table) .dt-table tbody tr:last-child th,:is(.dt-svc-table,.dt-rt-table,.dt-ct-table,.dt-rent-table) .dt-table tbody tr:last-child td{border-bottom:0}
:is(.dt-svc-table,.dt-rt-table,.dt-ct-table,.dt-rent-table) .dt-table__name{display:block;margin-top:var(--dt-s-2);color:var(--dms-text);font:var(--dt-w-semi) var(--dt-ui)/1.4 var(--dt-font-ui);letter-spacing:0;text-transform:none}
:is(.dt-svc-table,.dt-rt-table,.dt-ct-table,.dt-rent-table) .dt-table__from{white-space:nowrap}
:is(.dt-svc-table,.dt-rt-table,.dt-ct-table,.dt-rent-table) .dt-table__fig{display:block;color:var(--dms-text);font:var(--dt-w-semi) var(--dt-h3)/1.2 var(--dt-font-ui);letter-spacing:var(--dt-ls-tight);font-variant-numeric:tabular-nums}
@media (max-width:767px){
  :is(.dt-svc-table,.dt-rt-table,.dt-ct-table,.dt-rent-table) .dt-table thead{display:block;position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  :is(.dt-svc-table,.dt-rt-table,.dt-ct-table,.dt-rent-table) .dt-table thead tr,:is(.dt-svc-table,.dt-rt-table,.dt-ct-table,.dt-rent-table) .dt-table thead th{display:block;width:1px;padding:0}
  :is(.dt-svc-table,.dt-rt-table,.dt-ct-table,.dt-rent-table) .dt-table,:is(.dt-svc-table,.dt-rt-table,.dt-ct-table,.dt-rent-table) .dt-table tbody,:is(.dt-svc-table,.dt-rt-table,.dt-ct-table,.dt-rent-table) .dt-table tr,:is(.dt-svc-table,.dt-rt-table,.dt-ct-table,.dt-rent-table) .dt-table td,:is(.dt-svc-table,.dt-rt-table,.dt-ct-table,.dt-rent-table) .dt-table tbody th{display:block;width:100%}
  :is(.dt-svc-table,.dt-rt-table,.dt-ct-table,.dt-rent-table) .dt-table tbody tr{border-bottom:1px solid var(--dt-edge);padding-block:var(--dt-s-7)}
  :is(.dt-svc-table,.dt-rt-table,.dt-ct-table,.dt-rent-table) .dt-table tbody tr:last-child{border-bottom:0}
  :is(.dt-svc-table,.dt-rt-table,.dt-ct-table,.dt-rent-table) .dt-table td,:is(.dt-svc-table,.dt-rt-table,.dt-ct-table,.dt-rent-table) .dt-table tbody th{border-bottom:0;padding:var(--dt-s-3) var(--dt-s-8)}
  :is(.dt-svc-table,.dt-rt-table,.dt-ct-table,.dt-rent-table) .dt-table td[data-label]::before{content:attr(data-label);display:block;margin-bottom:var(--dt-s-2);color:var(--dms-muted);font:var(--dt-w-medium) var(--dt-label-sm)/1.3 var(--dt-font-mono);letter-spacing:var(--dt-ls-label);text-transform:uppercase}
  :is(.dt-svc-form.dt-svc-form,.dt-oft-form.dt-oft-form,.dt-ct-form.dt-ct-form,.dt-lp-form.dt-lp-form,.dt-rent-form.dt-rent-form,.dt-ti-form.dt-ti-form,.dt-alert-form.dt-alert-form) .dms-form button[type=submit]{width:100%}
}
/* ====== END THEME 26 - SERVICE & INSTALL ====== */

/* ====== THEME 26 - RIG TYPES & BUILD GUIDE (page 73) ====== */
/* DS-RT-3: native dms_category_links on the build-group categories, as etched terms */
.dt-catlinks--terms.dt-catlinks--terms .dms-category-links{display:grid;grid-template-columns:1fr 1fr;list-style:none;margin:0;padding:0}
.dt-catlinks--terms .dms-category-links li{display:flex;align-items:center;min-height:var(--dt-control-h-xs);margin:0;padding:0}
.dt-catlinks--terms .dms-category-links li:nth-child(4n+3),.dt-catlinks--terms .dms-category-links li:nth-child(4n+4){background:var(--dt-graphite)}
.dt-catlinks--terms.dt-catlinks--terms .dms-category-links a{display:flex;align-items:center;width:100%;min-height:var(--dt-control-h-sm);padding-inline:var(--dt-s-8);font:var(--dt-w-regular) var(--dt-btn)/var(--dt-xsmall-lh) var(--dt-font-ui);color:var(--dt-bone);text-decoration:underline;text-decoration-color:transparent;text-underline-offset:4px;transition:text-decoration-color var(--dt-motion) var(--dt-ease)}
.dt-catlinks--terms.dt-catlinks--terms .dms-category-links a:hover{color:var(--dt-bone);text-decoration-color:var(--dt-bone)}
.dt-catlinks--terms .dms-category-links a:focus-visible{outline:var(--dt-focus-w) solid var(--dms-primary);outline-offset:calc(var(--dt-focus-offset) * -1)}
/* a group with no terms prints an empty ul: hide the list and its label (visual only) */
.dt-catlinks--terms:has(.dms-category-links:empty){display:none}
.dt-rt-guideplate:has(.dms-category-links:empty) .dt-rt-recorded{display:none}
/* kind table: muted em-dash cells */
:is(.dt-rt-table,.dt-ct-table,.dt-rent-table) .dt-table td.is-empty{color:var(--dms-muted)}
@media (max-width:767px){
  .dt-catlinks--terms.dt-catlinks--terms .dms-category-links{grid-template-columns:1fr}
  .dt-catlinks--terms .dms-category-links li:nth-child(4n+3),.dt-catlinks--terms .dms-category-links li:nth-child(4n+4){background:transparent}
  .dt-catlinks--terms .dms-category-links li:nth-child(even){background:var(--dt-graphite)}
}
/* ====== END THEME 26 - RIG TYPES & BUILD GUIDE ====== */

/* ====== THEME 26 - CONTACT (PAGE_SPEC_Contact, Pass 2) ======
   Page 75 + form F10 (352). The shared form scope and the html-table scope
   above now include .dt-ct-form / .dt-ct-table. Visual styling only. */
.dt-ct-table{margin-top:var(--dt-s-14);min-width:0}
/* DS-2: header row steps DOWN to Charcoal on a Graphite band */
.dt-ct-table.dt-ct-table .dt-table thead th{background:var(--dt-charcoal)}
/* ====== END THEME 26 - CONTACT ====== */

/* ====== THEME 26 - SPECIALS, template 354, host page 71 (PAGE_SPEC_Specials). Classes doubled.
   Surfaces, padding, grids, the section-head rule and the photograph are NATIVE controls
   on the template. What is here is what no control reaches: the photo scrim (alpha has no
   Global), type roles, the offer card's inner rhythm, the three-dropdown grid inside the one
   plugin column, and the text-link / outline button looks. DS-SPC-1 / DS-SPC-2. ====== */
/* R1 photo head: the scrim sits above the native background image, below the copy.
   Hero scrim (70% copy side, theme 5.4); a complete mobile variant (5.3). */
.dt-spc-head.dt-spc-head{position:relative;isolation:isolate}
.dt-spc-head.dt-spc-head::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:var(--dt-scrim-hero)}
.dt-spc-head.dt-spc-head>.e-con{position:relative;z-index:1}
@media(max-width:767px){.dt-spc-head.dt-spc-head::before{background:var(--dt-scrim-hero-m)}}
/* Type roles. Heading titles carry Elementor's widget-default Primary colour and font;
   every role sets both explicitly. */
.dt-spc-eyebrow.dt-spc-eyebrow .elementor-heading-title,.dt-spc-offer__eyebrow.dt-spc-offer__eyebrow .elementor-heading-title,.dt-spc-term__label.dt-spc-term__label .elementor-heading-title{font:var(--dt-w-medium) var(--dt-label)/var(--dt-label-lh) var(--dt-font-mono);letter-spacing:var(--dt-ls-label);text-transform:uppercase;color:var(--dms-muted);margin:0}
.dt-spc-head.dt-spc-head .dt-spc-eyebrow .elementor-heading-title{color:var(--dt-bone-70)}
.dt-spc-h1.dt-spc-h1 .elementor-heading-title{font:var(--dt-w-semi) var(--dt-h1-page)/var(--dt-h1-page-lh) var(--dt-font-display);letter-spacing:var(--dt-ls-tighter);color:var(--dms-text);margin:var(--dt-s-5) 0 0;text-wrap:balance}
.dt-spc-lede.dt-spc-lede,.dt-spc-lede.dt-spc-lede p{font:var(--dt-w-regular) var(--dt-body)/var(--dt-body-lh) var(--dt-font-ui);color:var(--dt-bone-85);max-width:56ch;margin:var(--dt-s-8) 0 0}
.dt-spc-lede.dt-spc-lede p{margin:0}
.dt-spc-h2.dt-spc-h2 .elementor-heading-title{font:var(--dt-w-semi) var(--dt-h2)/var(--dt-h2-lh) var(--dt-font-display);letter-spacing:var(--dt-ls-tight);color:var(--dms-text);margin:0;text-wrap:balance}
.dt-spc-h2--sub.dt-spc-h2--sub .elementor-heading-title{font-size:var(--dt-h2-sub);line-height:var(--dt-h2-sub-lh)}
.dt-spc-offer__title.dt-spc-offer__title .elementor-heading-title{font:var(--dt-w-semi) var(--dt-h3)/var(--dt-h3-lh) var(--dt-font-display);letter-spacing:var(--dt-ls-tight);color:var(--dms-text);margin:0;text-wrap:balance}
@media(max-width:1024px){.dt-spc-h2.dt-spc-h2:not(.dt-spc-h2--sub) .elementor-heading-title{font-size:var(--dt-h2-t)}.dt-spc-offer__title.dt-spc-offer__title .elementor-heading-title{font-size:var(--dt-h3-t)}}
@media(max-width:767px){.dt-spc-h1.dt-spc-h1 .elementor-heading-title{font-size:var(--dt-h1-page-m);line-height:var(--dt-h2-lh)}.dt-spc-h2.dt-spc-h2 .elementor-heading-title{font-size:var(--dt-h2-m)}.dt-spc-offer__title.dt-spc-offer__title .elementor-heading-title{font-size:var(--dt-h3-m)}}
/* R2 offer card (DS-SPC-1): the figure is an EXAMPLE, so Bone, never Amber (theme 2.3). */
.dt-spc-offer__eyebrow.dt-spc-offer__eyebrow{margin-bottom:var(--dt-s-6)}
.dt-spc-offer__figure.dt-spc-offer__figure p,.dt-spc-offer__figure.dt-spc-offer__figure .dt-spc-fig{margin:0;font:var(--dt-w-semi) var(--dt-figure-lg)/var(--dt-h2-lh) var(--dt-font-ui);letter-spacing:var(--dt-ls-tight);font-variant-numeric:tabular-nums;color:var(--dms-text)}
.dt-spc-offer__figure.dt-spc-offer__figure .dt-spc-unit{font:var(--dt-w-regular) var(--dt-body)/1 var(--dt-font-ui);letter-spacing:0;color:var(--dms-muted);margin-left:var(--dt-s-2)}
.dt-spc-offer__body.dt-spc-offer__body p{margin:var(--dt-s-6) 0 0;max-width:68ch;font:var(--dt-w-regular) var(--dt-body)/var(--dt-body-lh) var(--dt-font-ui);color:var(--dms-muted)}
.dt-spc-offer__small.dt-spc-offer__small p{margin:var(--dt-s-7) 0 0;font:var(--dt-w-regular) var(--dt-small)/var(--dt-small-lh) var(--dt-font-ui);color:var(--dms-muted)}
.dt-spc-offer__foot.dt-spc-offer__foot{margin-top:auto;padding-top:var(--dt-s-10)}
.dt-spc-offer.dt-spc-offer{min-width:0}
/* Text link (Bone underlined, theme 11.1-1) and outline button (Bone/60 edge has no Global). */
.dt-spc-textlink.dt-spc-textlink .elementor-button{min-height:var(--dt-control-h-sm);display:inline-flex;align-items:center;padding:0;background:transparent;border:0;border-radius:0;color:var(--dms-text);font:var(--dt-w-medium) var(--dt-ui)/1 var(--dt-font-ui);letter-spacing:0;text-transform:none;text-decoration:underline;text-decoration-color:var(--dt-bone-40);text-underline-offset:4px;transition:text-decoration-color var(--dt-motion) var(--dt-ease)}
.dt-spc-textlink.dt-spc-textlink .elementor-button:hover{text-decoration-color:var(--dms-text);background:transparent;color:var(--dms-text)}
.dt-spc-outline.dt-spc-outline .elementor-button{min-height:var(--dt-control-h-sm);display:inline-flex;align-items:center;justify-content:center;padding:0 var(--dt-s-10);background:transparent;border:var(--dt-hairline) solid var(--dt-bone-60);border-radius:var(--dms-radius);color:var(--dms-text);font:var(--dt-w-semi) var(--dt-btn)/1 var(--dt-font-ui);letter-spacing:var(--dt-ls-btn);text-transform:uppercase;white-space:nowrap;transition:background-color var(--dt-motion) var(--dt-ease)}
.dt-spc-outline.dt-spc-outline .elementor-button:hover{background:var(--dt-slate);color:var(--dms-text)}
.dt-spc-textlink.dt-spc-textlink .elementor-button:focus-visible,.dt-spc-outline.dt-spc-outline .elementor-button:focus-visible{outline:var(--dt-focus-w) solid var(--dms-primary);outline-offset:var(--dt-focus-offset)}
/* R3: the plugin renders the three dropdowns inside ONE .dms-column; that child is the grid.
   No control lays out the inside of the widget (SRP A precedent). 3 / 3 / 1. */
.dt-spc-dropdowns.dt-spc-dropdowns .dms-filter-dropdowns>.dms-column{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:767px){.dt-spc-dropdowns.dt-spc-dropdowns .dms-filter-dropdowns>.dms-column{grid-template-columns:minmax(0,1fr)}}
/* R4: sort shows at every width here (no drawer); full width on a phone. */
@media(max-width:767px){.dt-spc-results.dt-spc-results .dt-srp-tools,.dt-spc-results.dt-spc-results .dt-sort,.dt-spc-results.dt-spc-results .dt-sort .dms-orderby-dropdown,.dt-spc-results.dt-spc-results .dt-sort .ts-wrapper{width:100%}}
/* R8 terms. */
.dt-spc-term__text.dt-spc-term__text p{margin:0;max-width:68ch;font:var(--dt-w-regular) var(--dt-body)/var(--dt-body-lh) var(--dt-font-ui);color:var(--dms-muted)}
.dt-spc-figures.dt-spc-figures{padding-top:var(--dt-s-10);border-top:var(--dt-hairline) solid var(--dt-edge)}
.dt-spc-figures.dt-spc-figures p{margin:0;font:var(--dt-w-regular) var(--dt-small)/var(--dt-small-lh) var(--dt-font-ui);color:var(--dms-muted)}
/* ====== END THEME 26 - SPECIALS ====== */


/* ======================================================================
   THEME 26 - ABOUT (PAGE_SPEC_About, page 74) ======
   Visual styling only: layout, columns, gaps and every responsive step are
   v4 controls on page 74. Here: what no v4 prop reaches - the atomic button
   chrome on the text links (tripled for .elementor .e-button-base), the
   underline colour, and the focus rings. The map reuses .dt-map (VDP block).
   ====================================================================== */
.dt-ab-link.dt-ab-link.dt-ab-link{background:transparent;background-image:none;border:0;border-radius:0;padding:0;min-width:0;height:auto;min-height:var(--dt-control-h-sm);box-shadow:none;display:inline-flex;align-items:center;width:auto;font:var(--dt-w-medium) var(--dt-btn)/1 var(--dt-font-ui);letter-spacing:0;text-transform:none;color:var(--dt-bone);text-decoration:underline;text-decoration-color:var(--dt-bone-40);text-underline-offset:4px;transition:text-decoration-color var(--dt-motion) var(--dt-ease)}
.dt-ab-link.dt-ab-link.dt-ab-link:hover{background:transparent;color:var(--dt-bone);text-decoration-color:var(--dt-bone)}
.dt-ab-row.dt-ab-row{text-decoration:none;transition:background-color var(--dt-motion) var(--dt-ease)}
.dt-ab-link.dt-ab-link:focus-visible,.dt-ab-btn.dt-ab-btn:focus-visible{outline:var(--dt-focus-w) solid var(--dt-glacier);outline-offset:var(--dt-focus-offset)}
.dt-ab-row.dt-ab-row:focus-visible{outline:var(--dt-focus-w) solid var(--dt-glacier);outline-offset:calc(var(--dt-focus-offset) * -1)}
.dt-ab-link.dt-ab-link:focus:not(:focus-visible),.dt-ab-btn.dt-ab-btn:focus:not(:focus-visible),.dt-ab-row.dt-ab-row:focus:not(:focus-visible){outline:none}


/* ====== THEME 26 - LANDING (PAGE_SPEC_Landing, Pass 2) ======
   Page 370 (/open-shop-day/) + form F12 (369). F12 joins the shared form
   scope above as .dt-lp-form (every :is() list that carried .dt-ct-form) and
   the checkbox-GROUP rules (with .dt-svc-form). No page-only rule: links,
   buttons and focus rings are v4 styles on the page's own elements. */
/* ====== END THEME 26 - LANDING ====== */

/* ====== THEME 26 - EXPEDITION RENTALS (PAGE_SPEC_Rentals, Pass 2) ======
   Page 26 + form F11 (360). The shared form scope and the html-table scope
   above now include .dt-rent-form / .dt-rent-table. Visual styling only;
   layout is v4 controls on page 26 and F11. */
.dt-rent-h1{white-space:pre-line}
.dt-rent-table{margin-top:var(--dt-s-14);min-width:0}
.dt-rent-table.dt-rent-table .dt-table tbody th{width:30%}
/* ====== END THEME 26 - EXPEDITION RENTALS ====== */

/* ====== THEME 26 - OUTFITTING & ACCESSORIES (PAGE_SPEC_Outfitting, Pass 2) ======
   Page 24 + form F11 (368). The shared form scope above now includes .dt-oft-form.
   Visual styling only; layout is container controls on page 24 and F11. */

/* Checkbox GROUP options read as Bone; only the consent line stays muted (Service precedent). */
.dt-oft-form.dt-oft-form .dms-form .dms-form-input-checkbox:not(.dms-form-input-consent) > .dms-form-field-label{display:block;margin-bottom:var(--dt-s-3)}
.dt-oft-form.dt-oft-form .dms-form .dms-form-input-checkbox:not(.dms-form-input-consent) > div > label{align-items:center;color:var(--dms-text);line-height:1.4}
.dt-oft-form.dt-oft-form .dms-form .dms-form-input-checkbox:not(.dms-form-input-consent) input[type=checkbox]{margin:0}

/* DS-OFT-1 tile: motion and the keyboard focus ring. Hover (Slate) is the element's own
   style state; Elementor writes it as :hover,:focus, so a clicked tile is reset. */
[data-dt-tile]{transition:background-color var(--dt-motion) var(--dt-ease)}
[data-dt-tile]:focus-visible{outline:var(--dt-focus-w) solid var(--dms-primary);outline-offset:var(--dt-focus-offset)}
[data-dt-tile]:focus:not(:focus-visible):not(:hover){outline:none;background-color:var(--e-global-color-card)}
/* ====== END THEME 26 - OUTFITTING & ACCESSORIES ====== */

/* ====== THEME 26 - WOOPACK ====== (PAGE_SPEC_Woo_* §7; theme §11.2)
   Visual styling only, every colour a token. Every rule is scoped to a
   WooCommerce/PRO class so nothing reaches a Dealer.ms page (INSTALL §16). */

/* ---- Fonts for the v3 WooCommerce widgets (the typography control cannot
   hold a var() family — same RETIREMENT TRIGGER as the nav-menu rule) ---- */
.dt-font-display.dt-font-display .elementor-heading-title,
.dt-font-display.dt-font-display .product_title { font-family: var(--dt-font-display); }
.dt-woo-eyebrow.dt-woo-eyebrow .elementor-heading-title,
.dt-woo-stock.dt-woo-stock .stock,
.dt-woo-crumb.dt-woo-crumb .woocommerce-breadcrumb,
.dt-woo-meta.dt-woo-meta .product_meta { font-family: var(--dt-font-mono); }
.dt-woo-eyebrow .elementor-heading-title a { color: inherit; text-decoration: none; }
.dt-woo-eyebrow .elementor-heading-title a:hover { color: var(--dt-bone); }
.woocommerce-page .elementor-widget-woocommerce-product-price .price,
.woocommerce-page .elementor-widget-woocommerce-product-short-description,
.woocommerce-page .elementor-widget-woocommerce-product-content,
.dt-woo-archdesc.dt-woo-archdesc .term-description,
.dt-woo-archdesc.dt-woo-archdesc .page-description,
.dt-woo-products.dt-woo-products ul.products li.product,
.dt-woo-cart, .dt-woo-checkout, .dt-woo-account,
.dt-cart .elementor-menu-cart__main { font-family: var(--dt-font-ui); }
.dt-woo-archdesc p, .dt-woo-crumb .woocommerce-breadcrumb { margin: 0; }
.dt-woo-crumb .woocommerce-breadcrumb a { text-decoration: none; }
.dt-woo-crumb .woocommerce-breadcrumb a:hover { color: var(--dt-bone); }

/* ---- Buttons that no widget control reaches (empty cart, notices, forms) --- */
.woocommerce .dt-woo-notice-btn,
.woocommerce-notices-wrapper .button,
.woocommerce .woocommerce-message .button,
.woocommerce .woocommerce-info .button,
.woocommerce-cart .return-to-shop .button,
.woocommerce .woocommerce-MyAccount-content .woocommerce-info .button {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: var(--dt-control-h-sm); padding: 0 var(--dt-s-10);
  background: transparent; color: var(--dt-bone);
  border: var(--dt-hairline) solid var(--dt-bone-60); border-radius: var(--dt-radius);
  font: var(--dt-w-semi) var(--dt-btn) / 1 var(--dt-font-ui); letter-spacing: var(--dt-ls-btn); text-transform: uppercase; text-decoration: none;
  transition: background-color var(--dt-motion) var(--dt-ease);
}
.woocommerce-notices-wrapper .button:hover,
.woocommerce .woocommerce-message .button:hover,
.woocommerce .woocommerce-info .button:hover,
.woocommerce .woocommerce-MyAccount-content .woocommerce-info .button:hover { background: var(--dt-slate); color: var(--dt-bone); }
/* The empty cart's Return to shop is the screen's one decision — Glacier. */
.woocommerce-cart .return-to-shop .button { background: var(--dt-glacier); border-color: var(--dt-glacier); color: var(--dt-charcoal); min-height: var(--dt-control-h); }
.woocommerce-cart .return-to-shop .button:hover { background: var(--dt-glacier-press); border-color: var(--dt-glacier-press); color: var(--dt-charcoal); }
/* Every button in the pack: uppercase Plex Sans 600 14 at .08em (§4.2) */
.dt-woo-products ul.products li.product .button,
.dt-woo-atc .single_add_to_cart_button,
.dt-woo-cart .button, .dt-woo-cart .checkout-button,
.dt-woo-checkout .button, .dt-woo-checkout #place_order,
.dt-woo-account .button,
.dt-cart .elementor-menu-cart__footer-buttons .elementor-button {
  font-family: var(--dt-font-ui); font-weight: var(--dt-w-semi); font-size: var(--dt-btn);
  letter-spacing: var(--dt-ls-btn); text-transform: uppercase; line-height: 1;
}
.dt-woo-atc .single_add_to_cart_button { min-height: var(--dt-control-h); }
.dt-woo-cart .checkout-button, .dt-woo-checkout #place_order { min-height: var(--dt-control-h); }

/* ---- Notices (theme §11.2 item 8): Graphite, Edge, Bone icon, no green ---- */
.woocommerce .woocommerce-message, .woocommerce .woocommerce-info, .woocommerce .woocommerce-error,
.woocommerce-page .woocommerce-message, .woocommerce-page .woocommerce-info, .woocommerce-page .woocommerce-error {
  display: flex; flex-wrap: wrap; align-items: center; gap: var(--dt-s-6);
  margin: 0 0 var(--dt-s-10); padding: var(--dt-s-8) var(--dt-s-10) var(--dt-s-8) calc(var(--dt-s-10) + 28px);
  background: var(--dt-graphite); color: var(--dt-bone);
  border: var(--dt-hairline) solid var(--dt-edge); border-radius: var(--dt-radius);
  font: var(--dt-w-regular) var(--dt-ui) / 1.4 var(--dt-font-ui); list-style: none;
}
.woocommerce .woocommerce-message::before, .woocommerce .woocommerce-info::before,
.woocommerce-page .woocommerce-message::before, .woocommerce-page .woocommerce-info::before { color: var(--dt-bone); top: 50%; translate: 0 -50%; left: var(--dt-s-10); }
.woocommerce .woocommerce-error, .woocommerce-page .woocommerce-error { border-color: var(--dt-amber); flex-direction: column; align-items: flex-start; }
.woocommerce .woocommerce-error::before, .woocommerce-page .woocommerce-error::before { color: var(--dt-amber); top: var(--dt-s-8); left: var(--dt-s-10); }
.woocommerce .woocommerce-message .button, .woocommerce .woocommerce-info .button { order: 2; margin-left: auto; float: none; }
.woocommerce .woocommerce-message a:not(.button), .woocommerce .woocommerce-info a:not(.button), .woocommerce .woocommerce-error a { color: var(--dt-bone); text-decoration: underline; text-decoration-color: var(--dt-bone-40); text-underline-offset: 4px; }
.woocommerce-notices-wrapper:empty { display: none; }

/* ---- Fields (theme §10.4) where no widget control reaches -------------- */
.woocommerce form .form-row label, .woocommerce-page form .form-row label,
.dt-woo-account form label, .woocommerce .woocommerce-ordering label {
  font: var(--dt-w-medium) var(--dt-label-sm) / 1.3 var(--dt-font-mono); letter-spacing: var(--dt-ls-label); text-transform: uppercase; color: var(--dms-muted);
}
.woocommerce form .form-row .required, .woocommerce-page form .form-row .required { color: var(--dms-muted); text-decoration: none; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select,
.woocommerce .woocommerce-ordering select, .woocommerce .quantity .qty, .dt-woo-cats--select select, .woocommerce #coupon_code, .woocommerce .coupon .input-text {
  min-height: var(--dt-control-h); padding: 0 var(--dt-s-6);
  background-color: var(--dt-charcoal); color: var(--dt-bone);
  border: var(--dt-hairline) solid var(--dt-edge); border-radius: var(--dt-radius);
  font: var(--dt-w-regular) var(--dt-ui) / 1 var(--dt-font-ui); color-scheme: dark; box-shadow: none;
}
.woocommerce form .form-row textarea { padding: var(--dt-s-6); line-height: 1.5; min-height: 120px; resize: vertical; }
.woocommerce form .form-row input.input-text::placeholder, .woocommerce form .form-row textarea::placeholder { color: var(--dt-muted-70); }
.woocommerce form .form-row input.input-text:focus, .woocommerce form .form-row textarea:focus, .woocommerce form .form-row select:focus,
.woocommerce .woocommerce-ordering select:focus, .woocommerce .quantity .qty:focus, .dt-woo-cats--select select:focus {
  outline: var(--dt-focus-w) solid var(--dt-glacier); outline-offset: var(--dt-focus-offset);
}
.woocommerce form .form-row.woocommerce-invalid input.input-text,
.woocommerce form .form-row.woocommerce-invalid select,
.woocommerce form .form-row.woocommerce-invalid .select2-selection { border-color: var(--dt-amber); }
.woocommerce form .form-row.woocommerce-validated input.input-text { border-color: var(--dt-edge); }
.woocommerce .woocommerce-ordering select, .dt-woo-cats--select select { appearance: none; padding-right: 36px;
  background-image: linear-gradient(45deg, transparent 50%, var(--dms-muted) 50%), linear-gradient(135deg, var(--dms-muted) 50%, transparent 50%);
  background-position: calc(100% - 18px) 50%, calc(100% - 13px) 50%; background-size: 5px 5px; background-repeat: no-repeat; }
.woocommerce .woocommerce-ordering select { min-width: var(--dt-sort-min-w); }
.woocommerce .quantity .qty { width: 72px; padding: 0; text-align: center; font-variant-numeric: tabular-nums; }
/* Checkbox + radio: native controls, 18px, Glacier when checked via accent-color
   (components.css .dt-form precedent) — the browser draws a contrasting tick. */
.woocommerce form input[type="checkbox"], .woocommerce #payment input[type="radio"], .dt-woo-account input[type="checkbox"] {
  width: var(--dt-box); height: var(--dt-box); margin: 0 var(--dt-s-4) 0 0; vertical-align: -4px; accent-color: var(--dt-glacier); color-scheme: dark; cursor: pointer; flex: none;
}
.woocommerce form input[type="checkbox"]:focus-visible, .woocommerce #payment input[type="radio"]:focus-visible { outline: var(--dt-focus-w) solid var(--dt-glacier); outline-offset: var(--dt-focus-offset); }

/* Select2 (country / state) — the Tom Select dark-panel values (§7) */
.woocommerce .select2-container--default .select2-selection--single { height: var(--dt-control-h); background: var(--dt-charcoal); border: var(--dt-hairline) solid var(--dt-edge); border-radius: var(--dt-radius); }
.woocommerce .select2-container--default .select2-selection--single .select2-selection__rendered { line-height: var(--dt-control-h); color: var(--dt-bone); padding-left: var(--dt-s-6); font-family: var(--dt-font-ui); font-size: var(--dt-ui); }
.woocommerce .select2-container--default .select2-selection--single .select2-selection__arrow { height: var(--dt-control-h); }
.select2-container .select2-dropdown { background: var(--dt-graphite); border: var(--dt-hairline) solid var(--dt-edge); border-radius: var(--dt-radius); color: var(--dt-bone); font-family: var(--dt-font-ui); }
.select2-container .select2-search--dropdown .select2-search__field { background: var(--dt-charcoal); color: var(--dt-bone); border: var(--dt-hairline) solid var(--dt-edge); }
.select2-container .select2-results__option--highlighted[aria-selected], .select2-container .select2-results__option--highlighted[data-selected] { background: var(--dt-slate); color: var(--dt-bone); }
.select2-container .select2-results__option[aria-selected="true"], .select2-container .select2-results__option[data-selected="true"] { background: var(--dt-bone); color: var(--dt-charcoal); }

/* ---- Tables: Bulma reset first (§10.3) --------------------------------- */
.woocommerce table.shop_table, .woocommerce-page table.shop_table,
.woocommerce table.woocommerce-product-attributes { border: 0; border-collapse: collapse; background: transparent; border-radius: 0; margin: 0; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td,
.woocommerce table.woocommerce-product-attributes th, .woocommerce table.woocommerce-product-attributes td {
  background: transparent; border: 0; border-bottom: var(--dt-hairline) solid var(--dt-edge); padding: var(--dt-s-6) var(--dt-s-10); vertical-align: middle;
}
.woocommerce table.shop_table thead th { font: var(--dt-w-medium) var(--dt-label-sm) / 1.3 var(--dt-font-mono); letter-spacing: var(--dt-ls-label); text-transform: uppercase; color: var(--dms-muted); }
.woocommerce table.shop_table td, .woocommerce table.shop_table tbody th { font-size: var(--dt-ui); font-variant-numeric: tabular-nums; }
.woocommerce table.shop_table tfoot th, .woocommerce table.shop_table tbody th { font: var(--dt-w-medium) var(--dt-label) / 1.3 var(--dt-font-mono); letter-spacing: var(--dt-ls-figure); color: var(--dms-muted); text-transform: none; }
.woocommerce table.shop_table .amount, .dt-woo-cart .cart_totals .amount, .dt-woo-checkout .order-total .amount { color: var(--dt-amber); font-weight: var(--dt-w-semi); }
.woocommerce table.shop_table del .amount, .woocommerce .price del .amount { color: var(--dms-muted); font-weight: var(--dt-w-regular); }
.woocommerce table.shop_table_responsive tr td::before, .woocommerce-page table.shop_table_responsive tr td::before { font: var(--dt-w-medium) var(--dt-label-sm) / 1.3 var(--dt-font-mono); letter-spacing: var(--dt-ls-label); text-transform: uppercase; color: var(--dms-muted); }
/* Specifications (W2 §7-C): the .dt-table--dl values */
.dt-woo-specs table.woocommerce-product-attributes { width: 100%; max-width: 68ch; border-top: var(--dt-hairline) solid var(--dt-edge); }
.dt-woo-specs table.woocommerce-product-attributes th { width: 30%; height: var(--dt-row-h); font: var(--dt-w-medium) var(--dt-label) / 1.3 var(--dt-font-mono); letter-spacing: var(--dt-ls-figure); color: var(--dms-muted); text-align: left; }
.dt-woo-specs table.woocommerce-product-attributes td p { margin: 0; font-variant-numeric: tabular-nums; }
.woocommerce mark, .woocommerce-page mark { background: transparent; color: var(--dt-bone); font-weight: var(--dt-w-semi); }

/* ---- W1 archive + product card (DS-WOO-1) ------------------------------ */
.dt-woo-products.dt-woo-products ul.products li.product { display: flex; flex-direction: column; overflow: hidden; transition: border-color var(--dt-motion) var(--dt-ease); }
.dt-woo-products ul.products li.product a.woocommerce-loop-product__link { display: flex; flex-direction: column; flex: 1; text-decoration: none; }
.dt-woo-products ul.products li.product img { aspect-ratio: 4 / 3; object-fit: cover; margin: 0; border-radius: 0; background: var(--dt-graphite); }
.dt-woo-products.dt-woo-products ul.products li.product .woocommerce-loop-product__title {
  padding: var(--dt-s-8) var(--dt-s-8) 0; margin: 0; font: var(--dt-w-semi) var(--dt-title) / 1.25 var(--dt-font-ui); color: var(--dt-bone);
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.dt-woo-products.dt-woo-products ul.products li.product .price {
  margin-top: auto; padding: var(--dt-s-8) var(--dt-s-8) 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--dt-s-4);
  font: var(--dt-w-semi) var(--dt-price) / 1.1 var(--dt-font-ui); letter-spacing: -.01em; font-variant-numeric: tabular-nums;
}
.dt-woo-products ul.products li.product .price del { font-size: var(--dt-small); font-weight: var(--dt-w-regular); order: -1; }
.dt-woo-products ul.products li.product .price ins { text-decoration: none; }
.dt-woo-products.dt-woo-products ul.products li.product .button {
  margin: var(--dt-s-7) var(--dt-s-8) var(--dt-s-8); min-height: var(--dt-control-h-sm); display: inline-flex; align-items: center; justify-content: center; padding: 0 var(--dt-s-4);
}
.dt-woo-products ul.products li.product .added_to_cart { display: inline-flex; align-items: center; min-height: var(--dt-control-h-sm); margin: calc(var(--dt-s-4) * -1) var(--dt-s-8) var(--dt-s-6); padding: 0; color: var(--dt-bone); font: var(--dt-w-medium) var(--dt-btn) / 1.3 var(--dt-font-ui); text-decoration: underline; text-decoration-color: var(--dt-bone-40); text-underline-offset: 4px; }
.dt-woo-products ul.products li.product .button.loading::after { color: var(--dt-bone); }
.dt-woo-products .woocommerce-result-count { margin: 0; align-self: center; font: var(--dt-w-medium) var(--dt-label) / 1.3 var(--dt-font-mono); letter-spacing: var(--dt-ls-label); text-transform: uppercase; color: var(--dms-muted); }
.dt-woo-products .woocommerce-ordering { margin-bottom: var(--dt-s-10); }
.dt-woo-products .elementor-products-nothing-found { padding: var(--dt-s-11); background: var(--dt-graphite); border: var(--dt-hairline) solid var(--dt-edge); border-radius: var(--dt-radius); font: var(--dt-w-regular) var(--dt-ui) / 1.4 var(--dt-font-ui); }
/* Pagination — 44px squares, current Charcoal-on-Bone (§17). The widget sets colours; size is here. */
.dt-woo-products nav.woocommerce-pagination { margin-top: var(--dt-s-14); }
.dt-woo-products nav.woocommerce-pagination ul { border: 0; display: flex; justify-content: center; gap: var(--dt-s-3); }
.dt-woo-products nav.woocommerce-pagination ul li { border: 0; }
.dt-woo-products nav.woocommerce-pagination ul li a, .dt-woo-products nav.woocommerce-pagination ul li span {
  display: inline-flex; align-items: center; justify-content: center; min-width: var(--dt-control-h-sm); height: var(--dt-control-h-sm); padding: 0;
  border: var(--dt-hairline) solid var(--dt-edge); border-radius: var(--dt-radius); font: var(--dt-w-medium) var(--dt-btn) / 1 var(--dt-font-ui); font-variant-numeric: tabular-nums;
}
.dt-woo-products nav.woocommerce-pagination ul li span.current { border-color: var(--dt-bone); font-weight: var(--dt-w-semi); }
.dt-woo-products nav.woocommerce-pagination ul li a:hover { background: var(--dt-slate); color: var(--dt-bone); }
/* Category list (DS-WOO-3, .dt-navlist) */
.dt-woo-cats .widget_product_categories { background: var(--dt-graphite); border: var(--dt-hairline) solid var(--dt-edge); border-radius: var(--dt-radius); }
.dt-woo-cats .widget_product_categories > h5 { margin: 0; padding: var(--dt-s-7) var(--dt-s-10); border-bottom: var(--dt-hairline) solid var(--dt-edge); font: var(--dt-w-medium) var(--dt-label-sm) / 1.3 var(--dt-font-mono); letter-spacing: var(--dt-ls-label); text-transform: uppercase; color: var(--dms-muted); }
.dt-woo-cats ul.product-categories { list-style: none; margin: 0; padding: 0; }
.dt-woo-cats ul.product-categories li { position: relative; border-bottom: var(--dt-hairline) solid var(--dt-edge); }
.dt-woo-cats ul.product-categories li:last-child { border-bottom: 0; }
.dt-woo-cats ul.product-categories li a { display: flex; align-items: center; min-height: var(--dt-row-h); padding: 0 var(--dt-s-19) 0 var(--dt-s-10); color: var(--dt-bone); text-decoration: none; font: var(--dt-w-regular) var(--dt-ui) / 1 var(--dt-font-ui); transition: background-color var(--dt-motion) var(--dt-ease); }
.dt-woo-cats ul.product-categories li a:hover { background: var(--dt-slate); }
.dt-woo-cats ul.product-categories li .count { position: absolute; right: var(--dt-s-10); top: 50%; translate: 0 -50%; pointer-events: none; font: var(--dt-w-regular) var(--dt-label) / 1 var(--dt-font-mono); letter-spacing: var(--dt-ls-chip); color: var(--dms-muted); }
.dt-woo-cats ul.product-categories li.current-cat a { background: var(--dt-bone); color: var(--dt-charcoal); }
.dt-woo-cats ul.product-categories li.current-cat .count { color: var(--dt-charcoal); }
.dt-woo-cats--select .widget_product_categories { background: transparent; border: 0; }
.dt-woo-cats--select .widget_product_categories > h5 { padding: 0 0 var(--dt-s-3); border: 0; }
.dt-woo-cats--select select { width: 100%; }

/* ---- W2 single product --------------------------------------------------- */
.dt-woo-gallery .woocommerce-product-gallery { margin: 0; }
.dt-woo-gallery .woocommerce-product-gallery__image img { aspect-ratio: 4 / 3; object-fit: cover; }
.dt-woo-gallery .flex-control-thumbs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--dt-s-4); }
.dt-woo-gallery .flex-control-thumbs li { width: auto; float: none; padding: 0; }
.dt-woo-gallery .flex-control-thumbs img { opacity: 1; aspect-ratio: 1; object-fit: cover; transition: outline-color var(--dt-motion) var(--dt-ease); outline: var(--dt-rule) solid transparent; outline-offset: -2px; }
.dt-woo-gallery .flex-control-thumbs img:hover { outline-color: var(--dt-bone-60); }
.dt-woo-gallery .flex-control-thumbs img.flex-active { outline-color: var(--dt-glacier); }
.dt-woo-gallery .woocommerce-product-gallery__trigger { top: var(--dt-s-6); right: var(--dt-s-6); width: 36px; height: 36px; border-radius: var(--dt-radius); background: var(--dt-charcoal-80); }
.dt-woo-gallery .woocommerce-product-gallery__trigger::before { border-color: var(--dt-bone); }
.dt-woo-gallery .woocommerce-product-gallery__trigger::after { background: var(--dt-bone); }
.pswp__bg { background: var(--dt-charcoal-96); }
.dt-woo-price .price del { order: -1; }
.dt-woo-price .price { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--dt-s-5); margin: 0; font-variant-numeric: tabular-nums; }
.dt-woo-price .price del, .dt-woo-price .price del .amount { color: var(--dms-muted); font-size: var(--dt-body); font-weight: var(--dt-w-regular); }
.dt-woo-price .price ins { text-decoration: none; }
.dt-woo-stock .stock { margin: 0; letter-spacing: var(--dt-ls-label); text-transform: uppercase; color: var(--dms-muted); }
.dt-woo-atc form.cart { margin: 0; }
.dt-woo-atc form.cart:not(.variations_form), .dt-woo-atc .woocommerce-variation-add-to-cart { display: flex; gap: var(--dt-s-6); }
.dt-woo-atc .single_add_to_cart_button { flex: 1; }
.dt-woo-atc .single_add_to_cart_button.disabled, .dt-woo-atc .single_add_to_cart_button.wc-variation-selection-needed { opacity: .4; }
.dt-woo-atc table.variations { width: 100%; margin: 0 0 var(--dt-s-8); border: 0; }
.dt-woo-atc table.variations th, .dt-woo-atc table.variations td { display: block; padding: 0; border: 0; background: transparent; text-align: left; }
.dt-woo-atc table.variations label { font: var(--dt-w-medium) var(--dt-label-sm) / 1.3 var(--dt-font-mono); letter-spacing: var(--dt-ls-label); text-transform: uppercase; color: var(--dms-muted); }
.dt-woo-atc table.variations select { width: 100%; min-height: var(--dt-control-h); padding: 0 36px 0 var(--dt-s-6); margin-top: var(--dt-s-3); font: var(--dt-w-regular) var(--dt-ui) / 1 var(--dt-font-ui); color-scheme: dark; }
.dt-woo-atc .reset_variations { display: inline-flex; margin-top: var(--dt-s-4); color: var(--dt-bone); font-size: var(--dt-btn); text-decoration: underline; text-decoration-color: var(--dt-bone-40); text-underline-offset: 4px; }
.dt-woo-atc .woocommerce-variation-price .price { font: var(--dt-w-semi) var(--dt-price) / 1.1 var(--dt-font-ui); color: var(--dt-amber); }
.dt-woo-atc .woocommerce-variation-availability .stock { font: var(--dt-w-medium) var(--dt-label) / 1.3 var(--dt-font-mono); letter-spacing: var(--dt-ls-label); text-transform: uppercase; color: var(--dms-muted); }
.dt-woo-meta .product_meta { display: grid; gap: var(--dt-s-4); padding-top: var(--dt-s-8); border-top: var(--dt-hairline) solid var(--dt-edge); letter-spacing: var(--dt-ls-label); text-transform: uppercase; }
.dt-woo-meta .product_meta .detail-content, .dt-woo-meta .product_meta a { text-transform: none; letter-spacing: var(--dt-ls-figure); }
.dt-woo-content p:last-child { margin-bottom: 0; }
.dt-woo-content { max-width: 68ch; }
.woocommerce-page .elementor-widget-woocommerce-product-related .products > h2 { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }

/* ---- W3 cart ----------------------------------------------------------- */
.dt-woo-cart .product-thumbnail img { width: 64px; aspect-ratio: 4 / 3; object-fit: cover; }
.dt-woo-cart a.remove { display: inline-flex; align-items: center; justify-content: center; width: var(--dt-chip-h); height: var(--dt-chip-h); border-radius: var(--dt-radius); color: var(--dt-bone) !important; font-size: 20px; font-weight: var(--dt-w-regular); }
.dt-woo-cart a.remove:hover { background: var(--dt-slate); color: var(--dt-bone) !important; }
.dt-woo-cart .variation dt, .dt-woo-cart .variation dd { font: var(--dt-w-medium) var(--dt-label-sm) / 1.3 var(--dt-font-mono); letter-spacing: var(--dt-ls-label); text-transform: uppercase; color: var(--dms-muted); }
.dt-woo-cart .variation dd p { margin: 0; }
.woocommerce .blockUI.blockOverlay { background: var(--dt-charcoal-82) !important; opacity: 1 !important; }
.woocommerce-cart .cart-empty.woocommerce-info { margin-bottom: var(--dt-s-10); }

/* ---- W4 checkout --------------------------------------------------------- */
.woocommerce-checkout #payment, .dt-woo-checkout #payment { background: transparent; border-radius: 0; }
.dt-woo-checkout #payment ul.payment_methods { border-bottom: var(--dt-hairline) solid var(--dt-edge); padding: 0 0 var(--dt-s-6); }
.dt-woo-checkout #payment ul.payment_methods li { display: flex; flex-wrap: wrap; align-items: center; min-height: var(--dt-control-h-sm); }
.dt-woo-checkout #payment ul.payment_methods li label { font: var(--dt-w-regular) var(--dt-btn) / 1.4 var(--dt-font-ui); color: var(--dt-bone); text-transform: none; letter-spacing: 0; }
.dt-woo-checkout #payment div.payment_box { width: 100%; margin: var(--dt-s-3) 0 var(--dt-s-6); padding: var(--dt-s-6) var(--dt-s-8); background: var(--dt-charcoal); border: var(--dt-hairline) solid var(--dt-edge); border-radius: var(--dt-radius); color: var(--dms-muted); font-size: var(--dt-small); }
.dt-woo-checkout #payment div.payment_box::before { display: none; }
.dt-woo-checkout #payment div.payment_box p { margin: 0; }
.dt-woo-checkout .woocommerce-privacy-policy-text p, .dt-woo-checkout .woocommerce-terms-and-conditions-checkbox-text { font-size: var(--dt-small); }
/* Order received → the success panel (W4 §7-C) */
.woocommerce-order-received .woocommerce-notice--success.woocommerce-thankyou-order-received {
  display: block; margin: 0; padding: calc(var(--dt-s-14) + 40px + var(--dt-s-7)) var(--dt-s-14) var(--dt-s-14); position: relative;
  background: var(--dt-graphite); border: var(--dt-hairline) solid var(--dt-edge); border-bottom: 0; border-radius: var(--dt-radius) var(--dt-radius) 0 0;
  font: var(--dt-w-semi) var(--dt-h3) / 1.2 var(--dt-font-display); color: var(--dt-bone);
}
.woocommerce-order-received .woocommerce-thankyou-order-received::before {
  content: ""; position: absolute; top: var(--dt-s-14); left: var(--dt-s-14); width: 40px; height: 40px; background: var(--dms-success);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M8.5 12.5l2.5 2.5 4.5-5'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M8.5 12.5l2.5 2.5 4.5-5'/%3E%3C/svg%3E") center / contain no-repeat;
}
.woocommerce-order-received ul.woocommerce-order-overview { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--dt-hairline); margin: 0 0 var(--dt-s-14); padding: 0 var(--dt-s-14) var(--dt-s-14); list-style: none; background: var(--dt-graphite); border: var(--dt-hairline) solid var(--dt-edge); border-top: 0; border-radius: 0 0 var(--dt-radius) var(--dt-radius); }
.woocommerce-order-received ul.woocommerce-order-overview li { margin: 0; padding: var(--dt-s-7) var(--dt-s-8); border: 0; background: var(--dt-charcoal); outline: var(--dt-hairline) solid var(--dt-edge); font: var(--dt-w-medium) var(--dt-label-sm) / 1.3 var(--dt-font-mono); letter-spacing: var(--dt-ls-label); text-transform: uppercase; color: var(--dms-muted); }
.woocommerce-order-received ul.woocommerce-order-overview li strong { display: block; margin-top: var(--dt-s-3); font: var(--dt-w-regular) var(--dt-btn) / 1.3 var(--dt-font-mono); letter-spacing: var(--dt-ls-figure); text-transform: none; color: var(--dt-bone); }
.woocommerce-order-received .woocommerce-order > p:not(.woocommerce-thankyou-order-received) { color: var(--dms-muted); }
.woocommerce-order-received .woocommerce-order-details__title, .woocommerce-order-received .woocommerce-column__title { font: var(--dt-w-semi) var(--dt-h3) / 1.2 var(--dt-font-display); color: var(--dt-bone); }
.woocommerce-order-received .woocommerce-customer-details address { padding: var(--dt-s-10); border: var(--dt-hairline) solid var(--dt-edge); border-radius: var(--dt-radius); color: var(--dt-bone); font-style: normal; line-height: 1.6; }
@media (max-width: 1024px) { .woocommerce-order-received ul.woocommerce-order-overview { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767px) {
  .woocommerce-order-received ul.woocommerce-order-overview { grid-template-columns: minmax(0, 1fr); padding: 0 var(--dt-s-10) var(--dt-s-10); }
  .woocommerce-order-received .woocommerce-thankyou-order-received { padding: calc(var(--dt-s-10) + 40px + var(--dt-s-7)) var(--dt-s-10) var(--dt-s-10); }
  .woocommerce-order-received .woocommerce-thankyou-order-received::before { top: var(--dt-s-10); left: var(--dt-s-10); }
}

/* ---- W5 my account ------------------------------------------------------- */
.dt-woo-account .woocommerce-MyAccount-navigation ul { border: var(--dt-hairline) solid var(--dt-edge); border-radius: var(--dt-radius); overflow: hidden; }
.dt-woo-account .woocommerce-MyAccount-navigation li:last-child a { border-bottom: 0; }
.dt-woo-account .woocommerce-MyAccount-navigation a { font: var(--dt-w-regular) var(--dt-ui) / 1.4 var(--dt-font-ui); text-decoration: none; min-height: var(--dt-row-h); display: flex; align-items: center; }
.dt-woo-account .woocommerce-MyAccount-content p { color: var(--dt-bone); }
.dt-woo-account #customer_login .u-column1, .dt-woo-account #customer_login .u-column2,
.dt-woo-account .woocommerce-form-login, .dt-woo-account .woocommerce-ResetPassword {
  padding: var(--dt-s-14); background: var(--dt-graphite); border: var(--dt-hairline) solid var(--dt-edge); border-radius: var(--dt-radius);
}
.dt-woo-account #customer_login .woocommerce-form-login, .dt-woo-account #customer_login .woocommerce-form-register { padding: 0; margin: 0; border: 0; background: transparent; }
.dt-woo-account #customer_login h2, .dt-woo-account .woocommerce-MyAccount-content h2, .dt-woo-account .woocommerce-MyAccount-content h3 { font: var(--dt-w-semi) var(--dt-h3) / 1.2 var(--dt-font-display); color: var(--dt-bone); }
.dt-woo-account .woocommerce-form-login__rememberme { display: inline-flex; align-items: center; min-height: var(--dt-control-h-sm); font: var(--dt-w-regular) var(--dt-btn) / 1 var(--dt-font-ui); text-transform: none; letter-spacing: 0; color: var(--dt-bone); }
.dt-woo-account .woocommerce-LostPassword a, .dt-woo-account .woocommerce-privacy-policy-text a { color: var(--dt-bone); text-decoration: underline; text-decoration-color: var(--dt-bone-40); text-underline-offset: 4px; }
.dt-woo-account .woocommerce-form-register .woocommerce-form-register__submit { background: transparent !important; color: var(--dt-bone) !important; border-color: var(--dt-bone-60) !important; }
.dt-woo-account .woocommerce-form-register .woocommerce-form-register__submit:hover { background: var(--dt-slate) !important; }
.dt-woo-account .show-password-input { color: var(--dt-bone-80); }
.dt-woo-account .woocommerce-Address address { padding: var(--dt-s-10); border: var(--dt-hairline) solid var(--dt-edge); border-radius: var(--dt-radius); font-style: normal; line-height: 1.6; color: var(--dt-bone); }
.dt-woo-account .woocommerce-orders-table__cell-order-status { font-family: var(--dt-font-mono); font-size: var(--dt-label); letter-spacing: var(--dt-ls-label); text-transform: uppercase; color: var(--dms-muted); }
@media (max-width: 767px) { .dt-woo-account #customer_login .u-column1, .dt-woo-account #customer_login .u-column2 { padding: var(--dt-s-10); } }

/* ---- Header cart (PAGE_SPEC_Header decision 3; DS-WOO-4) --------------- */
.dt-cart .elementor-menu-cart__toggle .elementor-button { min-width: var(--dt-control-h-sm); min-height: var(--dt-control-h-sm); justify-content: center; }
.dt-cart .elementor-menu-cart__toggle .elementor-button:focus-visible { outline: var(--dt-focus-w) solid var(--dt-glacier); outline-offset: var(--dt-focus-offset); }
.dt-cart .elementor-menu-cart__toggle .elementor-button-icon[data-counter]::before,
.dt-cart .elementor-button-icon-qty[data-counter] { border-radius: var(--dt-radius); min-width: var(--dt-box); height: var(--dt-box); line-height: var(--dt-box); font: var(--dt-w-medium) var(--dt-label-sm) / var(--dt-box) var(--dt-font-mono); font-variant-numeric: tabular-nums; }
.dt-cart .elementor-menu-cart__container { background-color: var(--dt-charcoal-82); }
.dt-cart .elementor-menu-cart__main { box-shadow: none; }
.dt-cart .elementor-menu-cart__product-name a { font-weight: var(--dt-w-medium); text-decoration: none; }
.dt-cart .elementor-menu-cart__product-price { font-family: var(--dt-font-mono); font-size: var(--dt-label); letter-spacing: var(--dt-ls-figure); }
.dt-cart .elementor-menu-cart__product-price .amount { font-family: var(--dt-font-ui); font-weight: var(--dt-w-semi); letter-spacing: 0; }
.dt-cart .elementor-menu-cart__subtotal { font: var(--dt-w-medium) var(--dt-label-sm) / 1 var(--dt-font-mono); letter-spacing: var(--dt-ls-label); text-transform: uppercase; }
.dt-cart .elementor-menu-cart__subtotal .amount { font: var(--dt-w-semi) var(--dt-price) / 1.1 var(--dt-font-ui); letter-spacing: -.01em; text-transform: none; color: var(--dt-amber); }
.dt-cart .elementor-menu-cart__footer-buttons .elementor-button { min-height: var(--dt-control-h); display: inline-flex; align-items: center; justify-content: center; }
.dt-cart .woocommerce-mini-cart__empty-message { font: var(--dt-w-regular) var(--dt-ui) / 1.4 var(--dt-font-ui); }

/* ---- Pass 1 fixes ------------------------------------------------------ */
/* PRO's cart/checkout/account/menu-cart widgets resolve their default
   typography to Roboto (measured 2026-09-25); the family comes from the Global
   Font here, same RETIREMENT TRIGGER as the nav-menu rule. Specific mono and
   display rules below and above out-rank this by specificity. */
.dt-woo-cart.dt-woo-cart *, .dt-woo-checkout.dt-woo-checkout *, .dt-woo-account.dt-woo-account *,
.dt-cart.dt-cart .elementor-menu-cart__main *, .woocommerce-order.woocommerce-order * { font-family: var(--dt-font-ui); }
.elementor .dt-woo-cart.dt-woo-cart .cart_totals > h2,
.elementor .dt-woo-checkout.dt-woo-checkout h3,
.elementor .dt-woo-account.dt-woo-account .woocommerce-MyAccount-content h2,
.elementor .dt-woo-account.dt-woo-account #customer_login h2 { font-family: var(--dt-font-display); font-weight: var(--dt-w-semi); font-size: var(--dt-h3); line-height: 1.2; letter-spacing: -.01em; }
.elementor .dt-woo-cart.dt-woo-cart table.shop_table td .amount,
.elementor .dt-woo-cart.dt-woo-cart .cart_totals .amount,
.elementor .dt-woo-checkout.dt-woo-checkout table.shop_table td .amount { color: var(--dt-amber); font-weight: var(--dt-w-semi); }
.elementor .dt-woo-cart.dt-woo-cart .cart_totals .order-total .amount,
.elementor .dt-woo-checkout.dt-woo-checkout .order-total .amount { font-size: var(--dt-price); letter-spacing: -.01em; }
.woocommerce-shipping-destination { display: none; }
.woocommerce form .form-row label.woocommerce-form__label-for-checkbox,
.woocommerce form label.woocommerce-form__label-for-checkbox {
  display: inline-flex; align-items: flex-start; gap: var(--dt-s-4); min-height: var(--dt-control-h-sm);
  font: var(--dt-w-regular) var(--dt-btn) / 1.5 var(--dt-font-ui); letter-spacing: 0; text-transform: none; color: var(--dt-bone);
}
.woocommerce form .checkout-inline-error-message, .woocommerce form .form-row .woocommerce-error-message { margin: var(--dt-s-3) 0 0; font: var(--dt-w-regular) var(--dt-xsmall) / 1.4 var(--dt-font-ui); color: var(--dt-amber); }
.woocommerce form .form-row.woocommerce-invalid .select2-container--default .select2-selection--single,
.woocommerce form .form-row.woocommerce-invalid-required-field input[type="checkbox"] { border-color: var(--dt-amber); outline-color: var(--dt-amber); }
.woocommerce form .form-row.woocommerce-validated .select2-container--default .select2-selection--single,
.woocommerce form .form-row.woocommerce-validated select { border-color: var(--dt-edge); }
.woocommerce form .form-row.woocommerce-invalid label { color: var(--dms-muted); }
/* Notice icons: Tabler info-circle / alert-triangle as masks in the text
   colour — WooCommerce's icon font draws a box glyph on this install. */
.woocommerce .woocommerce-message::before, .woocommerce .woocommerce-info::before, .woocommerce .woocommerce-error::before,
.woocommerce-page .woocommerce-message::before, .woocommerce-page .woocommerce-info::before, .woocommerce-page .woocommerce-error::before {
  content: ""; position: absolute; width: 20px; height: 20px; background: currentColor; font-family: inherit;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 8h.01M11 12h1v4h1'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 8h.01M11 12h1v4h1'/%3E%3C/svg%3E") center / contain no-repeat;
}
.woocommerce .woocommerce-message::before, .woocommerce-page .woocommerce-message::before, .woocommerce .woocommerce-info::before, .woocommerce-page .woocommerce-info::before { color: var(--dt-bone); }
.woocommerce .woocommerce-error::before, .woocommerce-page .woocommerce-error::before {
  color: var(--dt-amber);
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 9v4M12 17h.01'/%3E%3Cpath d='M10.4 3.9L2.6 17.4A1.8 1.8 0 0 0 4.2 20h15.6a1.8 1.8 0 0 0 1.6-2.6L13.6 3.9a1.8 1.8 0 0 0-3.2 0z'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 9v4M12 17h.01'/%3E%3Cpath d='M10.4 3.9L2.6 17.4A1.8 1.8 0 0 0 4.2 20h15.6a1.8 1.8 0 0 0 1.6-2.6L13.6 3.9a1.8 1.8 0 0 0-3.2 0z'/%3E%3C/svg%3E");
}
.woocommerce .woocommerce-message, .woocommerce .woocommerce-info, .woocommerce .woocommerce-error { position: relative; }
.woocommerce .woocommerce-error li { margin: 0; }
/* Order received: WooCommerce's clearfix pseudo-elements would take grid cells. */
.woocommerce-order-received ul.woocommerce-order-overview::before, .woocommerce-order-received ul.woocommerce-order-overview::after { display: none; }
.woocommerce-order .product-quantity { color: var(--dms-muted); font-weight: var(--dt-w-regular); }
/* W2: the gallery trigger (WooCommerce 11 prints an emoji; WordPress swaps it
   for an image) — a Charcoal/80 square with a Bone zoom glyph. */
.woocommerce div.product .dt-woo-gallery div.images .woocommerce-product-gallery__trigger,
.dt-woo-gallery.dt-woo-gallery .woocommerce-product-gallery__trigger {
  display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; top: var(--dt-s-6); right: var(--dt-s-6);
  border-radius: var(--dt-radius); background: var(--dt-charcoal-80); color: var(--dt-bone); font-size: 0; text-indent: 0;
}
.dt-woo-gallery.dt-woo-gallery .woocommerce-product-gallery__trigger > span, .dt-woo-gallery.dt-woo-gallery .woocommerce-product-gallery__trigger img { display: none; }
.dt-woo-gallery.dt-woo-gallery .woocommerce-product-gallery__trigger::before {
  content: ""; position: static; width: 20px; height: 20px; border: 0; border-radius: 0; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round'%3E%3Ccircle cx='10' cy='10' r='7'/%3E%3Cpath d='M7 10h6M10 7v6M21 21l-6-6'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round'%3E%3Ccircle cx='10' cy='10' r='7'/%3E%3Cpath d='M7 10h6M10 7v6M21 21l-6-6'/%3E%3C/svg%3E") center / contain no-repeat;
}
.dt-woo-gallery.dt-woo-gallery .woocommerce-product-gallery__trigger::after { display: none; }
.dt-woo-specs.dt-woo-specs table.woocommerce-product-attributes td { font-style: normal; color: var(--dt-bone); }
.dt-woo-atc.dt-woo-atc .stock, .elementor-widget-woocommerce-product-add-to-cart .stock {
  margin: 0 0 var(--dt-s-6); font: var(--dt-w-medium) var(--dt-label) / 1.3 var(--dt-font-mono); letter-spacing: var(--dt-ls-label); text-transform: uppercase; color: var(--dms-muted);
}

/* WooCommerce's own colour variables, re-pointed at the Global Colors so
   every WooCommerce state (validated, invalid, highlight, destructive) lands
   on a theme role: red/destructive → Amber (inline error, §2.3), green →
   Edge (a valid field is not a decision and green is form-success only),
   highlight → Amber. Scoped to WooCommerce pages and widgets. */
body.woocommerce, body.woocommerce-page, body.woocommerce-cart, body.woocommerce-checkout, body.woocommerce-account, .dt-cart {
  --wc-red: var(--dt-amber); --wc-destructive: var(--dt-amber); --wc-green: var(--dt-edge); --wc-orange: var(--dt-amber); --wc-blue: var(--dt-bone);
  --wc-primary: var(--dt-glacier); --wc-primary-text: var(--dt-charcoal); --wc-secondary: var(--dt-graphite); --wc-secondary-text: var(--dt-bone);
  --wc-highlight: var(--dt-amber); --wc-highligh-text: var(--dt-charcoal); --wc-content-bg: var(--dt-charcoal); --wc-subtext: var(--dms-muted);
  --wc-form-border-color: var(--dt-edge); --wc-form-border-radius: var(--dt-radius); --wc-form-border-width: var(--dt-hairline); --wc-card-border-radius: var(--dt-radius);
}
.woocommerce div.product .elementor-widget-woocommerce-product-add-to-cart .stock,
.woocommerce div.product .elementor-widget-woocommerce-product-add-to-cart .stock.out-of-stock,
.woocommerce div.product .elementor-widget-woocommerce-product-add-to-cart .stock.in-stock { color: var(--dms-muted); font-size: var(--dt-label); }
.dt-woo-checkout.dt-woo-checkout .checkout .checkout-inline-error-message { color: var(--dt-amber); font-size: var(--dt-xsmall); margin: var(--dt-s-3) 0 0; }
.elementor .dt-woo-cart.dt-woo-cart .cart_totals .woocommerce-Price-amount, .elementor .dt-woo-cart.dt-woo-cart .cart_totals .woocommerce-Price-amount bdi { color: var(--dt-amber); }
/* ====== END THEME 26 - WOOPACK ====== */


/* ====== THEME 26 - TRADE-IN POPUP (Home region 16, popup .dt-ti-popup) ======
   Elementor Popup chrome to the design's modal: Charcoal/82 overlay, Graphite
   panel, 1px Edge, no shadow, 560 wide inside a 16px gutter, content scrolls
   inside the panel (Sell My Rig 12.3-C). The form takes the shared form scope
   via .dt-ti-form. Visual styling; the size and position are popup settings. */
/* The popup document's post-<id>.css writes the overlay colour and a box-shadow
   on #elementor-popup-modal-<id> (control defaults; colour controls cannot hold
   a var() or an alpha global). !important on those two properties only, scoped
   to this popup's class, instead of writing an install id into the Kit. */
.dt-ti-popup.dt-ti-popup{background-color:var(--dt-scrim-overlay) !important}
.dt-ti-popup.dt-ti-popup .dialog-widget-content{background:var(--dt-graphite);border:1px solid var(--dt-edge);border-radius:var(--dt-radius);box-shadow:none !important;max-width:calc(100vw - 2 * var(--dt-gutter-m))}
.dt-ti-popup.dt-ti-popup .dialog-message{max-width:100%;overflow-y:auto;overscroll-behavior:contain}
/* ====== END THEME 26 - TRADE-IN POPUP ====== */

/* F3 stock alert (Home region 14): the SECONDARY submit is Bone, not Glacier (theme §7-5). Doubled class outranks the shared :is() scope. */
.dt-alert-form.dt-alert-form .dms-form input[type=submit],.dt-alert-form.dt-alert-form .dms-form button[type=submit]{background:var(--dt-bone);border-color:var(--dt-bone);color:var(--dt-charcoal)}
.dt-alert-form.dt-alert-form .dms-form input[type=submit]:hover,.dt-alert-form.dt-alert-form .dms-form button[type=submit]:hover{background:var(--dt-bone-press);border-color:var(--dt-bone-press)}

/* ---- SAVED RIGS — dms-ext-favorites trigger, flyout and overlay (theme §7) ----
   The plugin appends these to <body>, outside every template, and favorites.css
   loads late with a white flyout (#fff, #e5e7eb, #f3f4f6, #6b7280, #9ca3af,
   #374151) plus an inline :root block setting both colour vars to #1d4ed8.
   So: unscoped, every class doubled to win on specificity, never !important.
   Recipe = the prototype's .dt-drawer: Graphite panel, 1px Edge, NO shadow,
   Charcoal/82 overlay, Bone text, Glacier primary button and focus ring.
   Visual only — the plugin's width, position and open/close stay native.
   Retirement trigger: dms-ext-favorites exposing colour controls/variables for
   the flyout surface, rules and text. */
.dms-favorites-overlay.dms-favorites-overlay{background:var(--dt-scrim-overlay)}
.dms-favorites-sidebar.dms-favorites-sidebar{background:var(--dt-graphite);color:var(--dms-text);border-left:var(--dt-hairline) solid var(--dms-border);box-shadow:none;font-family:var(--dt-font-ui)}
.dms-favorites-sidebar-header.dms-favorites-sidebar-header{border-bottom:var(--dt-hairline) solid var(--dms-border);padding:var(--dt-s-6) var(--dt-s-8) var(--dt-s-6) var(--dt-s-10)}
.dms-favorites-sidebar-title.dms-favorites-sidebar-title{font:var(--dt-w-semi) var(--dt-title)/var(--dt-title-lh) var(--dt-font-ui);color:var(--dms-text)}
.dms-favorites-sidebar-close.dms-favorites-sidebar-close{width:var(--dt-control-h-sm);height:var(--dt-control-h-sm);padding:0;border-radius:var(--dms-radius);color:var(--dms-text);background:transparent;transition:background-color var(--dt-motion) var(--dt-ease)}
.dms-favorites-sidebar-close.dms-favorites-sidebar-close:hover{background:var(--dt-slate);color:var(--dms-text)}
.dms-favorites-sidebar-empty.dms-favorites-sidebar-empty{color:var(--dms-muted);font:var(--dt-w-regular) var(--dt-ui)/var(--dt-ui-lh) var(--dt-font-ui)}
.dms-favorites-item.dms-favorites-item{padding:var(--dt-s-6) var(--dt-s-8) var(--dt-s-6) var(--dt-s-10)}
.dms-favorites-item.dms-favorites-item:not(:last-child){border-bottom:var(--dt-hairline) solid var(--dms-border)}
.dms-favorites-item-link.dms-favorites-item-link{color:var(--dms-text)}
.dms-favorites-item-title.dms-favorites-item-title{font:var(--dt-w-medium) var(--dt-ui)/var(--dt-ui-lh) var(--dt-font-ui);color:var(--dms-text);text-underline-offset:3px}
.dms-favorites-item-image.dms-favorites-item-image{border-radius:var(--dms-radius);background:var(--dt-basalt)}
.dms-favorites-item-no-image.dms-favorites-item-no-image{background:var(--dt-charcoal)}
.dms-favorites-item-remove.dms-favorites-item-remove{width:var(--dt-control-h-sm);height:var(--dt-control-h-sm);justify-content:center;padding:0;border-radius:var(--dms-radius);color:var(--dt-bone-80);background:transparent;transition:background-color var(--dt-motion) var(--dt-ease),color var(--dt-motion) var(--dt-ease)}
.dms-favorites-item-remove.dms-favorites-item-remove:hover{background:var(--dt-slate);color:var(--dms-text)}
.dms-favorites-sidebar-footer.dms-favorites-sidebar-footer{border-top:var(--dt-hairline) solid var(--dms-border);padding:var(--dt-s-8) var(--dt-s-10);background:var(--dt-graphite)}
.dms-favorites-compare-button.dms-favorites-compare-button{display:flex;align-items:center;justify-content:center;min-height:var(--dt-control-h);padding:0 var(--dt-s-10);background:var(--dms-primary);color:var(--dms-dark);border:var(--dt-hairline) solid var(--dms-primary);border-radius:var(--dms-radius);font:var(--dt-w-semi) var(--dt-btn)/1 var(--dt-font-ui);text-transform:uppercase;letter-spacing:var(--dt-ls-btn);filter:none;transition:background-color var(--dt-motion) var(--dt-ease),border-color var(--dt-motion) var(--dt-ease)}
.dms-favorites-compare-button.dms-favorites-compare-button:hover{background:var(--dms-secondary);border-color:var(--dms-secondary);color:var(--dms-dark);filter:none}
.dms-favorites-trigger.dms-favorites-trigger{background:var(--dt-bone);color:var(--dms-dark);border-radius:var(--dms-radius);box-shadow:none;min-height:var(--dt-control-h-sm);padding:0 var(--dt-s-8);font:var(--dt-w-semi) var(--dt-btn)/1 var(--dt-font-ui);transition:background-color var(--dt-motion) var(--dt-ease)}
.dms-favorites-trigger.dms-favorites-trigger:hover{background:var(--dt-bone-press);filter:none;transform:none}
.dms-favorites-trigger-count.dms-favorites-trigger-count{font:var(--dt-w-semi) var(--dt-btn)/1 var(--dt-font-ui);font-variant-numeric:tabular-nums}
.dms-favorites-sidebar-close.dms-favorites-sidebar-close:focus-visible,.dms-favorites-item-remove.dms-favorites-item-remove:focus-visible,.dms-favorites-item-link.dms-favorites-item-link:focus-visible,.dms-favorites-compare-button.dms-favorites-compare-button:focus-visible,.dms-favorites-trigger.dms-favorites-trigger:focus-visible{outline:var(--dt-focus-w) solid var(--dms-primary);outline-offset:var(--dt-focus-offset)}
.dms-favorites-sidebar-close.dms-favorites-sidebar-close:focus:not(:focus-visible),.dms-favorites-item-remove.dms-favorites-item-remove:focus:not(:focus-visible),.dms-favorites-compare-button.dms-favorites-compare-button:focus:not(:focus-visible),.dms-favorites-trigger.dms-favorites-trigger:focus:not(:focus-visible){outline:none}
.dms-favorites-sidebar-body.dms-favorites-sidebar-body{scrollbar-color:var(--dms-border) var(--dt-graphite)}

/* Button law sweep (VDP patch 2026-10-07): the payment calculator's Calculate
   button was the one kit button still in sentence case with no tracking. */
.dt-calc.dt-calc .dms-button.calculate{min-width:150px;letter-spacing:var(--dt-ls-btn);text-transform:uppercase}

:is(.dt-vdp-root,.dt-fin-form,.dt-svc-form,.dt-oft-form,.dt-ct-form,.dt-lp-form,.dt-rent-form,.dt-ti-form,.dt-alert-form,.dms-modal) .dms-form input[type=submit]{letter-spacing:var(--dt-ls-btn);text-transform:uppercase}

/* ---- VDP Pass 8 (2026-10-07) ----
   Figures plates: the plugin's vdp.css pads every info cell 5px at (0,3,0) and
   loads after the kit, so the doubled-class reset above tied and lost. One more
   class wins it. Covers every .dt-figures and .dt-figstrip on the site. */
.dt-figstrip.dt-figstrip .dms-listing-info-row .dms-listing-info-td,.dt-figures.dt-figures .dms-listing-info-row .dms-listing-info-td{padding:0}
.dt-figures.dt-figures .dms-listing-info-value{letter-spacing:var(--dt-ls-tight)}
/* Saved state: the drawn dt-icon-saved is a filled bookmark; the share/save
   rule strokes every svg, so the active icon gets its fill back. */
.dt-vdp-save.dt-vdp-save .dms-favorites-icon--active svg{fill:currentColor}
/* Accordion chevrons: the drawn icons are 1.5-stroke paths. Elementor paints the
   icon with fill:var(--n-accordion-icon-*-color) at up to (0,5,2) on the open
   item, which would fill the open chevron path. Fill is cleared at (0,6,2), and the open/hover strokes sit higher still; the
   stroke takes the same native colour variables, so the widget's own colour
   controls still drive it. */
.dt-vdp-more.dt-vdp-more.dt-vdp-more.dt-vdp-more .e-n-accordion-item .e-n-accordion-item-title-icon span>svg{fill:none;stroke:var(--n-accordion-icon-normal-color)}
.dt-vdp-more.dt-vdp-more.dt-vdp-more.dt-vdp-more .e-n-accordion-item[open]>.e-n-accordion-item-title .e-n-accordion-item-title-icon span>svg{stroke:var(--n-accordion-icon-active-color)}
.dt-vdp-more.dt-vdp-more.dt-vdp-more.dt-vdp-more .e-n-accordion-item:not([open]):hover>.e-n-accordion-item-title .e-n-accordion-item-title-icon span>svg{stroke:var(--n-accordion-icon-hover-color)}/* End custom CSS */