/* CICOR Marketing Base theme: main stylesheet (mobile first) */
















:root {
  /* Brand colors */
  --cm-primary: #1E4E8C;
  --cm-secondary: #0F6E6E;
  --cm-accent: #C2410C;
  --cm-dark: #14202E;
  --cm-light: #F2F5F8;
  --cm-text: #3A4452;
  --cm-bg: #FFFFFF;
  --cm-border: #DCE2E8;
  --cm-on-primary: #FFFFFF;
  --cm-on-accent: #FFFFFF;
  --cm-heading: var(--cm-dark);
  --cm-primary-hover: color-mix(in srgb, var(--cm-primary) 82%, #000);
  --cm-accent-hover: color-mix(in srgb, var(--cm-accent) 82%, #000);
  --cm-secondary-hover: color-mix(in srgb, var(--cm-secondary) 82%, #000);
  --cm-light-tint: color-mix(in srgb, var(--cm-light) 55%, #fff);
  --cm-focus: color-mix(in srgb, var(--cm-primary) 70%, #000);

  /* Typography */
  --cm-font-heading: 'Montserrat', sans-serif;
  --cm-font-body: 'Open Sans', sans-serif;
  --cm-heading-weight: 700;
  --cm-fs-base: 17.0px;
  --cm-lh: 1.7;
  --cm-fs-sm: 15.5px;
  --cm-fs-lead: clamp(18.9px, calc(18.9px + 2.3 * ((100vw - 380px) / 1060)), 21.2px);
  --cm-fs-h1: clamp(35.2px, calc(35.2px + 19.8 * ((100vw - 380px) / 1060)), 54.9px);
  --cm-fs-h2: clamp(28.1px, calc(28.1px + 7.0 * ((100vw - 380px) / 1060)), 35.2px);
  --cm-fs-h3: clamp(24.3px, calc(24.3px + 3.8 * ((100vw - 380px) / 1060)), 28.1px);
  --cm-fs-h4: 22.5px;
  --cm-fs-h5: 18.9px;
  --cm-fs-stat: clamp(35.2px, calc(35.2px + 19.8 * ((100vw - 380px) / 1060)), 54.9px);
  --cm-eyebrow-case: uppercase;
  --cm-eyebrow-spacing: .12em;

  /* Buttons */
  --cm-btn-radius: 5px;
  --cm-btn-py: 14px;
  --cm-btn-px: 28px;
  --cm-btn-weight: 700;
  --cm-btn-case: none;

  /* Spacing scale */
  --cm-space-1: 4.0px;
  --cm-space-2: 8px;
  --cm-space-3: 16px;
  --cm-space-4: 24px;
  --cm-space-5: 32px;
  --cm-space-6: 48px;
  --cm-space-7: 64px;
  --cm-space-8: 96px;
  --cm-section-y: 56px;
  --cm-section-y-desktop: 96px;
  --cm-container: 1200px;
  --cm-gutter: 32px;
  --cm-page-x: 20px;

  /* Surfaces */
  --cm-card-radius: 12px;
  --cm-img-radius: 12px;
  --cm-shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 4px 12px rgba(16, 24, 40, .06);
  --cm-shadow-hover: 0 4px 8px rgba(16, 24, 40, .08), 0 24px 48px rgba(16, 24, 40, .14);
  --cm-card-border: 1px solid color-mix(in srgb, var(--cm-border) 60%, transparent);

  /* Header */
  --cm-header-h: 76px;
}

@media (min-width: 768px) {
  :root {
    --cm-fs-base: 18.0px;
    --cm-section-y: 96px;
    --cm-page-x: 32px;
  }
}

/* Generic: reset and normalize (from the HubSpot CMS boilerplate) */
*, *: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;
}

/**
 * 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
   ========================================================================== */

/**
 * Add the correct box sizing in Firefox.
 */

hr {
  box-sizing: content-box;
  height: 0;
}

/**
 * 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
   ========================================================================== */

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, 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;
}

/* 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 */
}

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

button,
select { /* 1 */
  text-transform: 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;
}

/**
 * Remove the padding so developers are not caught out when they zero out `fieldset` elements in all browsers.
 */

legend {
  padding: 0;
}

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

progress {
  vertical-align: baseline;
}

/**
 * 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 and Firefox.
 */

details {
  display: block;
}

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

summary {
  display: list-item;
}

/* Objects: HubSpot drag and drop grid and containers */


/* CSS variables */

:root {
  --column-gap: 2.13%;
  --column-width-multiplier: 8.333;
}

/* Mobile layout */

.row-fluid {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
}


  .row-fluid .span1,
  .row-fluid .span2,
  .row-fluid .span3,
  .row-fluid .span4,
  .row-fluid .span5,
  .row-fluid .span6,
  .row-fluid .span7,
  .row-fluid .span8,
  .row-fluid .span9,
  .row-fluid .span10,
  .row-fluid .span11,
  .row-fluid .span12{
  min-height: 1px;
  width: 100%;
}

/* Desktop layout */

@media (min-width: 768px) {
  .row-fluid {
    flex-wrap: nowrap;
    justify-content: space-between;
  }

  
    .row-fluid .span1 {
      width: calc(var(--column-width-multiplier) * 1% * 1 - var(--column-gap) * (11 * var(--column-width-multiplier) / 100));
    }
  
    .row-fluid .span2 {
      width: calc(var(--column-width-multiplier) * 1% * 2 - var(--column-gap) * (10 * var(--column-width-multiplier) / 100));
    }
  
    .row-fluid .span3 {
      width: calc(var(--column-width-multiplier) * 1% * 3 - var(--column-gap) * (9 * var(--column-width-multiplier) / 100));
    }
  
    .row-fluid .span4 {
      width: calc(var(--column-width-multiplier) * 1% * 4 - var(--column-gap) * (8 * var(--column-width-multiplier) / 100));
    }
  
    .row-fluid .span5 {
      width: calc(var(--column-width-multiplier) * 1% * 5 - var(--column-gap) * (7 * var(--column-width-multiplier) / 100));
    }
  
    .row-fluid .span6 {
      width: calc(var(--column-width-multiplier) * 1% * 6 - var(--column-gap) * (6 * var(--column-width-multiplier) / 100));
    }
  
    .row-fluid .span7 {
      width: calc(var(--column-width-multiplier) * 1% * 7 - var(--column-gap) * (5 * var(--column-width-multiplier) / 100));
    }
  
    .row-fluid .span8 {
      width: calc(var(--column-width-multiplier) * 1% * 8 - var(--column-gap) * (4 * var(--column-width-multiplier) / 100));
    }
  
    .row-fluid .span9 {
      width: calc(var(--column-width-multiplier) * 1% * 9 - var(--column-gap) * (3 * var(--column-width-multiplier) / 100));
    }
  
    .row-fluid .span10 {
      width: calc(var(--column-width-multiplier) * 1% * 10 - var(--column-gap) * (2 * var(--column-width-multiplier) / 100));
    }
  
    .row-fluid .span11 {
      width: calc(var(--column-width-multiplier) * 1% * 11 - var(--column-gap) * (1 * var(--column-width-multiplier) / 100));
    }
  
}
/* Containers and drag and drop sections */
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--cm-header-h) + 16px); }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

body { background: var(--cm-bg); }

.content-wrapper,
.cm-container {
  width: 100%;
  max-width: calc(var(--cm-container) + var(--cm-page-x) * 2);
  margin-inline: auto;
  padding-inline: var(--cm-page-x);
}

.dnd-section {
  padding: var(--cm-section-y) var(--cm-page-x);
}
.dnd-section > .row-fluid {
  max-width: var(--cm-container);
  margin-inline: auto;
}
/* Columns: boilerplate grid math, gap driven by the theme gutter setting */
.dnd-section .row-fluid { --column-gap: var(--cm-gutter); row-gap: var(--cm-space-5); }
@media (min-width: 768px) {
  .dnd-section .row-fluid { row-gap: 0; }
}
/* A full width module (hero, bands) can opt out of section padding by adding the class
   "cm-flush" to the section in the editor (Section > Advanced > CSS class). */
.dnd-section.cm-flush { padding-top: 0; padding-bottom: 0; }
.dnd-section.cm-flush-x { padding-inline: 0; }
.dnd-section.cm-flush-x > .row-fluid { max-width: none; }

/* Section color helpers editors can add as a CSS class */
.cm-bg-light { background-color: var(--cm-light) !important; }
.cm-bg-tint { background-color: var(--cm-light-tint) !important; }
.cm-bg-primary { background-color: var(--cm-primary) !important; }
.cm-bg-dark { background-color: var(--cm-dark) !important; }

.body-container--landing { min-height: 60vh; }

/* Elements */
/* Typography */
html { font-size: 100%; -webkit-text-size-adjust: 100%; }
body {
  font-family: var(--cm-font-body);
  font-size: var(--cm-fs-base);
  line-height: var(--cm-lh);
  color: var(--cm-text);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5, h6, .cm-h1, .cm-h2, .cm-h3, .cm-h4 {
  font-family: var(--cm-font-heading);
  font-weight: var(--cm-heading-weight);
  color: var(--cm-heading);
  line-height: 1.18;
  letter-spacing: -.01em;
  margin: 0 0 .5em;
  text-wrap: balance;
}
h1, .cm-h1 { font-size: var(--cm-fs-h1); line-height: 1.1; letter-spacing: -.02em; }
h2, .cm-h2 { font-size: var(--cm-fs-h2); }
h3, .cm-h3 { font-size: var(--cm-fs-h3); line-height: 1.25; }
h4, .cm-h4 { font-size: var(--cm-fs-h4); line-height: 1.3; }
h5, h6 { font-size: var(--cm-fs-h5); line-height: 1.35; }

p, ul, ol, blockquote, figure, table { margin: 0 0 1.1em; }
p:last-child, ul:last-child, ol:last-child { margin-bottom: 0; }
ul, ol { padding-left: 1.25em; }
li + li { margin-top: .35em; }
strong, b { font-weight: 700; }
small { font-size: var(--cm-fs-sm); }
hr { border: 0; border-top: 1px solid var(--cm-border); margin: var(--cm-space-6) 0; }
img { max-width: 100%; height: auto; }
blockquote { border-left: 4px solid var(--cm-secondary); padding-left: var(--cm-space-3); font-size: var(--cm-fs-lead); }

a { color: var(--cm-primary); text-decoration-thickness: 1px; text-underline-offset: .18em; }
a:hover { color: var(--cm-primary-hover); text-decoration-thickness: 2px; }

/* Visible, consistent keyboard focus (WCAG 2.4.7 / 2.4.11) */
:focus-visible {
  outline: 3px solid var(--cm-focus);
  outline-offset: 3px;
  border-radius: 2px;
}
.cm-on-dark :focus-visible { outline-color: #fff; }

.cm-eyebrow {
  display: inline-block;
  font-family: var(--cm-font-body);
  font-size: var(--cm-fs-sm);
  font-weight: 700;
  text-transform: var(--cm-eyebrow-case);
  letter-spacing: var(--cm-eyebrow-spacing);
  color: var(--cm-secondary);
  margin-bottom: var(--cm-space-2);
}
.cm-lead { font-size: var(--cm-fs-lead); line-height: 1.6; }

/* Rich text inside light/dark surfaces */
.cm-on-dark, .cm-on-dark h1, .cm-on-dark h2, .cm-on-dark h3, .cm-on-dark h4, .cm-on-dark p, .cm-on-dark li { color: #fff; }
.cm-on-dark a:not(.cm-btn) { color: #fff; }
.cm-on-dark .cm-eyebrow { color: color-mix(in srgb, #fff 85%, var(--cm-accent)); }
/* Buttons: .cm-btn plus HubSpot form submit and CTA buttons share one look */
.cm-btn,
.hs-button,
input[type="submit"],
button.cm-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5em;
  min-height: 48px; /* comfortable touch target */
  padding: var(--cm-btn-py) var(--cm-btn-px);
  border: 2px solid var(--cm-primary);
  border-radius: var(--cm-btn-radius);
  background: var(--cm-primary);
  color: var(--cm-on-primary);
  font-family: var(--cm-font-body);
  font-size: 1rem;
  font-weight: var(--cm-btn-weight);
  line-height: 1.2;
  text-transform: var(--cm-btn-case);
  text-decoration: none;
  text-align: center;
  cursor: pointer;
  transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.cm-btn:hover, .hs-button:hover, input[type="submit"]:hover {
  background: var(--cm-primary-hover);
  border-color: var(--cm-primary-hover);
  color: var(--cm-on-primary);
  text-decoration: none;
  transform: translateY(-1px);
}
.cm-btn:active { transform: none; }

.cm-btn--accent { background: var(--cm-accent); border-color: var(--cm-accent); color: var(--cm-on-accent); }
.cm-btn--accent:hover { background: var(--cm-accent-hover); border-color: var(--cm-accent-hover); color: var(--cm-on-accent); }
.cm-btn--secondary { background: var(--cm-secondary); border-color: var(--cm-secondary); color: #fff; }
.cm-btn--secondary:hover { background: var(--cm-secondary-hover); border-color: var(--cm-secondary-hover); color: #fff; }
.cm-btn--outline { background: transparent; color: var(--cm-primary); }
.cm-btn--outline:hover { background: var(--cm-primary); color: var(--cm-on-primary); }
.cm-btn--white { background: #fff; border-color: #fff; color: var(--cm-dark); }
.cm-btn--white:hover { background: var(--cm-light); border-color: var(--cm-light); color: var(--cm-dark); }
.cm-btn--outline-white { background: transparent; border-color: #fff; color: #fff; }
.cm-btn--outline-white:hover { background: #fff; color: var(--cm-dark); }
.cm-btn--link { background: none; border-color: transparent; color: var(--cm-primary); padding-inline: 0; min-height: 0; }
.cm-btn--link:hover { background: none; border-color: transparent; color: var(--cm-primary-hover); text-decoration: underline; transform: none; }
.cm-btn--sm { min-height: 40px; padding: calc(var(--cm-btn-py) * .6) calc(var(--cm-btn-px) * .65); font-size: .9375rem; }
.cm-btn--block { width: 100%; }

.cm-btn__icon { width: 1.1em; height: 1.1em; flex: none; fill: currentColor; }

.cm-btn-group { display: flex; flex-wrap: wrap; gap: var(--cm-space-3); align-items: center; }
.cm-btn-group--center { justify-content: center; }
@media (max-width: 479px) {
  .cm-btn-group--stack-mobile { flex-direction: column; align-items: stretch; }
  .cm-btn-group--stack-mobile .cm-btn { width: 100%; }
}
/* HubSpot forms (raw HTML forms) */
.hs-form fieldset { max-width: none !important; border: 0; padding: 0; margin: 0; }
.hs-form .hs-form-field { margin-bottom: var(--cm-space-3); }
.hs-form fieldset.form-columns-2 { display: flex; flex-wrap: wrap; gap: 0 var(--cm-space-3); }
.hs-form fieldset.form-columns-2 .hs-form-field { flex: 1 1 220px; width: auto !important; float: none !important; }
.hs-form fieldset .input { margin-right: 0 !important; }
.hs-form label,
.cm-form label { display: block; font-weight: 600; font-size: var(--cm-fs-sm); color: var(--cm-heading); margin-bottom: 6px; }
.hs-form .hs-form-required { color: #B42318; margin-left: 2px; }
.hs-form input[type="text"], .hs-form input[type="email"], .hs-form input[type="tel"], .hs-form input[type="number"],
.hs-form input[type="date"], .hs-form select, .hs-form textarea,
.cm-form input, .cm-form select, .cm-form textarea {
  width: 100% !important;
  min-height: 48px;
  padding: 12px 14px;
  border: 1px solid color-mix(in srgb, var(--cm-text) 40%, #fff);
  border-radius: max(4px, calc(var(--cm-btn-radius) - 1px));
  background: #fff;
  color: var(--cm-dark);
  font: inherit;
  font-size: 1rem;
}
.hs-form textarea, .cm-form textarea { min-height: 120px; resize: vertical; }
.hs-form input:focus, .hs-form select:focus, .hs-form textarea:focus,
.cm-form input:focus, .cm-form select:focus, .cm-form textarea:focus {
  outline: 3px solid color-mix(in srgb, var(--cm-primary) 35%, transparent);
  outline-offset: 0;
  border-color: var(--cm-primary);
}
.hs-form .inputs-list { list-style: none; padding: 0; margin: 0; }
.hs-form .inputs-list label { font-weight: 400; display: flex; gap: 10px; align-items: flex-start; }
.hs-form input[type="checkbox"], .hs-form input[type="radio"] { width: 20px; height: 20px; margin-top: 4px; accent-color: var(--cm-primary); }
.hs-form .hs-error-msgs { list-style: none; padding: 0; margin: 6px 0 0; }
.hs-form .hs-error-msg, .hs-form .hs-main-font-element { color: #B42318; font-size: var(--cm-fs-sm); }
.hs-form .legal-consent-container, .hs-form .hs-richtext { font-size: var(--cm-fs-sm); }
.hs-form .hs_submit { margin-top: var(--cm-space-3); }
.hs-form .hs-button { width: 100%; }
@media (min-width: 768px) { .hs-form .hs-button { width: auto; } }
.submitted-message { padding: var(--cm-space-4); border-radius: var(--cm-card-radius); background: var(--cm-light-tint); }
table { width: 100%; border-collapse: collapse; }
th, td { padding: 12px 14px; border-bottom: 1px solid var(--cm-border); text-align: left; vertical-align: top; }
th { font-weight: 700; color: var(--cm-heading); background: var(--cm-light-tint); }

/* Components */
/* Global header */
.cm-skip {
  position: absolute; left: 16px; top: -100px; z-index: 1000;
  padding: 12px 18px; background: var(--cm-dark); color: #fff; border-radius: var(--cm-btn-radius);
  font-weight: 700; text-decoration: none;
}
.cm-skip:focus { top: 12px; color: #fff; }

.cm-header { position: relative; z-index: 100; background: #fff; }
.cm-header--sticky { position: sticky; top: 0; }
.cm-header--scrolled .cm-header__main { box-shadow: 0 6px 24px rgba(16, 24, 40, .08); }

/* Utility bar */
.cm-utility { font-size: var(--cm-fs-sm); line-height: 1.4; }
.cm-utility--dark { background: var(--cm-dark); color: #fff; }
.cm-utility--primary { background: var(--cm-primary); color: var(--cm-on-primary); }
.cm-utility--light { background: var(--cm-light); color: var(--cm-dark); }
.cm-utility__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--cm-space-3); min-height: 40px; padding-block: 6px; }
.cm-utility__text { margin: 0; display: none; }
.cm-utility__links { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 20px; list-style: none; margin: 0 0 0 auto; padding: 0; }
.cm-utility__links li { margin: 0; }
.cm-utility a { color: inherit; text-decoration: none; }
.cm-utility a:hover { text-decoration: underline; }
.cm-utility__links .cm-utility__secondary { display: none; }
.cm-utility__phone { font-weight: 700; display: inline-flex; align-items: center; gap: 6px; }
.cm-utility__phone svg { width: 14px; height: 14px; fill: currentColor; }
@media (min-width: 768px) {
  .cm-utility__text { display: block; }
  .cm-utility__links .cm-utility__secondary { display: list-item; }
}

/* Main bar */
.cm-header__main { background: #fff; transition: box-shadow .2s ease; border-bottom: 1px solid color-mix(in srgb, var(--cm-border) 70%, transparent); }
.cm-header--primary .cm-header__main { background: var(--cm-primary); border-color: transparent; }
.cm-header--dark .cm-header__main { background: var(--cm-dark); border-color: transparent; }
.cm-header__bar { display: flex; align-items: center; gap: var(--cm-space-3); min-height: var(--cm-header-h); }
.cm-logo { display: inline-flex; align-items: center; text-decoration: none; flex: none; padding: 8px 0; }
.cm-logo img { display: block; width: var(--cm-logo-w-m, 150px); height: auto; max-height: 64px; object-fit: contain; object-position: left center; }
@media (min-width: 1024px) { .cm-logo img { width: var(--cm-logo-w, 180px); max-height: 72px; } }
.cm-logo__text { font-family: var(--cm-font-heading); font-weight: var(--cm-heading-weight); font-size: 1.35rem; color: var(--cm-heading); }
.cm-header--primary .cm-logo__text, .cm-header--dark .cm-logo__text { color: #fff; }

/* Navigation */
.cm-nav { margin-left: auto; }
.cm-nav__list { list-style: none; margin: 0; padding: 0; }
.cm-nav__item { margin: 0; position: relative; }
.cm-nav__link {
  display: flex; align-items: center; gap: 6px;
  padding: 10px 14px; color: var(--cm-heading); font-weight: 600; text-decoration: none; border-radius: var(--cm-btn-radius);
}
.cm-nav__link:hover, .cm-nav__item--active > .cm-nav__row > .cm-nav__link { color: var(--cm-primary); text-decoration: none; }
.cm-nav__link[aria-current="page"] { color: var(--cm-primary); box-shadow: inset 0 -2px 0 var(--cm-primary); border-radius: 0; }
.cm-header--primary .cm-nav__link, .cm-header--dark .cm-nav__link { color: #fff; }
.cm-nav__row { display: flex; align-items: center; justify-content: space-between; }
.cm-nav__sub-toggle {
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; background: none; border: 0; color: inherit; cursor: pointer; border-radius: var(--cm-btn-radius);
}
.cm-nav__sub-toggle svg { width: 12px; height: 12px; fill: currentColor; transition: transform .2s ease; }
.cm-nav__sub-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
.cm-nav__sub { list-style: none; margin: 0; padding: 0 0 8px 14px; display: none; }
.cm-nav__item--open > .cm-nav__sub { display: block; }
.cm-nav__sub .cm-nav__link { font-weight: 500; padding: 10px 14px; }

.cm-header__actions { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.cm-header__phone { display: none; font-weight: 700; color: var(--cm-heading); text-decoration: none; white-space: nowrap; }
.cm-header__phone:hover { color: var(--cm-primary); }
.cm-header--primary .cm-header__phone, .cm-header--dark .cm-header__phone { color: #fff; }
.cm-header__cta { display: none; }
.cm-header__call-mobile {
  display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px;
  border-radius: var(--cm-btn-radius); background: var(--cm-light); color: var(--cm-primary);
}
.cm-header__call-mobile svg { width: 20px; height: 20px; fill: currentColor; }

/* Hamburger */
.cm-burger {
  display: inline-flex; flex-direction: column; justify-content: center; gap: 5px;
  width: 44px; height: 44px; padding: 10px; border: 0; background: transparent; cursor: pointer; border-radius: var(--cm-btn-radius); color: var(--cm-heading);
}
.cm-header--primary .cm-burger, .cm-header--dark .cm-burger { color: #fff; }
.cm-burger__bar { display: block; height: 2px; width: 100%; background: currentColor; border-radius: 2px; transition: transform .2s ease, opacity .2s ease; }
.cm-burger[aria-expanded="true"] .cm-burger__bar:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.cm-burger[aria-expanded="true"] .cm-burger__bar:nth-child(2) { opacity: 0; }
.cm-burger[aria-expanded="true"] .cm-burger__bar:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Mobile drawer */
@media (max-width: 1023px) {
  .cm-nav {
    position: absolute; left: 0; right: 0; top: 100%;
    background: #fff; border-top: 1px solid var(--cm-border);
    box-shadow: 0 18px 30px rgba(16, 24, 40, .12);
    max-height: calc(100vh - var(--cm-header-h)); overflow-y: auto;
    padding: 8px var(--cm-page-x) 24px;
    display: none;
  }
  .cm-nav--open { display: block; }
  .cm-nav .cm-nav__link { color: var(--cm-heading); padding: 14px 4px; font-size: 1.05rem; }
  .cm-nav__item { border-bottom: 1px solid var(--cm-border); }
  .cm-nav__mobile-cta { display: grid; gap: 10px; margin-top: 18px; }
}
@media (min-width: 1024px) {
  .cm-burger, .cm-header__call-mobile, .cm-nav__mobile-cta { display: none; }
  .cm-header__phone { display: inline-flex; }
  .cm-header__cta { display: inline-flex; }
  .cm-header__actions { margin-left: var(--cm-space-2); }
  .cm-nav__list--top { display: flex; align-items: center; gap: 2px; }
  .cm-nav__row { justify-content: flex-start; }
  .cm-nav__sub-toggle { width: 28px; height: 36px; margin-left: -10px; }
  .cm-nav__sub {
    position: absolute; top: 100%; left: 0; min-width: 240px; padding: 8px;
    background: #fff; border-radius: var(--cm-card-radius); box-shadow: 0 16px 40px rgba(16, 24, 40, .16);
    border: 1px solid var(--cm-border);
  }
  .cm-nav__item--has-sub:hover > .cm-nav__sub,
  .cm-nav__item--has-sub:focus-within > .cm-nav__sub { display: block; }
  .cm-nav__sub .cm-nav__link { color: var(--cm-heading) !important; padding: 10px 12px; border-radius: calc(var(--cm-card-radius) - 4px); }
  .cm-nav__sub .cm-nav__link:hover { background: var(--cm-light-tint); }
}
@media (min-width: 1200px) { .cm-header__phone { margin-right: 6px; } }

/* Minimal header (landing pages) */
.cm-header--minimal .cm-header__bar { justify-content: space-between; }
.cm-header--minimal .cm-header__phone { display: inline-flex; }
/* Global footer */
.cm-footer { font-size: var(--cm-fs-sm); line-height: 1.65; padding-block: var(--cm-space-7) var(--cm-space-5); }
.cm-footer--dark { background: var(--cm-dark); color: rgba(255, 255, 255, .86); }
.cm-footer--primary { background: var(--cm-primary); color: var(--cm-on-primary); }
.cm-footer--light { background: var(--cm-light); color: var(--cm-text); }
.cm-footer--dark a, .cm-footer--primary a { color: #fff; }
.cm-footer--light a { color: var(--cm-heading); }
.cm-footer a { text-decoration: none; }
.cm-footer a:hover { text-decoration: underline; }
.cm-footer--dark :focus-visible, .cm-footer--primary :focus-visible { outline-color: #fff; }

.cm-footer__logo img { width: var(--cm-footer-logo-w, 180px); height: auto; display: block; }
.cm-footer__logo-panel { display: inline-block; background: #fff; padding: 14px 18px; border-radius: var(--cm-card-radius); }
.cm-footer__name { font-family: var(--cm-font-heading); font-weight: var(--cm-heading-weight); font-size: 1.25rem; color: inherit; }
.cm-footer__nav { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 24px; }
.cm-footer__nav li { margin: 0; }
.cm-footer__nav a { font-weight: 600; display: inline-block; padding: 4px 0; }
.cm-footer__nap { margin: 0; font-style: normal; }
.cm-footer__nap span + span::before { content: "|"; margin: 0 .6em; opacity: .5; }
.cm-footer__legal { border-top: 1px solid currentColor; border-color: color-mix(in srgb, currentColor 20%, transparent); margin-top: var(--cm-space-5); padding-top: var(--cm-space-4); font-size: .8125rem; opacity: .9; }
.cm-footer__legal p { margin: 0 0 .5em; }
.cm-footer__social { display: flex; gap: 10px; list-style: none; padding: 0; margin: 0; }
.cm-footer__social a { display: inline-flex; width: 40px; height: 40px; align-items: center; justify-content: center; border-radius: 50%; background: color-mix(in srgb, currentColor 14%, transparent); }
.cm-footer__social svg { width: 18px; height: 18px; fill: currentColor; }

/* Minimal centered layout */
.cm-footer--centered .cm-footer__inner { display: flex; flex-direction: column; align-items: center; text-align: center; gap: var(--cm-space-4); }
.cm-footer--centered .cm-footer__nav, .cm-footer--centered .cm-footer__social { justify-content: center; }
.cm-footer--centered .cm-footer__legal { max-width: 860px; margin-inline: auto; text-align: center; }
@media (max-width: 599px) {
  .cm-footer__nap span { display: block; }
  .cm-footer__nap span + span::before { content: none; }
}

/* Columns layout */
.cm-footer--columns .cm-footer__inner { display: grid; gap: var(--cm-space-5); }
.cm-footer__col-title { font-family: var(--cm-font-heading); font-size: 1rem; color: inherit; margin-bottom: 12px; }
.cm-footer--columns .cm-footer__nav { flex-direction: column; gap: 4px; }
@media (min-width: 768px) {
  .cm-footer--columns .cm-footer__inner { grid-template-columns: 1.4fr repeat(var(--cm-footer-cols, 2), 1fr); }
}
/* Shared building blocks used by CICOR Marketing Base modules */

/* Section heading (eyebrow + heading + intro) */
.cm-section-head { max-width: 760px; margin-bottom: var(--cm-space-6); }
.cm-section-head--center { margin-inline: auto; text-align: center; }
.cm-section-head__intro { font-size: var(--cm-fs-lead); line-height: 1.6; }
.cm-section-head__heading { margin-bottom: .35em; }

/* Module surfaces: lets a module paint its own band without touching section settings */
.cm-surface { position: relative; }
.cm-surface--light { background: var(--cm-light); }
.cm-surface--tint { background: var(--cm-light-tint); }
.cm-surface--primary { background: var(--cm-primary); }
.cm-surface--dark { background: var(--cm-dark); }
.cm-surface--padded { padding: var(--cm-section-y) var(--cm-page-x); }
.cm-surface--rounded { border-radius: calc(var(--cm-card-radius) * 1.5); }
.cm-inner { max-width: var(--cm-container); margin-inline: auto; }
/* Full bleed: breaks out of the section width when a module asks for it */
.cm-bleed { width: 100vw; margin-left: calc(50% - 50vw); }

/* Responsive grid: 1 column phone, 2 tablet, N desktop */
.cm-grid { display: grid; gap: var(--cm-gutter); grid-template-columns: 1fr; }
@media (min-width: 640px) {
  .cm-grid--2, .cm-grid--3, .cm-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
  .cm-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cm-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
/* An odd last card on tablet spans both columns instead of leaving a hole */
@media (min-width: 640px) and (max-width: 1023px) {
  .cm-grid--3 > :last-child:nth-child(odd), .cm-grid--4 > :last-child:nth-child(odd) { grid-column: 1 / -1; }
}

/* Cards */
.cm-card {
  display: flex; flex-direction: column;
  background: #fff;
  border: var(--cm-card-border);
  border-radius: var(--cm-card-radius);
  box-shadow: var(--cm-shadow);
  overflow: hidden;
  transition: box-shadow .2s ease, transform .2s ease;
  color: var(--cm-text);
}
.cm-card__body { padding: var(--cm-space-4); display: flex; flex-direction: column; gap: var(--cm-space-2); flex: 1; }
@media (min-width: 768px) { .cm-card__body { padding: var(--cm-space-5); } }
.cm-card__title { font-size: var(--cm-fs-h4); margin: 0; }
.cm-card__text { margin: 0; }
.cm-card__footer { margin-top: auto; padding-top: var(--cm-space-2); }
.cm-card--link:hover { box-shadow: var(--cm-shadow-hover); transform: translateY(-3px); }
/* Whole card clickable while keeping one accessible link */
.cm-card__stretched::before { content: ""; position: absolute; inset: 0; z-index: 1; }
.cm-card--link { position: relative; }
.cm-card--link .cm-card__stretched:focus-visible { outline: none; }
.cm-card--link:has(.cm-card__stretched:focus-visible) { outline: 3px solid var(--cm-focus); outline-offset: 3px; }

/* Media */
.cm-media { border-radius: var(--cm-img-radius); overflow: hidden; }
.cm-media img, .cm-media video, .cm-media iframe { display: block; width: 100%; height: 100%; object-fit: cover; }
.cm-ratio { position: relative; aspect-ratio: var(--cm-ratio, 4 / 3); }
.cm-ratio > img, .cm-ratio > iframe, .cm-ratio > video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

/* Icons */
.cm-icon {
  display: inline-flex; align-items: center; justify-content: center; flex: none;
  width: 56px; height: 56px; border-radius: calc(var(--cm-card-radius) * .9);
  background: color-mix(in srgb, var(--cm-secondary) 12%, #fff); color: var(--cm-secondary);
}
.cm-icon svg { width: 26px; height: 26px; fill: currentColor; }
.cm-icon img { width: 30px; height: 30px; object-fit: contain; }

/* Arrow link */
.cm-arrow-link { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; text-decoration: none; }
.cm-arrow-link::after { content: "\2192"; transition: transform .2s ease; }
.cm-arrow-link:hover { text-decoration: underline; }
.cm-arrow-link:hover::after { transform: translateX(3px); }

/* Check list */
.cm-checks { list-style: none; padding: 0; }
.cm-checks li { position: relative; padding-left: 32px; }
.cm-checks li::before {
  content: ""; position: absolute; left: 0; top: .3em; width: 20px; height: 20px; border-radius: 50%;
  background: var(--cm-secondary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='%23fff' d='M8.2 13.6 4.9 10.3l1.2-1.2 2.1 2.1 5.7-5.7 1.2 1.2z'/%3E%3C/svg%3E") center / 18px no-repeat;
}

/* Blog and system page blocks */
.cm-page-hero { background: var(--cm-light-tint); padding: var(--cm-space-7) 0; }
.cm-system { padding: var(--cm-space-8) 0; text-align: center; }
.cm-system__code { font-family: var(--cm-font-heading); font-weight: 800; font-size: clamp(64px, 14vw, 140px); line-height: 1; color: var(--cm-primary); opacity: .18; margin: 0; }
.cm-system .cm-btn-group { justify-content: center; margin-top: var(--cm-space-4); }
.cm-system__box { max-width: 640px; margin-inline: auto; text-align: left; }

/* Full width bands painted by a module's own Background setting */
.body-wrapper { overflow-x: clip; }
.cm-band {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  padding: var(--cm-section-y) var(--cm-page-x);
}
.cm-band > .cm-inner, .cm-band > .cm-container-inner { max-width: var(--cm-container); margin-inline: auto; }
/* The section around a band module drops its own vertical padding so bands sit edge to edge */
.dnd-section:has(.cm-band) { padding-top: 0; padding-bottom: 0; }

/* Utilities */
/* Utilities */
.cm-sr-only, .show-for-sr {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.cm-text-center { text-align: center; }
.cm-mt-0 { margin-top: 0 !important; }
.cm-mb-0 { margin-bottom: 0 !important; }
@media (max-width: 767px) { .cm-hide-mobile { display: none !important; } }
@media (min-width: 768px) { .cm-hide-desktop { display: none !important; } }