/*
 * Catalysts theme - global chrome stylesheet.
 *
 * Scope: base reset, typography, colours, links, buttons, forms, layout,
 * header layout 9 (h-style4) with its sticky and mobile states, the primary
 * navigation and its dropdown, the #pagetitle banner, the footer shell,
 * the back-to-top button and the newsletter popup.
 *
 * Every value is traced to production in docs/css-chrome.md: either a line
 * in prod-theme-reference/assets/css/theme.css ("prod Lnnnn"), an inline
 * <style> block ("block nn"), or a measured rect / computed style in
 * baseline/prod/<slug>/<viewport>.json ("baseline").
 *
 * Breakpoints: 1199/1200 (header overlay vs drawer, banner padding,
 * container width, fixed footer), 767/768 (back-to-top, popup padding) and
 * 575/576 (popup form). Mobile-first: unprefixed rules are the narrow
 * state, min-width blocks widen. The only max-width blocks are the three
 * rules that must defeat an inline style the JS writes at desktop only.
 *
 * !important appears only where production's own stylesheet or Customizer
 * CSS used it for that selector; each use is commented.
 *
 * Widget internals (ct_*) are in widgets.css. The wow.js entrance effects
 * and the keyframes are in animate.css.
 */

/* ------------------------------------------------------------------ */
/* 0. Design tokens                                                     */
/* ------------------------------------------------------------------ */

:root {
  /* Elementor kit 6184 + widget census */
  --ct-green: #13bf36;
  --ct-green-mid: #73bf43;
  --ct-green-light: #83ec38;
  --ct-accent: #ff0048;
  --ct-black: #000000;
  --ct-ink: #0e0e0e;
  --ct-grey-dark: #4d4d4d;
  --ct-grey: #a0a0a0;
  --ct-grey-light: #d4d4d4;
  --ct-grey-pale: #e4eaee;
  --ct-grey-field: #ececec;
  --ct-lavender: #eff1ff;
  --ct-white: #ffffff;
  --ct-overlay-dark: rgba(2, 2, 2, 0.9);
  --ct-focus-ring: rgba(0, 123, 255, 0.25);       /* Bootstrap 4 .btn:focus ring */

  /* Redux output, block 12 */
  --ct-link: #73bf43;
  --ct-link-hover: #6ed873;
  --ct-link-rule: rgba(115, 191, 67, 0.67);      /* a.link-underline, L1997 */
  --ct-link-rule-soft: rgba(115, 191, 67, 0.6);  /* popup dismiss hover, L14348 */

  /* Third-party brand colours used by the footer social row (L18014-L18026) */
  --ct-brand-facebook: #16599b;
  --ct-brand-dribbble: #eb568f;
  --ct-brand-twitter: #03a9f4;
  --ct-brand-behance: #0d6fff;

  /* Chrome neutrals read from production theme.css */
  --ct-text: #383838;            /* body, L2033 */
  --ct-menu-mobile: #282828;     /* drawer links, L9541 */
  --ct-submenu-text: #222222;    /* dropdown links, L9206 */
  --ct-hamburger: #1f2233;       /* L9641 */
  --ct-drawer-line: #ebebeb;     /* L9547, L9588 */
  --ct-banner-bg: #333333;       /* #pagetitle, L9720 */
  --ct-banner-overlay: rgba(0, 0, 0, 0.5);
  --ct-field-border: #d8d8d8;    /* L2953 */
  --ct-field-text: #9b9b9b;      /* L2954 */
  --ct-popup-text: #151515;      /* L14137, L14334 */
  --ct-popup-rule: #a6a6a6;      /* L14336 */
  --ct-popup-field-text: #5b5b5b;/* L14263 */
  --ct-popup-scrim: rgba(0, 0, 0, 0.7);
  --ct-shadow-sticky: 0 3px 6px rgba(0, 0, 0, 0.05);     /* L4832 */
  --ct-shadow-mobile-bar: 0 0 5px rgba(0, 0, 0, 0.15);   /* L8510 */
  --ct-shadow-drawer: 0 0 12px rgba(0, 0, 0, 0.22);      /* L9490 */
  --ct-shadow-dropdown: 0 8px 83px rgba(40, 40, 40, 0.08);/* L9171 */
  --ct-shadow-btn: 0 8px 10px rgba(12, 12, 12, 0.1);     /* L3409 */

  --ct-font-body: 'Roboto', sans-serif;
  --ct-font-heading: 'Poppins', sans-serif;
  --ct-font-icon: "Font Awesome 5 Pro";
  --ct-ease: all 300ms linear 0ms;
}

/* ------------------------------------------------------------------ */
/* 1. Base reset and typography (prod L1983-L2200)                      */
/* ------------------------------------------------------------------ */

html { box-sizing: border-box; -webkit-text-size-adjust: 100%; }
*, *::before, *::after { box-sizing: inherit; }
/* Bootstrap 4 reboot subset. Production loads bootstrap.css before
   theme.css; these are the reboot rules the chrome measurably depends on
   (baseline: text-align left on every block, 50px logo box with no
   descender gap, form controls inheriting Poppins in the footer). */
body { text-align: left; }
img, svg { vertical-align: middle; border-style: none; }
label { display: inline-block; }
input, button, select, optgroup, textarea { margin: 0; font-family: inherit; font-size: inherit; line-height: inherit; }
button, input { overflow: visible; }
button, select { text-transform: none; }
button, [type="button"], [type="reset"], [type="submit"] { -webkit-appearance: button; }
textarea { overflow: auto; resize: vertical; }
ol ol, ul ul, ol ul, ul ol { margin-bottom: 0; }
b, strong { font-weight: bolder; }
small { font-size: 80%; }
table { border-collapse: collapse; }
[hidden] { display: none !important; } /* Bootstrap reboot uses !important here */
body {
  margin: 0;
  background-color: var(--ct-white);
  font-size: 16px;
  line-height: 1.875;                 /* 30px, baseline every element */
  color: var(--ct-text);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
  font-weight: normal;
  letter-spacing: 0;
}
body.ov-hidden { overflow: hidden; }
/* Faces reach the page only through the body classes, as on production (L2041, L2054). */
body.body-default-font { font-family: var(--ct-font-body); }
.heading-default-font h1, .heading-default-font h2, .heading-default-font h3,
.heading-default-font h4, .heading-default-font h5, .heading-default-font h6,
.heading-default-font .h1, .heading-default-font .h2, .heading-default-font .h3,
.heading-default-font .h4, .heading-default-font .h5, .heading-default-font .h6 {
  font-family: var(--ct-font-heading);
}
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
  color: var(--ct-ink);
  clear: both;
  line-height: 1.2;
  margin: 0 0 15px;
  font-weight: 700;
}
h1, .h1 { font-size: 52px; }
h2, .h2 { font-size: 42px; }
h3, .h3 { font-size: 36px; }
h4, .h4 { font-size: 32px; }
h5, .h5 { font-size: 24px; font-weight: 600; }
h6, .h6 { font-size: 18px; font-weight: 600; }
p { margin: 0 0 15px; }
img { width: auto; max-width: 100%; height: auto; }
label { margin-bottom: 0; }
ol { list-style: outside none decimal; }
ul { padding: 0; margin: 0 0 15px; }
ul li { list-style-position: inside; }
.ft-heading { font-family: var(--ct-font-heading); }
.h-100vh { height: 100vh; }                               /* block 09 */
.bg-image { background-size: cover; background-position: center center; background-repeat: no-repeat; }

/* Preformatted text inside post content (prod L2160, plus its bootstrap.min.css
   reboot: the font stack is reproduced verbatim - production's bootstrap copy
   carries a text-replace artifact ("ono" -> "consultio": SFMconsultio-Regular,
   mconsultiospace), and the computed value is what the verifier compares.
   line-height 1.875 is what production inherits from its unitless body value
   (computed 26.25px at 14px); this stylesheet sets body line-height in px, so
   the ratio is restated here. */
code, kbd, pre, samp { font-family: SFMconsultio-Regular, Menlo, Monaco, Consolas, "Liberation Mconsultio", "Courier New", mconsultiospace; }
pre { display: block; background: #f5f5f5; color: #666; font-size: 14px; line-height: 1.875; margin: 20px 0; overflow: auto; padding: 20px; white-space: pre-wrap; word-wrap: break-word; }

/* ------------------------------------------------------------------ */
/* 2. Links (prod L1986-L2020; colours from block 12)                   */
/* ------------------------------------------------------------------ */

a { transition: var(--ct-ease); color: var(--ct-link); }
a, a:hover, a:focus, a::before, a::after { outline: none; text-decoration: none; }
a:hover, a:focus, a:active { color: var(--ct-link-hover); }
a.link-underline { font-weight: 700; color: var(--ct-link); border-bottom: 1px solid var(--ct-link-rule); }
a.link-underline:hover { border-bottom: none; }
a.link-preset { color: var(--ct-link); }
a.link-preset:hover { color: var(--ct-link); text-decoration: underline; }
.text-underline { text-decoration: underline; }

/* ------------------------------------------------------------------ */
/* 3. Buttons (prod L3389-L3438, gradient variant = body.btn-type-gradient) */
/* ------------------------------------------------------------------ */

/* Bootstrap 4's pressed-state rule, verbatim from prod's bootstrap.min.css.
   Production loads bootstrap.min.css BEFORE its theme stylesheet (matched-styles
   sheet 99 vs 118), so the rule is placed here, ahead of the theme's own .btn
   block, in the same relative position. Its specificity is 0-4-0 and nothing in
   the theme sets background-image on a pressed .btn, so it is what flattens the
   gradient while a .btn is held down - on prod, and now here. */
.btn:not([disabled]):not(.disabled).active, .btn:not([disabled]):not(.disabled):active {
  background-image: none;
}

.btn, button, .button, input[type="submit"], .tnp-subscription .tnp-field-button .tnp-button {
  font-size: 15px;
  font-weight: 700;
  color: var(--ct-white);
  padding: 0 34px;
  line-height: 51px;
  transition: all 200ms linear 0ms;
  font-family: var(--ct-font-heading);
  border-radius: 5px;
  box-shadow: var(--ct-shadow-btn);
  position: relative;
  display: inline-block;
  text-align: center;
  cursor: pointer;
  border: none;
  background-color: var(--ct-link);
  background-image: linear-gradient(90deg, var(--ct-link) 0%, var(--ct-link-hover) 50%, var(--ct-link));
  background-size: 300%, 1px;
  background-position: 0%;
  height: auto;
}
/* Production's selector list is reproduced in full, including the ten
   :not([disabled]):not(.disabled).active / :active variants (prod L3431).
   Those variants are not cosmetic: they are what carries the pressed state
   over element-specific colour rules. `.btn:not([disabled]):not(.disabled):active`
   is specificity 0-4-0, so it beats `.btn.btn-white` (0-2-0, widgets.css L335);
   `button:not([disabled]):not(.disabled):active` is 0-3-1, so it beats
   `.ct-slick-carousel .slick-arrow` (0-2-0, widgets.css L75); and
   `input[type="submit"]:not([disabled]):not(.disabled):active` is 0-4-1, so it
   beats the Newsletter plugin's `.tnp-subscription input.tnp-submit` (0-2-1,
   newsletter/style.css L95-L100). Dropping them left only the plain
   `:active` forms (0-2-0 / 0-1-1 / 0-2-1), which lose to all three - which is
   exactly why the pressed colour never applied on stage. Specificity, not
   print order, is the mechanism; do not shorten this list. */
.btn:hover, button:hover, .button:hover, input[type="submit"]:hover, .tnp-subscription .tnp-field-button .tnp-button:hover,
.btn:focus, button:focus, .button:focus, input[type="submit"]:focus, .tnp-subscription .tnp-field-button .tnp-button:focus,
.btn:active, button:active, .button:active, input[type="submit"]:active, .tnp-subscription .tnp-field-button .tnp-button:active,
.btn:not([disabled]):not(.disabled).active, button:not([disabled]):not(.disabled).active, .button:not([disabled]):not(.disabled).active, input[type="submit"]:not([disabled]):not(.disabled).active, .tnp-subscription .tnp-field-button .tnp-button:not([disabled]):not(.disabled).active,
.btn:not([disabled]):not(.disabled):active, button:not([disabled]):not(.disabled):active, .button:not([disabled]):not(.disabled):active, input[type="submit"]:not([disabled]):not(.disabled):active, .tnp-subscription .tnp-field-button .tnp-button:not([disabled]):not(.disabled):active {
  outline: medium none;
  text-decoration: none;
  color: var(--ct-white);
  background-position: 100%;
  background-color: var(--ct-ink);
}
/* prod L3500 and L3630. Each of these two rules is specificity 0-3-0, so it
   overrides the generic `.btn:hover` above, as on production; the 200ms linear
   transition comes from the `.btn` base block, so the settled hover is white
   background with ink text. Home's CF7 "Send now" submit is the only element
   on the site that carries the class. */
.btn.hover-white:hover {
  background-color: var(--ct-white);
  color: var(--ct-ink);
}
.btn.btn-primary.hover-white:hover {
  background-color: var(--ct-white);
  color: var(--ct-ink);
}
/* Bootstrap 4's .btn:focus ring (prod bootstrap.min.css: box-shadow 0 0 0 .2rem rgba(0,123,255,.25));
   production keeps it under the theme's outline:none, so keyboard focus on every .btn stays visible. */
.btn:focus, .btn.focus { outline: 0; box-shadow: 0 0 0 0.2rem var(--ct-focus-ring); }

/* ------------------------------------------------------------------ */
/* 4. Form fields (prod L2951-L2999)                                    */
/* ------------------------------------------------------------------ */

input[type="text"], input[type="email"], input[type="url"], input[type="password"], input[type="search"],
input[type="tel"], input[type="number"], input[type="range"], input[type="date"], input[type="month"],
input[type="week"], input[type="time"], input[type="datetime"], input[type="datetime-local"], input[type="color"],
textarea, select, .nice-select {
  background-color: var(--ct-white);
  border: 1px solid var(--ct-field-border);
  color: var(--ct-field-text);
  padding: 6px 22px;
  line-height: normal;
  font-size: 15px;
  font-weight: 400;
  height: 51px;
  transition: all 200ms linear 0ms;
  box-shadow: none;
  border-radius: 0;
  width: 100%;
  outline: none;
}
input[type="text"]:focus, input[type="email"]:focus, input[type="url"]:focus, input[type="password"]:focus,
input[type="search"]:focus, input[type="tel"]:focus, input[type="number"]:focus, input[type="date"]:focus,
textarea:focus, select:focus, .nice-select:focus { outline: 0; border-color: var(--ct-link); }

/* 4a. nice-select (prod L3113-L3275). Production loads no nice-select stylesheet: every rule the dropdown
   needs lives in its theme.css, on top of the shared field rule above (15px, #9b9b9b, 6px 22px, 51px). */
.nice-select { position: relative; padding-right: 40px; cursor: pointer; -webkit-tap-highlight-color: transparent; user-select: none; white-space: nowrap; }
.nice-select:after { content: "\f107"; font-family: "Font Awesome 5 Pro"; font-weight: 900; font-size: 15px; color: #9b9b9b; position: absolute; right: 23px; top: 50%; transform: translate(0, -50%); }
.nice-select span.current { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; line-height: 37px; }
.nice-select .option { text-overflow: ellipsis; overflow: hidden; }
.nice-select .list { max-height: 250px; background-color: #fff; border-radius: 5px; box-shadow: 0 6px 9px rgba(0, 0, 0, 0.14); box-sizing: border-box; margin-top: 4px; opacity: 0; overflow: hidden; padding: 0; pointer-events: none; position: absolute; top: 100%; left: 0; right: 0; transform-origin: 50% 0; transform: scale(0.75) translateY(-21px); transition: all 0.2s cubic-bezier(0.5, 0, 0, 1.25), opacity 0.15s ease-out; z-index: 9; color: inherit; }
.nice-select .list .selected { color: #222; }
.nice-select .list .option { font-size: 14px; cursor: pointer; line-height: normal; list-style: none; outline: none; padding: 8px 24px; transition: all 0.2s; border-radius: 4px; }
.nice-select .list .option.selected { font-weight: 700; }
.nice-select .list .option.disabled { background-color: transparent; color: #999; cursor: default; }
.nice-select .list .option:hover, .nice-select .list .option:focus { background-color: #f3f3f4; }
.nice-select .list:hover .option:not(:hover) { background-color: transparent !important; }
.nice-select.open .list, .nice-select .list.open { padding: 5px; min-width: 185px; overflow: auto; width: 100%; opacity: 1; pointer-events: auto; transform: scale(1) translateY(0); }
.nice-select.disabled { border-color: #ededed; color: #999; pointer-events: none; }
.nice-select.disabled:after { border-color: #ccc; }
.nice-select.wide { width: 100%; }
.nice-select.wide .list { left: 0 !important; right: 0 !important; }
.nice-select.right { float: right; }
.nice-select.right .list { left: auto; right: 0; }
.nice-select.small { font-size: 12px; height: 36px; line-height: 34px; }
.nice-select.small:after { height: 4px; width: 4px; }
.nice-select.small .option { line-height: 34px; min-height: 34px; }
.no-csspointerevents .nice-select .list { display: none; }
.no-csspointerevents .nice-select.open .list { display: block; }
select { height: 60px; }
textarea { line-height: normal; padding-top: 18px; padding-bottom: 18px; height: 150px; }
.wpcf7-form .wpcf7-form-control-wrap { margin-bottom: 27px; display: block; }
.wpcf7-form .wpcf7-form-control-wrap .wpcf7-not-valid-tip { display: none; }

/* ------------------------------------------------------------------ */
/* 5. Page frame and Elementor container contract                       */
/* ------------------------------------------------------------------ */

.site { position: relative; }                              /* L2044 */
/* Production scopes this to <=1199 (L45797-L45800). It must NOT apply above that: a horizontal clip on .site
   is also the clip box Chrome's lazy-image observer uses, and slick's clones parked beyond the 1440px box were
   never fetched (About desktop 12/22, Contact desktop 18/26 images at 0x0; prod fetches them). */
@media screen and (max-width: 1199px) {
  #page.site { overflow: hidden; }                          /* L45798: clips the parked mobile drawer */
}
.site-content { padding: 90px 0; position: relative; }     /* L45793; pages zero this via dynamic-css.php */
/* Production theme.css L48835-L48880: the theme widens Elementor's boxed
   container from the kit's 1140 to 1200 and resets widget spacing. The
   footer template depends on these. */
.elementor-element .elementor-widget:not(:last-child) { margin-bottom: 0; }
.elementor .elementor-section.elementor-section-boxed > .elementor-container.elementor-column-gap-default { max-width: 1190px; }
.elementor .elementor-section.elementor-section-boxed > .elementor-container.elementor-column-gap-extended { max-width: 1200px; }
.elementor .elementor-section.elementor-section-boxed > .elementor-container.elementor-column-gap-extended .elementor-section-boxed > .elementor-column-gap-no { max-width: 1170px; }
.site-content .elementor-container.elementor-column-gap-default, .site-footer-custom .elementor-container.elementor-column-gap-default { margin: 0 -10px; }
.site-content .elementor-container.elementor-column-gap-extended, .site-footer-custom .elementor-container.elementor-column-gap-extended { margin: 0 -15px; }
.site-content .elementor-section-stretched.elementor-section-boxed .elementor-container.elementor-column-gap-default,
.site-footer-custom .elementor-section-stretched.elementor-section-boxed .elementor-container.elementor-column-gap-default,
.site-content .elementor-section-stretched.elementor-section-boxed .elementor-container.elementor-column-gap-extended,
.site-footer-custom .elementor-section-stretched.elementor-section-boxed .elementor-container.elementor-column-gap-extended { margin: 0 auto; }
.site-content .elementor-widget-text-editor, .site-footer-custom .elementor-widget-text-editor { color: inherit; font-family: inherit; font-weight: inherit; }
.elementor-editor-active .site-footer-custom, .elementor-editor-active #ct-header-wrap { display: none; }

/* ------------------------------------------------------------------ */
/* 5b. Blog templates: archive list, single post, sidebar widgets,     */
/*     404, search forms, pagination (prod L9782-L11485, L45813-L45849, */
/*     L2189-L2408 content typography, L3474-L3479, L4373-L4405)       */
/* ------------------------------------------------------------------ */
/* Production compiles every gradient three ways; Chromium drops the
   unprefixed "linear-gradient(left, ...)" (invalid) and applies
   "-webkit-linear-gradient(left, A, B)", which is "to right". Values are
   written here in the standard form of what Chromium actually paints.
   widgets.css loads after this file and restates .entry-title,
   .entry-meta and .text-gradient (0,1,0); rules here that must beat it
   carry one extra class, commented where it happens. */
:root {
  --ct-blog-gradient: linear-gradient(to right, var(--ct-link), var(--ct-link-hover));       /* L2620, L10611 */
  --ct-blog-gradient-btn: linear-gradient(90deg, var(--ct-link) 0%, var(--ct-link-hover) 50%, var(--ct-link)); /* L10052 */
  --ct-blog-gradient-dark: linear-gradient(90deg, var(--ct-ink) 0%, #606060 50%, var(--ct-ink)); /* L4378, L11197 */
  --ct-blog-meta: #939393;          /* L9827 */
  --ct-blog-strong: #222222;        /* L10108, L10217, L10665, L11039 */
  --ct-blog-rule: #ececf0;          /* L9990, L10427, L10674, L11082 */
  --ct-blog-card-border: #eeeeef;   /* L9856 */
  --ct-blog-chip-border: #eeecec;   /* L10387, L11047 */
  --ct-blog-frame: #e8edf5;         /* L10078 */
  --ct-blog-count-bg: #eeeeee;      /* L10685 */
  --ct-blog-count-fill: #223543;    /* L10724 */
  --ct-blog-tag-bg: #f0f0f0;        /* L10176 */
  --ct-blog-title-hover: #555555;   /* L9791 */
  --ct-blog-brief-rule: #e2e2e7;    /* L11004 */
  --ct-blog-date: #999999;          /* L11033 */
  --ct-blog-latest: #191514;        /* L11422, L11469 */
  --ct-blog-search-text: #333333;   /* L11364, L11395 */
  --ct-blog-quote-bg: #f9f9f9;      /* L2190 */
  --ct-blog-404-chip: #e7ecf3;      /* L10542 */
  --ct-blog-shadow-card: 0 6px 24px rgba(11, 11, 11, 0.08);        /* L9855 */
  --ct-blog-shadow-card-hover: 0 21px 51px rgba(11, 11, 11, 0.11); /* L9952 */
  --ct-blog-shadow-bar: 0 7px 16px rgba(12, 12, 12, 0.22);         /* L2220, L10014 */
  --ct-blog-shadow-chip: 0 8px 9px rgba(14, 14, 14, 0.34);         /* L10062 */
}

/* 5b.1 Column frame. .site-content padding 90px 0 is §5 (L45793); no
   ct-page-dynamic-css block is printed on these templates. Grid classes
   are grid.css. */
#primary + #secondary { margin-top: 60px; }                                   /* L45846-L45849 (<=991) */
@media (min-width: 992px) {
  #primary + #secondary { margin-top: 0; }
}
@media (min-width: 1200px) {
  body .content-has-sidebar.float-left { padding-right: 70px; }             /* L45813 */
  body.single-post .content-has-sidebar.float-left { padding-right: 15px; } /* L45819 */
  body .content-has-sidebar.float-right { padding-left: 70px; }             /* L45815 */
  body.single-post .content-has-sidebar.float-right { padding-left: 15px; } /* L45821 */
  .content-has-sidebar.float-right { order: 2; }                             /* L45826, left-sidebar posts */
  .content-has-sidebar.float-right + #secondary { order: 1; }                /* L45831 */
  .sidebar-sticky { position: sticky; top: 30px; }                          /* L10583-L10587 */
  .admin-bar .sidebar-sticky { top: 62px; }                                 /* L10588 */
  .header-sticky .sidebar-sticky { top: 110px; }                            /* L10591 */
  .admin-bar.header-sticky .sidebar-sticky { top: 142px; }                  /* L10594 */
}
.single-post #primary.col-12, .page-template-blog-classic #primary.col-12 { max-width: 840px; margin: auto; } /* L10330 */
.post-type-archive-portfolio #primary.col-12, .post-type-archive-service #primary.col-12,
.post-type-archive-case-study #primary.col-12, .tax-portfolio-category #primary.col-12,
.tax-service-category #primary.col-12, .tax-case-study-category #primary.col-12 { max-width: 960px; margin: auto; } /* L10334 */

/* 5b.2 Shared entry title, meta and date badge (prod L9782-L9847). */
.entry-title { font-size: 22px; line-height: 1.5; }                                            /* L9782 */
.entry-title a { color: inherit; display: block; }                                             /* L9786 */
.entry-title a:hover { color: var(--ct-blog-title-hover); }                                    /* L9790 */
.entry-meta {                                                                                  /* L9820 */
  margin-bottom: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  font-size: 14px;
  line-height: 24px;
  color: var(--ct-blog-meta);
  font-family: var(--ct-font-heading);
}
.entry-meta li { margin-right: 20px; }                                                         /* L9830 */
.entry-meta li:last-child { margin-right: 0; }                                                 /* L9833 */
.entry-meta li.item-author { text-transform: capitalize; }                                     /* L9836 */
.entry-meta i { margin-right: 4px; }                                                           /* L9839 */
.entry-meta a, .entry-meta a:hover { color: inherit; }                                         /* L9842-L9847 */
.entry-date {                                                                                  /* L9793 */
  position: absolute;
  top: 18px;
  left: 18px;
  width: 60px;
  min-width: 60px;
  height: 70px;
  background-color: var(--ct-link);
  text-align: center;
  color: var(--ct-white);
}
.entry-date span { display: block; }                                                           /* L9804 */
.entry-date span:nth-child(1) { font-size: 24px; font-weight: 700; font-family: var(--ct-font-heading); height: 40px; line-height: 40px; } /* L9807 */
.entry-date span:nth-child(2) { height: 30px; line-height: 30px; background-color: var(--ct-ink); font-size: 14px; } /* L9814 */

/* 5b.3 Archive / search list item article.single-hentry.archive (prod L9848-L9953). */
.single-hentry.archive {
  margin-bottom: 50px;
  box-shadow: var(--ct-blog-shadow-card);
  border: 1px solid var(--ct-blog-card-border);
  border-radius: 4px;
  overflow: hidden;
  background-color: var(--ct-white);
  display: flex;
  flex-wrap: wrap;
  transition: var(--ct-ease);
}
.single-hentry.archive:hover { box-shadow: var(--ct-blog-shadow-card-hover); }               /* L9946 */
.single-hentry.archive .entry-featured { position: relative; overflow: hidden; min-height: 300px; width: 100%; } /* L9876; 100% = L9887 (<=575) */
.single-hentry.archive .entry-featured + .entry-body { width: 100%; }                          /* L9924 (<=575) */
@media (min-width: 576px) {
  .single-hentry.archive .entry-featured { width: 52%; }                                       /* L9880 */
  .single-hentry.archive .entry-featured + .entry-body { width: 48%; }                         /* L9917 */
}
@media (min-width: 992px) {
  .single-hentry.archive .entry-featured { width: 48%; }                                       /* L9882 (992-1199) */
  .single-hentry.archive .entry-featured + .entry-body { width: 52%; }                         /* L9919 (992-1199) */
}
@media (min-width: 1200px) {
  .single-hentry.archive .entry-featured { width: 52%; }                                       /* L9880 */
  .single-hentry.archive .entry-featured + .entry-body { width: 48%; }                         /* L9917 */
}
.single-hentry.archive .entry-featured a {                                                     /* L9892 */
  display: block;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.single-hentry.archive .entry-featured a img { opacity: 0; position: absolute; z-index: -999; } /* L9903 */
.single-hentry.archive .entry-featured a:hover { transform: scale(1.1) rotate(3deg); }        /* L9908 */
.single-hentry.archive .entry-body { padding: 30px; display: flex; flex-wrap: wrap; align-items: center; } /* L9934 */
.single-hentry.archive .entry-body .entry-title { margin-bottom: 7px; }                       /* L9940 */
.single-hentry.archive .entry-body .entry-meta { margin-bottom: 16px; }                       /* L9943 */
.single-hentry.archive .entry-excerpt { font-size: 15px; line-height: 26px; margin-bottom: 7px; } /* L9929 */

/* Read more: a.btn-text.text-gradient. Clip-to-text comes from the
   .text-gradient group (L2617-L2637); the dark image from .btn-text
   (L4373), which wins in production because it is later in the file.
   The doubled class keeps that result against widgets.css. */
.btn-text { background-image: var(--ct-blog-gradient-dark); font-size: 14px; line-height: 24px; font-weight: 700; } /* L4373-L4383 */
.btn-text.text-gradient {
  background-color: transparent;                                                               /* L2626 */
  background-image: var(--ct-blog-gradient-dark);                                              /* L4378 */
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;                                                        /* L2627-L2636 */
}
.btn-text i { margin-right: 4px; display: initial; }                                           /* L4384 */
.btn-text span { display: initial; border-bottom: 1px solid var(--ct-ink); line-height: 20px; } /* L4388 */
.btn-text:hover, .btn-text.text-gradient:hover { background-color: var(--ct-link); background-image: var(--ct-blog-gradient); } /* L4393-L4402 */
.btn-text:hover span { border-color: var(--ct-link); }                                         /* L4403 */

/* 5b.4 Single post (prod L9954-L10228, L10426-L10490). */
.single-post .entry-blog { border: 1px solid var(--ct-blog-frame); border-radius: 7px; background-color: var(--ct-white); overflow: hidden; } /* L10077 */
.single-post .entry-featured { position: relative; }                                           /* L9978 */
.single-post .entry-featured img { width: 100%; }                                              /* L9981 */
.single-post .entry-category { display: flex; flex-wrap: wrap; position: absolute; bottom: 30px; right: 35px; } /* L10028 */
.single-post .entry-category a {                                                               /* L10035-L10063 */
  padding: 0 22px;
  line-height: 40px;
  color: var(--ct-white);
  font-size: 15px;
  font-weight: 600;
  margin-left: 4px;
  border-radius: 4px;
  background-image: var(--ct-blog-gradient-btn);
  background-size: 300%, 1px;
  background-position: 0%;
  box-shadow: var(--ct-blog-shadow-chip);
}
.single-post .entry-category a:hover, .single-post .entry-category a:focus { background-position: 100%; } /* L10064 */
.single-post .entry-body { width: 100%; padding: 32px 20px 40px; }                             /* L10067; 20px = L10071 (<=575) */
@media (min-width: 576px) {
  .single-post .entry-body { padding-left: 32px; padding-right: 32px; }                        /* L10069 */
}
.single-post .entry-meta {                                                                     /* L9984 */
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  margin: 0 0 37px;
  list-style: none;
  border-bottom: 1px solid var(--ct-blog-rule);
  padding-bottom: 16px;
  position: relative;
}
.single-post .entry-meta:before {                                                              /* L9994 */
  content: '';
  width: 40px;
  height: 3px;
  background-color: var(--ct-link);
  background-image: var(--ct-blog-gradient);
  position: absolute;
  bottom: -1px;
  left: 0;
  box-shadow: var(--ct-blog-shadow-bar);
}
.single-post .entry-meta li { font-size: 15px; line-height: 20px; margin-right: 0; }           /* L10016 */
.single-post .entry-meta li:after { content: '/'; margin: 0 8px; }                             /* L10021 */
.single-post .entry-meta li:last-child:after { display: none; }                                /* L10025 */
.single-post .entry-content p { margin-bottom: 24px; }                                         /* L10088 */
.single-post .entry-content p:last-child { margin-bottom: 0; }                                 /* L10091 */
.single-post .entry-footer {                                                                   /* L10094 */
  margin-top: 55px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--ct-blog-rule);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
.single-post .entry-footer > div { margin-bottom: 10px; }                                      /* L10102 */
.single-post .entry-footer label { font-size: 15px; font-weight: 500; color: var(--ct-blog-strong); margin-right: 17px; } /* L10105 */
.single-post .entry-footer .entry-tags { flex-grow: 1; }                                       /* L10111 */
.entry-tags { display: flex; flex-wrap: wrap; align-items: center; }                           /* L10210 */
.entry-tags a {                                                                                /* L10148, L10215 */
  font-size: 15px;
  color: var(--ct-blog-strong);
  display: inline-block;
  line-height: 40px;
  padding: 0 22px;
  border-radius: 7px;
  margin: 5px 5px 5px 0;
  position: relative;
  overflow: hidden;
  z-index: 1;
}
.entry-tags a:before, .entry-tags a:after {                                                    /* L10153 */
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  border-radius: inherit;
  z-index: -1;
  transition: var(--ct-ease);
}
.entry-tags a:before { background-color: var(--ct-blog-tag-bg); }                             /* L10175 */
.entry-tags a:after { background-color: var(--ct-link); background-image: var(--ct-blog-gradient); opacity: 0; } /* L10178 */
.entry-tags a:hover { color: var(--ct-white); }                                                /* L10189 */
.entry-tags a:hover:before { opacity: 0; }                                                     /* L10192 */
.entry-tags a:hover:after { opacity: 1; transform: translateX(0%); transition: all 180ms linear 0ms; } /* L10195 */

/* Post navigation. Mobile-first: prod L10467-L10474 (<=575) is the base. */
.entry-navigation { border-bottom: 1px solid var(--ct-blog-rule); padding: 29px 0; }          /* L10426 */
.entry-navigation .nav-links { display: flex; flex-wrap: wrap; align-items: center; margin: 0 -15px; } /* L10445 */
.entry-navigation .nav-item { display: flex; flex-wrap: nowrap; width: 100%; align-items: flex-start; padding: 0 15px; } /* L10451, L10468 */
.entry-navigation .nav-item + .nav-item { margin-top: 30px; }                                  /* L10472 */
@media (min-width: 576px) {
  .entry-navigation .nav-item { width: 50%; align-items: normal; }                             /* L10454 */
  .entry-navigation .nav-item + .nav-item { margin-top: 0; }
}
@media (min-width: 768px) {
  .entry-navigation .nav-item.nav-post-next { flex-direction: row-reverse; text-align: right; } /* L10458 */
  .entry-navigation .nav-item.nav-post-next .nav-post-img { margin-right: 0; margin-left: 20px; } /* L10462 */
}
.entry-navigation .nav-post-img { width: 70px; min-width: 70px; margin-right: 20px; margin-top: 6px; } /* L10431 */
.entry-navigation .nav-post-img img { border-radius: 0; }                                      /* L10437 */
.entry-navigation .nav-post-meta label { font-size: 13px; display: block; margin-bottom: 3px; } /* L10476 */
.entry-navigation .nav-post-meta a { font-size: 19px; line-height: 23px; font-weight: 700; font-family: var(--ct-font-heading); color: var(--ct-ink); } /* L10481 */
.entry-navigation .nav-post-meta a:hover { color: var(--ct-link); }                            /* L10488 */

/* 5b.5 Post content typography (prod L2189-L2236, L2334-L2357, L2389-L2408).
   Production loads Bootstrap's reboot (blockquote/figure margin 0 0 1rem);
   the zero side margins below are that reboot, which stage does not ship. */
blockquote {                                                                                   /* L2189 */
  background-color: var(--ct-blog-quote-bg);
  padding: 24px 20px;
  font-size: 19px;
  line-height: 30px;
  color: var(--ct-blog-strong);
  font-weight: 500;
  position: relative;
  margin: 40px 0 34px;
}
@media (min-width: 768px) {
  blockquote { padding: 24px 57px 24px 37px; }                                                 /* L2191; 20px sides = L2222 (<=767) */
}
blockquote:before {                                                                            /* L2200 */
  content: '';
  width: 5px;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background-color: var(--ct-link);
  background-image: var(--ct-blog-gradient);
  box-shadow: var(--ct-blog-shadow-bar);
}
blockquote cite {                                                                              /* L2228 + L2617 group */
  display: block;
  font-size: 15px;
  font-style: normal;
  margin-top: 10px;
  background-color: transparent;
  background-image: var(--ct-blog-gradient);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
blockquote p:last-child { margin-bottom: 0; }                                                  /* L2234 */
.alignleft, .alignright, .aligncenter { margin-top: 6px; margin-bottom: 45px; }                /* L2334 */
.alignleft { display: inline; float: left; margin-right: 35px; }                               /* L2338 */
.alignright { display: inline; float: right; margin-left: 35px; }                              /* L2343 */
.aligncenter { clear: both; display: block; margin-left: auto; margin-right: auto; }           /* L2348 */
.wp-caption { margin-bottom: 1.5em; max-width: 100%; }                                         /* L2389 */
.wp-caption img[class*="wp-image-"] { display: block; margin-left: auto; margin-right: auto; } /* L2393 */
.wp-caption .wp-caption-text { padding: 0.8075em 0; font-size: 0.875em; font-style: italic; }  /* L2398 */
.wp-caption-text { text-align: center; }                                                       /* L2406 */

/* Galleries: post-content variant first, widget variant later, as in
   production, so the widget rules win in a single-post sidebar. */
.single-post .gallery { margin-top: 0; margin-left: -15px; margin-right: -15px; }              /* L9958 */
.single-post .gallery .gallery-item { padding: 0 15px; }                                       /* L9963 */
.single-post .gallery .gallery-item img { border-radius: 7px; }                                /* L9966 */
.gallery { margin: -16px -12px 43px -12px; display: flex; flex-wrap: wrap; }                   /* L11154 */
.gallery .gallery-item { padding: 0 12px; margin: 24px 0 0; }                                  /* L11159; side margins = reboot */
.gallery.gallery-columns-2 .gallery-item { width: 50%; }                                       /* L11164 */
.gallery.gallery-columns-3 .gallery-item { width: 33.33%; }                                    /* L11167 */
.gallery.gallery-columns-4 .gallery-item { width: 25%; }                                       /* L11170 */
.gallery.gallery-columns-5 .gallery-item { width: 20%; }                                       /* L11173 */

/* 5b.6 Sidebar widgets (prod L10598-L10738, L10999-L11108, L11176-L11230, L11322-L11485). */
#secondary .widget { margin-bottom: 42px; }                                                    /* L10624 */
#secondary .widget:last-child { margin-bottom: 0; }                                            /* L10627 */
.widget { margin-bottom: 30px; }                                                               /* L10633 */
.widget:last-child { margin-bottom: 0; }                                                       /* L10639 */
.widget-title { font-size: 20px; font-weight: 600; margin-bottom: 30px; padding-bottom: 11px; position: relative; } /* L10598 */
.widget-title:before {                                                                         /* L10605 */
  content: '';
  width: 40px;
  height: 3px;
  background-color: var(--ct-link);
  background-image: var(--ct-blog-gradient);
  position: absolute;
  bottom: 0;
  left: 0;
}

/* Categories / archives lists. */
.widget_categories ul, .widget_nav_menu ul, .widget_pages ul, .widget_archive ul, .widget_meta ul { list-style: none; margin-bottom: 0; } /* L10654 */
#content .widget_categories ul li, #content .widget_nav_menu ul li, #content .widget_pages ul li,
#content .widget_archive ul li, #content .widget_meta ul li, #content .widget_recent_entries ul li { font-size: 0px; } /* L10661 */
#content .widget_categories ul li a, #content .widget_nav_menu ul li a, #content .widget_pages ul li a,
#content .widget_archive ul li a, #content .widget_meta ul li a, #content .widget_recent_entries ul li a { /* L10664 */
  color: var(--ct-blog-strong);
  display: block;
  font-size: 15px;
  font-weight: 500;
  line-height: 24px;
  padding: 13px 12px 13px 16px;
  position: relative;
  z-index: 1;
  border-bottom: 1px solid var(--ct-blog-rule);
}
#content .widget_categories ul li a:before, #content .widget_nav_menu ul li a:before, #content .widget_pages ul li a:before,
#content .widget_archive ul li a:before, #content .widget_meta ul li a:before, #content .widget_recent_entries ul li a:before { /* L10676 */
  content: "\f105";
  font-family: "FontAwesome";
  margin-right: 8px;
}
#content .widget_categories ul li a span.count, #content .widget_nav_menu ul li a span.count, #content .widget_pages ul li a span.count,
#content .widget_archive ul li a span.count, #content .widget_meta ul li a span.count, #content .widget_recent_entries ul li a span.count { /* L10681 */
  width: 27px;
  height: 27px;
  display: inline-block;
  background-color: var(--ct-blog-count-bg);
  text-align: center;
  line-height: 27px;
  font-size: 12px;
  color: var(--ct-blog-strong);
  transition: all 0ms linear 0ms;
}
#content .widget_categories ul li.current-cat > a, #content .widget_categories ul li.current-cat-parent > a,
#content .widget_nav_menu ul li.current-menu-item > a, #content .widget_pages ul li.current-menu-item > a,
#content .widget_categories ul li > a:hover, #content .widget_nav_menu ul li > a:hover, #content .widget_pages ul li > a:hover,
#content .widget_archive ul li > a:hover, #content .widget_meta ul li > a:hover, #content .widget_recent_entries ul li > a:hover { /* L10697-L10718 */
  padding-left: 23px;
  background-color: transparent;
  background-image: var(--ct-blog-gradient);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
#content .widget_categories ul li.current-cat > a span.count, #content .widget_categories ul li.current-cat-parent > a span.count,
#content .widget_nav_menu ul li.current-menu-item > a span.count, #content .widget_pages ul li.current-menu-item > a span.count,
#content .widget_categories ul li > a:hover span.count, #content .widget_nav_menu ul li > a:hover span.count, #content .widget_pages ul li > a:hover span.count,
#content .widget_archive ul li > a:hover span.count, #content .widget_meta ul li > a:hover span.count, #content .widget_recent_entries ul li > a:hover span.count { /* L10719-L10725 */
  -webkit-text-fill-color: var(--ct-blog-count-fill);
}
#content .widget_categories ul li .children, #content .widget_nav_menu ul li .sub-menu, #content .widget_pages ul li .children { padding-left: 10px; } /* L10726 */
.count.right { float: right; }                                                                 /* L10736 */

/* ct_recent_posts (posts-list layout1). */
.widget_ct_recent_posts .entry-brief {                                                         /* L10999 */
  display: flex;
  flex-wrap: nowrap;
  padding-bottom: 17px;
  margin-bottom: 24px;
  border-bottom: 1px solid var(--ct-blog-brief-rule);
}
.widget_ct_recent_posts .entry-brief:last-child { margin-bottom: 0; padding-bottom: 0; border-bottom: none; } /* L11006 */
.widget_ct_recent_posts .entry-media { width: 65px; min-width: 65px; margin-right: 25px; }      /* L11011 */
.widget_ct_recent_posts .entry-media img { border-radius: 65px; }                              /* L11016 */
.widget_ct_recent_posts .entry-title { font-size: 16px; line-height: 26px; font-weight: 600; margin-bottom: 4px; margin-top: -2px; } /* L11024 */
.widget_ct_recent_posts .item-date { font-size: 15px; color: var(--ct-blog-date); }           /* L11031 */

/* Tag cloud. WordPress prints style="font-size: Npt" on each link; the
   !important is production's own (L11041) and is what defeats it. */
.tagcloud a {                                                                                  /* L11035 */
  background-color: transparent;
  padding: 0 21px;
  color: var(--ct-blog-strong);
  display: inline-block;
  font-size: 15px !important;
  line-height: 30px;
  margin-right: 1px;
  margin-bottom: 11px;
  position: relative;
  z-index: 1;
  border: 1px solid var(--ct-blog-chip-border);
}
.tagcloud a:hover { color: var(--ct-white); border-color: var(--ct-link); background-color: var(--ct-link); } /* L11049 */

/* Theme search form (#search-1 and .no-results). */
.widget_search .search-form { position: relative; }                                            /* L11054 */
.widget_search .search-form .search-submit {                                                   /* L11057 */
  padding: 0;
  border: none;
  line-height: 50px;
  height: 50px;
  width: 53px;
  position: absolute;
  top: 0;
  right: 0;
  color: var(--ct-blog-strong);
  font-size: 15px;
  border-radius: 0;
  box-shadow: none;
  background-color: transparent;
  background-image: none;
  border-left: 1px solid var(--ct-blog-rule);
}
.widget_search .search-form .search-submit:before, .widget_search .search-form .search-submit:after { display: none; } /* L11084 */
.widget_search .search-form .search-submit:hover { background-color: var(--ct-link); color: var(--ct-white); } /* L11087 */
.widget_search .search-form .search-field { border-radius: 0; border: 1px solid var(--ct-blog-rule); padding: 0 22px; color: var(--ct-blog-strong); font-size: 15px; } /* L11091 */
.widget_search .search-form .search-field:focus { border-color: var(--ct-link); }             /* L11103 */
.widget_search .search-form .search-field:focus + .search-submit { border-color: var(--ct-link); } /* L11106 */
.no-results .searchform-wrap { position: relative; }                                           /* L10568 */
.no-results .searchform-wrap .search-submit { position: absolute; top: 0; right: 0; border-radius: 0; } /* L10571 */

/* Media gallery widget (after the generic .gallery rules, as in production). */
.widget_media_gallery .gallery { margin: -10px -5px 0 -5px; }                                  /* L11176 */
.widget_media_gallery .gallery .gallery-item {                                                 /* L11179 */
  padding: 0 5px;
  margin-top: 10px !important; /* production's own !important (L11181) */
  margin-bottom: 0;
}
.widget_media_gallery .gallery .gallery-item img { border-radius: 0; }                         /* L11184 */

/* Sidebar newsletter box (sidebar.php .ct-newsletter.widget). */
.ct-newsletter.widget { background-image: var(--ct-blog-gradient-dark); padding: 32px 25px 42px; } /* L11192 */
.ct-newsletter.widget .widget-title { padding-bottom: 22px; margin-bottom: 0; color: var(--ct-white); font-size: 22px; } /* L11201 */
.ct-newsletter.widget .widget-title:before {                                                   /* L11207 */
  content: '\f2b6';
  font-family: var(--ct-font-icon);
  position: static;
  background-image: none;
  background-color: transparent;
  font-size: 20px;
  margin-right: 14px;
}
.ct-newsletter.widget .tnp-field-email { margin-bottom: 15px; }                                /* L11216 */
.ct-newsletter.widget .tnp-field-email .tnp-email { border-radius: 6px; border: 1px solid var(--ct-grey-field); height: 58px; font-size: 13px; text-align: center; } /* L11219 */
body .tnp-subscription { margin: 0; }                                                          /* L11322 */
body .tnp-subscription div.tnp-field { margin-bottom: 0; }                                     /* L11326 */

/* WordPress block widgets (#block-2 search, #block-3/#block-4 groups). */
.widget_block .widget-content .wp-block-search__label,
.widget_block .widget-content .wp-block-group__inner-container > h2 {                          /* L11329 */
  font-size: 20px;
  color: var(--ct-ink);
  position: relative;
  padding-bottom: 10px;
  margin-bottom: 30px;
  display: block;
  font-weight: 600;
  font-family: var(--ct-font-heading);
}
.widget_block .widget-content .wp-block-search__label:before,
.widget_block .widget-content .wp-block-group__inner-container > h2:before {                   /* L11339 */
  content: '';
  width: 40px;
  height: 3px;
  background-color: var(--ct-link);
  position: absolute;
  bottom: 0;
  left: 0;
}
.widget_block .widget-content ol, .widget_block .widget-content ul { padding-left: 0; }        /* L11348 */
.widget_block.widget_search { position: relative; }                                            /* L11351 */
.widget_block.widget_search .wp-block-search__button {                                         /* L11354 */
  padding: 0;
  border: none;
  line-height: 51px;
  height: 51px;
  width: 51px;
  border-left: 1px solid var(--ct-blog-rule);
  position: absolute;
  top: 0;
  right: 0;
  color: var(--ct-blog-search-text);
  background-image: none;
  background-color: transparent;
  box-shadow: none;
  border-radius: 0;
  font-size: 0px;
}
.widget_block.widget_search .wp-block-search__button:before { content: "\f002"; font-family: "FontAwesome"; font-size: 15px; } /* L11382 */
.widget_block.widget_search .wp-block-search__button:after { display: none; }                  /* L11387 */
.widget_block.widget_search .wp-block-search__button:hover { color: var(--ct-link); }          /* L11390 */
.widget_block.widget_search .wp-block-search__input {                                          /* L11393 */
  font-size: 15px;
  color: var(--ct-blog-search-text);
  border-color: var(--ct-blog-rule);
  background-color: var(--ct-white);
  height: 51px;
  padding-left: 20px;
  padding-right: 51px;
  border-radius: 0;
}
.widget_block.widget_search .wp-block-search__input:focus { border-color: var(--ct-link); }    /* L11408 */
.widget_block.widget_search .wp-block-search__input:focus + .wp-block-search__button { border-color: var(--ct-link); } /* L11411 */
.widget_block.widget_search .wp-block-search__inside-wrapper { display: block; position: relative; } /* L11414 */
/* list-style:none is core's latest-posts block CSS (block 28), which
   production prints inline; restated so the list does not depend on it. */
.widget_block .wp-block-latest-posts__list { list-style: none; }                               /* block 28 */
.widget_block .wp-block-latest-posts__list li { font-size: 0px; }                              /* L11418 */
.widget_block .wp-block-latest-posts__list li a {                                              /* L11421 */
  color: var(--ct-blog-latest);
  display: block;
  font-size: 15px;
  padding: 12px 0;
  position: relative;
  border-bottom: 1px solid var(--ct-blog-rule);
  font-family: var(--ct-font-heading);
  font-weight: normal;
}
.widget_block .wp-block-latest-posts__list li a:before {                                       /* L11432 */
  content: '';
  height: 7px;
  width: 7px;
  border-radius: 7px;
  background-color: var(--ct-link);
  position: absolute;
  left: 0;
  top: 50%;
  transform: translate(0, -50%);
  opacity: 0;
  transition: var(--ct-ease);
}
.widget_block .wp-block-latest-posts__list li a:hover { color: var(--ct-link); padding-left: 30px; } /* L11460 */
.widget_block .wp-block-latest-posts__list li a:hover:before { left: 15px; opacity: 1; }      /* L11464 */
.widget_block .wp-block-latest-comments li {                                                   /* L11468 */
  color: var(--ct-blog-latest);
  display: block;
  font-size: 15px;
  line-height: normal;
  padding: 12px 0;
  position: relative;
  border-bottom: 1px solid var(--ct-blog-rule);
  font-family: var(--ct-font-heading);
  font-weight: normal;
}
.widget_block .wp-block-latest-comments li a { color: inherit; }                               /* L11480 */
.widget_block .wp-block-latest-comments li a:hover { color: var(--ct-link); }                  /* L11483 */
/* Sidebar gallery (core media_gallery widget, size medium): production serves each item through Jetpack
   Photon as a 300x300 copy of the 600x600 original (the attachments carry no metadata, so core has no
   medium file and emits the original URL on both sites); without Photon the original would scale up to
   the column (303-313px at 960-980) and add 6-20px to the page. The medium-size bound is applied here. */
.gallery-size-medium .gallery-item img { max-width: min(100%, 300px); max-height: 300px; }

/* 5b.7 404 (prod L10491-L10557) and the button icon spacing it uses (L3474-L3479).
   The illustration is the theme asset assets/images/bg-404.jpg (1920x896), painted as L10491 does. */
body.error404 .site-content { background-image: url(../images/bg-404.jpg); background-position: center top; background-repeat: no-repeat; background-size: cover; } /* L10491 */
/* The 404 template has no .container, so its .row (-15px gutters) ends 15px past the viewport above
   1199 on both sites (production hides that under defect 27). The page carries no lazy carousel, so the
   row is clipped at #primary here; see the >=1200 note in section 7 for why .site itself is not clipped. */
body.error404 #primary.content-area { overflow-x: clip; }
/* Production drops every .site-content background below 1200 (L45803: body .site-content
   { background-image: none !important } at <=1199), which is why the 404 illustration is painted at
   desktop/wide only - the verifier measured prod's mobile/tablet 404 band as bare. */
@media screen and (max-width: 1199px) {
  body .site-content { background-image: none !important; }
}
.error-404 { max-width: 820px; padding: 0 15px 100px 15px; margin: auto; text-align: center; } /* L10497; 100px = L10503 (<=767) */
@media (min-width: 768px) {
  .error-404 { padding-bottom: 150px; }                                                        /* L10499 */
}
.error-404 .btn { padding: 0 39px; font-size: 16px; line-height: 65px; }                       /* L10508 */
.error-404 .error-404-content { margin: 0 -30px; display: flex; flex-wrap: wrap; align-items: center; } /* L10513 */
.error-404 .error-404-content > div { padding: 0 30px; }                                       /* L10519 */
.error-404 .error-404-content .error-404-holder { flex-grow: 1; }                              /* L10522 */
.error-404 .error-404-content .error-404-title { font-size: 45px; line-height: 1; margin-top: 6px; margin-bottom: 26px; } /* L10525; 45px = L10531 (<=767) */
.error-404 .error-404-content .error-404-sub { margin-bottom: 350px; }                         /* L10536 */
.error-404 .error-404-content .error-404-sub span {                                            /* L10539; 18px = L10553 (<=767) */
  font-size: 18px;
  color: var(--ct-ink);
  background-color: var(--ct-blog-404-chip);
  display: inline-block;
  border-radius: 4px;
  padding: 0 30px;
  line-height: 57px;
}
@media (min-width: 768px) {
  .error-404 .error-404-content .error-404-title { font-size: 60px; }                          /* L10526 */
  .error-404 .error-404-content .error-404-sub span { font-size: 26px; }                       /* L10540 */
}
.btn i { margin-left: 8px; }                                                                   /* L3474 */
.btn i.space-right { margin-left: 0; margin-right: 8px; }                                      /* L3477 */

/* 5b.8 Pagination nav.posts-pagination (prod L10338-L10425). */
.posts-pagination { margin-bottom: -10px; }                                                    /* L10338 */
.posts-pagination .posts-page-links { display: flex; flex-wrap: nowrap; justify-content: center; } /* L10341 */
.posts-pagination .page-numbers {                                                              /* L10346 */
  text-align: center;
  height: 51px;
  width: 51px;
  line-height: 51px;
  font-size: 15px;
  font-weight: 600;
  color: var(--ct-blog-strong);
  background-color: var(--ct-white);
  display: inline-block;
  margin: 0 6px 10px 6px;
  border-radius: 6px;
  transition: var(--ct-ease);
  position: relative;
  z-index: 1;
}
.posts-pagination .page-numbers:before, .posts-pagination .page-numbers:after { /* L10372 */
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  transition: var(--ct-ease);
}
.posts-pagination .page-numbers:before { border: 2px solid var(--ct-blog-chip-border); border-radius: 51px; z-index: -2; } /* L10386 */
.posts-pagination .page-numbers:after { background-color: var(--ct-link); background-image: var(--ct-blog-gradient); border-radius: 51px; z-index: -1; opacity: 0; } /* L10396 */
.posts-pagination .page-numbers.current, .posts-pagination .page-numbers:hover, .posts-pagination .page-numbers:focus { color: var(--ct-white); } /* L10414 */
.posts-pagination .page-numbers.current:before, .posts-pagination .page-numbers:hover:before, .posts-pagination .page-numbers:focus:before { opacity: 0; } /* L10417 */
.posts-pagination .page-numbers.current:after, .posts-pagination .page-numbers:hover:after, .posts-pagination .page-numbers:focus:after { opacity: 1; } /* L10420 */
.posts-pagination .page-numbers.next, .posts-pagination .page-numbers.prev { font-size: 18px; } /* L10423 */

/* ------------------------------------------------------------------ */
/* 6. Header layout 9 / h-style4 - shared and mobile (<1200) state      */
/*    prod L4785-L4870 (shared), L8508-L8570 and L9459-L9705 (<=1199)  */
/* ------------------------------------------------------------------ */

#ct-header-wrap { position: relative; z-index: 999; background-color: var(--ct-white); box-shadow: var(--ct-shadow-mobile-bar); }
#ct-header-wrap .far, #ct-header-wrap .fac { font-family: var(--ct-font-icon); }
#ct-header-wrap .row { align-items: center; }
#ct-header-wrap .ct-header-main { position: relative; }
#ct-header-wrap #ct-header { transition: all 0.3s cubic-bezier(0.39, 0.575, 0.565, 1) 0s; }
#ct-header-wrap .ct-header-branding { margin: 15px; position: relative; flex-grow: 1; opacity: 1; }
#ct-header-wrap .ct-header-branding img { max-height: 50px; max-width: inherit; transition: var(--ct-ease); }
#ct-header-wrap .ct-header-branding .logo-light, #ct-header-wrap .ct-header-branding .logo-mobile {
  position: absolute; top: 50%; left: 0; transform: translate(0, -50%); opacity: 0;
}
#ct-header-wrap .ct-header-branding a.logo-mobile { opacity: 1; position: static; }
#ct-header-wrap .ct-header-branding a.logo-dark, #ct-header-wrap .ct-header-branding a.logo-light { display: none; }
#ct-header-wrap .ct-header-meta { margin-left: 17px; display: none; }

/* Hamburger (prod L8554, L9640-L9703) */
#ct-header-wrap #ct-menu-mobile { position: absolute; top: 50%; right: 15px; transform: translate(0, -50%); display: flex; flex-wrap: wrap; align-items: center; }
#ct-menu-mobile .btn-nav-mobile {
  color: var(--ct-hamburger); display: inline-block; font-size: 16px; height: 32px; line-height: 32px; text-align: center;
  vertical-align: middle; width: 30px; cursor: pointer; position: relative; transition: var(--ct-ease);
}
#ct-menu-mobile .btn-nav-mobile::before, #ct-menu-mobile .btn-nav-mobile::after, #ct-menu-mobile .btn-nav-mobile span {
  transition: var(--ct-ease); content: ""; background-color: var(--ct-hamburger); display: block; height: 2px;
  left: 0; margin: auto; position: absolute; right: 0; width: 26px; top: 22px;
}
#ct-menu-mobile .btn-nav-mobile::before { top: 8px; }
#ct-menu-mobile .btn-nav-mobile span { top: 15px; }
#ct-menu-mobile .btn-nav-mobile.opened::before { top: 15px; transform: rotate(45deg); }
#ct-menu-mobile .btn-nav-mobile.opened::after { top: 15px; transform: rotate(-45deg); }
#ct-menu-mobile .btn-nav-mobile.opened span { display: none; }

/* Off-canvas drawer (prod L9459-L9516) */
.ct-header-navigation {
  position: absolute; height: 100vh; width: 260px; top: 0; left: 0; bottom: 0; margin: 0;
  overflow: hidden; visibility: hidden; z-index: 999;
}
.ct-header-navigation .ct-main-navigation {
  overflow: hidden; width: 260px; padding: 0; background-color: var(--ct-white); position: fixed; z-index: 1001;
  top: 0; height: 100%; left: 0; right: 0; transition: var(--ct-ease); transform: translateX(-100%);
  box-shadow: var(--ct-shadow-drawer);
}
.ct-header-navigation .ct-main-navigation .ct-main-navigation-inner { height: 100%; overflow-y: scroll; padding: 30px 26px 30px 16px; margin-right: -10px; }
.ct-header-navigation.navigation-open { z-index: 999; visibility: visible; }
.ct-header-navigation.navigation-open .ct-main-navigation { transform: translateX(0); }
.ct-logo-mobile { display: block; margin-bottom: 30px; text-align: center; position: relative; }
.ct-logo-mobile img { max-height: 50px; }

/* Drawer menu (prod L9517-L9620) */
.ct-main-menu { list-style: none; margin: 0; padding: 0; }
.ct-main-menu li { position: relative; list-style: none; }
.ct-main-menu li a {
  display: block; padding: 0; line-height: 50px; color: var(--ct-menu-mobile); font-family: var(--ct-font-heading);
  font-size: 15px; font-weight: 600; border-bottom: 1px solid var(--ct-drawer-line); transition: var(--ct-ease);
}
.ct-main-menu > li > a:hover, .ct-main-menu > li > a.current, .ct-main-menu > li.current_page_item > a,
.ct-main-menu > li.current-menu-item > a, .ct-main-menu > li.current_page_ancestor > a, .ct-main-menu > li.current-menu-ancestor > a { color: var(--ct-link); }
.ct-main-menu > li > .sub-menu { border-bottom: 1px solid var(--ct-drawer-line); padding-top: 9px; padding-bottom: 9px; }
.ct-main-menu .sub-menu, .ct-main-menu .children { position: relative; display: none; }
.ct-main-menu .sub-menu li a, .ct-main-menu .children li a { padding: 0 0 0 10px; line-height: 34px; font-weight: 400; font-size: 14px; border: none; }
.ct-main-menu .sub-menu li > a:hover, .ct-main-menu .sub-menu li.current_page_item > a, .ct-main-menu .sub-menu li.current-menu-item > a,
.ct-main-menu .sub-menu li.current_page_ancestor > a, .ct-main-menu .sub-menu li.current-menu-ancestor > a { color: var(--ct-link); }
.ct-main-menu .sub-menu li .ct-menu-toggle { top: 2px; }
.ct-main-menu .sub-menu .sub-menu li a { padding: 0 0 0 20px; }
.ct-main-menu .sub-menu .sub-menu li .sub-menu li a { padding: 0 0 0 30px; }
.ct-main-menu li.focus > .sub-menu { visibility: visible; opacity: 1; max-height: none; overflow: visible; }
/* main.js appends <span class="ct-menu-toggle far fac-angle-right">; the glyph
   comes from icons/font-awesome5-pro.css. Font family wins by source order
   over .far, so production's !important (L9596) is not needed. */
.ct-menu-toggle {
  position: absolute; top: 10px; height: 30px; right: 0; border: 1px solid var(--ct-drawer-line); width: 30px;
  cursor: pointer; border-radius: 3px; font-family: var(--ct-font-icon); font-size: 15px;
}
.ct-menu-toggle::before { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); transition: var(--ct-ease); }
.ct-menu-toggle.toggle-open::before { content: '\f106'; }

/* Menu line height. Customizer block 11 forced 80px at every width with
   !important; the same number is written here at normal priority. Above
   1200px inc/dynamic-css.php also emits it with !important. */
#ct-header-wrap.ct-header-layout9.h-style4 .ct-main-menu > li > a { line-height: 80px; }

/* Sticky state (prod L4831-L4862). Only reachable when .is-sticky is set
   and the JS has scrolled past header height + 200px. */
#ct-header-wrap #ct-header.h-fixed {
  background-color: var(--ct-white);
  box-shadow: var(--ct-shadow-sticky);
  position: fixed; left: 0; top: 0; right: 0;
  animation: 0.95s ease 0s normal forwards 1 running headerSlideDown;
}
#ct-header-wrap #ct-header.h-fixed .ct-header-branding { margin-top: 10px; margin-bottom: 10px; }
#ct-header-wrap #ct-header.h-fixed .ct-header-branding img { max-height: 50px; }
#ct-header-wrap #ct-header.h-fixed .ct-header-branding .logo-light { opacity: 0; }
#ct-header-wrap #ct-header.h-fixed .ct-header-branding .logo-dark { opacity: 1; }

/* Rules that must beat an inline style main.js writes only above 1200px,
   so they cannot be expressed mobile-first. !important as production
   (L8519 height, L45814 margin-bottom). */
@media (max-width: 1199px) {
  #ct-header-wrap.fixed-height { height: inherit !important; }
  .fixed-footer .site-content { margin-bottom: 0 !important; }
}

/* ------------------------------------------------------------------ */
/* 7. Header layout 9 / h-style4 - desktop (>=1200) overlay state       */
/*    prod L6071-L6085, L9045-L9300, L6618-L6657                        */
/* ------------------------------------------------------------------ */

@media (min-width: 1200px) {
  /* Production L45798: .site overflow returns to visible above 1199 (the <=1199
     clip is above). Nothing substitutes for the clip here, deliberately. Above
     1199 both sites carry boxes that end 15px past the viewport (Home: the blog
     carousel's .ct-carousel-inner and the stretched hero's container; 404: the
     bare .row); production's scrollWidth hides that under defect 27's 5000px
     header pseudo-element. Measured in Chromium at 1440/1920 (round-14 rebuild):
     - any clip on .site or on a section, overflow-x: clip included, starves every
       slick clone parked beyond the viewport (About 12/22, Contact 18/26 images
       at 0x0) because the lazy-image observer clips through every ancestor;
     - html { overflow-x: clip | hidden } keeps scrollWidth at 1440 and the clones
       loading, but changes the text rasterisation of the sticky blog sidebar on
       every post/archive page at desktop (2.7% of the sidebar's pixels differ
       from the round-14 stage capture; 0% with .site/html visible).
     So the 15px scrollWidth excess at >=1200 is production's own geometry and
     is left in place; body { overflow-x: hidden } (both sites) keeps it unscrollable. */
  #page.site { overflow: visible; }
  #ct-header-wrap { background-color: transparent; box-shadow: none; }
  #ct-header-wrap .ct-header-branding a.logo-dark { display: inline; }
  #ct-header-wrap .ct-header-branding a.logo-light { display: block; }
  #ct-header-wrap .ct-header-branding a.logo-mobile { position: absolute; opacity: 0; }
  /* Block 09 caps the logo at 75px (!important, now emitted by inc/dynamic-css.php). */
  #ct-header-wrap .ct-header-branding img { max-height: 75px; }
  #ct-header-wrap #ct-menu-mobile, .ct-logo-mobile, .header-mobile-search, .ct-header-button-mobile { display: none; }
  /* Production's mobile rules live in a max-width block, so the hidden
     mobile elements carry default computed values at desktop. Mirrored so
     a stage metrics diff reads clean; no pixel effect. */
  .ct-logo-mobile { margin: 0; text-align: left; position: static; }
  #ct-header-wrap #ct-menu-mobile { position: static; transform: none; }
  #ct-menu-mobile .btn-nav-mobile { color: inherit; display: inline; line-height: inherit; text-align: inherit; position: static; }
  #ct-menu-mobile .btn-nav-mobile::before, #ct-menu-mobile .btn-nav-mobile::after { content: none; }
  #ct-menu-mobile .btn-nav-mobile span { display: inline; position: static; margin: 0; background-color: transparent; }
  #ct-header-wrap .ct-header-navigation {
    position: static; height: auto; width: auto; bottom: auto; overflow: visible; visibility: visible; z-index: auto;
    margin: 0 15px; display: flex; align-items: center;
  }
  .ct-header-navigation .ct-main-navigation {
    overflow: visible; width: auto; position: static; z-index: auto; height: auto; transform: none; box-shadow: none; background-color: transparent;
  }
  .ct-header-navigation .ct-main-navigation .ct-main-navigation-inner { height: auto; overflow: visible; padding: 0; margin-right: 0; }
  .ct-main-navigation ul { display: block; }
  /* Production computes line-height 16px here (= its FA5 base rule line-height: 1 at the inherited 16px); inherit gave 30px. */
  .ct-main-menu li .ct-menu-toggle { display: none; position: static; border: 0; border-radius: 0; font-size: inherit; line-height: 1; }
  .ct-main-menu li a { border-bottom: 0; line-height: normal; color: inherit; font-size: inherit; font-weight: inherit; }
  .ct-main-menu > li { display: inline-block; vertical-align: middle; float: left; margin: 0 17px; }
  .ct-main-menu > li > a { font-size: 16px; color: var(--ct-black); font-weight: 600; line-height: 73px; position: relative; padding: 0; }
  /* Underline indicator. Production's unprefixed gradient uses the invalid
     `linear-gradient(left, …)` form, so Chrome rendered the -webkit- copy:
     left-to-right. h-style4 raises it to 7px with a 6px radius (L6621). */
  .ct-main-menu > li > a::before {
    content: ""; position: absolute; left: 0; right: 0; bottom: 0; margin: auto;
    background-color: var(--ct-link); background-image: linear-gradient(to right, var(--ct-link), var(--ct-link-hover));
    height: 5px; width: 0; transition: all 0.25s cubic-bezier(0.37, 0.31, 0.2, 0.85);
  }
  #ct-header-wrap.ct-header-layout9.h-style4 .ct-main-menu > li > a::before { height: 7px; border-radius: 6px; }
  .ct-main-menu > li:hover > a, .ct-main-menu > li.current_page_item:not(.menu-item-type-custom) > a,
  .ct-main-menu > li.current-menu-item:not(.menu-item-type-custom) > a, .ct-main-menu > li.current-menu-parent > a,
  .ct-main-menu > li.current_page_ancestor:not(.menu-item-type-custom) > a, .ct-main-menu > li.current-menu-ancestor:not(.menu-item-type-custom) > a { color: var(--ct-link); }
  .ct-main-menu > li:hover > a::before, .ct-main-menu > li.current_page_item:not(.menu-item-type-custom) > a::before,
  .ct-main-menu > li.current-menu-item:not(.menu-item-type-custom) > a::before, .ct-main-menu > li.current-menu-parent > a::before,
  .ct-main-menu > li.current_page_ancestor:not(.menu-item-type-custom) > a::before, .ct-main-menu > li.current-menu-ancestor:not(.menu-item-type-custom) > a::before { width: 100%; }
  .ct-main-menu > li.menu-item-has-children > a::after, .ct-main-menu > li.page_item_has_children > a::after { content: "+"; margin-left: 4px; display: inline-block; vertical-align: top; }

  /* Dropdown (prod L9159-L9285) */
  .ct-main-menu .sub-menu, .ct-main-menu .children {
    position: absolute; display: block; background: var(--ct-white); padding: 28px 0; top: 100%; left: 0; margin: 0; min-width: 235px;
    z-index: 99; visibility: hidden; opacity: 0; box-shadow: var(--ct-shadow-dropdown); transition: var(--ct-ease);
    border-radius: 0 0 7px 7px; clip: rect(1px, 1px, 1px, 1px); transform: scaleY(0); transform-origin: 0 0 0; border-bottom: 0;
  }
  .ct-main-menu > li > .sub-menu { border-bottom: 0; padding-top: 28px; padding-bottom: 28px; }
  .ct-main-menu > li > ul.back { right: 0; left: auto; }
  .ct-main-menu .sub-menu li, .ct-main-menu .children li { padding: 0 40px; white-space: nowrap; }
  .ct-main-menu .sub-menu li a, .ct-main-menu .children li a { color: var(--ct-submenu-text); font-size: 14px; font-weight: 500; line-height: normal; padding: 8px 0; position: relative; }
  .ct-main-menu .sub-menu li.menu-item-has-children > a { padding-right: 10px; }
  .ct-main-menu .sub-menu li.menu-item-has-children > a::after { content: "\f105"; font-family: var(--ct-font-icon); position: absolute; right: 0; top: 50%; transform: translate(0, -50%); }
  .ct-main-menu .sub-menu li:last-child > a { border-bottom: none; }
  .ct-main-menu .sub-menu li > a:hover, .ct-main-menu .sub-menu li.current_page_item:not(.menu-item-type-custom) > a,
  .ct-main-menu .sub-menu li.current-menu-item:not(.menu-item-type-custom) > a { color: var(--ct-link); }
  .ct-main-menu .sub-menu .sub-menu { top: 0; left: 100%; border-radius: 0 7px 7px 7px; }
  .ct-main-menu .sub-menu .sub-menu-title { display: none; }
  .ct-main-menu li:hover, .ct-main-menu li.focus { overflow: visible; }
  .ct-main-menu li:hover > .sub-menu, .ct-main-menu li.focus > .sub-menu, .ct-main-menu li:hover > .children, .ct-main-menu li.focus > .children {
    visibility: visible; opacity: 1; clip: auto; transform: scaleY(1);
  }

  /* h-style4 overlay (prod L6630-L6657). The header floats over the page:
     #ct-header-wrap keeps zero height and the content starts at y=0. */
  #ct-header-wrap.ct-header-layout9.h-style4 .ct-header-main:not(.h-fixed) { position: absolute; top: 0; left: 0; right: 0; }
  #ct-header-wrap.ct-header-layout9.h-style4 .ct-header-main:not(.h-fixed) > .container { position: relative; z-index: 1; }
  /*
   * DELIBERATE DEVIATION - the white pill behind the header.
   * Production (L6640) draws it as `.container::before { left:15px;
   * width:5000px; right:-3815px }`, which pushes scrollWidth to 5135px at
   * 1440 and 5375px at 1920 (baseline README: horizontal-overflow defect).
   * The visual purpose is a white strip, rounded 120px on its left edge,
   * from container-left + 15px to the right edge of the viewport. It is
   * drawn here on .ct-header-main instead, which already spans the
   * viewport: left = 50% - 585px is container-left + 15px (135 at 1440,
   * 375 at 1920, both baseline branding x), right: 0 stops at the viewport
   * edge, so scrollWidth === innerWidth. Nothing else changes: it still
   * sits behind the container (z-index -1 inside #ct-header-wrap's
   * stacking context) and disappears in the sticky state.
   */
  #ct-header-wrap.ct-header-layout9.h-style4 .ct-header-main:not(.h-fixed)::before {
    content: ''; position: absolute; top: 0; bottom: 0; left: calc(50% - 585px); right: 0;
    background-color: var(--ct-white); z-index: -1; border-radius: 120px 0 0 120px;
  }
  #ct-header-wrap.ct-header-layout9.h-style4 .ct-header-main:not(.h-fixed) .ct-header-branding { padding-left: 42px; }

  /* Sticky at desktop (prod L6080-L6085) */
  #ct-header-wrap #ct-header.h-fixed .ct-header-navigation { justify-content: flex-end; }
  #ct-header-wrap #ct-header.h-fixed .ct-main-menu > li > a { line-height: 80px; }
}

/* ------------------------------------------------------------------ */
/* 8. Page title banner (prod L9719-L9781)                              */
/* ------------------------------------------------------------------ */

#pagetitle { background-color: var(--ct-banner-bg); padding: 115px 0; text-align: center; position: relative; z-index: 1; }
#pagetitle::before { z-index: -1; content: ''; background-color: var(--ct-banner-overlay); position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
#pagetitle .page-title { font-size: 40px; margin-bottom: 0; color: var(--ct-white); }
#pagetitle.overlay-hide::before { display: none; }
.ct-breadcrumb { margin: 15px 0 0; list-style: none; color: var(--ct-white); }
.ct-breadcrumb li { display: inline-block; font-size: 16px; color: inherit; }
.ct-breadcrumb li a { color: inherit; }
.ct-breadcrumb li a::after, .ct-breadcrumb li span::after { content: '-'; margin: 0 6px; color: inherit; }
.ct-breadcrumb li a:hover { color: var(--ct-link); }
.ct-breadcrumb li a:hover::after { color: inherit; }
.ct-breadcrumb li:last-child a::after, .ct-breadcrumb li:last-child span::after { display: none; }
@media (min-width: 1200px) {
  #pagetitle { padding-top: 167px; padding-bottom: 116px; }
}

/* ------------------------------------------------------------------ */
/* 9. Footer shell and fixed-footer reveal (prod L11807-L11830)         */
/* ------------------------------------------------------------------ */

.site-footer-custom { font-family: "Poppins"; overflow: hidden; }
/* main.js clones .ct-footer-year over .ct-year and removes the original;
   hide it only while it is still a bare child of <footer>. Theme addition,
   not a production rule. */
.site-footer-custom > .ct-footer-year { display: none; }
@media (min-width: 992px) {
  .site-footer-custom { overflow: visible; }
}
@media (min-width: 1200px) {
  .fixed-footer .site-footer-custom { width: 100%; position: fixed; bottom: 0; left: 0; z-index: -1; }
  .fixed-footer #ct-masthead, .fixed-footer .site-content { background-color: var(--ct-white); }
}

/* ------------------------------------------------------------------ */
/* 10. Back to top (prod L11837-L11899)                                 */
/* ------------------------------------------------------------------ */

.scroll-top {
  position: fixed; z-index: 99; bottom: 0; right: 0; height: 50px; width: 50px; line-height: 50px; text-align: center;
  background-image: linear-gradient(-190deg, var(--ct-link), var(--ct-link-hover)); border-radius: 50px;
  color: var(--ct-white); font-size: 22px; opacity: 0; visibility: hidden; overflow: hidden;
}
.scroll-top:hover, .scroll-top:focus, .scroll-top:active { color: var(--ct-white); }
.scroll-top.on { bottom: 0; right: 0; border-radius: 2px 0 0; height: 35px; width: 35px; line-height: 35px; font-size: 16px; opacity: 1; visibility: visible; }
.scroll-top:hover i { animation: toTopFromBottom 0.3s forwards; }
.btn-type-normal .scroll-top { background-image: none; background-color: var(--ct-link); }
@media (min-width: 768px) {
  .scroll-top { bottom: 24px; right: 30px; }
  .scroll-top.on { bottom: 44px; right: 30px; border-radius: 50px; height: 50px; width: 50px; line-height: 50px; font-size: 22px; }
}

/* ------------------------------------------------------------------ */
/* 11. Newsletter popup (prod L14125-L14349)                            */
/* ------------------------------------------------------------------ */

#ct-newsletter-popup { background-color: var(--ct-popup-scrim); position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 1099; display: none; }
#ct-newsletter-popup .ct-newsletter-close {
  font-size: 20px; color: var(--ct-popup-text); width: 30px; height: 30px; line-height: 30px; text-align: center;
  position: absolute; top: 8px; right: 8px; transition: var(--ct-ease); cursor: pointer;
}
#ct-newsletter-popup .ct-newsletter-close:hover { color: var(--ct-link); transform: rotate(180deg); }
#ct-newsletter-popup .ct-newsletter-title { font-size: 30px; line-height: 36px; margin-bottom: 11px; }
#ct-newsletter-popup .ct-newsletter-desc { font-size: 16px; line-height: 26px; color: var(--ct-black); margin-bottom: 19px; }
#ct-newsletter-popup .ct-newsletter-content { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); max-width: 765px; width: 100%; padding: 15px; }
/* The card background is the theme asset assets/images/bg-newsletter-form.png (734x368), as production paints it. */
#ct-newsletter-popup .ct-newsletter-content .ct-newsletter-content-inner {
  width: 100%; background-color: var(--ct-white); border-radius: 8px; padding: 43px 30px 36px 30px; position: relative;
  background-image: url(../images/bg-newsletter-form.png); background-repeat: no-repeat; background-position: center;
}
#ct-newsletter-popup .ct-newsletter-holder { display: flex; flex-wrap: nowrap; align-items: center; }
#ct-newsletter-popup .ct-newsletter-meta { flex-grow: 1; margin-right: 0; }
#ct-newsletter-popup .ct-newsletter-image { min-width: 190px; display: none; }
#ct-newsletter-popup form.newsletter, #ct-newsletter-popup form.tnp-subscription { display: block; margin-bottom: 23px; }
#ct-newsletter-popup form.newsletter .tnp-field-email, #ct-newsletter-popup form.tnp-subscription .tnp-field-email { flex-grow: 1; margin-right: 0; margin-bottom: 10px; }
#ct-newsletter-popup form.newsletter .tnp-email, #ct-newsletter-popup form.tnp-subscription .tnp-email {
  font-size: 15px; color: var(--ct-popup-field-text); background-color: var(--ct-grey-field); border-color: var(--ct-grey-field); border-radius: 4px; padding: 6px 22px;
}
#ct-newsletter-popup form.newsletter .tnp-email:focus, #ct-newsletter-popup form.tnp-subscription .tnp-email:focus { border-color: var(--ct-link); }
#ct-newsletter-popup form.newsletter .tnp-button, #ct-newsletter-popup form.tnp-subscription .tnp-button { border-radius: 4px; padding-left: 28px; padding-right: 28px; width: 100%; }
#ct-newsletter-popup .ct-newsletter-hide span {
  font-size: 15px; font-weight: 700; display: inline-block; color: var(--ct-popup-text); font-family: var(--ct-font-heading);
  border-bottom: 1px solid var(--ct-popup-rule); cursor: pointer; transition: var(--ct-ease); line-height: 1.2;
}
#ct-newsletter-popup .ct-newsletter-hide span:hover { color: var(--ct-link); border-color: var(--ct-link-rule-soft); }
@media (min-width: 576px) {
  #ct-newsletter-popup .ct-newsletter-close { top: 15px; right: 15px; }
  #ct-newsletter-popup .ct-newsletter-content .ct-newsletter-content-inner { padding: 63px 40px 46px; }
  #ct-newsletter-popup form.newsletter, #ct-newsletter-popup form.tnp-subscription { display: flex; flex-wrap: nowrap; }
  #ct-newsletter-popup form.newsletter .tnp-field-email, #ct-newsletter-popup form.tnp-subscription .tnp-field-email { margin-right: 14px; margin-bottom: 0; }
  #ct-newsletter-popup form.newsletter .tnp-button, #ct-newsletter-popup form.tnp-subscription .tnp-button { width: auto; }
}
@media (min-width: 768px) {
  #ct-newsletter-popup .ct-newsletter-content .ct-newsletter-content-inner { padding-left: 65px; padding-right: 65px; }
  #ct-newsletter-popup .ct-newsletter-meta { margin-right: 40px; }
  #ct-newsletter-popup .ct-newsletter-image { display: block; }
}
#ct-mouse-move { display: none; }

/* Elementor icon-box widget (Contact page): production's theme.css recolours the icon to the
   brand green and resets the glyph's ::before position (L47286, L47308); without the latter the
   Flaticon glyph adds 4px to each box at mobile. */
.elementor-widget-icon-box .elementor-icon i:before { position: static; }
body .elementor-widget-icon-box.elementor-view-framed .elementor-icon,
body .elementor-widget-icon-box.elementor-view-default .elementor-icon { fill: var(--ct-link); color: var(--ct-link); border-color: var(--ct-link); }

/* ------------------------------------------------------------------ */
/* 12. Customizer "Additional CSS" (block 11), carried over verbatim.   */
/*     Production used !important on each of these selectors.          */
/* ------------------------------------------------------------------ */

.ct-header-meta, .header-mobile-search { display: none !important; }
#whyCatalysts .ct-list-desc { font-size: 2em; font-weight: bold; }
#whyCatalysts .ct-list-item { align-items: center; }
.btn-nav-cart { display: none !important; }
@media only screen and (max-width: 768px) {
  #whyCatalysts .ct-list-desc { font-size: 1em; font-weight: bold; }
}
