/* Theme base styles */

/* Generic */

*,
*:before,
*:after {
  box-sizing: border-box;
}
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */

/* Document
   ========================================================================== */

/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */

html {
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
}

/* Sections
   ========================================================================== */

/**
 * Remove the margin in all browsers.
 */

body {
  margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */

main {
  display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */

h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
   ========================================================================== */

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */

hr {
  box-sizing: content-box; /* 1 */
  height: 0; /* 1 */
  overflow: visible; /* 2 */
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

pre {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/* Text-level semantics
   ========================================================================== */

/**
 * Remove the gray background on active links in IE 10.
 */

a {
  background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */

abbr[title] {
  border-bottom: none; /* 1 */
  text-decoration: underline; /* 2 */
  text-decoration: underline dotted; /* 2 */
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */

b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

code,
kbd,
samp {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/**
 * Add the correct font size in all browsers.
 */

small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
   ========================================================================== */

/**
 * Remove the border on images inside links in IE 10.
 */

img {
  border-style: none;
}

/* Forms
   ========================================================================== */

/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */

button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-size: 100%; /* 1 */
  line-height: 1.15; /* 1 */
  margin: 0; /* 2 */
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */

button,
input {
  /* 1 */
  overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */

button,
select {
  /* 1 */
  text-transform: none;
}

/* Remove Safari's default appearance for select elements */

select {
  -webkit-appearance: none;
  appearance: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */

button,
[type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */

button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */

fieldset {
  padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */

legend {
  box-sizing: border-box; /* 1 */
  color: inherit; /* 2 */
  display: table; /* 1 */
  max-width: 100%; /* 1 */
  padding: 0; /* 3 */
  white-space: normal; /* 1 */
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */

progress {
  vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */

textarea {
  overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */

[type="checkbox"],
[type="radio"] {
  box-sizing: border-box; /* 1 */
  padding: 0; /* 2 */
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */

[type="search"] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */

[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/* Interactive
   ========================================================================== */

/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */

details {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */

summary {
  display: list-item;
}

/* Misc
   ========================================================================== */

/**
 * Add the correct display in IE 10+.
 */

template {
  display: none;
}

/**
 * Add the correct display in IE 10.
 */

[hidden] {
  display: none;
}

/* Objects */

/* Responsive grid */

.row-fluid {
  width: 100%;
  *zoom: 1;
}

.row-fluid:before,
.row-fluid:after {
  display: table;
  content: "";
}

.row-fluid:after {
  clear: both;
}

.row-fluid [class*="span"] {
  display: block;
  float: left;
  width: 100%;
  min-height: 1px;
  margin-left: 2.127659574%;
  *margin-left: 2.0744680846382977%;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box;
}

.row-fluid [class*="span"]:first-child {
  margin-left: 0;
}

.row-fluid .span12 {
  width: 99.99999998999999%;
  *width: 99.94680850063828%;
}

.row-fluid .span11 {
  width: 91.489361693%;
  *width: 91.4361702036383%;
}

.row-fluid .span10 {
  width: 82.97872339599999%;
  *width: 82.92553190663828%;
}

.row-fluid .span9 {
  width: 74.468085099%;
  *width: 74.4148936096383%;
}

.row-fluid .span8 {
  width: 65.95744680199999%;
  *width: 65.90425531263828%;
}

.row-fluid .span7 {
  width: 57.446808505%;
  *width: 57.3936170156383%;
}

.row-fluid .span6 {
  width: 48.93617020799999%;
  *width: 48.88297871863829%;
}

.row-fluid .span5 {
  width: 40.425531911%;
  *width: 40.3723404216383%;
}

.row-fluid .span4 {
  width: 31.914893614%;
  *width: 31.8617021246383%;
}

.row-fluid .span3 {
  width: 23.404255317%;
  *width: 23.3510638276383%;
}

.row-fluid .span2 {
  width: 14.89361702%;
  *width: 14.8404255306383%;
}

.row-fluid .span1 {
  width: 6.382978723%;
  *width: 6.329787233638298%;
}

.container-fluid {
  *zoom: 1;
}

.container-fluid:before,
.container-fluid:after {
  display: table;
  content: "";
}

.container-fluid:after {
  clear: both;
}

@media (max-width: 767px) {
  .row-fluid {
    width: 100%;
  }

  .row-fluid [class*="span"] {
    display: block;
    float: none;
    width: auto;
    margin-left: 0;
  }
}

@media (min-width: 768px) and (max-width: 1139px) {
  .row-fluid {
    width: 100%;
    *zoom: 1;
  }

  .row-fluid:before,
  .row-fluid:after {
    display: table;
    content: "";
  }

  .row-fluid:after {
    clear: both;
  }

  .row-fluid [class*="span"] {
    display: block;
    float: left;
    width: 100%;
    min-height: 1px;
    margin-left: 2.762430939%;
    *margin-left: 2.709239449638298%;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    -ms-box-sizing: border-box;
    box-sizing: border-box;
  }

  .row-fluid [class*="span"]:first-child {
    margin-left: 0;
  }

  .row-fluid .span12 {
    width: 99.999999993%;
    *width: 99.9468085036383%;
  }

  .row-fluid .span11 {
    width: 91.436464082%;
    *width: 91.38327259263829%;
  }

  .row-fluid .span10 {
    width: 82.87292817100001%;
    *width: 82.8197366816383%;
  }

  .row-fluid .span9 {
    width: 74.30939226%;
    *width: 74.25620077063829%;
  }

  .row-fluid .span8 {
    width: 65.74585634900001%;
    *width: 65.6926648596383%;
  }

  .row-fluid .span7 {
    width: 57.182320438000005%;
    *width: 57.129128948638304%;
  }

  .row-fluid .span6 {
    width: 48.618784527%;
    *width: 48.5655930376383%;
  }

  .row-fluid .span5 {
    width: 40.055248616%;
    *width: 40.0020571266383%;
  }

  .row-fluid .span4 {
    width: 31.491712705%;
    *width: 31.4385212156383%;
  }

  .row-fluid .span3 {
    width: 22.928176794%;
    *width: 22.874985304638297%;
  }

  .row-fluid .span2 {
    width: 14.364640883%;
    *width: 14.311449393638298%;
  }

  .row-fluid .span1 {
    width: 5.801104972%;
    *width: 5.747913482638298%;
  }
}

@media (min-width: 1280px) {
  .row-fluid {
    width: 100%;
    *zoom: 1;
  }

  .row-fluid:before,
  .row-fluid:after {
    display: table;
    content: "";
  }

  .row-fluid:after {
    clear: both;
  }

  .row-fluid [class*="span"] {
    display: block;
    float: left;
    width: 100%;
    min-height: 1px;
    margin-left: 2.564102564%;
    *margin-left: 2.510911074638298%;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    -ms-box-sizing: border-box;
    box-sizing: border-box;
  }

  .row-fluid [class*="span"]:first-child {
    margin-left: 0;
  }

  .row-fluid .span12 {
    width: 100%;
    *width: 99.94680851063829%;
  }

  .row-fluid .span11 {
    width: 91.45299145300001%;
    *width: 91.3997999636383%;
  }

  .row-fluid .span10 {
    width: 82.905982906%;
    *width: 82.8527914166383%;
  }

  .row-fluid .span9 {
    width: 74.358974359%;
    *width: 74.30578286963829%;
  }

  .row-fluid .span8 {
    width: 65.81196581200001%;
    *width: 65.7587743226383%;
  }

  .row-fluid .span7 {
    width: 57.264957265%;
    *width: 57.2117657756383%;
  }

  .row-fluid .span6 {
    width: 48.717948718%;
    *width: 48.6647572286383%;
  }

  .row-fluid .span5 {
    width: 40.170940171000005%;
    *width: 40.117748681638304%;
  }

  .row-fluid .span4 {
    width: 31.623931624%;
    *width: 31.5707401346383%;
  }

  .row-fluid .span3 {
    width: 23.076923077%;
    *width: 23.0237315876383%;
  }

  .row-fluid .span2 {
    width: 14.529914530000001%;
    *width: 14.4767230406383%;
  }

  .row-fluid .span1 {
    width: 5.982905983%;
    *width: 5.929714493638298%;
  }
}

/* Clearfix */

.clearfix {
  *zoom: 1;
}

.clearfix:before,
.clearfix:after {
  display: table;
  content: "";
}

.clearfix:after {
  clear: both;
}

/* Visibilty Classes */

.hide {
  display: none;
}

.show {
  display: block;
}

.invisible {
  visibility: hidden;
}

.hidden {
  display: none;
  visibility: hidden;
}

/* Responsive Visibilty Classes */

.visible-phone {
  display: none !important;
}

.visible-tablet {
  display: none !important;
}

.hidden-desktop {
  display: none !important;
}

@media (max-width: 767px) {
  .visible-phone {
    display: inherit !important;
  }

  .hidden-phone {
    display: none !important;
  }

  .hidden-desktop {
    display: inherit !important;
  }

  .visible-desktop {
    display: none !important;
  }
}

@media (min-width: 768px) and (max-width: 1139px) {
  .visible-tablet {
    display: inherit !important;
  }

  .hidden-tablet {
    display: none !important;
  }

  .hidden-desktop {
    display: inherit !important;
  }

  .visible-desktop {
    display: none !important ;
  }
}
/* Content wrappers for blog post and system templates */

.content-wrapper {
  padding: 0 20px;
  margin: 0 auto;
}

/* Drag and drop layout styles */

.dnd-section > .row-fluid {
  margin: 0 auto;
}

@media (max-width: 767px) {
  .dnd-section .dnd-column {
    padding: 0;
  }
}

/* Elements */

body {
  line-height: 1.4;
  overflow-wrap: break-word;
}

html[lang^="ja"] body,
html[lang^="zh"] body,
html[lang^="ko"] body {
  line-break: strict;
  overflow-wrap: normal;
  word-break: break-all;
}

/* Paragraphs */

p {
  margin: 0 0 1.4rem;
  font-size: 1rem;
}

/* Anchors */

a {
  cursor: pointer;
}

/* Headings */

h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0 0 1.4rem;
}

/* Lists */

ul,
ol {
  padding-left: 1rem;
  margin: 0 0 1.4rem;
}

ul li,
ol li {
  margin: 0.7rem;
}

ul ul,
ol ul,
ul ol,
ol ol {
  margin: 1.4rem 0;
}

.no-list {
  padding: 0;
  margin: 0;
  list-style: none;
}

.no-list li {
  margin: 0;
}

/* Code blocks */

pre {
  overflow: auto;
}

code {
  vertical-align: bottom;
}

/* Blockquotes */

blockquote {
  padding-left: 1rem;
  border-left: 10px solid;
  margin: 0 0 1.4rem;
}

/* Horizontal rules */

hr {
  border: 0 none;
  border-bottom: 1px solid;
}

/* Subscripts and superscripts */

sup,
sub {
  position: relative;
  font-size: 75%;
  line-height: 0;
  vertical-align: baseline;
}

sup {
  top: -0.5em;
}

sub {
  bottom: -0.25em;
}

/* Image alt text */

img {
  font-size: 1rem;
  word-break: normal;
}

/* Eyebrow */

.eyebrow {
  color: #d90b8a;
  font-size: 14px;
  font-style: normal;
  font-weight: 700;
  line-height: 110%;
  letter-spacing: 2.88px;
  text-transform: uppercase;

  @media all and (min-width: 768px) {
    font-size: 24px;
  }
}

.subheadline {
  font-family: var(--primary-font);
  color: #101830;
  font-size: 28px;
  font-style: normal;
  font-weight: 300;
  line-height: 84%;
  font-variant: all-small-caps;
  letter-spacing: -0.7px;

  @media all and (min-width: 768px) {
    font-size: 60px;
    line-height: 77%;
  }
}

.headline {
  font-family: var(--secondary-font);
  color: #101830;
  font-size: 60px;
  font-style: normal;
  font-weight: 900;
  line-height: 0.7;
  font-variant: all-small-caps;
  letter-spacing: -1.6px;

  @media all and (min-width: 768px) {
    font-size: 160px;
  }
}

@media (max-width: 767px) {
  img {
    max-width: 100%;
    height: auto;
  }
}
/* Primary button */

button,
.button,
.hs-button {
  position: relative;
  display: inline-flex;
  align-items: center;
  cursor: pointer;
  text-align: center;
  transition: color 0.15s linear;
  white-space: normal;
}

.hs-button-modify--full-width {
  width: 100%;
  justify-content: center;
  text-align: center;
}

/* Simple button */

.button.button--simple {
  position: relative;
  padding: 0;
  border: none;
  border-radius: 0;
  background-color: transparent;
}

.button.button--simple:hover,
.button.button--simple:focus {
  border: none;
  background-color: transparent;
}

/* Disabled button */

button:disabled,
.button:disabled,
.hs-button:disabled {
  border-color: #f1f1f1;
  background-color: #f1f1f1;
  pointer-events: none;
}

button:disabled,
.button:disabled,
.button.button--secondary:disabled,
.button.button--simple:disabled {
  color: #d0d0d0;
}

/* No button */

.no-button,
.no-button:hover,
.no-button:focus,
.no-button:active {
  padding: 0;
  border: none;
  border-radius: 0;
  margin-bottom: 0;
  background: none;
  color: initial;
  font-family: inherit;
  font-size: inherit;
  font-style: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  line-height: inherit;
  text-align: left;
  text-decoration: none;
  transition: none;
}

/* Tooltip styles for copy to clipboard */

.hs-tooltip {
  position: absolute;
  bottom: calc(100% + 7px);
  left: 50%;
  display: none;
  height: auto;
  width: auto;
  padding: 5px 10px;
  border-radius: 3px;
  background-color: #494a52;
  color: #fff;
  font-size: 14px;
  font-weight: 400;
  opacity: 0.8;
  transform: translateX(-50%);
}
.hs-tooltip:after {
  position: absolute;
  top: 100%;
  left: 50%;
  height: 0;
  width: 0;
  border-top: 5px solid #494a52;
  border-right: 5px solid transparent;
  border-left: 5px solid transparent;
  content: "";
  transform: translateX(-50%);
}
.hs-tooltip__failure,
.hs-tooltip__success {
  display: none;
  min-width: -webkit-max-content;
  min-width: -moz-max-content;
  min-width: max-content;
}
.hs-visible {
  display: block;
}

/* Button icons */

.button .button__icon svg {
  display: block;
  height: 1.25rem;
  margin-right: 1rem;
  fill: inherit;
}

@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  .button .button__icon svg {
    width: 1.25rem;
  }
}

.button--icon-right .button__icon {
  order: 1;
}

.button--icon-right .button__icon svg {
  margin-right: 0;
  margin-left: 1rem;
}
/* t26-contact: reset HubSpot form chrome so the module's own styles take over */

.form-title {
  display: none !important;
}

.t26-module-contact form {
  background: transparent !important;
  padding: 0 !important;
  border: 0 !important;

  & .hsfc-Step {
    background: none !important;
  }

  & .hsfc-Step__Content {
    padding: 0 !important;
  }

  & .form-title,
  & .hsfc-ReCaptchaV2 {
    display: none !important;
  }

  & .hsfc-Button {
    background: #ff93d6;
    color: #000e37;
    border-radius: 100px;
    border: none;
    display: inline;
    margin: 0 auto -60px;
    max-width: 500px !important;
    padding: 15px 25px;
    font-size: 24px;
    font-weight: 500;
    text-transform: uppercase;

    &:hover {
      background: #ff93d6 !important;
      color: #000e37 !important;
      border: none !important;
    }
  }

  & .hsfc-FieldDescription {
    margin-bottom: 20px !important;
  }

  label {
    font-weight: 700 !important;
  }
}

/* Validation color (used across all forms) */

form .hs-form-required,
form .hs-error-msg,
form .hs-error-msgs {
  color: #ef6b51;
}

form .hs-input.error {
  border-color: #ef6b51;
}

:root {
  --hsf-global-error__color: #ef6b51;
  --hsf-field-label-requiredindicator__color: var(--hsf-global-error__color);
  --hsf-erroralert__color: var(--hsf-global-error__color);
}

/* Captcha */

.grecaptcha-badge {
  margin: 0 auto;
}

/* Components */

/* Navigation skipper (skip-to-content) — visually hidden until focused */

/* Blog-specific header background (overrides the dnd-section background) */
.header__skip {
  position: absolute;
  top: -1000px;
  left: -1000px;
  overflow: hidden;
  height: 1px;
  width: 1px;
  text-align: left;
}

.header__skip:focus,
.header__skip:focus-visible {
  z-index: 1000;
  top: 12px;
  left: 12px;
  overflow: visible;
  height: auto;
  width: auto;
  padding: 12px 20px;
  background: #0f1b36;
  color: #ffffff;
  font-weight: 700;
  font-size: 16px;
  text-decoration: none;
  border-radius: 8px;
  outline: 3px solid #ffe14d;
  outline-offset: 2px;
}
/* Logo */

.widget-type-logo:not(.hs-lp-header-logo) img {
  height: auto;
  max-width: 100%;
  margin-bottom: 1.4rem;
}

/* Menu and simple menu */

.hs-menu-wrapper ul {
  display: flex;
  padding-left: 0;
  margin: 0;
  flex-wrap: wrap;
  justify-content: space-around;
  list-style: none;
}

.hs-menu-wrapper li {
  margin: 0;
}

@media (max-width: 767px) {
  .hs-menu-wrapper li {
    margin-bottom: 1.4rem;
    text-align: center;
  }
}

/* Horizontal menu */

.hs-menu-wrapper.hs-menu-flow-horizontal .hs-menu-children-wrapper {
  flex-direction: column;
}

@media (max-width: 767px) {
  .hs-menu-wrapper.hs-menu-flow-horizontal ul {
    flex-direction: column;
  }
}

/* Vertical menu */

.hs-menu-wrapper.hs-menu-flow-vertical ul {
  flex-direction: column;
}

/* Flyouts */

.hs-menu-wrapper.hs-menu-flow-vertical.flyouts ul {
  display: inline-flex;
}

@media (max-width: 767px) {
  .hs-menu-wrapper.hs-menu-flow-vertical ul {
    display: flex;
  }
}

.hs-menu-wrapper.flyouts .hs-item-has-children {
  position: relative;
}

.hs-menu-wrapper.flyouts .hs-menu-children-wrapper {
  position: absolute;
  left: -9999px;
  opacity: 0;
}

.hs-menu-wrapper.flyouts .hs-menu-children-wrapper a {
  display: block;
  white-space: nowrap;
}

/* prettier-ignore */
.hs-menu-wrapper.hs-menu-flow-horizontal.flyouts
.hs-item-has-children:hover
> .hs-menu-children-wrapper {
  top: 100%;
  left: 0;
  opacity: 1;
}

/* prettier-ignore */
.hs-menu-wrapper.hs-menu-flow-vertical.flyouts
.hs-item-has-children:hover
> .hs-menu-children-wrapper {
  top: 0;
  left: 100%;
  opacity: 1;
}

@media (max-width: 767px) {
  /* prettier-ignore */
  .hs-menu-wrapper.flyouts .hs-menu-children-wrapper,
  .hs-menu-wrapper.hs-menu-flow-horizontal.flyouts
  .hs-item-has-children:hover
  > .hs-menu-children-wrapper,
  .hs-menu-wrapper.hs-menu-flow-vertical.flyouts
  .hs-item-has-children:hover
  > .hs-menu-children-wrapper {
    position: relative;
    top: auto;
    left: 0;
    opacity: 1;
  }
}

/* Rich text */

.widget-type-rich_text img {
  height: auto;
  max-width: 100%;
}

/* If the default module language switcher is used, keep growth margins from messing it up */
.lang_switcher_class .lang_list_class li {
  margin: initial;
}
/* ============================================================
   BLOG LISTING — shared styles
   Used by t26-blog-listing, t26-case-featured, t26-case-listing-filter,
   and any other module that emits `.blog-listing*` markup.
   ============================================================ */

/* ================================================
   FILTER BUTTONS
   ================================================ */

.blog-filters-wrap {
  & h2 {
    color: #0b0b3d;
    margin-bottom: 20px;
    font-family: var(--primary-font);
    font-size: 32px;
    font-weight: 500;
  }
}

.blog-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin-top: -5px;
  margin-bottom: 50px;

  & .blog-filters__button {
    background: transparent;
    border: 1px solid #000;
    border-radius: 100px;
    color: #101830;
    cursor: pointer;
    font-size: 12px;
    text-transform: capitalize;
    line-height: 1;
    font-weight: 600;
    padding: 8px 12px;
    text-decoration: none;

    &:hover,
    &.is-active,
    &.is-active:hover {
      background: #0f1b36;
      border: 1px solid #7c7c7c;
      color: #fff;
      text-decoration: none;
    }
  }
}

/* ================================================
   LISTING WRAPPER / GRID
   ================================================ */

.blog-listing {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 60px 30px;

  @media (min-width: 960px) {
    flex-direction: row;
  }

  /* Card-grid variants override the flex wrapper above */
  &.blog-listing--card {
    display: grid;
    gap: 60px 30px;
    flex-direction: initial;

    &.blog-listing--3-col {
      grid-template-columns: repeat(3, 1fr);
    }
    &.blog-listing--2-col {
      grid-template-columns: repeat(2, 1fr);
    }
    &.blog-listing--1-col {
      grid-template-columns: 1fr;
    }

    @media (max-width: 1024px) {
      &.blog-listing--3-col {
        grid-template-columns: repeat(2, 1fr);
      }
    }

    @media (max-width: 767px) {
      &.blog-listing--3-col,
      &.blog-listing--2-col {
        grid-template-columns: 1fr;
      }
    }
  }

  /* Varied grid: 8-item cycle (overlay 3-col only) */
  &.blog-listing--overlay.blog-listing--card.blog-listing--3-col {
    grid-template-columns: repeat(6, 1fr);

    & > .blog-listing__post--overlay {
      grid-column: span 2;
    }
    & > .blog-listing__post--overlay:nth-child(8n + 4),
    & > .blog-listing__post--overlay:nth-child(8n + 5) {
      grid-column: span 3;
    }

    @media (max-width: 1024px) {
      grid-template-columns: repeat(2, 1fr);

      & > .blog-listing__post--overlay,
      & > .blog-listing__post--overlay:nth-child(8n + 4),
      & > .blog-listing__post--overlay:nth-child(8n + 5) {
        grid-column: span 1;
      }
    }

    @media (max-width: 767px) {
      grid-template-columns: 1fr;
    }
  }
}

/* Flex-wrapper column splits (used by the legacy flex listing) */
.blog-listing:not(.blog-listing--card) {
  &.blog-listing--3-col .blog-listing__post,
  &.blog-listing--6-col .blog-listing__post,
  &.blog-listing--9-col .blog-listing__post {
    width: auto;
    flex: 0 0 calc(33.333% - 32px);
  }
  &.blog-listing--4-col .blog-listing__post,
  &.blog-listing--8-col .blog-listing__post,
  &.blog-listing--12-col .blog-listing__post,
  &.blog-listing--16-col .blog-listing__post {
    width: auto;
    flex: 0 0 calc(25% - 32px);
  }
}

/* ================================================
   FEATURED POST CARD
   ================================================ */

.hs-content-path-case-studies .blog-listing__feature,
.hs-content-name-blog-listing .blog-listing__feature {
  display: grid;
}

.blog-listing__feature {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  background-color: #fff;
  border-radius: 18px;
  border-top: 26px solid #ffb4e2;
  box-shadow: 0 16px 32px 0 rgba(0, 0, 0, 0.25);
  color: #0f1b36;
  margin-inline: auto;
  position: relative;
  width: 90%;

  @media (min-width: 768px) {
    grid-template-columns: 1fr 1fr;
    min-height: 460px;
  }

  @media (min-width: 1460px) {
    width: 100%;
  }

  &::before {
    content: "";
    position: absolute;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    width: 100vw;
    top: -100px;
    bottom: 100px;
    background: #f0f2fa;
    z-index: -1;
  }

  /* Dark navy bleed on the Blog (listing + single).
     Blog URL slug = "resources-26-test" for now; update if renamed. */
  body[class*="page---resources-26-test"] &::before,
  body[class*="page---resources-26-test"] &::before {
    background: #000e37;
  }

  body[class*="page---resources-26-test"] & {
    background: #f0f2fa;
    box-shadow: none;
  }

  & .blog-listing__post-image-wrapper {
    order: -1;
    max-width: none;
    padding: 0;
    background-color: #ccc;
    border-bottom-right-radius: 18px;
    overflow: hidden;
    aspect-ratio: 16 / 10;

    @media (min-width: 768px) {
      order: 0;
      aspect-ratio: auto;
      min-height: 240px;
    }
  }

  & .blog-listing__post-image {
    background-color: #ccc;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
  }

  & .blog-listing__post-content {
    padding: 48px 58px;
    margin: 0;
  }

  & .blog-listing__post-title {
    font-family: var(--secondary-font);
    text-transform: uppercase;
    font-weight: 700;
    margin: 0;
    text-wrap: pretty;
    font-size: clamp(32px, 3.4vw, 60px);
    line-height: 108%;

    & a {
      font-size: clamp(32px, 3.4vw, 60px);
      line-height: 108%;
      color: #0f1b36;
    }
  }

  /* No hover restyle inside the featured card */
  & .blog-listing__post-title a,
  & .blog-listing__post-title a:hover,
  & .blog-listing__post-title a:focus,
  & .blog-listing__post-title a:active,
  & .blog-listing__post-title-link,
  & .blog-listing__post-title-link:hover,
  & .blog-listing__post-title-link:focus,
  & .blog-listing__post-title-link:active {
    color: #0f1b36;
    font-weight: 700;
    font-family: var(--secondary-font);
    text-decoration: none;
  }

  & .blog-listing__post-summary {
    margin-bottom: 30px;
    padding: 0;
    font-weight: 400;
    font-size: 25px;
    line-height: 30px;
    max-width: 580px;
  }

  & .button {
    margin: auto 0 0;
  }

  & .blog-listing__feature-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    margin: 28px 0;
  }

  & .blog-listing__feature-stat {
    position: relative;
    padding: 0 18px;

    &:first-child {
      padding-left: 0;
    }

    &:last-child {
      padding-right: 0;
    }

    &:not(:last-child)::after {
      content: "";
      position: absolute;
      top: 10%;
      right: 10%;
      bottom: 10%;
      width: 1px;
      background: #ccc;
    }
  }

  & .blog-listing__feature-stat-value {
    font-family: var(--primary-font);
    font-weight: 800;
    font-size: clamp(20px, 4vw, 30px);
    line-height: 1;
    margin: 0 0 6px;
    color: #d90b8a;
  }

  & .blog-listing__feature-stat-label {
    font-size: 11px;
    font-weight: 700;
    line-height: 1.3;
    margin: 0;
    color: #101830;
  }

  & .blog-listing__header {
    flex: 0;
    padding: 0 0 24px;
  }

  & .blog-listing__post-tag,
  & .blog-listing__post-tag:hover {
    display: inline-block;
    align-self: flex-start;
    font-size: 12px;
    line-height: 12px;
    font-weight: 700;
    background-color: #0f1b36;
    text-transform: uppercase;
    color: #fff;
    padding: 9px 16px;
    text-align: center;
    border-radius: 4px;
    position: relative;
    margin-bottom: 24px;
  }

  & .blog-listing__post-timestamp {
    font-size: 16px;
    font-weight: 500;
    line-height: 35px;
    color: #8b8b8b;
    margin-left: 10px;
    text-transform: uppercase;
  }
}

/* ================================================
   BASE POST CARD (non-overlay)
   ================================================ */

.blog-listing__post,
.card-group__card {
  height: 100%;
  display: flex;
  flex-direction: column;
  margin: 0;
}

.blog-listing__post {
  &.card-shadow {
    overflow: hidden;
  }

  & .blog-listing__post-image-wrapper {
    display: block;
    overflow: hidden;
    border-radius: 10px;
    aspect-ratio: 16 / 10;
    margin-bottom: 18px;
    max-height: 221px;
  }

  & .blog-listing__post-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top left;
    display: block;
    transition: transform 0.3s ease;
  }

  &:hover .blog-listing__post-image {
    transform: scale(1.03);
  }

  & .blog-listing__post-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    padding: 0;
  }

  & .blog-listing__header {
    padding: 0;
    margin: 0;
    flex: 1;
    display: flex;
    flex-direction: column;
  }

  /* Tag */
  & .blog-listing__post-tags {
    margin-bottom: 24px;
  }

  & .blog-listing__post-tag {
    display: inline-block;
    background-color: #0f1b36;
    color: #fff;
    font-size: 12px;
    line-height: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    text-decoration: none;
    padding: 9px 16px;
    border-radius: 4px;
  }

  /* Title */
  & .blog-listing__post-title {
    font-family: var(--primary-font);
    font-size: 24px;
    line-height: 28px;
    margin-bottom: 20px;
  }

  & .blog-listing__post-title-link {
    font-family: var(--primary-font);
    text-decoration: none;
    line-height: 1.3;
  }

  /* Author */
  & .blog-listing__post-author {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 8px;
  }

  & .blog-listing__post-author-image {
    border-radius: 50%;
    object-fit: cover;
  }

  & .blog-listing__post-author-name {
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
  }

  /* Date */
  & .blog-listing__post-timestamp {
    font-size: 16px;
    font-weight: 500;
    line-height: 35px;
    color: #8b8b8b;
    margin-left: 10px;
    text-transform: uppercase;
  }

  /* Button */
  & .blog-listing__post-button.button--simple {
    color: var(--color-blue-light);
    font-weight: 800;
    margin-top: auto;
    display: inline-flex;
    align-items: center;
    text-decoration: none;
  }

  /* Read more + date row */
  & .blog-listing__post-meta {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: auto;
  }

  /* "Read more" CTA */
  & .blog-listing__post-cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #d90b8a;
    font-size: 16px;
    font-weight: 400;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    text-decoration: none;
  }

  & .blog-listing__post-cta-arrow {
    width: 13px;
    height: 10px;
    color: #d90b8a;
    flex: 0 0 auto;
  }
}

/* ================================================
   OVERLAY CARD VARIANT
   ================================================ */

.blog-listing__post--overlay {
  position: relative;
  display: block;
  flex: none;
  border-radius: 12px;
  overflow: hidden;

  & .blog-listing__post-image-wrapper {
    display: block;
    width: 100%;
    min-height: 100%;
    aspect-ratio: 4 / 3;
    flex: none;
  }

  & .blog-listing__post-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.3s ease;
  }

  &:hover .blog-listing__post-image {
    transform: scale(1.03);
  }

  & .blog-listing__post-content {
    position: absolute;
    inset: 0;
    flex: none;
    background: linear-gradient(
      to top,
      rgba(11, 19, 64, 0.92) 0%,
      rgba(11, 19, 64, 0.7) 40%,
      rgba(11, 19, 64, 0) 100%
    );
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 0;
    transition: background 0.35s ease;
  }

  &:hover .blog-listing__post-content {
    background: linear-gradient(
      to top,
      rgba(11, 19, 64, 0.96) 0%,
      rgba(11, 19, 64, 0.78) 55%,
      rgba(11, 19, 64, 0.1) 100%
    );
  }

  & .blog-listing__header {
    padding: 24px;
    margin: 0;
    height: auto;
    flex: none;
  }

  & .blog-listing__post-tags {
    margin-bottom: 6px;
  }

  & .blog-listing__post-tag {
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    opacity: 0.85;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    text-decoration: none;
    margin-bottom: 0;

    &::before {
      content: "☆";
      font-size: 13px;
    }
  }

  & .blog-listing__post-title {
    margin: 0;
  }

  & .blog-listing__post-title-link {
    color: #fff;
    text-decoration: none;
    font-weight: 600;
    font-size: 22px;
    line-height: 1.3;
  }

  & .blog-listing__post-button,
  & .blog-listing__post-author,
  & .blog-listing__post-timestamp {
    display: none;
  }

  & .blog-listing__post-cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #d90b8a;
    font-size: 16px;
    font-style: normal;
    font-weight: 600;
    text-decoration: none;
    margin-top: 12px;
    max-height: 0;
    opacity: 0;
    transform: translateY(8px);
    overflow: hidden;
    transition:
      max-height 0.35s ease,
      opacity 0.3s ease,
      transform 0.35s ease,
      margin-top 0.35s ease;
    pointer-events: none;
  }

  & .blog-listing__post-cta-arrow {
    width: 13px;
    height: 10px;
    color: #d90b8a;
    flex: 0 0 auto;
  }

  &:hover .blog-listing__post-cta,
  &:focus-within .blog-listing__post-cta {
    max-height: 40px;
    opacity: 1;
    transform: translateY(0);
  }
}

/* ================================================
   PAGE-SPECIFIC OVERRIDES (non-overlay only)
   ================================================ */

.hs-content-path-case-studies,
.hs-content-name-blog-listing {
  & .blog-listing__post:not(.blog-listing__post--overlay) {
    & .blog-listing__post-image-wrapper,
    & .blog-listing__post-content {
      flex: 1;
    }

    & .blog-listing__header {
      padding: 0 20px 20px;
      margin: 0;
      height: 100%;
      flex: 1;
      display: flex;
      flex-direction: column;
    }

    & .blog-listing__post-button.button--simple {
      color: var(--color-blue-light);
      font-weight: 800;
      margin-top: auto;
    }

    & h3 {
      margin-bottom: 30px;
    }
  }
}

.hs-content-path-newsroom .blog-listing,
.hs-content-path-newsroom .card-group {
  @media (min-width: 960px) {
    gap: 12px;
    justify-content: center;
  }
}

/* ================================================
   EVENT LISTING VARIANT
   ================================================ */

.event-listing {
  & .blog-listing__post-image-wrapper {
    background: #0f1b36;
    display: flex;
    align-items: center;
    justify-content: center;
    height: auto;
    min-height: 162px;
    font-weight: 700;
  }

  & .blog-listing__post-content {
    padding: 30px;
  }

  & .blog-listing__post-timestamp {
    font-weight: 700;
  }
}

/* ================================================
   GLOSSARY VARIANT
   ================================================ */

.glossary-list {
  color: #000;

  @media (max-width: 959px) {
    margin-bottom: 40px;
  }

  & a {
    color: #000;
  }

  & .glossary-inner:nth-child(even) {
    background-color: var(--color-shaded);

    &::before,
    &::after {
      content: "";
      position: absolute;
      top: 0;
      width: 100%;
      height: 100%;
      background-color: var(--color-shaded);
    }
    &::before {
      left: -100%;
    }
    &::after {
      right: -100%;
    }
  }
}

.glossary-inner {
  display: grid;
  grid-template-columns: 1fr;
  position: relative;
  padding: var(--s-sm);

  @media (min-width: 960px) {
    grid-template-columns: 150px auto;
    padding: var(--s-md);
  }
}

.glossary-letter {
  font-size: 40px;
  color: var(--color-gray-medium);
  margin-top: -4px;
}

.glossary-terms {
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 15px;

  @media (min-width: 960px) {
    grid-template-columns: repeat(3, 1fr);
  }

  & li {
    list-style-type: none;
    margin: 0;
    padding: 0;
    font-size: 18px;
  }

  & a {
    color: #0f1b36;
  }
}

/* ================================================
   PAGINATION
   ================================================ */

.pagination {
  margin: 56px auto;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  flex-wrap: wrap;
  color: #0f1b36;

  /* Hide First / Last — only show Prev/Next + numbers */
  & .pagination__link--first,
  & .pagination__link--last {
    display: none;
  }

  /* Numbered page pills */
  & .pagination__link--number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 70px;
    height: 70px;
    border-radius: 50%;
    border: 1.5px solid #0f1b36;
    background: transparent;
    color: #0f1b36;
    font-family: var(--primary-font);
    font-size: 18px;
    font-weight: 700;
    text-decoration: none;
    transition:
      background 0.2s ease,
      color 0.2s ease,
      border-color 0.2s ease;

    &:hover,
    &:focus {
      background: #cf2f86;
      color: #fff;
      border-color: #cf2f86;
    }

    &.pagination__link--active {
      background: #cf2f86;
      color: #fff;
      border-color: #cf2f86;
      cursor: default;
    }
  }

  /* Prev / Next — text + custom arrow icon */
  & .pagination__link--prev,
  & .pagination__link--next {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #0f1b36;
    font-size: 18px;
    font-weight: 600;
    text-decoration: none;

    /* Hide HubSpot's built-in icon SVG */
    & .pagination__link-icon {
      display: none;
    }

    &:hover,
    &:focus {
      color: #cf2f86;
    }

    &.pagination__link--disabled {
      opacity: 0.35;
      cursor: not-allowed;
      pointer-events: none;
    }
  }

  /* Custom arrow injected via mask so color follows currentColor */
  & .pagination__link--next::after,
  & .pagination__link--prev::before {
    content: "";
    width: 16px;
    height: 16px;
    background-color: currentColor;
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M12.1716 8.77806L8.55964e-06 8.77806L1.47897e-06 6.77807L12.1716 6.77807L6.80761 1.41412L8.22183 -9.53337e-05L16 7.77806L8.22181 15.5562L6.80759 14.142L12.1716 8.77806Z' fill='black'/%3E%3C/svg%3E");
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M12.1716 8.77806L8.55964e-06 8.77806L1.47897e-06 6.77807L12.1716 6.77807L6.80761 1.41412L8.22183 -9.53337e-05L16 7.77806L8.22181 15.5562L6.80759 14.142L12.1716 8.77806Z' fill='black'/%3E%3C/svg%3E");
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
  }

  & .pagination__link--prev::before {
    transform: scaleX(-1);
  }

  /* HubSpot hides Prev/Next labels with .show-for-sr--mobile on desktop.
     Force them visible. */
  & .pagination__link-text {
    position: static;
    clip: auto;
    width: auto;
    height: auto;
    margin: 0;
    overflow: visible;
    white-space: nowrap;
  }
}

/* Utilities */

/* For content that needs to be visually hidden but stay visible for screenreaders */

/* stylelint-disable declaration-no-important */
.show-for-sr {
  position: absolute !important;
  overflow: hidden !important;
  height: 1px !important;
  width: 1px !important;
  padding: 0 !important;
  border: 0 !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
}

@media (max-width: 767px) {
  .show-for-sr--mobile {
    position: absolute !important;
    overflow: hidden !important;
    height: 1px !important;
    width: 1px !important;
    padding: 0 !important;
    border: 0 !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
  }
}
/* stylelint-enable declaration-no-important */
/* ============================================================
   Accessibility — visible focus indicators (WCAG 2.4.7 / 1.4.11)
   ============================================================ */

/*
 * Token: high-contrast focus ring used across the theme.
 * Yellow inner + dark outer gives 3:1+ contrast on both light
 * and dark backgrounds.
 */

:root {
  --t26-focus-ring-color: #ffe14d;
  --t26-focus-ring-offset: 2px;
  --t26-focus-ring-width: 3px;
}

/*
 * Baseline: remove any blanket `outline: none` damage from resets
 * and give every interactive element a visible :focus-visible ring.
 * :focus-visible avoids showing rings on mouse clicks while keeping
 * them for keyboard / programmatic focus.
 */

a:focus-visible,
button:focus-visible,
[role="button"]:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:not([tabindex="-1"]):focus-visible {
  outline: var(--t26-focus-ring-width) solid var(--t26-focus-ring-color);
  outline-offset: var(--t26-focus-ring-offset);
  border-radius: 4px;
}

/*
 * Pill-shaped buttons (t26-btn, .button, .hs-button, header CTA)
 * keep their full radius when focused so the ring traces the pill.
 */

.t26-btn:focus-visible,
.button:focus-visible,
.hs-button:focus-visible,
input.hs-button[type="submit"]:focus-visible {
  outline: var(--t26-focus-ring-width) solid var(--t26-focus-ring-color);
  outline-offset: var(--t26-focus-ring-offset);
  border-radius: 999px;
}

/*
 * Form inputs already have their own focus shadow in many modules,
 * but ensure a fallback ring for any input/select/textarea that
 * isn't covered by a module-scoped focus style.
 */

input:not([type="checkbox"]):not([type="radio"]):focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: var(--t26-focus-ring-width) solid var(--t26-focus-ring-color);
  outline-offset: var(--t26-focus-ring-offset);
}

/*
 * Checkboxes and radios get the ring around their actual control
 * (the input itself), not the surrounding label.
 */

input[type="checkbox"]:focus-visible,
input[type="radio"]:focus-visible {
  outline: var(--t26-focus-ring-width) solid var(--t26-focus-ring-color);
  outline-offset: var(--t26-focus-ring-offset);
}

/*
 * Suppress focus rings only when the user is interacting with a
 * mouse/touch (handled by :focus-visible above — this is a
 * belt-and-braces guard for older browsers that don't support it).
 */

a:focus:not(:focus-visible),
button:focus:not(:focus-visible),
[role="button"]:focus:not(:focus-visible),
input:focus:not(:focus-visible),
select:focus:not(:focus-visible),
textarea:focus:not(:focus-visible),
summary:focus:not(:focus-visible) {
  outline: none;
}

/*
 * Header / nav: keyboard-only focus ring via :focus-visible so
 * mouse clicks don't show the outline.
 */

.header a:focus-visible,
.header button:focus-visible,
.header__menu-link:focus-visible,
.header__menu-toggle:focus-visible,
.header__menu-child-toggle:focus-visible,
.header__language-switcher-child-toggle:focus-visible,
.header__skip:focus-visible {
  outline: var(--t26-focus-ring-width) solid var(--t26-focus-ring-color);
  outline-offset: var(--t26-focus-ring-offset);
}

.header a:focus:not(:focus-visible),
.header button:focus:not(:focus-visible) {
  outline: none;
}