/* Generated by scripts/check_css_sync.py --write.
   Edit brand-content.css / shared imports or brand-site.css. */
/* Public article grid: container × col-lg-9, less gutters and pr-lg-5. */
:root {
  --blog-column-width: calc(100vw - 30px);
  --blog-default-size: 22px;
  --blog-default-list-size: 18px;
}
@media (min-width: 576px) { :root { --blog-column-width: 510px; } }
@media (min-width: 768px) {
  :root { --blog-column-width: 690px; --blog-default-size: 24px; --blog-default-list-size: 20px; }
}
@media (min-width: 992px) { :root { --blog-column-width: 642px; } }
@media (min-width: 1200px) { :root { --blog-column-width: 777px; } }
@media (min-width: 1400px) { :root { --blog-column-width: 897px; } }

/* Opt-in rich-text patterns: no changes to unclassified existing content. */

body.cke_editable {
  font-family: "Barlow", Arial, sans-serif;
  color: #201e1f;
  background: #f3f0eb;
  line-height: 1.5;
}

/* Legacy inline font-family (Trebuchet, Calibri, Tahoma, etc.) and tags inherit the context font:
   Barlow for body text, Imbue for headings across all CKEditor profiles. */
:is(.brand-richtext, .cke_editable) :is(div, p, span, font, a, strong, em, b, i, u, li, blockquote, td, th, small) {
  font-family: inherit !important;
}
:is(.brand-richtext, .cke_editable) .brand-summary {
  font-weight: 500;
  padding-bottom: .8em;
  border-bottom: 1px solid rgb(32 30 31 / .16);
  margin-bottom: 1.2em;
}
:is(.brand-richtext, .cke_editable) .brand-caption {
  font-family: "Barlow", Arial, sans-serif !important;
  line-height: 1.5;
}
:is(.brand-richtext, .cke_editable) .brand-caption :is(span, font) {
  font-family: inherit !important;
}
:is(.brand-richtext, .cke_editable) .brand-detail-list {
  font-family: "Barlow", Arial, sans-serif !important;
  border-top: 1px solid rgb(32 30 31 / .16);
  margin: 1.2em 0;
  padding: 1em 0 0 1.3em;
  list-style: disc;
}
:is(.brand-richtext, .cke_editable) .brand-detail-list li {
  display: list-item;
  margin-bottom: .5em;
  padding: 0;
  line-height: 1.5;
}
:is(.brand-richtext, .cke_editable) .brand-detail-list li::after { display: none; }
:is(.brand-richtext, .cke_editable) .brand-detail-list :is(span, font) { font-family: inherit !important; }
:is(.brand-richtext, .cke_editable) .brand-quote {
  font-family: inherit;
  border-left: 3px solid #ffca28;
  padding: .4em 0 .4em 1em;
  margin: 1.3em 0;
  background: transparent;
}

/* One rendering contract for native tools, legacy HTML and opt-in styles. */
:is(.brand-richtext, .cke_editable) {
  --rich-indent-step: clamp(12px, 3vw, 24px);
  overflow-wrap: anywhere;
}
:is(.brand-richtext, .cke_editable) p {
  margin-top: 0;
  margin-bottom: .75em;
  line-height: 1.5;
}
:is(.brand-richtext, .cke_editable) :is(ul, ol) {
  font-family: "Barlow", Arial, sans-serif !important;
  font-size: var(--rich-list-size, 16px);
  line-height: 1.5 !important;
  list-style-position: outside !important;
  padding-inline-start: 1.5em !important;
  margin-block: 1em !important;
  margin-inline-end: 0 !important;
}
:is(.brand-richtext, .cke_editable) ul { list-style-type: disc !important; }
:is(.brand-richtext, .cke_editable) ol { list-style-type: decimal !important; }
:is(.brand-richtext, .cke_editable) ul ul { list-style-type: circle !important; }
:is(.brand-richtext, .cke_editable) ol ol { list-style-type: lower-alpha !important; }
:is(.brand-richtext, .cke_editable) :is(ul, ol) :is(li, p, span, font, div, a) {
  font-family: inherit !important;
  line-height: inherit !important;
}
:is(.brand-richtext, .cke_editable) li {
  display: list-item !important;
  list-style-type: inherit !important;
  padding: 0 !important;
  margin-block: 0 .5em !important;
}
:is(.brand-richtext, .cke_editable) li::after,
:is(.brand-richtext, .cke_editable) li::before { content: none !important; }
:is(.brand-richtext, .cke_editable) li > p { margin-block: 0 .5em !important; }
:is(.brand-richtext, .cke_editable) li > :is(ul, ol) {
  border: 0 !important;
  padding-top: 0 !important;
  margin-block: .5em 0 !important;
}
:is(.brand-richtext, .cke_editable) blockquote {
  font-family: inherit;
  line-height: 1.5;
  color: inherit;
  border: 0;
  border-inline-start: 3px solid #ffca28;
  padding: .4em 0 .4em 1em;
  margin: 1.3em 0;
  background: transparent;
}
:is(.brand-richtext, .cke_editable) blockquote p:last-child { margin-bottom: 0; }
:is(.brand-richtext, .cke_editable) :is(h1, h2, h3, h4, h5, h6),
:is(.brand-richtext, .cke_editable) :is(h1, h2, h3, h4, h5, h6) :is(*, span, font, a, strong, em, b, i, u, small, .brand-font-Barlow, .brand-font-Imbue, [class*="brand-font-"]) {
  font-family: "Imbue", Georgia, serif !important;
}
:is(.brand-richtext, .cke_editable) :is(h2, h3, h4) {
  line-height: 1.2;
  margin-block: 1em .5em;
}
:is(.brand-richtext, .cke_editable) a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: .15em;
}
:is(.brand-richtext, .cke_editable) a:hover { text-decoration-thickness: 2px; }
:is(.brand-richtext, .cke_editable) :is(img, video, iframe) { max-width: 100%; }
:is(.brand-richtext, .cke_editable) img:not([style*="height"]) { height: auto; }
/* Word/legacy paragraphs use pixel indentation; retain common levels and
   bound arbitrary pasted margins. Project div.row/image layouts are excluded. */
:is(.brand-richtext, .cke_editable) :is(p, ul, ol, blockquote)[style*="margin-left"] {
  margin-left: calc(var(--rich-indent-step) * var(--rich-indent-level, 1)) !important;
}
:is(.brand-richtext, .cke_editable) :is(.brand-indent-1, [style*="margin-left:40px"], [style*="margin-left: 40px"], [style*="margin-left:48px"], [style*="margin-left: 48px"]) { --rich-indent-level: 1; }
:is(.brand-richtext, .cke_editable) .brand-indent-1 { margin-inline-start: calc(var(--rich-indent-step) * 1) !important; }
:is(.brand-richtext, .cke_editable) :is(.brand-indent-2, [style*="margin-left:80px"], [style*="margin-left: 80px"], [style*="margin-left:96px"], [style*="margin-left: 96px"]) { --rich-indent-level: 2; }
:is(.brand-richtext, .cke_editable) .brand-indent-2 { margin-inline-start: calc(var(--rich-indent-step) * 2) !important; }
:is(.brand-richtext, .cke_editable) :is(.brand-indent-3, [style*="margin-left:120px"], [style*="margin-left: 120px"], [style*="margin-left:144px"], [style*="margin-left: 144px"]) { --rich-indent-level: 3; }
:is(.brand-richtext, .cke_editable) .brand-indent-3 { margin-inline-start: calc(var(--rich-indent-step) * 3) !important; }
:is(.brand-richtext, .cke_editable) :is(.brand-indent-4, [style*="margin-left:160px"], [style*="margin-left: 160px"], [style*="margin-left:192px"], [style*="margin-left: 192px"]) { --rich-indent-level: 4; }
:is(.brand-richtext, .cke_editable) .brand-indent-4 { margin-inline-start: calc(var(--rich-indent-step) * 4) !important; }
:is(.brand-richtext, .cke_editable) :is(span.brand-font-Imbue, span.brand-font-Barlow) { font-family: inherit !important; }
:is(.brand-richtext, .cke_editable) span.brand-size-14px.brand-size-14px { font-size: 14px; }
:is(.brand-richtext, .cke_editable) span.brand-size-16px.brand-size-16px { font-size: 16px; }
:is(.brand-richtext, .cke_editable) span.brand-size-18px.brand-size-18px { font-size: 18px; }
:is(.brand-richtext, .cke_editable) span.brand-size-20px.brand-size-20px { font-size: 20px; }
:is(.brand-richtext, .cke_editable) span.brand-size-24px.brand-size-24px { font-size: 24px; }
:is(.brand-richtext, .cke_editable) span.brand-size-28px.brand-size-28px { font-size: 28px; }
:is(.brand-richtext, .cke_editable) span.brand-size-32px.brand-size-32px { font-size: 32px; }
:is(.brand-richtext, .cke_editable) span.brand-size-36px.brand-size-36px { font-size: 36px; }

/* Explicit page profiles: the shared editor body has no global pixel default. */
body.cke_editable.brand-editor-main { font-size: 20px; }
body.cke_editable.brand-editor-caption { font: 400 16px/1.5 "Barlow", Arial, sans-serif; }

/* Shared by the public site and the Blogue editor iframe. */
.brand-copy,
.brand-blog-content,
.brand-caption {
  font-family: "Barlow", Arial, sans-serif;
  color: var(--brand-ink, #201e1f);
  overflow-wrap: anywhere;
}

.brand-copy,
.brand-blog-content,
.lead.brand-copy {
  font-size: 20px;
}

/* Old CKEditor HTML contains inline Trebuchet/Calibri/Tahoma/Imbue and legacy colors.
   Override only typography, keeping image sizes, alignment and other markup. */
:is(.brand-copy, .brand-blog-content, .brand-caption, .brand-richtext) :is(div, p, span, font, a, strong, em, b, i, u, li, blockquote, td, th, small) {
  font-family: inherit !important;
  color: var(--brand-ink, #201e1f) !important;
}

.brand-caption,
:is(.brand-copy, .brand-blog-content, .brand-richtext) .brand-caption,
:is(.brand-copy, .brand-blog-content, .brand-richtext) .brand-main-text {
  font-family: "Barlow", Arial, sans-serif !important;
}

/* All headings inside content are strictly Imbue; inner spans/fonts inherit Imbue. */
:is(.brand-copy, .brand-blog-content, .brand-caption, .brand-richtext) :is(h1, h2, h3, h4, h5, h6),
:is(.brand-copy, .brand-blog-content, .brand-caption, .brand-richtext) :is(h1, h2, h3, h4, h5, h6) :is(*, span, font, a, strong, em, b, i, u, small, .brand-font-Barlow, .brand-font-Imbue, [class*="brand-font-"]) {
  font-family: "Imbue", Georgia, serif !important;
}

.brand-blog-content :is(img, video, iframe) {
  max-width: 100%;
}
.brand-blog-content img {
  height: auto;
}
.brand-blog-content table {
  max-width: 100%;
}
:is(.brand-copy, .brand-blog-content, .brand-caption) ul li::after {
  background-color: var(--brand-ink, #201e1f);
}
.brand-blog-content [style*="background-color:white"] {
  background-color: var(--brand-ivory, #f3f0eb) !important;
}

/* Blogue defaults are inherited; explicit inline/class sizes stay authoritative. */
.brand-blog-content {
  --blog-reading-size: var(--blog-default-size);
  --rich-list-size: var(--blog-default-list-size);
  font-size: var(--blog-reading-size);
  line-height: 1.6;
}
.brand-blog-content p { line-height: 1.6; margin: 0 0 15px; }

/* Site palette and layout. Source for the generated brand.css bundle. */
:root {
  --brand-amber: #ffca28;
  --brand-charcoal: #201e1f;
  --brand-ivory: #f3f0eb;
  --brand-lime: #d0f600;
  --brand-violet: #5717fc;
  --brand-ink: var(--brand-charcoal);
}

body {
  font-family: "Barlow", Arial, sans-serif;
  font-size: 16px;
  color: var(--brand-ink);
  background-color: var(--brand-amber);
}
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: "Imbue", Georgia, serif;
  overflow-wrap: anywhere;
}

.navigation,
.navigation .navbar-actions { background-color: var(--brand-amber); }
.bg-grey,
.bg-dark {
  --brand-ink: var(--brand-ivory);
  background-color: var(--brand-charcoal) !important;
  color: var(--brand-ink);
}
body .bg-broken,
body .bg-light,
body .bg-white,
body .bg-white-2 {
  --brand-ink: var(--brand-charcoal);
  background-color: var(--brand-ivory) !important;
  color: var(--brand-ink);
}
.brand-facts {
  --brand-ink: var(--brand-charcoal);
  background-color: var(--brand-lime) !important;
  color: var(--brand-ink);
}
.text-dark, .text-grey, .text-muted,
.content :is(h1, h2, h3, h4, h5, h6), .blog-card .card-title a {
  color: var(--brand-ink) !important;
}
.text-light, .text-white { color: var(--brand-ivory) !important; }
.page-header:not(.bg-grey) .text-white { color: var(--brand-charcoal) !important; }
.text-yellow, .text-primary, .section-title .title::after { color: var(--brand-amber) !important; }
.bg-broken .text-yellow, .bg-white .text-yellow, footer .text-yellow,
.page-header:not(.bg-grey) .text-primary { color: var(--brand-charcoal) !important; }

a { color: var(--brand-ink); }
a:hover, a:focus, .blog-card .card-title a:hover { color: var(--brand-ink); }
.line-link::before, .line-link::after,
.content .line-link::before, .content .line-link::after { background-color: currentColor !important; }
.line-link.text-white:hover, a.text-primary:hover { color: var(--brand-ink) !important; }
.brand-social-icon { fill: currentColor; }

.navbar-nav, .btn, .form-control, button, label,
.card-tag, .card-meta, .card-text, .card-subtitle,
.tooltip, .swipeCarousel-control, .swiper-button,
footer p, footer .footer-link, footer a,
.contact-us p, .facts-section p, .brand-helper,
[data-toggle="navbar-menu-close"] {
  font-family: "Barlow", Arial, sans-serif;
}
.navigation .navbar-dark .navbar-nav .nav-link,
.navigation .navbar-dark .navbar-nav .nav-link:hover,
.navigation .navbar-dark .navbar-nav .nav-link:focus,
.navigation .navbar-nav:hover .nav-item:not(:hover) .nav-link {
  color: var(--brand-charcoal);
}
.navbar-toggler svg { fill: var(--brand-charcoal); }
.navigation .navbar-collapse.show,
.navigation .dropdown-menu {
  --brand-ink: var(--brand-ivory);
  background-color: var(--brand-charcoal) !important;
}
.navigation .navbar-collapse.show .nav-link,
.navigation .dropdown-menu .dropdown-item,
.navigation [data-toggle="navbar-menu-close"] { color: var(--brand-ivory) !important; }
.navigation .navbar-collapse.show .nav-link:hover { color: var(--brand-amber) !important; }

.btn-black { color: var(--brand-ivory); background: var(--brand-charcoal); }
.btn-black:hover, .btn-black:focus { color: var(--brand-ivory); background: var(--brand-charcoal); }
.btn-white { color: var(--brand-charcoal); background: var(--brand-ivory); }
.form-control { color: var(--brand-charcoal); background: var(--brand-ivory); border-color: var(--brand-charcoal); }
.form-control:focus { color: var(--brand-charcoal); background: var(--brand-ivory); border-color: var(--brand-charcoal); }
.form-control::placeholder { color: var(--brand-charcoal); opacity: .7; }
.tooltip-inner { background-color: var(--brand-charcoal); color: var(--brand-ivory); }
.portfolio-carousel-fluid .swiper-pagination-progressbar-fill { background: var(--brand-charcoal) !important; }
.work-process-item .process-text {
  font-family: "Imbue", Georgia, serif;
  -webkit-text-stroke-color: var(--brand-ivory);
}
.work-process-item .work-process-desc {
  font-family: "Barlow", Arial, sans-serif;
  font-size: 18px;
  line-height: 1.6;
}
.work-process-item.focus .process-text,
.work-process-item:hover .process-text {
  -webkit-animation: .5s cubic-bezier(.165, .84, .44, 1) infinite brand-process-shadow;
  animation: .5s cubic-bezier(.165, .84, .44, 1) infinite brand-process-shadow;
}
@keyframes brand-process-shadow {
  0%, 100% {
    text-shadow: 4px 4px var(--brand-lime), -5px 4px var(--brand-amber), 1px -1px var(--brand-charcoal);
  }
  25% {
    text-shadow: -5px 4px var(--brand-violet), 4px 4px var(--brand-ivory), 1px -1px var(--brand-charcoal);
  }
  50% {
    text-shadow: 4px -4px var(--brand-amber), -5px 4px var(--brand-violet), 1px -1px var(--brand-charcoal);
  }
  75% {
    text-shadow: -4px -4px var(--brand-ivory), 4px 4px var(--brand-lime), 1px -1px var(--brand-charcoal);
  }
}

/* Palette colors for the remaining theme details and interaction states. */
.border-top { border-top-color: rgb(32 30 31 / .2) !important; }
.portfolio-card .img-overlay { background-color: var(--brand-charcoal); }
.portfolio-card .card-title a,
.portfolio-card .card-subtitle,
.portfolio-card .card-subtitle a { color: var(--brand-ivory); }
.portfolio-card .card-title a:hover,
.portfolio-card .card-subtitle a:hover { text-decoration-color: currentColor; }
.work-process-item .process-text,
.work-process-item .process-title::after { color: var(--brand-ivory); }
.scroll-progress::before { background-color: var(--brand-ivory); }
.scroll-progress svg.progress-circle path { stroke: var(--brand-ivory); }
.sidenav-overlay { background-color: rgb(32 30 31 / .7); }
.footer-link a:hover {
  color: var(--brand-ink);
  text-decoration-color: currentColor;
}
::selection { color: var(--brand-charcoal); background: var(--brand-amber); }
a:focus-visible, button:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }

/* Quiet article surfaces; alpha is limited to borders and shadows. */
.blog-card,
.blog-card .card-background { background-color: var(--brand-ivory) !important; }
.blog-card-custom,
.blog-card-custom .card-background {
  background-color: var(--blog-card-bg, var(--brand-ivory)) !important;
}
.blog-card-custom {
  --brand-ink: var(--blog-card-ink, var(--brand-charcoal));
  color: var(--brand-ink);
}
.blog-card-custom :is(.card-title a, .card-tag, .card-meta, .card-read-more) {
  color: var(--brand-ink) !important;
}
.blog-card-custom .card-read-more::before { background-color: var(--brand-ink); }
.blog-card {
  border: 1px solid rgb(32 30 31 / .12) !important;
  box-shadow: 0 6px 24px rgb(32 30 31 / .07);
  transition: box-shadow .2s ease, border-color .2s ease;
}
.blog-card:hover,
.blog-card:focus-within {
  border-color: rgb(32 30 31 / .24) !important;
  box-shadow: 0 10px 30px rgb(32 30 31 / .12);
}
.blog-card .card-read-more::before {
  content: "";
  display: inline-block;
  width: 18px;
  height: 3px;
  margin-right: 8px;
  vertical-align: middle;
  background-color: var(--brand-amber);
}
.blog-card .card-title a { text-decoration: underline; text-decoration-color: currentColor; text-underline-offset: .15em; }
.blog-card .card-read-more {
  display: inline-block;
  position: relative;
  margin-top: 12px;
  font-family: "Barlow", Arial, sans-serif;
  font-size: 15px;
  font-weight: 600;
  color: var(--brand-charcoal);
  text-decoration: underline;
  text-underline-offset: .2em;
}
/* Preserve the original image overlay and hover composition for project cards. */
.portfolio-card:focus-within .card-img img { transform: scale(1.2); }
.portfolio-card:focus-within .img-overlay { opacity: .95; }
.portfolio-card:focus-within .card-img-overlay,
.portfolio-card:focus-within .card-title,
.portfolio-card:focus-within .card-subtitle { transform: translateY(0); }

/* Buttons without alternate text keep their label and use a subtle motion. */
.btn:not([data-text]) { transition: background-color .2s ease, color .2s ease; }
.btn:not([data-text]) span { transition: transform .2s ease; }
.btn:not([data-text]):hover span,
.btn:not([data-text]):focus-visible span {
  opacity: 1;
  transform: translateY(-2px);
}
.btn:not([data-text])::after { content: none; }
.btn.btn-black:not([data-text]):hover,
.btn.btn-black:not([data-text]):focus-visible {
  background-color: var(--brand-amber) !important;
  color: var(--brand-charcoal);
}
@media (prefers-reduced-motion: reduce) {
  .btn:not([data-text]), .btn:not([data-text]) span { transition: none; }
  .btn:not([data-text]):hover span,
  .btn:not([data-text]):focus-visible span { transform: none; }
}

/* Team profiles have their own layout, separate from editorial cards. */
.team-profile { margin-top: 30px; padding: 30px; }
.team-profile .card-title { margin-bottom: 16px; }
.team-photo { display: block; width: 100%; height: auto; }
@media (max-width: 991px) {
  .team-photo { max-width: 240px; margin-inline: auto; }
}
@media (max-width: 575px) {
  .team-profile { padding: 20px 0; }
}
/* Metadata and reading link form a single bottom-aligned group. */
.blog-card .card-body {
  display: flex; flex-direction: column; flex: 1 1 auto;
}
.blog-card:not(.blog-card-horizontal) .card-image { flex-shrink: 0; }
.blog-card .card-image img { height: auto; }
.blog-card .card-meta {
  margin-top: auto !important;
  margin-bottom: 0;
  padding-top: 16px;
}
.blog-card .card-read-more {
  margin-top: 0;
  padding-top: 12px;
  align-self: flex-start;
}
#footerid { scroll-margin-top: 24px; }
.related-project-grid { row-gap: 32px; align-items: stretch; }

/* Statistics keep their original visual scale without extra page headings. */
.brand-facts .facts-box-title {
  font-family: "Imbue", Georgia, serif;
  font-size: 48px;
  font-weight: 700;
  line-height: 1.2;
}
@media (max-width: 767px) {
  .brand-facts .facts-box-title { font-size: 40px; }
}

/* Card excerpts have a fixed reading style, independent of article formatting. */
.blog-card .card-text {
  font-family: "Barlow", Arial, sans-serif !important;
  font-size: 18px;
  line-height: 1.5;
  color: var(--brand-ink);
}
.blog-card .card-text * {
  font-family: inherit !important;
  font-size: inherit !important;
  line-height: inherit !important;
  color: inherit !important;
}

#bulten { scroll-margin-top: 120px; }
.newsletter-feedback { font: 400 15px/1.5 "Barlow", Arial, sans-serif; color: var(--brand-ink); }

/* Semantic elements retain the existing visual hierarchy. */
.facts-box-title { font-weight: 700; line-height: 1.2; margin: 0; }
.scroll-progress { padding: 0; border: 0; background: transparent; }
:where(a, button, input, [tabindex]):focus-visible {
  outline: 2px solid currentColor; outline-offset: 4px;
}
.navbar-close-item button { border: 0; background: transparent; color: inherit; padding: 0; font: inherit; text-transform: inherit; }
@media (min-width: 992px) { .navbar-close-item { display: none; } }

/* Menu controls: no touch flash or ring after pointer activation. */
.navigation .navbar-toggler,
.navigation [data-toggle="navbar-menu-close"] {
  -webkit-tap-highlight-color: transparent;
  box-shadow: none;
  background: transparent;
  border: 0;
  outline: none !important;
}
.navigation[data-keyboard-focus="true"] .navbar-toggler:focus-visible,
.navigation[data-keyboard-focus="true"] [data-toggle="navbar-menu-close"]:focus-visible {
  outline: 1px solid currentColor !important;
  outline-offset: 5px;
  border-radius: 2px;
}
