/*
  Syntony type and restraint layer. Loaded last on every page.
  One family (Syntony Sans, with a Display cut for headlines), one accent,
  no mono labels, no serif italics, no stock photo heroes.
  Fonts: /assets/fonts/syntony-sans/ (SIL Open Font License 1.1, see LICENSE.txt there).
*/
@font-face { font-family: 'Syntony Sans'; src: url('/assets/fonts/syntony-sans/syntony-sans-regular.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Syntony Sans'; src: url('/assets/fonts/syntony-sans/syntony-sans-medium.woff2') format('woff2'); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: 'Syntony Sans'; src: url('/assets/fonts/syntony-sans/syntony-sans-semibold.woff2') format('woff2'); font-weight: 600 900; font-style: normal; font-display: swap; }
@font-face { font-family: 'Syntony Sans'; src: url('/assets/fonts/syntony-sans/syntony-sans-italic.woff2') format('woff2'); font-weight: 400 900; font-style: italic; font-display: swap; }
@font-face { font-family: 'Syntony Sans Display'; src: url('/assets/fonts/syntony-sans/syntony-sans-display-medium.woff2') format('woff2'); font-weight: 300 500; font-style: normal; font-display: swap; }
@font-face { font-family: 'Syntony Sans Display'; src: url('/assets/fonts/syntony-sans/syntony-sans-display-semibold.woff2') format('woff2'); font-weight: 600 900; font-style: normal; font-display: swap; }

:root, html body {
  --syn-text: 'Syntony Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --syn-display: 'Syntony Sans Display', 'Syntony Sans', system-ui, sans-serif;
  --syn-code: ui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace;
  /* Every font variable the older stylesheets use now points at the one family. */
  --sy-display: var(--syn-display); --sy-body: var(--syn-text); --sy-serif: var(--syn-text); --sy-mono: var(--syn-text);
  --font-display: var(--syn-display); --font-body: var(--syn-text); --font-sans: var(--syn-text); --font-mono: var(--syn-text);
  --sr-sans: var(--syn-text); --sr-serif: var(--syn-text); --sr-mono: var(--syn-text);
  --ap-sans: var(--syn-text); --ap-text: var(--syn-text); --ap-mono: var(--syn-text);
  --eg-sans: var(--syn-text); --eg-serif: var(--syn-text); --eg-mono: var(--syn-text);
  --dc-ui: var(--syn-text); --dc-text: var(--syn-text); --dc-mono: var(--syn-code);
  --ft-sans: var(--syn-text); --fp-mono: var(--syn-text);
  --serif: var(--syn-text); --sans: var(--syn-text); --mono: var(--syn-text);
  /* One accent: the logo blue. Red stays only where a visual marks a failure. */
  --syn-accent: #264ded; --syn-accent-text: #6b8aff;
}

html body, html body :where(*:not(code, pre, kbd, samp, code *, pre *, kbd *, samp *)) { font-family: var(--syn-text) !important; }
html body :where(code, pre, kbd, samp, code *, pre *, kbd *, samp *) { font-family: var(--syn-code) !important; }
html body { font-feature-settings: 'kern' 1; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }

/* Headlines: Display cut, no serif second line, no italics. */
html body :is(h1, h2, .sy-h2, .sy-display, .hx h1, .tz-copy h2, .tz-hero h1) { font-family: var(--syn-display) !important; font-weight: 500 !important; letter-spacing: -0.012em !important; }
html body :is(h1, h2) :is(span, em, i) { font-family: var(--syn-display) !important; font-style: normal !important; letter-spacing: inherit !important; }
html body :is(h3, h4) { font-family: var(--syn-text) !important; font-weight: 500 !important; letter-spacing: -0.005em !important; }
html body em, html body i { font-style: italic; }

/* Section labels that sit directly above a heading are removed. */
html body :is(.sy-eyebrow, .eyebrow, .pr-eyebrow, .hu-kicker, .dp-eyebrow, .ap-eyebrow, .section-kicker, .section-num, .cb-eyebrow, .kicker, .contact-eyebrow, .team-eyebrow, .team-proof-eyebrow, .hu-overline, .training-speaker-kicker, .sy-breadcrumb):has(+ :is(h1, h2, h3)) { display: none !important; }

/* Any label that remains reads as plain small text, not tracked capitals. */
html body :is(.sy-eyebrow, .eyebrow, .pr-eyebrow, .hu-kicker, .dp-eyebrow, .ap-eyebrow, .section-kicker, .section-num, .cb-eyebrow, .kicker, .contact-eyebrow, .team-eyebrow, .team-proof-eyebrow, .hu-overline, .training-speaker-kicker, .sy-breadcrumb, .sy-product-kind, .sy-panel-label, .sy-tag, .tz-tag, .tz-num, .tz-kind, .sy-index-meta, .sy-kv dt, .rt-k, .sy-footer h2, .sy-footer-line, .sy-stats-note) {
  font-family: var(--syn-text) !important; text-transform: none !important; letter-spacing: 0 !important; font-weight: 500 !important; font-size: 13px !important;
}
html body :is(.sy-eyebrow, .eyebrow, .pr-eyebrow, .sy-product-kind, .tz-kind, .tz-num, .sy-kv dt, .sy-panel-label, .sy-footer h2) { color: var(--sy-gray, #a3a3ab) !important; }
html body .sy-eyebrow :is(b, strong) { color: inherit !important; }

/* No stock photography behind page titles. */
html body .sy-photo::before, html body .sy-photo::after { display: none !important; background: none !important; }
html body .sy-photo-ui { min-height: 0 !important; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) !important; }
html body .sy-photo-ui > * { max-width: none !important; }
html body .sy-photo :is(p, .sy-lead, .lead) { color: var(--sy-gray, #a3a3ab) !important; }
@media (max-width: 820px) { html body .sy-photo-ui { grid-template-columns: minmax(0, 1fr) !important; } }

/* One accent colour in the interface chrome. */
html body .sy-tag-red { color: var(--syn-accent-text) !important; border-color: rgba(38, 77, 237, .45) !important; background: rgba(38, 77, 237, .10) !important; }
html body .sy-tag-red i { background: var(--syn-accent) !important; }

html body :is(h1, h2, h3) { text-transform: none !important; }
html body :is(.rt-more, .buyer-route-go, .sy-link)::after { content: none !important; }

/* No decorative guide rails down the page edges. */
html body::before, html body::after { display: none !important; }

/* Headlines stay one colour; no accent-coloured second phrase. */
html body :is(h1, h2) :is(em, i, strong) { color: inherit !important; }

/* Menus: single columns, no captions. Footer: one row of links. */
html body .sy-nav .sy-panel small { display: none !important; }
html body .sy-nav .sy-panel { min-width: 240px; }
html body .sy-nav .sy-panel a { font-size: 15px !important; font-weight: 400 !important; padding-top: 9px !important; padding-bottom: 9px !important; white-space: nowrap; }
html body .sy-footer-quiet { display: flex !important; flex-wrap: wrap; gap: 12px 28px; grid-template-columns: none !important; }
html body .sy-footer-quiet a { font-size: 15px; color: var(--sy-gray, #a3a3ab); text-decoration: none; }
html body .sy-footer-quiet a:hover { color: var(--sy-white, #fcfcfe); }

/* No scroll-triggered reveals or decorative grid backgrounds. */
html body [data-reveal], html body [data-stagger] > * { opacity: 1 !important; transform: none !important; transition: none !important; animation: none !important; }
html body .pr-grid-bg { background-image: none !important; }

/* Page heads sized to their content, not to a missing photo. */
html body .sy-photo { min-height: 0 !important; }
html body .sector-intro { padding-top: clamp(72px, 9vw, 120px) !important; }
html body .contact-hero::before, html body .contact-hero::after { display: none !important; }
html body :is(.pr-crumb, .pr-hero-facts dt, .lv-k, .dp-tab, .rt-jump a, .detail-tabs a, .mono) { font-family: var(--syn-text) !important; text-transform: none !important; letter-spacing: 0 !important; }
html body :is(.pr-crumb, .pr-hero-facts dt) { font-size: 13px !important; }
