/* ================================================================
   CORPORATE CMS — RICH TEXT EDITOR
   Extends Action Text / Trix without replacing the Trix document model.
   ================================================================ */

.cms-rich-text-editor {
  position: relative;
  overflow: visible;
  background: #fff;
  border: 1px solid #dce5e9;
  border-radius: 14px;
  box-shadow: 0 18px 40px -38px rgba(3, 46, 77, .45);
}

.cms-rich-text-editor-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 14px 16px;
  background: #f8fafb;
  border-bottom: 1px solid #e5ecef;
  border-radius: 14px 14px 0 0;
}

.cms-rich-text-editor-heading {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.cms-rich-text-language {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  color: #fff;
  background: #054d7f;
  border-radius: 9px;
  font: 700 .62rem "Work Sans", sans-serif;
  letter-spacing: .07em;
}

.cms-rich-text-label {
  margin: 0 !important;
}

.cms-rich-text-editor-heading p {
  margin: 3px 0 0;
  color: #7c8e96;
  font: 400 .65rem/1.4 "Work Sans", sans-serif;
}

.cms-rich-text-stats {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  gap: 9px;
  color: #7d8f96;
  font: 500 .61rem "Work Sans", sans-serif;
}

.cms-rich-text-stats strong {
  color: #032e4d;
  font-weight: 700;
}

.cms-rich-text-stats-divider {
  width: 1px;
  height: 16px;
  background: #d7e1e5;
}

.cms-rich-text-editor-surface {
  position: relative;
  padding: 0;
}

/* Trix toolbar -------------------------------------------------- */

.cms-rich-text-editor trix-toolbar {
  display: block;
  position: sticky;
  top: 0;
  z-index: 20;
  padding: 10px 10px 0;
  background: rgba(255, 255, 255, .97);
  border-bottom: 1px solid #e5ecef;
  backdrop-filter: blur(10px);
}

.cms-rich-text-editor trix-toolbar .trix-button-row {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 6px;
  overflow: visible;
}

.cms-rich-text-editor trix-toolbar .trix-button-group,
.cms-rich-text-editor trix-toolbar .trix-button-group:not(:first-child) {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  margin: 0 0 10px;
  padding: 3px;
  background: #f6f8f9;
  border: 1px solid #e0e7ea;
  border-radius: 9px;
}

.cms-rich-text-editor trix-toolbar .trix-button-group-spacer {
  flex: 1 1 auto;
}

.cms-rich-text-editor trix-toolbar .trix-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 31px;
  height: 31px;
  margin: 0;
  padding: 0 8px;
  color: #4e6670;
  background: transparent;
  border: 0;
  border-radius: 6px;
  box-shadow: none;
  font: 650 .63rem "Work Sans", sans-serif;
  line-height: 1;
  text-indent: 0;
  transition:
    color .15s ease,
    background .15s ease,
    box-shadow .15s ease;
}

.cms-rich-text-editor trix-toolbar .trix-button:not(:first-child) {
  border-left: 0;
}

.cms-rich-text-editor trix-toolbar .trix-button:hover:not(:disabled) {
  color: #032e4d;
  background: #eaf1f5;
}

.cms-rich-text-editor trix-toolbar .trix-button.trix-active {
  color: #fff;
  background: #054d7f;
  box-shadow: 0 3px 9px rgba(5, 77, 127, .22);
}

.cms-rich-text-editor trix-toolbar .trix-button--icon {
  width: 31px;
  max-width: none;
  padding: 0;
  text-indent: -9999px;
}

.cms-rich-text-editor trix-toolbar .trix-button--icon::before {
  inset: 7px;
  opacity: .64;
}

.cms-rich-text-editor trix-toolbar .trix-button--icon.trix-active::before {
  filter: invert(1);
  opacity: 1;
}

.cms-trix-button--text {
  width: auto !important;
  max-width: none !important;
  text-indent: 0 !important;
}

.cms-trix-button--underline {
  text-decoration: underline;
}

.cms-trix-button--highlight {
  position: relative;
}

.cms-trix-button--highlight::after {
  content: "";
  position: absolute;
  right: 6px;
  bottom: 4px;
  left: 6px;
  height: 3px;
  background: #f8db71;
  border-radius: 2px;
}

/* Link dialog --------------------------------------------------- */

.cms-rich-text-editor trix-toolbar .trix-dialogs {
  position: relative;
}

.cms-rich-text-editor trix-toolbar .trix-dialog {
  top: 0;
  padding: 12px;
  background: #fff;
  border: 1px solid #dce5e9;
  border-top: 3px solid #054d7f;
  border-radius: 10px;
  box-shadow: 0 16px 36px rgba(3, 46, 77, .15);
}

.cms-rich-text-editor trix-toolbar .trix-dialog__link-fields {
  align-items: center;
}

.cms-rich-text-editor trix-toolbar .trix-input--dialog {
  min-height: 38px;
  margin-right: 8px;
  padding: 8px 10px;
  color: #153e55;
  border: 1px solid #cedbe0;
  border-radius: 7px;
  font: 400 .72rem "Work Sans", sans-serif;
}

.cms-rich-text-editor trix-toolbar .trix-button--dialog {
  width: auto;
  min-width: 62px;
  padding: 0 12px;
  text-indent: 0;
}

/* Editor -------------------------------------------------------- */

.cms-rich-text-editor .cms-trix-editor {
  min-height: 440px;
  max-height: 72vh;
  overflow-y: auto;
  margin: 0;
  padding: clamp(22px, 3vw, 38px);
  color: #263f4a;
  background: #fff;
  border: 0;
  border-radius: 0;
  outline: none;
  font: 400 .92rem/1.75 "Work Sans", sans-serif;
}

.cms-rich-text-editor .cms-trix-editor:focus {
  box-shadow: inset 0 0 0 2px rgba(4, 160, 221, .12);
}

.cms-rich-text-editor .cms-trix-editor h2,
.trix-content h2 {
  margin: 1.9em 0 .65em;
  color: #032e4d;
  font: 500 clamp(1.5rem, 2.5vw, 2rem)/1.2 "Barlow", sans-serif;
}

.cms-rich-text-editor .cms-trix-editor h3,
.trix-content h3 {
  margin: 1.65em 0 .55em;
  color: #054d7f;
  font: 500 clamp(1.2rem, 2vw, 1.55rem)/1.25 "Barlow", sans-serif;
}

.cms-rich-text-editor .cms-trix-editor h4,
.trix-content h4 {
  margin: 1.45em 0 .45em;
  color: #193f56;
  font: 600 1.05rem/1.3 "Barlow", sans-serif;
}

.cms-rich-text-editor .cms-trix-editor p,
.trix-content p {
  margin: 0 0 1.15em;
}

.cms-rich-text-editor .cms-trix-editor blockquote,
.trix-content blockquote {
  margin: 1.5em 0;
  padding: 15px 18px;
  color: #355666;
  border: 0;
  border-left: 4px solid #04a0dd;
  border-radius: 0 10px 10px 0;
  font-style: normal;
}

.cms-rich-text-editor .cms-trix-editor pre,
.trix-content pre {
  display: block;
  width: 100%;
  margin: 1.4em 0;
  padding: 16px 18px;
  color: #dbeaf1;
  background: #032e4d;
  border-radius: 10px;
  overflow-x: auto;
  font: 400 .82rem/1.6 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

.cms-rich-text-editor .cms-trix-editor ul,
.cms-rich-text-editor .cms-trix-editor ol,
.trix-content ul,
.trix-content ol {
  margin: 1em 0 1.25em 1.35em;
}

.cms-rich-text-editor .cms-trix-editor li,
.trix-content li {
  margin: .35em 0;
}

.cms-rich-text-editor .cms-trix-editor a,
.trix-content a {
  color: #054d7f;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.cms-rich-text-editor .cms-trix-editor mark,
.trix-content mark {
  padding: .08em .2em;
  color: inherit;
  background: #fff0aa;
  border-radius: 3px;
}

.cms-rich-text-editor .cms-trix-editor sup,
.trix-content sup {
  font-size: .72em;
  vertical-align: super;
}

.cms-rich-text-editor .cms-trix-editor sub,
.trix-content sub {
  font-size: .72em;
  vertical-align: sub;
}

.cms-rich-text-editor .cms-trix-editor figure,
.trix-content figure {
  margin: 1.7em 0;
}

.cms-rich-text-editor .cms-trix-editor .attachment__caption,
.trix-content .attachment__caption {
  margin-top: 8px;
  color: #7a8d95;
  font: 400 .68rem/1.4 "Work Sans", sans-serif;
}

/* Footer -------------------------------------------------------- */

.cms-rich-text-editor-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px 18px;
  padding: 10px 14px;
  color: #82939a;
  background: #f8fafb;
  border-top: 1px solid #e5ecef;
  border-radius: 0 0 14px 14px;
  font: 400 .59rem/1.4 "Work Sans", sans-serif;
}

/* Focus mode ---------------------------------------------------- */

body.cms-rich-text-focus-open {
  overflow: hidden;
}

.cms-rich-text-editor.is-fullscreen {
  position: fixed;
  inset: 14px;
  z-index: 10000;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: #fff;
  border-color: #cbd9df;
  box-shadow: 0 30px 100px rgba(3, 46, 77, .3);
}

.cms-rich-text-editor.is-fullscreen .cms-rich-text-editor-header,
.cms-rich-text-editor.is-fullscreen .cms-rich-text-editor-footer {
  flex: 0 0 auto;
}

.cms-rich-text-editor.is-fullscreen .cms-rich-text-editor-surface {
  display: flex;
  flex: 1 1 auto;
  min-height: 0;
  flex-direction: column;
}

.cms-rich-text-editor.is-fullscreen trix-toolbar {
  flex: 0 0 auto;
}

.cms-rich-text-editor.is-fullscreen .cms-trix-editor {
  flex: 1 1 auto;
  min-height: 0;
  max-height: none;
  overflow-y: auto;
}


/* ================================================================
   PULL QUOTE — BRANDED EDITORIAL
   ================================================================ */

.cms-quote-block {
  position: relative;

  margin: 2.35rem 0;
  padding:
    34px
    clamp(22px, 5vw, 46px)
    30px;

  overflow: hidden;

  color: #fff;

  background:
    linear-gradient(
      135deg,
      #032e4d 0%,
      #054d7f 100%
    );

  border-radius: 16px;

  box-shadow:
    0 18px 48px
    rgba(3, 46, 77, .16);
}

.cms-quote-block::after {
  content: "";

  position: absolute;
  top: -80px;
  right: -70px;

  width: 220px;
  height: 220px;

  background:
    radial-gradient(
      circle,
      rgba(4, 160, 221, .24),
      transparent 68%
    );

  pointer-events: none;
}

.cms-quote-rule {
  display: none;
}

.cms-quote-copy {
  position: relative;
  z-index: 1;

  max-width: 900px;

  margin: 0;
  padding: 0;
}

.cms-quote-mark {
  position: static;

  display: block;

  height: 36px;
  margin-bottom: 10px;

  color: #f28d01;

  font:
    500 4.6rem/.8
    Georgia,
    serif;
}

.cms-quote-copy p {
  margin: 0 !important;

  color: #fff;

  font:
    500
    clamp(1.22rem, 2.7vw, 1.9rem)
    /1.38
    "Barlow",
    sans-serif;

  letter-spacing: -.015em;
}

.cms-quote-citation {
  position: relative;
  z-index: 1;

  display: flex;
  align-items: center;
  gap: 10px;

  margin: 18px 0 0;

  color: rgba(255, 255, 255, .72);

  font:
    500 .66rem/1.4
    "Work Sans",
    sans-serif;
}

.cms-quote-citation::before {
  content: "";

  display: inline-block;

  width: 28px;
  height: 2px;

  flex: 0 0 28px;

  background: #f28d01;

  border-radius: 999px;
}


@media screen and (max-width: 760px) {
  .cms-rich-text-editor-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .cms-rich-text-editor trix-toolbar {
    position: static;
  }

  .cms-rich-text-editor trix-toolbar .trix-button-row {
    align-items: flex-start;
  }

  .cms-rich-text-editor trix-toolbar .trix-button-group-spacer {
    display: none;
  }

  .cms-rich-text-editor .cms-trix-editor {
    min-height: 360px;
    padding: 20px 16px;
  }

  .cms-rich-text-editor-footer {
    align-items: flex-start;
    flex-direction: column;
  }

  .cms-rich-text-editor.is-fullscreen {
    inset: 0;
    border: 0;
    border-radius: 0;
  }
}

/* ================================================================
   RICH TEXT — COLOUR / HIGHLIGHT MENUS
   ================================================================ */

.cms-trix-dropdown-group {
  position: relative;
}

.cms-trix-dropdown-toggle {
  gap: 5px;
}

.cms-trix-colour-indicator {
  display: inline-block;
  width: 13px;
  height: 3px;
  margin-top: 10px;
  margin-left: -12px;
  background: #032e4d;
  border-radius: 2px;
}

.cms-trix-highlight-indicator {
  display: inline-block;
  width: 13px;
  height: 6px;
  margin-left: -4px;
  background: #fff0aa;
  border-radius: 2px;
}

.cms-trix-chevron {
  margin-left: 2px;
  color: #8a9aa1;
  font-size: .65rem;
}

.cms-trix-dropdown-menu {
  position: absolute;

  top: calc(100% + 7px);
  left: 0;

  z-index: 100;

  width: 170px;

  padding: 7px;

  background: #fff;

  border: 1px solid #dce5e9;
  border-radius: 10px;

  box-shadow:
    0 18px 40px
    rgba(3, 46, 77, .15);
}

.cms-trix-dropdown-menu[hidden] {
  display: none !important;
}

.cms-trix-colour-option {
  display: flex;
  align-items: center;

  width: 100%;

  gap: 9px;

  padding: 8px 9px;

  color: #49636e;
  background: transparent;

  border: 0;
  border-radius: 7px;

  cursor: pointer;

  font:
    500 .67rem
    "Work Sans",
    sans-serif;

  text-align: left;

  transition:
    background .15s ease,
    color .15s ease;
}

.cms-trix-colour-option:hover {
  color: #032e4d;
  background: #f0f5f7;
}

.cms-trix-swatch {
  display: inline-block;

  width: 17px;
  height: 17px;

  flex: 0 0 17px;

  border: 1px solid rgba(0, 0, 0, .08);
  border-radius: 5px;
}

.cms-trix-swatch.is-default {
  position: relative;

  background: #fff;

  border-color: #cfd9de;
}

.cms-trix-swatch.is-default::after {
  content: "";

  position: absolute;

  top: 7px;
  left: 2px;

  width: 12px;
  height: 1px;

  background: #d05353;

  transform: rotate(-42deg);
}

.cms-trix-swatch.is-navy {
  background: #032e4d;
}

.cms-trix-swatch.is-blue {
  background: #054d7f;
}

.cms-trix-swatch.is-cyan {
  background: #04a0dd;
}

.cms-trix-swatch.is-orange {
  background: #f28d01;
}

.cms-trix-swatch.is-grey {
  background: #73868f;
}

.cms-trix-swatch.is-green {
  background: #32855a;
}

.cms-trix-swatch.is-black { background: #111827; }
.cms-trix-swatch.is-white { background: #fff; }
.cms-trix-swatch.is-red { background: #d64545; }
.cms-trix-swatch.is-purple { background: #7c4dbe; }
.cms-trix-swatch.is-pink { background: #d94f8a; }
.cms-trix-swatch.is-teal { background: #008b8b; }

.cms-trix-swatch.is-highlight-yellow {
  background: #fff0aa;
}

.cms-trix-swatch.is-highlight-cyan {
  background: #dff5fd;
}

.cms-trix-swatch.is-highlight-grey {
  background: #e9eef0;
}

.cms-trix-swatch.is-highlight-green { background: #dff4e8; }
.cms-trix-swatch.is-highlight-orange { background: #ffe4bd; }
.cms-trix-swatch.is-highlight-pink { background: #f9ddea; }

/* ================================================================
   STORED TEXT COLOURS
   These styles apply in BOTH editor and frontend ActionText output.
   ================================================================ */

.cms-text-navy {
  color: #032e4d !important;
}

.cms-text-blue {
  color: #054d7f !important;
}

.cms-text-cyan {
  color: #04a0dd !important;
}

.cms-text-orange {
  color: #f28d01 !important;
}

.cms-text-grey {
  color: #73868f !important;
}

.cms-text-green {
  color: #32855a !important;
}

/* ================================================================
   STORED HIGHLIGHTS
   ================================================================ */

.cms-highlight-yellow {
  padding: .06em .2em;

  background: #fff0aa;

  border-radius: 3px;
}

.cms-highlight-cyan {
  padding: .06em .2em;

  background: #dff5fd;

  border-radius: 3px;
}

.cms-highlight-grey {
  padding: .06em .2em;

  background: #e9eef0;

  border-radius: 3px;
}

/* ---------------------------------------------------------------
   Toolbar dropdown mobile behaviour
   --------------------------------------------------------------- */

@media screen and (max-width: 760px) {
  .cms-trix-dropdown-menu {
    position: fixed;

    top: auto;
    right: 14px;
    bottom: 14px;
    left: 14px;

    width: auto;

    padding: 10px;

    border-radius: 13px;

    box-shadow:
      0 20px 60px
      rgba(3, 46, 77, .24);
  }

  .cms-trix-colour-option {
    min-height: 42px;

    font-size: .72rem;
  }
}
/* ACTION TEXT SGID CONTENT BLOCKS */
.cms-trix-insert-menu{width:270px}.cms-trix-insert-option{display:flex;align-items:center;width:100%;gap:10px;padding:10px;color:#435f6a;background:transparent;border:0;border-radius:8px;cursor:pointer;text-align:left}.cms-trix-insert-option:hover{color:#032e4d;background:#edf4f7}.cms-trix-insert-icon{display:inline-flex;align-items:center;justify-content:center;width:31px;height:31px;flex:0 0 31px;color:#054d7f;background:#e8f2f6;border-radius:8px;font:700 .7rem "Work Sans",sans-serif}.cms-trix-insert-option strong,.cms-trix-insert-option small{display:block}.cms-trix-insert-option strong{font:650 .68rem "Work Sans",sans-serif}.cms-trix-insert-option small{margin-top:2px;color:#84969d;font:400 .58rem/1.3 "Work Sans",sans-serif}.trix-content action-text-attachment,.insight-article action-text-attachment{display:block;width:100%;margin:1.5rem 0}.cms-rich-text-editor .attachment--content{width:100%;max-width:100%;margin:1.35em 0}.cms-rich-text-editor .attachment--content .attachment__caption{display:none}.cms-content-block{box-sizing:border-box;width:100%}.cms-divider-block{padding:10px 0}.cms-divider-block hr{height:1px;margin:0;background:#dce5e9;border:0}.cms-callout-block{display:flex;align-items:flex-start;gap:12px;padding:16px 18px;background:#f2f7f9;border:1px solid #d8e8ef;border-left:4px solid #04a0dd;border-radius:0 11px 11px 0}.cms-callout-icon{display:inline-flex;align-items:center;justify-content:center;width:27px;height:27px;flex:0 0 27px;color:#fff;background:#04a0dd;border-radius:50%;font:700 .68rem "Work Sans",sans-serif}.cms-callout-content{min-width:0}.cms-callout-title{display:block;margin:1px 0 4px;color:#032e4d;font:650 .82rem "Work Sans",sans-serif}.cms-callout-block p{margin:0!important;color:#4d6974;font:400 .76rem/1.55 "Work Sans",sans-serif}.cms-callout-tip,.cms-callout-success{background:#f4faf7;border-color:#d8eadf;border-left-color:#32855a}.cms-callout-tip .cms-callout-icon,.cms-callout-success .cms-callout-icon{background:#32855a}.cms-callout-warning{background:#fff8ed;border-color:#f7dfb9;border-left-color:#f28d01}.cms-callout-warning .cms-callout-icon{background:#f28d01}.cms-cta-block{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:clamp(20px,4vw,30px);color:#fff;background:linear-gradient(135deg,#032e4d,#054d7f);border-radius:14px}.cms-cta-copy{min-width:0}.cms-cta-title{display:block;margin-bottom:5px;color:#fff;font:500 clamp(1.15rem,2vw,1.45rem)/1.2 "Barlow",sans-serif}.cms-cta-block p{max-width:680px;margin:0!important;color:rgba(255,255,255,.8);font:400 .76rem/1.55 "Work Sans",sans-serif}.cms-cta-button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:10px 16px;flex:0 0 auto;border-radius:8px;font:650 .67rem "Work Sans",sans-serif;text-decoration:none!important;white-space:nowrap}.cms-cta-button-primary{color:#fff!important;background:#f28d01}.cms-cta-button-secondary{color:#032e4d!important;background:#fff}.cms-cta-button-outline{color:#fff!important;background:transparent;border:1px solid rgba(255,255,255,.72)}.cms-youtube-block{overflow:hidden;background:#032e4d;border-radius:13px}.cms-youtube-frame-wrap{position:relative;width:100%;aspect-ratio:16/9;background:#061f31}.cms-youtube-frame-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.cms-youtube-title{display:block;padding:12px 15px;color:#fff;font:550 .78rem/1.35 "Barlow",sans-serif}@media screen and (max-width:760px){.cms-trix-insert-menu{width:auto}.cms-cta-block{align-items:flex-start;flex-direction:column}.cms-cta-button{width:100%}}


/* ================================================================
   ACTION TEXT IMAGE BLOCK
   ================================================================ */

.cms-image-block {
  display: block;
  margin-top: 1.8rem;
  margin-bottom: 1.8rem;
}

.cms-image-block,
.cms-image-block * {
  box-sizing: border-box;
}

.cms-image-link {
  display: block;
  color: inherit;
  text-decoration: none !important;
}

.cms-image-media {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
  margin: 0;
  background: #eef3f5;
}

.cms-image-block.is-rounded .cms-image-media {
  border-radius: 14px;
}

.cms-image-block.is-shadowed .cms-image-media {
  box-shadow:
    0 18px 46px
    rgba(3, 46, 77, .17);
}

.cms-image-caption {
  display: block;
  margin-top: 9px;
  padding: 0 3px;
  color: #71858e;
  font:
    400 .67rem/1.5
    "Work Sans",
    sans-serif;
}

.cms-image-layout-center {
  width: min(100%, 760px);
  margin-right: auto;
  margin-left: auto;
}

.cms-image-layout-wide {
  width: min(100%, 1040px);
  margin-right: auto;
  margin-left: auto;
}

.cms-image-layout-full {
  width: 100%;
}

.cms-image-layout-left {
  width: min(100%, 560px);
  margin-right: auto;
  margin-left: 0;
}

.cms-image-layout-right {
  width: min(100%, 560px);
  margin-right: 0;
  margin-left: auto;
}

/* Keep the image preview clean inside Trix's attachment shell. */
.cms-rich-text-editor .attachment--content .cms-image-block {
  margin-top: 0;
  margin-bottom: 0;
}

.cms-rich-text-editor .attachment--content .cms-image-media {
  max-height: 520px;
  object-fit: contain;
}

/* Slight visual cue that this is an atomic CMS block in the editor. */
.cms-rich-text-editor .attachment--content:has(.cms-image-block) {
  padding: 8px;
  background: #fbfcfd;
  border: 1px dashed #cad9df;
  border-radius: 13px;
}

@media screen and (max-width: 760px) {
  .cms-image-layout-center,
  .cms-image-layout-wide,
  .cms-image-layout-full,
  .cms-image-layout-left,
  .cms-image-layout-right {
    width: 100%;
    margin-right: 0;
    margin-left: 0;
  }

  .cms-image-block.is-rounded .cms-image-media {
    border-radius: 10px;
  }
}


/* ================================================================
   RICH TEXT IMAGE DRAG & DROP
   ================================================================ */

.cms-rich-text-editor::after {
  content: "";
  pointer-events: none;
  position: absolute;
  inset: 0;
  z-index: 80;
  opacity: 0;
  visibility: hidden;
  border: 2px dashed #04a0dd;
  border-radius: 14px;
  background: rgba(4, 160, 221, .08);
  transition:
    opacity .14s ease,
    visibility .14s ease;
}

.cms-rich-text-editor.is-image-dragover::after {
  opacity: 1;
  visibility: visible;
}

.cms-rich-text-editor.is-image-dragover .cms-rich-text-editor-surface {
  position: relative;
}

.cms-rich-text-editor.is-image-dragover .cms-rich-text-editor-surface::after {
  content: "Drop image to insert";
  pointer-events: none;
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 81;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 210px;
  min-height: 54px;
  padding: 12px 18px;
  color: #032e4d;
  background: rgba(255, 255, 255, .96);
  border: 1px solid #b9dae8;
  border-radius: 12px;
  box-shadow: 0 16px 42px rgba(3, 46, 77, .16);
  font: 650 .76rem "Work Sans", sans-serif;
  transform: translate(-50%, -50%);
}


/* ================================================================
   FINAL EDITORIAL BLOCKS — GALLERY / FAQ / TABLE / BUTTON / QUOTE
   ================================================================ */

/* FAQ ----------------------------------------------------------- */

.cms-faq-block {
  display: grid;
  gap: 9px;
  margin: 1.8rem 0;
}

.cms-faq-item {
  overflow: hidden;
  background: #fff;
  border: 1px solid #dce5e9;
  border-radius: 10px;
}

.cms-faq-question {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  padding: 14px 16px;
  color: #032e4d;
  cursor: pointer;
  list-style: none;
  font: 600 .78rem/1.4 "Work Sans", sans-serif;
}

.cms-faq-question::-webkit-details-marker {
  display: none;
}

.cms-faq-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 25px;
  height: 25px;
  flex: 0 0 25px;
  color: #054d7f;
  background: #edf4f7;
  border-radius: 7px;
  transition: transform .18s ease;
}

.cms-faq-item[open] .cms-faq-icon {
  transform: rotate(45deg);
}

.cms-faq-answer {
  padding: 0 16px 15px;
  color: #536c76;
  font: 400 .74rem/1.65 "Work Sans", sans-serif;
}

.cms-faq-answer p {
  margin: 0;
}

/* Table --------------------------------------------------------- */

.cms-table-block {
  margin: 1.8rem 0;
}

.cms-table-scroll {
  overflow-x: auto;
  border: 1px solid #dce5e9;
  border-radius: 11px;
  -webkit-overflow-scrolling: touch;
}

.cms-content-table {
  width: 100%;
  min-width: 560px;
  border-collapse: collapse;
  background: #fff;
}

.cms-content-table th,
.cms-content-table td {
  padding: 12px 14px;
  text-align: left;
  vertical-align: top;
  border-bottom: 1px solid #e6edef;
  font: 400 .7rem/1.5 "Work Sans", sans-serif;
}

.cms-content-table th {
  color: #032e4d;
  background: #f1f6f8;
  font-weight: 650;
}

.cms-content-table tbody tr:last-child td {
  border-bottom: 0;
}

/* Small Button -------------------------------------------------- */

.cms-button-block {
  margin: 1.4rem 0;
}

.cms-inline-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 10px 17px;
  border-radius: 8px;
  font: 650 .68rem "Work Sans", sans-serif;
  text-decoration: none !important;
}

.cms-inline-button-primary {
  color: #fff !important;
  background: #f28d01;
}

.cms-inline-button-secondary {
  color: #fff !important;
  background: #054d7f;
}

.cms-inline-button-outline {
  color: #054d7f !important;
  background: transparent;
  border: 1px solid #7aa5bd;
}

@media screen and (max-width: 760px) {
  .cms-gallery-grid_2 .cms-gallery-grid,
  .cms-gallery-grid_3 .cms-gallery-grid {
    grid-template-columns: 1fr;
  }

  .cms-gallery-masonry .cms-gallery-grid {
    columns: 1;
  }

  .cms-gallery-image {
    min-height: 220px;
  }
}

/* ================================================================
   GALLERY CAROUSEL V8
   ================================================================ */

.cms-gallery-carousel {
  width: 100%;
  margin: 2rem auto;
  outline: none;
}

.cms-gallery-carousel-viewport {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(
      180deg,
      #f6f8f9,
      #edf2f4
    );
  border: 1px solid #d8e2e6;
  border-radius: 18px;
  box-shadow:
    0 16px 44px
    rgba(3, 46, 77, .09);
}

.cms-gallery-carousel-track {
  display: flex;
  width: 100%;
  transform: translate3d(0, 0, 0);
  transition:
    transform .42s
    cubic-bezier(.22, .61, .36, 1);
  will-change: transform;
}

.cms-gallery-carousel-slide {
  flex: 0 0 100%;
  min-width: 0;
}

.cms-gallery-carousel-image-button {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;

  width: 100%;
  height: clamp(420px, 52vw, 640px);
  padding: 0;

  overflow: hidden;

  background:
    radial-gradient(
      circle at center,
      #fff 0%,
      #f3f6f7 70%,
      #edf1f3 100%
    );

  border: 0;

  cursor: zoom-in;
}

.cms-gallery-carousel-image {
  display: block;

  width: 100%;
  height: 100%;

  object-fit: contain;
  object-position: center;

  background: transparent;
}

.cms-gallery-carousel-arrow {
  position: absolute;
  top: 50%;
  z-index: 5;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  padding: 0;
  color: #032e4d;
  background: rgba(255, 255, 255, .94);
  border: 1px solid rgba(3, 46, 77, .12);
  border-radius: 999px;
  box-shadow:
    0 10px 26px
    rgba(3, 46, 77, .16);
  cursor: pointer;
  transform: translateY(-50%);
  transition:
    transform .15s ease,
    background .15s ease,
    box-shadow .15s ease;
}

.cms-gallery-carousel-arrow span {
  display: block;
  margin-top: -3px;
  font: 300 2rem/1 "Barlow", sans-serif;
}

.cms-gallery-carousel-arrow:hover {
  background: #fff;
  box-shadow:
    0 13px 30px
    rgba(3, 46, 77, .2);
  transform:
    translateY(-50%)
    scale(1.05);
}

.cms-gallery-carousel-arrow.is-prev {
  left: 16px;
}

.cms-gallery-carousel-arrow.is-next {
  right: 16px;
}

.cms-gallery-carousel-counter {
  position: absolute;
  right: 14px;
  bottom: 14px;
  z-index: 5;
  padding: 7px 10px;
  color: #fff;
  background: rgba(3, 46, 77, .82);
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 999px;
  backdrop-filter: blur(9px);
  font: 600 .6rem/1 "Work Sans", sans-serif;
}

.cms-gallery-carousel-thumbnails {
  display: flex;
  gap: 8px;
  width: 100%;
  margin-top: 11px;
  padding: 2px 1px 5px;
  overflow-x: auto;
  scrollbar-width: thin;
  scroll-behavior: smooth;
}

.cms-gallery-carousel-thumbnail {
  flex: 0 0 86px;
  height: 62px;
  padding: 3px;
  overflow: hidden;
  background: #fff;
  border: 1px solid #d7e1e5;
  border-radius: 9px;
  cursor: pointer;
  opacity: .65;
  transition:
    opacity .15s ease,
    border-color .15s ease,
    box-shadow .15s ease,
    transform .15s ease;
}

.cms-gallery-carousel-thumbnail:hover {
  opacity: .9;
  transform: translateY(-1px);
}

.cms-gallery-carousel-thumbnail.is-active {
  opacity: 1;
  border-color: #054d7f;
  box-shadow:
    0 0 0 2px
    rgba(5, 77, 127, .12);
}

.cms-gallery-carousel-thumbnail-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 6px;
}

.cms-gallery-caption {
  margin-top: 10px;
  padding: 0 4px;
  color: #71858e;
  font: 400 .67rem/1.5 "Work Sans", sans-serif;
}

/* Fullscreen lightbox ------------------------------------------- */

.cms-gallery-lightbox-open {
  overflow: hidden;
}

.cms-gallery-lightbox {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(18px, 4vw, 48px);
  background: rgba(1, 17, 28, .92);
  backdrop-filter: blur(10px);
  cursor: zoom-out;
}

.cms-gallery-lightbox img {
  display: block;
  max-width: 94vw;
  max-height: 90vh;
  object-fit: contain;
  border-radius: 10px;
  box-shadow:
    0 24px 70px
    rgba(0, 0, 0, .35);
}

.cms-gallery-lightbox-close {
  position: fixed;
  top: 20px;
  right: 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  color: #fff;
  background: rgba(255, 255, 255, .11);
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 999px;
  cursor: pointer;
  font: 300 1.7rem/1 "Barlow", sans-serif;
}

@media screen and (max-width: 760px) {
  .cms-gallery-carousel-image-button {
    height: min(72vw, 440px);
    min-height: 300px;
  }

  .cms-gallery-carousel-arrow {
    width: 38px;
    height: 38px;
  }

  .cms-gallery-carousel-arrow.is-prev {
    left: 9px;
  }

  .cms-gallery-carousel-arrow.is-next {
    right: 9px;
  }

  .cms-gallery-carousel-thumbnail {
    flex-basis: 70px;
    height: 52px;
  }

  .cms-quote-block {
    padding:
      28px
      20px
      24px;
  }

  .cms-quote-mark {
    font-size: 3.8rem;
  }
}


/* ================================================================
   CMS EDITOR COMPLETE V10
   ================================================================ */

.cms-block-heading {
  margin: 0 0 18px !important;
  color: #032e4d;
  font: 500 clamp(1.25rem, 2.3vw, 1.7rem)/1.25 "Barlow", sans-serif;
}

.cms-code-block {
  overflow: hidden;
  margin: 1.8rem 0;
  background: #071d2c;
  border: 1px solid #16364a;
  border-radius: 12px;
}

.cms-code-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 13px;
  color: #b9c8d0;
  background: #0b2639;
  border-bottom: 1px solid #16364a;
  font: 500 .62rem "Work Sans", sans-serif;
}

.cms-code-toolbar strong {
  margin-right: 8px;
  color: #fff;
}

.cms-code-copy-button {
  padding: 5px 9px;
  color: #fff;
  background: #17425a;
  border: 0;
  border-radius: 6px;
  cursor: pointer;
  font: 600 .58rem "Work Sans", sans-serif;
}

.cms-code-block pre {
  margin: 0 !important;
  padding: 18px;
  overflow-x: auto;
  background: transparent !important;
}

.cms-code-block code {
  color: #dce8ed;
  white-space: pre;
  font: 400 .72rem/1.65 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

.cms-timeline-block,
.cms-stats-block,
.cms-team-block,
.cms-pricing-block {
  margin: 2rem 0;
}

.cms-timeline-list {
  position: relative;
  display: grid;
}

.cms-timeline-list::before {
  content: "";
  position: absolute;
  top: 10px;
  bottom: 10px;
  left: 7px;
  width: 2px;
  background: #d8e4e9;
}

.cms-timeline-item {
  position: relative;
  display: grid;
  grid-template-columns: 16px 1fr;
  gap: 18px;
  padding-bottom: 24px;
}

.cms-timeline-marker {
  position: relative;
  z-index: 1;
  width: 16px;
  height: 16px;
  margin-top: 4px;
  background: #f28d01;
  border: 4px solid #fff;
  border-radius: 50%;
  box-shadow: 0 0 0 2px #f28d01;
}

.cms-timeline-label {
  display: block;
  margin-bottom: 4px;
  color: #04a0dd;
  font: 650 .6rem "Work Sans", sans-serif;
  text-transform: uppercase;
  letter-spacing: .05em;
}

.cms-timeline-content h4,
.cms-team-content h4,
.cms-pricing-card h4 {
  margin: 0 0 5px !important;
  color: #032e4d;
  font: 600 1rem "Barlow", sans-serif;
}

.cms-timeline-content p,
.cms-team-content p,
.cms-pricing-card p {
  color: #647b85;
  font: 400 .68rem/1.58 "Work Sans", sans-serif;
}

.cms-stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 12px;
}

.cms-stat-card {
  padding: 20px;
  background: #f4f8fa;
  border: 1px solid #dce7eb;
  border-radius: 12px;
}

.cms-stat-value {
  display: block;
  color: #054d7f;
  font: 600 clamp(1.8rem, 4vw, 2.7rem)/1 "Barlow", sans-serif;
}

.cms-stat-label {
  display: block;
  margin-top: 7px;
  color: #032e4d;
  font: 650 .68rem "Work Sans", sans-serif;
}

.cms-logo-cloud-block {
  margin: 2rem 0;
  padding: 22px;
  background: #fafcfd;
  border: 1px solid #e0e8eb;
  border-radius: 13px;
}

.cms-logo-cloud-heading {
  margin: 0 0 16px !important;
  color: #71858e;
  text-align: center;
  font: 600 .62rem "Work Sans", sans-serif;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.cms-logo-cloud-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
  gap: 12px;
  align-items: center;
}

.cms-logo-cloud-item {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 78px;
  padding: 13px;
  background: #fff;
  border: 1px solid #e2e9ec;
  border-radius: 9px;
}

.cms-logo-cloud-image {
  display: block;
  max-width: 100%;
  max-height: 48px;
  width: auto;
  height: auto;
  object-fit: contain;
}

.cms-team-grid,
.cms-pricing-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(215px, 1fr));
  gap: 14px;
}

.cms-team-card,
.cms-pricing-card {
  overflow: hidden;
  background: #fff;
  border: 1px solid #dce5e9;
  border-radius: 12px;
}

.cms-team-image {
  display: block;
  width: 100%;
  height: 230px;
  object-fit: cover;
}

.cms-team-content,
.cms-pricing-card {
  padding: 16px;
}

.cms-pricing-card {
  display: flex;
  flex-direction: column;
  padding: 22px;
}

.cms-pricing-card.is-featured {
  border-color: #f28d01;
  box-shadow: 0 14px 36px rgba(242, 141, 1, .12);
}

.cms-pricing-price {
  display: block;
  margin-top: 9px;
  color: #054d7f;
  font: 600 1.6rem "Barlow", sans-serif;
}

.cms-pricing-card ul {
  margin: 14px 0 18px !important;
  padding-left: 18px !important;
}

.cms-download-block {
  display: flex;
  align-items: center;
  gap: 15px;
  margin: 1.8rem 0;
  padding: 17px;
  background: #f5f9fa;
  border: 1px solid #dce7eb;
  border-radius: 12px;
}

.cms-download-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  color: #fff;
  background: #054d7f;
  border-radius: 9px;
  font: 700 1rem "Work Sans", sans-serif;
}

.cms-download-copy {
  min-width: 0;
  flex: 1;
}

.cms-download-copy strong,
.cms-download-copy span {
  display: block;
}

.cms-download-copy strong {
  color: #032e4d;
  font: 600 .8rem "Work Sans", sans-serif;
}

.cms-download-copy p {
  margin: 4px 0 !important;
  color: #6e838c;
  font: 400 .64rem/1.45 "Work Sans", sans-serif;
}

.cms-download-copy span {
  color: #91a0a6;
  font: 500 .56rem "Work Sans", sans-serif;
}

@media screen and (max-width: 760px) {
  .cms-download-block {
    align-items: flex-start;
    flex-direction: column;
  }

  .cms-download-block .cms-inline-button {
    width: 100%;
  }
}


/* ================================================================
   CMS FRONTEND BLOCK POLISH V11
   Stable article layout, spacing and responsive behavior
   ================================================================ */

/* Action Text custom attachments must behave like full article blocks. */
.trix-content action-text-attachment,
.public-insight-article action-text-attachment,
.insight-article action-text-attachment,
.admin-show-content action-text-attachment {
  display: block;
  width: 100%;
  max-width: 100%;
  margin: 0;
  overflow: visible;
}

/* Prevent surrounding Action Text line-height from crushing block layouts. */
.trix-content action-text-attachment > .cms-content-block,
.public-insight-article action-text-attachment > .cms-content-block,
.insight-article action-text-attachment > .cms-content-block,
.admin-show-content action-text-attachment > .cms-content-block {
  width: 100%;
  max-width: 100%;
  margin-top: 2rem;
  margin-bottom: 2rem;
  line-height: normal;
}

/* Keep block internals from inheriting destructive article rules. */
.cms-content-block,
.cms-content-block *,
.cms-content-block *::before,
.cms-content-block *::after {
  box-sizing: border-box;
}

/* ---------------------------------------------------------------
   Timeline
   --------------------------------------------------------------- */

.cms-timeline-block {
  width: min(100%, 920px);
  margin-right: auto !important;
  margin-left: auto !important;
  padding: clamp(20px, 3vw, 30px);

  background: #fbfcfd;
  border: 1px solid #dfe8eb;
  border-radius: 16px;
}

.cms-timeline-block .cms-block-heading {
  margin: 0 0 26px !important;
}

.cms-timeline-list {
  position: relative;
  display: grid;
  gap: 0;
  padding-left: 4px;
}

.cms-timeline-list::before {
  top: 12px;
  bottom: 12px;
  left: 11px;
  width: 2px;
}

.cms-timeline-item {
  grid-template-columns: 24px minmax(0, 1fr);
  gap: 18px;
  padding: 0 0 28px;
}

.cms-timeline-item:last-child {
  padding-bottom: 0;
}

.cms-timeline-marker {
  width: 16px;
  height: 16px;
  margin-top: 5px;
  margin-left: 3px;
}

.cms-timeline-content {
  min-width: 0;
  padding: 0 0 2px;
}

.cms-timeline-label {
  margin-bottom: 6px;
}

.cms-timeline-content h4 {
  margin: 0 0 7px !important;
  overflow-wrap: anywhere;
}

.cms-timeline-content p {
  max-width: 760px;
  margin: 0 !important;
  overflow-wrap: anywhere;
}

/* ---------------------------------------------------------------
   Statistics
   --------------------------------------------------------------- */

.cms-stats-block {
  width: min(100%, 1040px);
  margin-right: auto !important;
  margin-left: auto !important;
}

.cms-stats-block .cms-block-heading {
  margin-bottom: 20px !important;
}

.cms-stats-grid {
  grid-template-columns:
    repeat(
      auto-fit,
      minmax(
        min(100%, 210px),
        1fr
      )
    );

  gap: 14px;
  align-items: stretch;
}

.cms-stat-card {
  display: flex;
  flex-direction: column;
  min-height: 150px;
  padding: 22px;

  background:
    linear-gradient(
      180deg,
      #f8fbfc,
      #f1f6f8
    );

  border: 1px solid #dbe6ea;
  border-radius: 14px;
}

.cms-stat-value {
  overflow-wrap: anywhere;
}

.cms-stat-label {
  margin-top: 10px;
}

.cms-stat-card p {
  margin: 10px 0 0 !important;
  overflow-wrap: anywhere;
}

/* ---------------------------------------------------------------
   Team
   --------------------------------------------------------------- */

.cms-team-block {
  width: min(100%, 1100px);
  margin-right: auto !important;
  margin-left: auto !important;
}

.cms-team-block .cms-block-heading {
  margin-bottom: 22px !important;
}

.cms-team-grid {
  grid-template-columns:
    repeat(
      auto-fit,
      minmax(
        min(100%, 250px),
        1fr
      )
    );

  gap: 16px;
  align-items: stretch;
}

.cms-team-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  height: 100%;

  overflow: hidden;

  background: #fff;
  border: 1px solid #dce6ea;
  border-radius: 14px;

  box-shadow:
    0 10px 30px
    rgba(3, 46, 77, .06);
}

.cms-team-image {
  width: 100%;
  height: 250px;
  flex: 0 0 250px;
  object-fit: cover;
  object-position: center;
}

.cms-team-content {
  display: flex;
  flex: 1;
  flex-direction: column;

  min-width: 0;
  padding: 19px;
}

.cms-team-content h4 {
  margin: 0 !important;
  overflow-wrap: anywhere;
}

.cms-team-content > span {
  margin-top: 5px;
  overflow-wrap: anywhere;
}

.cms-team-content p {
  flex: 1;
  margin: 12px 0 14px !important;
  overflow-wrap: anywhere;
}

.cms-team-content > a {
  align-self: flex-start;
  margin-top: auto;

  color: #054d7f;
  font: 650 .64rem "Work Sans", sans-serif;
  text-decoration: none;
}

.cms-team-content > a:hover {
  text-decoration: underline;
}

/* ---------------------------------------------------------------
   Pricing / comparison cards
   --------------------------------------------------------------- */

.cms-pricing-block {
  width: min(100%, 1120px);
  margin-right: auto !important;
  margin-left: auto !important;
}

.cms-pricing-block .cms-block-heading {
  margin-bottom: 22px !important;
}

.cms-pricing-grid {
  grid-template-columns:
    repeat(
      auto-fit,
      minmax(
        min(100%, 245px),
        1fr
      )
    );

  gap: 16px;
  align-items: stretch;
}

.cms-pricing-card {
  position: relative;

  display: flex;
  flex-direction: column;

  min-width: 0;
  min-height: 100%;
  padding: 24px;

  background: #fff;

  border: 1px solid #dbe5e9;
  border-radius: 15px;

  box-shadow:
    0 10px 30px
    rgba(3, 46, 77, .055);
}

.cms-pricing-card.is-featured {
  border-color: #f28d01;

  box-shadow:
    0 16px 42px
    rgba(242, 141, 1, .14);
}

.cms-pricing-card.is-featured::before {
  content: "Featured";

  position: absolute;
  top: 14px;
  right: 14px;

  padding: 5px 8px;

  color: #8a4f00;
  background: #fff1dc;

  border-radius: 999px;

  font: 650 .52rem/1 "Work Sans", sans-serif;

  text-transform: uppercase;
  letter-spacing: .05em;
}

.cms-pricing-card h4 {
  max-width: calc(100% - 72px);
  margin: 0 !important;
  overflow-wrap: anywhere;
}

.cms-pricing-price {
  margin-top: 13px;
  overflow-wrap: anywhere;
}

.cms-pricing-card > p {
  margin: 12px 0 0 !important;
  overflow-wrap: anywhere;
}

.cms-pricing-card ul {
  flex: 1;
  margin: 18px 0 22px !important;
  padding: 0 !important;

  list-style: none;
}

.cms-pricing-card li {
  position: relative;

  margin: 0 !important;
  padding: 7px 0 7px 22px;

  overflow-wrap: anywhere;
}

.cms-pricing-card li::before {
  content: "✓";

  position: absolute;
  top: 7px;
  left: 0;

  color: #27935c;

  font-weight: 700;
}

.cms-pricing-card > .cms-inline-button {
  width: 100%;
  margin-top: auto;
  text-align: center;
}

/* ---------------------------------------------------------------
   Logo cloud
   --------------------------------------------------------------- */

.cms-logo-cloud-block {
  width: min(100%, 1040px);
  margin-right: auto !important;
  margin-left: auto !important;
}

.cms-logo-cloud-grid {
  grid-template-columns:
    repeat(
      auto-fit,
      minmax(
        min(100%, 140px),
        1fr
      )
    );

  gap: 14px;
}

.cms-logo-cloud-item {
  min-width: 0;
  min-height: 96px;
  padding: 18px;
}

.cms-logo-cloud-image {
  max-height: 54px;
}

/* ---------------------------------------------------------------
   Downloads
   --------------------------------------------------------------- */

.cms-download-block {
  width: min(100%, 900px);
  margin-right: auto !important;
  margin-left: auto !important;
  padding: 18px 20px;
}

.cms-download-copy strong,
.cms-download-copy p,
.cms-download-copy span {
  overflow-wrap: anywhere;
}

/* ---------------------------------------------------------------
   Code
   --------------------------------------------------------------- */

.cms-code-block {
  width: min(100%, 980px);
  margin-right: auto !important;
  margin-left: auto !important;
}

.cms-code-toolbar {
  flex-wrap: wrap;
}

.cms-code-block pre {
  max-width: 100%;
}

/* ---------------------------------------------------------------
   Table
   --------------------------------------------------------------- */

.cms-table-block {
  width: 100%;
  max-width: 100%;
}

.cms-table-scroll {
  width: 100%;
  max-width: 100%;
}

/* ---------------------------------------------------------------
   Mobile
   --------------------------------------------------------------- */

@media screen and (max-width: 760px) {
  .trix-content action-text-attachment > .cms-content-block,
  .public-insight-article action-text-attachment > .cms-content-block,
  .insight-article action-text-attachment > .cms-content-block,
  .admin-show-content action-text-attachment > .cms-content-block {
    margin-top: 1.5rem;
    margin-bottom: 1.5rem;
  }

  .cms-timeline-block {
    padding: 18px 16px;
  }

  .cms-timeline-item {
    grid-template-columns: 22px minmax(0, 1fr);
    gap: 13px;
    padding-bottom: 22px;
  }

  .cms-stats-grid,
  .cms-team-grid,
  .cms-pricing-grid {
    grid-template-columns: 1fr;
  }

  .cms-stat-card {
    min-height: 0;
  }

  .cms-team-image {
    height: 280px;
    flex-basis: 280px;
  }

  .cms-pricing-card {
    min-height: 0;
  }

  .cms-pricing-card h4 {
    max-width: calc(100% - 68px);
  }

  .cms-logo-cloud-grid {
    grid-template-columns:
      repeat(
        2,
        minmax(0, 1fr)
      );
  }
}

@media screen and (max-width: 430px) {
  .cms-team-image {
    height: 240px;
    flex-basis: 240px;
  }

  .cms-logo-cloud-grid {
    grid-template-columns: 1fr 1fr;
  }

  .cms-pricing-card,
  .cms-stat-card {
    padding: 19px;
  }
}
