/* veltrix_custom.css - Veltrix Instruments brand sheet (demo-local, foundry-base).
 * Loaded AFTER default_custom.css by VeltrixHeadInclude.cshtml, which renders the
 * theme's DefaultHeadInclude.cshtml first and then registers this sheet.
 * Token table and contrast ratios: generated/evidence-20260913/brand-tokens.md.
 * Selectors use html:root so these beat the render-critical inline copy in the
 * theme head include regardless of source order. */
[data-veltrix-block="1"] { --veltrix-block: 1; }

/* 1. theme-default neutral tokens re-pointed to the Veltrix graphite ramp */
html:root {
  --td-ink:          #14181D;
  --td-ink-soft:     #232A31;
  --td-slate:        #4A5561;
  --td-slate-mid:    #5B6773;
  --td-slate-light:  #C3CAD2;
  --td-grey-light:   #F7F8FA;
  --td-hairline:     #E3E7EB;
  --td-white:        #FFFFFF;
  --td-accent:       #765506;
  --td-accent-soft:  rgba(184, 134, 11, .10);
  --td-radius:       4px;
  --td-radius-sm:    2px;
  --veltrix-accent:        #B8860B;
  --veltrix-accent-hover:  #C8961A;
  --veltrix-accent-ink:    #14181D;
  --veltrix-accent-text:   #765506;
}

/* 2. The edge motif: a thin precision tick scale (1440x75 viewBox, baseline at 68,
 * minor ticks every 24, majors every 120, index every 720). Shape only; fill and
 * height stay on the theme's --td-edge-fill / --td-edge-h. */
html:root {
  --td-edge-mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%201440%2075'%20preserveAspectRatio='none'%3E%3Cpath%20d='M0%2C75%20L0%2C68%20L0%2C68%20L0%2C38%20L3%2C38%20L3%2C68%20L22.5%2C68%20L22.5%2C60%20L25.5%2C60%20L25.5%2C68%20L46.5%2C68%20L46.5%2C60%20L49.5%2C60%20L49.5%2C68%20L70.5%2C68%20L70.5%2C60%20L73.5%2C60%20L73.5%2C68%20L94.5%2C68%20L94.5%2C60%20L97.5%2C60%20L97.5%2C68%20L118.5%2C68%20L118.5%2C50%20L121.5%2C50%20L121.5%2C68%20L142.5%2C68%20L142.5%2C60%20L145.5%2C60%20L145.5%2C68%20L166.5%2C68%20L166.5%2C60%20L169.5%2C60%20L169.5%2C68%20L190.5%2C68%20L190.5%2C60%20L193.5%2C60%20L193.5%2C68%20L214.5%2C68%20L214.5%2C60%20L217.5%2C60%20L217.5%2C68%20L238.5%2C68%20L238.5%2C50%20L241.5%2C50%20L241.5%2C68%20L262.5%2C68%20L262.5%2C60%20L265.5%2C60%20L265.5%2C68%20L286.5%2C68%20L286.5%2C60%20L289.5%2C60%20L289.5%2C68%20L310.5%2C68%20L310.5%2C60%20L313.5%2C60%20L313.5%2C68%20L334.5%2C68%20L334.5%2C60%20L337.5%2C60%20L337.5%2C68%20L358.5%2C68%20L358.5%2C50%20L361.5%2C50%20L361.5%2C68%20L382.5%2C68%20L382.5%2C60%20L385.5%2C60%20L385.5%2C68%20L406.5%2C68%20L406.5%2C60%20L409.5%2C60%20L409.5%2C68%20L430.5%2C68%20L430.5%2C60%20L433.5%2C60%20L433.5%2C68%20L454.5%2C68%20L454.5%2C60%20L457.5%2C60%20L457.5%2C68%20L478.5%2C68%20L478.5%2C50%20L481.5%2C50%20L481.5%2C68%20L502.5%2C68%20L502.5%2C60%20L505.5%2C60%20L505.5%2C68%20L526.5%2C68%20L526.5%2C60%20L529.5%2C60%20L529.5%2C68%20L550.5%2C68%20L550.5%2C60%20L553.5%2C60%20L553.5%2C68%20L574.5%2C68%20L574.5%2C60%20L577.5%2C60%20L577.5%2C68%20L598.5%2C68%20L598.5%2C50%20L601.5%2C50%20L601.5%2C68%20L622.5%2C68%20L622.5%2C60%20L625.5%2C60%20L625.5%2C68%20L646.5%2C68%20L646.5%2C60%20L649.5%2C60%20L649.5%2C68%20L670.5%2C68%20L670.5%2C60%20L673.5%2C60%20L673.5%2C68%20L694.5%2C68%20L694.5%2C60%20L697.5%2C60%20L697.5%2C68%20L718.5%2C68%20L718.5%2C38%20L721.5%2C38%20L721.5%2C68%20L742.5%2C68%20L742.5%2C60%20L745.5%2C60%20L745.5%2C68%20L766.5%2C68%20L766.5%2C60%20L769.5%2C60%20L769.5%2C68%20L790.5%2C68%20L790.5%2C60%20L793.5%2C60%20L793.5%2C68%20L814.5%2C68%20L814.5%2C60%20L817.5%2C60%20L817.5%2C68%20L838.5%2C68%20L838.5%2C50%20L841.5%2C50%20L841.5%2C68%20L862.5%2C68%20L862.5%2C60%20L865.5%2C60%20L865.5%2C68%20L886.5%2C68%20L886.5%2C60%20L889.5%2C60%20L889.5%2C68%20L910.5%2C68%20L910.5%2C60%20L913.5%2C60%20L913.5%2C68%20L934.5%2C68%20L934.5%2C60%20L937.5%2C60%20L937.5%2C68%20L958.5%2C68%20L958.5%2C50%20L961.5%2C50%20L961.5%2C68%20L982.5%2C68%20L982.5%2C60%20L985.5%2C60%20L985.5%2C68%20L1006.5%2C68%20L1006.5%2C60%20L1009.5%2C60%20L1009.5%2C68%20L1030.5%2C68%20L1030.5%2C60%20L1033.5%2C60%20L1033.5%2C68%20L1054.5%2C68%20L1054.5%2C60%20L1057.5%2C60%20L1057.5%2C68%20L1078.5%2C68%20L1078.5%2C50%20L1081.5%2C50%20L1081.5%2C68%20L1102.5%2C68%20L1102.5%2C60%20L1105.5%2C60%20L1105.5%2C68%20L1126.5%2C68%20L1126.5%2C60%20L1129.5%2C60%20L1129.5%2C68%20L1150.5%2C68%20L1150.5%2C60%20L1153.5%2C60%20L1153.5%2C68%20L1174.5%2C68%20L1174.5%2C60%20L1177.5%2C60%20L1177.5%2C68%20L1198.5%2C68%20L1198.5%2C50%20L1201.5%2C50%20L1201.5%2C68%20L1222.5%2C68%20L1222.5%2C60%20L1225.5%2C60%20L1225.5%2C68%20L1246.5%2C68%20L1246.5%2C60%20L1249.5%2C60%20L1249.5%2C68%20L1270.5%2C68%20L1270.5%2C60%20L1273.5%2C60%20L1273.5%2C68%20L1294.5%2C68%20L1294.5%2C60%20L1297.5%2C60%20L1297.5%2C68%20L1318.5%2C68%20L1318.5%2C50%20L1321.5%2C50%20L1321.5%2C68%20L1342.5%2C68%20L1342.5%2C60%20L1345.5%2C60%20L1345.5%2C68%20L1366.5%2C68%20L1366.5%2C60%20L1369.5%2C60%20L1369.5%2C68%20L1390.5%2C68%20L1390.5%2C60%20L1393.5%2C60%20L1393.5%2C68%20L1414.5%2C68%20L1414.5%2C60%20L1417.5%2C60%20L1417.5%2C68%20L1437%2C68%20L1437%2C38%20L1440%2C38%20L1440%2C68%20L1440%2C68%20L1440%2C75%20Z'/%3E%3C/svg%3E");
}

/* 3. Button label contrast. The ColorSchemes generator emits
 * --dw-color-button-primary-contrast: #fff for #B8860B (3.25:1, fails AA).
 * The ink label measures 5.48:1. Declared per scheme that carries an amber primary. */
:is(.dw-colorscheme-light, [data-dw-colorscheme="light"],
    .dw-colorscheme-lightgrey1, [data-dw-colorscheme="lightgrey1"],
    .dw-colorscheme-dark, [data-dw-colorscheme="dark"],
    .dw-colorscheme-darksubtle, [data-dw-colorscheme="darksubtle"],
    .dw-colorscheme-secondary, [data-dw-colorscheme="secondary"])[class][class],
:is(.dw-colorscheme-light, [data-dw-colorscheme="light"],
    .dw-colorscheme-lightgrey1, [data-dw-colorscheme="lightgrey1"],
    .dw-colorscheme-dark, [data-dw-colorscheme="dark"],
    .dw-colorscheme-darksubtle, [data-dw-colorscheme="darksubtle"],
    .dw-colorscheme-secondary, [data-dw-colorscheme="secondary"]):not([class]) {
  --dw-color-button-primary-contrast: #14181D;
}

/* 4. Brand accent slot (theme convention: --dw-color-accent + -rgb + -contrast).
 * --dw-color-accent itself comes from the ColorSchemes custom colours. */
:is(.dw-colorscheme-light, [data-dw-colorscheme="light"], .dw-colorscheme-lightgrey1, [data-dw-colorscheme="lightgrey1"], .dw-colorscheme-lightgrey2, [data-dw-colorscheme="lightgrey2"]) {
  --dw-color-accent-rgb: 118, 85, 6;
  --dw-color-accent-contrast: #FFFFFF;
}
:is(.dw-colorscheme-dark, [data-dw-colorscheme="dark"], .dw-colorscheme-darksubtle, [data-dw-colorscheme="darksubtle"], .dw-colorscheme-secondary, [data-dw-colorscheme="secondary"]) {
  --dw-color-accent-rgb: 200, 150, 26;
  --dw-color-accent-contrast: #14181D;
}
:is(.dw-colorscheme-primary, [data-dw-colorscheme="primary"]) {
  --dw-color-accent-rgb: 20, 24, 29;
  --dw-color-accent-contrast: #FFFFFF;
}

/* 5. Tabular numerals for spec and price data */
table, .table, dl, [class*="price"], [data-price], .spec, [class*="spec"], .td-price-lock,
[data-swift-product-price], .product-price, .dw-mod-price {
  font-variant-numeric: tabular-nums lining-nums;
}

/* 6. Wordmark sizing (height-driven; the logo paragraph emits no inline width because
 * LogoWidth is empty, and the SVG intrinsic 232x40 is scaled here) */
[data-dw-itemtype="swift-v2_logo"] figure.icon-auto { width: auto; height: auto; }
[data-dw-itemtype="swift-v2_logo"] figure.icon-auto svg { display: block; height: 28px; width: auto; max-width: 100%; }
[data-swift-page-footer] [data-dw-itemtype="swift-v2_logo"] figure.icon-auto svg { height: 32px; }
@media (max-width: 575.98px) { [data-swift-page-header] [data-dw-itemtype="swift-v2_logo"] figure.icon-auto svg { height: 22px; } }

/* 7. Eyebrow on dark hero reads in the dark-scheme accent */
[data-dw-colorscheme="dark"] .dw-eyebrow { color: var(--dw-color-accent, #C8961A); }

/* 8. Footer crest fill. The theme's --td-edge-fill defaults to white; the footer's
 * ::before paints ABOVE the footer into white main, so a white tick scale is invisible
 * there (measured 2026-09-13: top -72px, fill #FFF over #FFF). The tick scale rises
 * from the graphite footer instead: fill = the footer ground. Clearance rules untouched. */
footer.td-edge-top, [data-swift-page-footer].td-edge-top { --td-edge-fill: #14181D; }

/* 9. In-page bottom edges. Both owners are transparent sections whose reserved end
 * padding is white, so the default white fill is invisible (measured 2026-09-13).
 * A slate-light tick scale reads as a precision ruler between bands; decorative,
 * non-text, so no contrast floor applies. */
main .td-edge-bottom { --td-edge-fill: #C3CAD2; }
