/*
 * The four faces production declares (docs/performance.md §3) and the element baseline that left
 * legacy.css, now deleted. Loaded before hubspot.css and the route sheet; owned from here on.
 */

@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/montserrat-regular.woff2') format('woff2');
}

@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/montserrat-bold.woff2') format('woff2');
}

@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/opensans-regular.woff2') format('woff2');
}

@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/opensans-bold.woff2') format('woff2');
}

html {
  line-height: 1.15;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}
body {
  margin: 0;
}
article,
aside,
footer,
header,
nav,
section {
  display: block;
}
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}
figcaption,
figure,
main {
  display: block;
}
figure {
  margin: 1em 40px;
}
hr {
  box-sizing: content-box;
  height: 0;
  overflow: visible;
}
pre {
  font-family: monospace, monospace;
  font-size: 1em;
}
a {
  background-color: transparent;
  -webkit-text-decoration-skip: objects;
}
abbr[title] {
  border-bottom: none;
  text-decoration: underline;
  -webkit-text-decoration: underline dotted;
  text-decoration: underline dotted;
}
b,
strong {
  font-weight: inherit;
}
b,
strong {
  font-weight: bolder;
}
code,
kbd,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}
dfn {
  font-style: italic;
}
mark {
  background-color: #ff0;
  color: #000;
}
small {
  font-size: 80%;
}
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sub {
  bottom: -0.25em;
}
sup {
  top: -0.5em;
}
audio,
video {
  display: inline-block;
}
audio:not([controls]) {
  display: none;
  height: 0;
}
img {
  border-style: none;
}
svg:not(:root) {
  overflow: hidden;
}
button,
input,
optgroup,
select,
textarea {
  font-family: sans-serif;
  font-size: 100%;
  line-height: 1.15;
  margin: 0;
}
button,
input {
  overflow: visible;
}
button,
select {
  text-transform: none;
}
[type='reset'],
[type='submit'],
button,
html [type='button'] {
  -webkit-appearance: button;
}
[type='button']::-moz-focus-inner,
[type='reset']::-moz-focus-inner,
[type='submit']::-moz-focus-inner,
button::-moz-focus-inner {
  border-style: none;
  padding: 0;
}
[type='button']:-moz-focusring,
[type='reset']:-moz-focusring,
[type='submit']:-moz-focusring,
button:-moz-focusring {
  outline: 1px dotted ButtonText;
}
fieldset {
  padding: 0.35em 0.75em 0.625em;
}
legend {
  box-sizing: border-box;
  color: inherit;
  display: table;
  max-width: 100%;
  padding: 0;
  white-space: normal;
}
progress {
  display: inline-block;
  vertical-align: baseline;
}
textarea {
  overflow: auto;
}
[type='checkbox'],
[type='radio'] {
  box-sizing: border-box;
  padding: 0;
}
[type='number']::-webkit-inner-spin-button,
[type='number']::-webkit-outer-spin-button {
  height: auto;
}
[type='search'] {
  -webkit-appearance: textfield;
  outline-offset: -2px;
}
[type='search']::-webkit-search-cancel-button,
[type='search']::-webkit-search-decoration {
  -webkit-appearance: none;
}
::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit;
}
details,
menu {
  display: block;
}
summary {
  display: list-item;
}
canvas {
  display: inline-block;
}
[hidden],
template {
  display: none;
}
body,
html {
  -webkit-backface-visibility: hidden;
  -moz-backface-visibility: hidden;
  -ms-backface-visibility: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  background-color: #fff;
  color: #28292b;
  font-family: Montserrat, sans-serif;
  font-weight: 400;
  font-size: 100%;
  line-height: 1.5;
  height: 100%;
  width: 100%;
}
body {
  height: auto;
  font-size: 112.5%;
  font-size: 1.125rem;
  line-height: 1.5;
}
@media (pointer: coarse) {
  body {
    overflow-y: scroll;
    -webkit-overflow-scrolling: touch;
  }
}
* {
  box-sizing: border-box;
}
@media (pointer: coarse) {
  * {
    -webkit-text-size-adjust: none;
  }
}
a {
  color: #28292b;
  text-decoration: none;
  transition: 0.3s ease-in-out;
  outline: 0;
}
svg {
  display: block;
  margin-left: auto;
  margin-right: auto;
}
svg path {
  transition: 0.3s ease-in-out;
}
svg:not(:root) {
  overflow: visible;
}
::-moz-selection {
  color: #fff;
  background-color: #c1272d;
}
::selection {
  color: #fff;
  background-color: #c1272d;
}
input[type='email'],
input[type='search'],
input[type='tel'],
input[type='text'],
input[type='url'],
textarea {
  appearance: none;
  -moz-appearance: none;
  -webkit-appearance: none;
  border-radius: 0;
  -moz-border-radius: 0;
  -webkit-border-radius: 0;
  border: none;
  outline: 0;
  background: 0 0;
}
button,
input[type='reset'],
input[type='submit'] {
  background: 0 0;
  color: inherit;
  border: none;
  padding: 0;
  font: inherit;
  cursor: pointer;
  outline: inherit;
}
input:-webkit-autofill {
  background: 0 0;
}
textarea:-webkit-autofill {
  background: 0 0;
}
select:-webkit-autofill {
  background: 0 0;
}
input[type='email'] {
  outline: 0;
  box-shadow: none;
}
input::-ms-clear {
  display: none;
}
input::-ms-clear {
  display: none;
}
input:-moz-ui-invalid,
input:invalid {
  border-color: transparent;
  outline: 0;
  box-shadow: none;
  -moz-box-shadow: none;
  -webkit-box-shadow: none;
}
:root {
  --cc-bg: #fff;
  --cc-text: #2d4156;
  --cc-border-radius: 0.35em;
  --cc-btn-primary-bg: #2d4156;
  --cc-btn-primary-text: var(--cc-bg);
  --cc-btn-primary-hover-bg: #1d2e38;
  --cc-btn-secondary-bg: #eaeff2;
  --cc-btn-secondary-text: var(--cc-text);
  --cc-btn-secondary-hover-bg: #d8e0e6;
  --cc-btn-border-radius: 4px;
  --cc-toggle-bg-off: #919ea6;
  --cc-toggle-bg-on: var(--cc-btn-primary-bg);
  --cc-toggle-bg-readonly: #d5dee2;
  --cc-toggle-knob-bg: #fff;
  --cc-toggle-knob-icon-color: #ecf2fa;
  --cc-block-text: var(--cc-text);
  --cc-cookie-category-block-bg: #f0f4f7;
  --cc-cookie-category-block-bg-hover: #e9eff4;
  --cc-section-border: #f1f3f5;
  --cc-cookie-table-border: #e9edf2;
  --cc-overlay-bg: rgba(4, 6, 8, 0.85);
  --cc-webkit-scrollbar-bg: #cfd5db;
  --cc-webkit-scrollbar-bg-hover: #9199a0;
}

/* Accessibility addition (decision D12): the legacy site has 7 `outline: none` rules against 11
   `:focus` rules, so no visible keyboard focus anywhere. A deliberate visible change; last in this
   sheet so it wins its ties. */
:focus-visible {
  outline: 3px solid #1757b8;
  outline-offset: 3px;
}

/* The distance from the viewport edge to the slider container's content box, for the rails that
   have to paint past it.

   The frozen sheet drops Slick's `.slick-list { overflow: hidden }` on six sliders — always for
   the logo strip and the portfolio slider, above a breakpoint of its own for the other four — so
   their slides run on out to `.wrapper` and it is the page shell that clips them. A scroll
   container clips at its own padding box and nothing widens only the clip, so a rail matching
   that becomes as wide as the viewport and hands this value straight back as padding: the slides
   stay where the container had them and only the clip edge moves.

   Not `calc(50vw - 50%)`, which looks like it says the same thing. A percentage resolves against
   the containing block for `padding` and against the scrollport for `scroll-padding`, so that
   pair computed 450px and -30px on the same element and every slide snapped a full gutter left.
   These are the sheet's own container geometry instead — its padding while the container is
   fluid, plus half the overhang once a max-width caps it — read off the deployed page at 24
   widths from 320 to 3440, where every step below matches to the pixel. */
:root {
  --slider-gutter: 15px;
}

@media (min-width: 480px) {
  :root {
    --slider-gutter: 20px;
  }
}

@media (min-width: 768px) {
  :root {
    --slider-gutter: 25px;
  }
}

/* Capped at 1094px wide here, so the gutter grows with the viewport rather than staying at 35. */
@media (min-width: 1024px) {
  :root {
    --slider-gutter: calc(35px + max(0px, (100vw - 1094px) / 2));
  }
}

@media (min-width: 1200px) {
  :root {
    --slider-gutter: 45px;
  }
}

/* And capped again at 1720px, whose content box is the 1600px the wide layouts centre on. */
@media (min-width: 1680px) {
  :root {
    --slider-gutter: max(60px, (100vw - 1600px) / 2);
  }
}

/* Fill tones: the values behind `lib/content/restyle.ts` TONE_HEX, which a test keeps equal. */
:root {
  --tone-white: #ffffff;
  --tone-pearl: #f8f8f8;
  --tone-mist: #f9f9f9;
  --tone-smoke: #f6f6f6;
  --tone-fog: #f3f3f3;
  --tone-black: #000000;
  --tone-onyx: #0a0a0a;
  --tone-coal: #111111;
  --tone-ink: #1a1a1a;
  --tone-graphite: #2b303c;
  --tone-navy: #010f29;
  --tone-slate: #4f5f7c;
  --tone-azure: #4a89f1;
  --tone-red: #c1272d;
}

/* The theme's image baseline, moved from legacy.css whole. */
img {
  display: block;
  height: auto;
  margin: 0 auto;
  max-height: 100%;
  max-width: 100%;
  position: relative;
  width: auto;
}

/* Form-control autofill and validity resets from legacy.css. No other rule sets these properties on
   a form control, so they need no `!important`. */
input:-webkit-autofill,
input:-webkit-autofill:focus input:-webkit-autofill,
input:-webkit-autofill:hover,
select:-webkit-autofill,
select:-webkit-autofill:focus,
select:-webkit-autofill:hover,
textarea:-webkit-autofill,
textarea:-webkit-autofill:hover textarea:-webkit-autofill:focus {
  box-shadow: none;
  -webkit-text-fill-color: #4d4e50;
  caret-color: #4d4e50;
  -webkit-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
}
input:invalid,
input:required {
  box-shadow: none;
}
