/**
 * Zilla Site Manager — Block Styles
 *
 * Design tokens come from the :root variables printed by ZSM_Styles::global_css(),
 * which are editable under Brand & Colors. Per-section overrides are injected as
 * scoped rules (.zsm-b-{uid}) and always win over everything here.
 *
 * Everything is namespaced under .zsm-* so these styles cannot leak into the
 * existing WPBakery pages.
 */

/* ── Section shell ────────────────────────────────────────────────────────── */

.zsm-layout {
  --zsm-gap: var(--zsm-gap, 24px);
}

.zsm-block {
  position: relative;
  padding-top: var(--zsm-section-pad, 72px);
  padding-bottom: var(--zsm-section-pad, 72px);
  color: var(--zsm-text, #1d2939);
  font-size: var(--zsm-body, 16px);
  line-height: 1.65;
  box-sizing: border-box;
}

.zsm-block * { box-sizing: border-box; }

.zsm-block > .zsm-inner {
  max-width: var(--zsm-width, 1200px);
  margin-inline: auto;
  padding-inline: 24px;
}

/* Spacer and divider carry their own rhythm. */
.zsm-block-spacer,
.zsm-block-divider { padding-block: 0; }

@media (max-width: 767px) {
  .zsm-block {
    padding-top: max(32px, calc(var(--zsm-section-pad, 72px) * 0.55));
    padding-bottom: max(32px, calc(var(--zsm-section-pad, 72px) * 0.55));
  }
  .zsm-block > .zsm-inner { padding-inline: 18px; }
}

/* ── Headings ─────────────────────────────────────────────────────────────── */

.zsm-block-head { margin-bottom: 32px; }
.zsm-block-head.has-rule { margin-bottom: 24px; }

.zsm-block-title {
  margin: 0 0 12px;
  font-size: var(--zsm-h2, 34px);
  line-height: 1.2;
  font-weight: 700;
  color: var(--zsm-primary, #12264a);
}

.zsm-block-sub {
  margin: 0;
  max-width: 68ch;
  color: var(--zsm-muted, #5b6675);
}

.zsm-block[style*="text-align:center"] .zsm-block-sub,
.zsm-block-head[style*="center"] .zsm-block-sub { margin-inline: auto; }

.zsm-eyebrow {
  margin: 0 0 10px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--zsm-block-accent, var(--zsm-secondary, #4dc8ed));
}

.zsm-rule {
  display: block;
  width: 56px;
  height: 3px;
  margin-bottom: 20px;
  border-radius: 2px;
  background: var(--zsm-block-accent, var(--zsm-secondary, #4dc8ed));
}

/* ── Rich text ────────────────────────────────────────────────────────────── */

.zsm-rte > *:first-child { margin-top: 0; }
.zsm-rte > *:last-child { margin-bottom: 0; }
.zsm-rte p { margin: 0 0 1em; }
.zsm-rte h2, .zsm-rte h3, .zsm-rte h4 {
  margin: 1.6em 0 .6em;
  color: var(--zsm-primary, #12264a);
  line-height: 1.25;
}
.zsm-rte h2 { font-size: var(--zsm-h2, 34px); }
.zsm-rte h3 { font-size: var(--zsm-h3, 22px); }
.zsm-rte ul, .zsm-rte ol { margin: 0 0 1em; padding-left: 1.3em; }
.zsm-rte li { margin-bottom: .4em; }
.zsm-rte img { max-width: 100%; height: auto; border-radius: var(--zsm-radius, 10px); }
.zsm-rte a { color: var(--zsm-block-accent, var(--zsm-secondary, #4dc8ed)); }

/* ── Buttons ──────────────────────────────────────────────────────────────── */

.zsm-btn-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 24px;
}

.zsm-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px 28px;
  border: 2px solid transparent;
  border-radius: var(--zsm-btn-radius, 8px);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
  transition: transform .18s ease, background-color .18s ease, color .18s ease, border-color .18s ease;
}

.zsm-btn:hover { transform: translateY(-2px); }
.zsm-btn:focus-visible { outline: 3px solid var(--zsm-secondary, #4dc8ed); outline-offset: 2px; }

.zsm-btn-primary {
  background: var(--zsm-primary, #12264a);
  color: #fff;
}
.zsm-btn-primary:hover { background: var(--zsm-secondary, #4dc8ed); color: #fff; }

.zsm-btn-secondary {
  background: var(--zsm-secondary, #4dc8ed);
  color: #fff;
}
.zsm-btn-secondary:hover { background: var(--zsm-primary, #12264a); }

.zsm-btn-ghost {
  background: transparent;
  border-color: currentColor;
  color: inherit;
}
.zsm-btn-ghost:hover {
  background: var(--zsm-primary, #12264a);
  border-color: var(--zsm-primary, #12264a);
  color: #fff;
}

.zsm-btn-text {
  padding-inline: 0;
  background: none;
  color: var(--zsm-block-accent, var(--zsm-secondary, #4dc8ed));
}
.zsm-btn-text:hover { text-decoration: underline; transform: none; }

/* ── Grid ─────────────────────────────────────────────────────────────────── */

.zsm-grid {
  display: grid;
  gap: var(--zsm-gap, 24px);
}

.zsm-cols-1 { grid-template-columns: 1fr; }
.zsm-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.zsm-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.zsm-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.zsm-cols-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.zsm-cols-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }

@media (max-width: 1024px) {
  .zsm-cols-4, .zsm-cols-5, .zsm-cols-6 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .zsm-cols-2, .zsm-cols-3, .zsm-cols-4, .zsm-cols-5, .zsm-cols-6 { grid-template-columns: 1fr; }
}

/* ── Hero ─────────────────────────────────────────────────────────────────── */

.zsm-block-hero { color: #fff; }
.zsm-block-hero .zsm-hero-title {
  margin: 0 0 18px;
  font-size: var(--zsm-h1, 48px);
  line-height: 1.1;
  font-weight: 700;
  color: inherit;
}
.zsm-hero-intro {
  margin: 0 0 14px;
  max-width: 62ch;
  font-size: 1.08em;
  opacity: .94;
}
.zsm-block-hero .zsm-eyebrow { color: var(--zsm-secondary, #4dc8ed); }

/* A hero with no background image needs a readable default. */
.zsm-block-hero:not([style*="background"]) { background: var(--zsm-primary, #12264a); }

/* ── Page header ──────────────────────────────────────────────────────────── */

.zsm-block-page_header { background: var(--zsm-surface-alt, #f4f6f8); }
.zsm-page-title {
  margin: 0;
  font-size: var(--zsm-h1, 48px);
  line-height: 1.15;
  color: var(--zsm-primary, #12264a);
}
.zsm-page-subtitle { margin: 10px 0 0; color: var(--zsm-muted, #5b6675); }

.zsm-breadcrumb { margin-top: 16px; font-size: 14px; color: var(--zsm-muted, #5b6675); }
.zsm-breadcrumb a { color: inherit; text-decoration: none; }
.zsm-breadcrumb a:hover { text-decoration: underline; }
.zsm-crumb-sep { margin-inline: 8px; opacity: .5; }

/* ── Split (hero split, image + text) ─────────────────────────────────────── */

.zsm-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(24px, 5vw, 64px);
  align-items: center;
}
.zsm-split-img-left .zsm-split-media { order: 1; }
.zsm-split-img-left .zsm-split-text { order: 2; }
.zsm-split-img-right .zsm-split-media { order: 2; }
.zsm-split-img-right .zsm-split-text { order: 1; }

.zsm-ratio-33 { grid-template-columns: 1fr 2fr; }
.zsm-ratio-33.zsm-split-img-right { grid-template-columns: 2fr 1fr; }
.zsm-ratio-40 { grid-template-columns: 2fr 3fr; }
.zsm-ratio-40.zsm-split-img-right { grid-template-columns: 3fr 2fr; }
.zsm-ratio-60 { grid-template-columns: 3fr 2fr; }
.zsm-ratio-60.zsm-split-img-right { grid-template-columns: 2fr 3fr; }

.zsm-split-media img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: var(--zsm-radius, 10px);
}
.zsm-split-text .zsm-block-title { margin-bottom: 16px; }

@media (max-width: 767px) {
  .zsm-split,
  .zsm-ratio-33, .zsm-ratio-40, .zsm-ratio-60 { grid-template-columns: 1fr; }
  .zsm-split-media, .zsm-split-text { order: unset !important; }
}

/* ── Two column text ──────────────────────────────────────────────────────── */

.zsm-two-col-text .zsm-col-title {
  margin: 0 0 12px;
  font-size: var(--zsm-h3, 22px);
  color: var(--zsm-primary, #12264a);
}

/* ── Stats ────────────────────────────────────────────────────────────────── */

.zsm-stats { text-align: center; }
.zsm-stat-value {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 2px;
  font-size: clamp(30px, 4vw, 52px);
  font-weight: 700;
  line-height: 1;
  color: var(--zsm-primary, #12264a);
}
.zsm-stat-prefix, .zsm-stat-suffix { font-size: .6em; }
.zsm-stat-label {
  margin-top: 10px;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--zsm-muted, #5b6675);
}

/* ── Quote ────────────────────────────────────────────────────────────────── */

.zsm-quote { margin: 0; }
.zsm-quote blockquote {
  margin: 0;
  padding-left: 24px;
  border-left: 4px solid var(--zsm-block-accent, var(--zsm-secondary, #4dc8ed));
  font-size: clamp(19px, 2.2vw, 26px);
  line-height: 1.45;
  color: var(--zsm-primary, #12264a);
}
.zsm-quote-by {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 20px;
  padding-left: 28px;
}
.zsm-quote-photo img { width: 52px; height: 52px; border-radius: 50%; object-fit: cover; }
.zsm-quote-meta { display: flex; flex-direction: column; }
.zsm-quote-author { font-weight: 700; color: var(--zsm-primary, #12264a); }
.zsm-quote-role { font-size: 14px; color: var(--zsm-muted, #5b6675); }

/* ── Figure / image ───────────────────────────────────────────────────────── */

.zsm-figure { margin: 0; }
.zsm-figure img, .zsm-img {
  display: block;
  max-width: 100%;
  height: auto;
  border-radius: var(--zsm-radius, 10px);
}
.zsm-figure figcaption,
.zsm-gallery figcaption {
  margin-top: 10px;
  font-size: 14px;
  color: var(--zsm-muted, #5b6675);
}

/* ── Gallery & collections ────────────────────────────────────────────────── */

.zsm-gallery-item, .zsm-collection-item { margin: 0; }
.zsm-gallery-item img,
.zsm-collection-item img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: contain;
  background: var(--zsm-surface, #fff);
  border: 1px solid var(--zsm-border, #e2e5ea);
  border-radius: var(--zsm-radius, 10px);
  padding: 10px;
  transition: box-shadow .2s ease, transform .2s ease;
}
.zsm-collection-item a:hover img,
.zsm-gallery-item a:hover img {
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(16, 38, 73, .12);
}
.zsm-collection-item figcaption {
  margin-top: 8px;
  font-size: 13px;
  text-align: center;
  color: var(--zsm-muted, #5b6675);
}
.zsm-collection-item[hidden] { display: none; }

/* ── Filters ──────────────────────────────────────────────────────────────── */

.zsm-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 28px;
}
.zsm-filter {
  padding: 9px 18px;
  border: 1px solid var(--zsm-border, #e2e5ea);
  border-radius: 999px;
  background: transparent;
  font: inherit;
  font-size: 14px;
  font-weight: 600;
  color: var(--zsm-muted, #5b6675);
  cursor: pointer;
  transition: all .18s ease;
}
.zsm-filter:hover { border-color: var(--zsm-secondary, #4dc8ed); color: var(--zsm-primary, #12264a); }
.zsm-filter.is-active {
  background: var(--zsm-primary, #12264a);
  border-color: var(--zsm-primary, #12264a);
  color: #fff;
}

/* ── Logos ────────────────────────────────────────────────────────────────── */

.zsm-logos { overflow: hidden; }
.zsm-logos-track {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: clamp(20px, 4vw, 56px);
}
.zsm-logo-item img {
  display: block;
  max-width: 160px;
  max-height: 64px;
  width: auto;
  height: auto;
  object-fit: contain;
}
.zsm-logos.is-grayscale .zsm-logo-item img {
  filter: grayscale(1);
  opacity: .68;
  transition: filter .25s ease, opacity .25s ease;
}
.zsm-logos.is-grayscale .zsm-logo-item:hover img { filter: none; opacity: 1; }

.zsm-logos.is-marquee .zsm-logos-track {
  flex-wrap: nowrap;
  width: max-content;
  animation: zsm-marquee 32s linear infinite;
}
.zsm-logos.is-marquee:hover .zsm-logos-track { animation-play-state: paused; }
@keyframes zsm-marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
  .zsm-logos.is-marquee .zsm-logos-track { animation: none; flex-wrap: wrap; width: auto; }
}

/* ── Video ────────────────────────────────────────────────────────────────── */

.zsm-video video,
.zsm-video iframe,
.zsm-video-facade {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  border: 0;
  border-radius: var(--zsm-radius, 10px);
}
.zsm-video-embed :is(iframe, video) { width: 100%; aspect-ratio: 16 / 9; }
.zsm-video-facade {
  position: relative;
  background-size: cover;
  background-position: center;
  cursor: pointer;
  padding: 0;
}
.zsm-video-play {
  position: absolute;
  inset: 50% auto auto 50%;
  translate: -50% -50%;
  width: 74px;
  height: 74px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .92);
  transition: transform .2s ease;
}
.zsm-video-play::after {
  content: "";
  position: absolute;
  inset: 50% auto auto 54%;
  translate: -50% -50%;
  border-style: solid;
  border-width: 13px 0 13px 21px;
  border-color: transparent transparent transparent var(--zsm-primary, #12264a);
}
.zsm-video-facade:hover .zsm-video-play { transform: scale(1.08); }

/* ── Cards ────────────────────────────────────────────────────────────────── */

.zsm-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: var(--zsm-radius, 10px);
  background: var(--zsm-surface, #fff);
  color: inherit;
  text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease;
}
a.zsm-card:hover { transform: translateY(-4px); }

.zsm-cards-card .zsm-card { box-shadow: 0 2px 10px rgba(16, 38, 73, .08); }
.zsm-cards-card a.zsm-card:hover { box-shadow: 0 14px 34px rgba(16, 38, 73, .14); }
.zsm-cards-outline .zsm-card { border: 1px solid var(--zsm-border, #e2e5ea); }
.zsm-cards-flat .zsm-card { background: transparent; }
.zsm-cards-flat .zsm-card-body { padding-inline: 0; }

.zsm-card-media { overflow: hidden; background: var(--zsm-surface-alt, #f4f6f8); }
.zsm-card-media img { display: block; width: 100%; height: 100%; object-fit: cover; }

.zsm-img-16-9 .zsm-card-media { aspect-ratio: 16 / 9; }
.zsm-img-4-3 .zsm-card-media { aspect-ratio: 4 / 3; }
.zsm-img-1-1 .zsm-card-media { aspect-ratio: 1 / 1; }
.zsm-img-icon .zsm-card-media {
  aspect-ratio: auto;
  width: 64px;
  margin: 24px 24px 0;
  background: none;
}
.zsm-img-icon .zsm-card-media img { height: auto; object-fit: contain; }

.zsm-card-body { padding: 24px; }
.zsm-card-badge {
  display: inline-block;
  margin-bottom: 10px;
  padding: 4px 10px;
  border-radius: 4px;
  background: var(--zsm-secondary, #4dc8ed);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #fff;
}
.zsm-card-title {
  margin: 0 0 10px;
  font-size: var(--zsm-h3, 22px);
  line-height: 1.3;
  color: var(--zsm-primary, #12264a);
}
.zsm-card-text { color: var(--zsm-muted, #5b6675); }
.zsm-card-text p:last-child { margin-bottom: 0; }
.zsm-card-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 16px;
  font-weight: 600;
  text-decoration: none;
  color: var(--zsm-block-accent, var(--zsm-secondary, #4dc8ed));
}
.zsm-card-link:hover span { transform: translateX(3px); }
.zsm-card-link span { transition: transform .18s ease; }

/* Overlay card style. */
.zsm-cards-overlay .zsm-card { position: relative; min-height: 280px; justify-content: flex-end; }
.zsm-cards-overlay .zsm-card-media { position: absolute; inset: 0; aspect-ratio: auto; }
.zsm-cards-overlay .zsm-card-body {
  position: relative;
  background: linear-gradient(to top, rgba(16, 38, 73, .92), transparent);
  color: #fff;
}
.zsm-cards-overlay .zsm-card-title,
.zsm-cards-overlay .zsm-card-text { color: #fff; }

/* ── Feature list ─────────────────────────────────────────────────────────── */

.zsm-features { margin: 0; padding: 0; list-style: none; }
.zsm-list-cols-2, .zsm-list-cols-3 { display: grid; gap: 14px 32px; }
.zsm-list-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.zsm-list-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 767px) {
  .zsm-list-cols-2, .zsm-list-cols-3 { grid-template-columns: 1fr; }
}

.zsm-feature {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  margin-bottom: 14px;
}
.zsm-list-cols-2 .zsm-feature, .zsm-list-cols-3 .zsm-feature { margin-bottom: 0; }

.zsm-feature-body { display: flex; flex-direction: column; gap: 3px; }
.zsm-feature-title { font-weight: 600; color: var(--zsm-primary, #12264a); }
.zsm-feature-text { color: var(--zsm-muted, #5b6675); font-size: .95em; }
.zsm-feature-icon img { width: 32px; height: 32px; object-fit: contain; }

.zsm-marker-check .zsm-feature::before,
.zsm-marker-dot .zsm-feature::before {
  flex: 0 0 auto;
  margin-top: 3px;
  color: var(--zsm-block-accent, var(--zsm-secondary, #4dc8ed));
  font-weight: 700;
}
.zsm-marker-check .zsm-feature::before { content: "✓"; }
.zsm-marker-dot .zsm-feature::before { content: "•"; font-size: 1.4em; line-height: 1; }
ol.zsm-marker-number { counter-reset: zsm-li; }
.zsm-marker-number .zsm-feature { counter-increment: zsm-li; }
.zsm-marker-number .zsm-feature::before {
  content: counter(zsm-li);
  flex: 0 0 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--zsm-primary, #12264a);
  color: #fff;
  font-size: 13px;
  font-weight: 700;
}

/* ── Pills ────────────────────────────────────────────────────────────────── */

.zsm-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.zsm-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 20px;
  border: 1px solid var(--zsm-border, #e2e5ea);
  border-radius: 999px;
  background: var(--zsm-surface, #fff);
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  color: var(--zsm-primary, #12264a);
}
a.zsm-pill:hover { border-color: var(--zsm-secondary, #4dc8ed); background: var(--zsm-secondary, #4dc8ed); color: #fff; }
.zsm-pill-icon { width: 20px; height: 20px; object-fit: contain; }

/* ── Accordion ────────────────────────────────────────────────────────────── */

.zsm-accordion { border-top: 1px solid var(--zsm-border, #e2e5ea); }
.zsm-acc-item { border-bottom: 1px solid var(--zsm-border, #e2e5ea); }
.zsm-acc-q {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 4px;
  font-size: 1.05em;
  font-weight: 600;
  color: var(--zsm-primary, #12264a);
  cursor: pointer;
  list-style: none;
}
.zsm-acc-q::-webkit-details-marker { display: none; }
.zsm-acc-icon {
  flex: 0 0 auto;
  position: relative;
  width: 16px;
  height: 16px;
}
.zsm-acc-icon::before,
.zsm-acc-icon::after {
  content: "";
  position: absolute;
  inset: 50% 0 auto 0;
  height: 2px;
  background: currentColor;
  transition: transform .2s ease;
}
.zsm-acc-icon::after { transform: rotate(90deg); }
.zsm-acc-item[open] .zsm-acc-icon::after { transform: rotate(0); }
.zsm-acc-a { padding: 0 4px 20px; color: var(--zsm-muted, #5b6675); }
.zsm-acc-a p:last-child { margin-bottom: 0; }

/* ── Tabs ─────────────────────────────────────────────────────────────────── */

.zsm-tablist {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-bottom: 28px;
  border-bottom: 1px solid var(--zsm-border, #e2e5ea);
}
.zsm-tab {
  padding: 13px 22px;
  border: 0;
  border-bottom: 3px solid transparent;
  background: none;
  font: inherit;
  font-size: 15px;
  font-weight: 600;
  color: var(--zsm-muted, #5b6675);
  cursor: pointer;
  transition: color .18s ease, border-color .18s ease;
}
.zsm-tab:hover { color: var(--zsm-primary, #12264a); }
.zsm-tab.is-active {
  border-bottom-color: var(--zsm-block-accent, var(--zsm-secondary, #4dc8ed));
  color: var(--zsm-primary, #12264a);
}
.zsm-tabpanel[hidden] { display: none; }
.zsm-tab-media img { width: 100%; height: auto; margin-bottom: 20px; border-radius: var(--zsm-radius, 10px); }

/* ── Timeline ─────────────────────────────────────────────────────────────── */

.zsm-timeline { position: relative; margin: 0; padding: 0 0 0 34px; list-style: none; }
.zsm-timeline::before {
  content: "";
  position: absolute;
  inset: 8px auto 8px 7px;
  width: 2px;
  background: var(--zsm-border, #e2e5ea);
}
.zsm-tl-item { position: relative; padding-bottom: 32px; }
.zsm-tl-item:last-child { padding-bottom: 0; }
.zsm-tl-marker {
  position: absolute;
  top: 6px;
  left: -34px;
  width: 16px;
  height: 16px;
  border: 3px solid var(--zsm-surface, #fff);
  border-radius: 50%;
  background: var(--zsm-block-accent, var(--zsm-secondary, #4dc8ed));
}
.zsm-tl-year {
  display: inline-block;
  margin-bottom: 4px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .06em;
  color: var(--zsm-block-accent, var(--zsm-secondary, #4dc8ed));
}
.zsm-tl-title { margin: 0 0 6px; font-size: var(--zsm-h3, 22px); color: var(--zsm-primary, #12264a); }
.zsm-tl-text { color: var(--zsm-muted, #5b6675); }
.zsm-tl-text p:last-child { margin-bottom: 0; }

/* ── People ───────────────────────────────────────────────────────────────── */

.zsm-people-section-title {
  margin: 0 0 6px;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--zsm-primary, #12264a);
}
.zsm-people-section-desc { margin: 0 0 22px; color: var(--zsm-muted, #5b6675); }
.zsm-people-section + .zsm-people-section { margin-top: 48px; }
.zsm-people-subgroup { margin-top: 40px; }
.zsm-people-subgroup-title {
  margin: 0 0 18px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--zsm-muted, #5b6675);
}

.zsm-person { text-align: center; }
.zsm-person-open {
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  text-align: inherit;
  cursor: pointer;
}
.zsm-person-photo {
  display: block;
  position: relative;
  aspect-ratio: 1 / 1;
  margin-bottom: 14px;
  overflow: hidden;
  border-radius: var(--zsm-radius, 10px);
  background: var(--zsm-surface-alt, #f4f6f8);
}
.zsm-person-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .3s ease;
}
.zsm-person.has-bio:hover .zsm-person-photo img { transform: scale(1.04); }
.zsm-person-initials {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  font-size: 42px;
  font-weight: 700;
  color: var(--zsm-border, #e2e5ea);
}
.zsm-person-name {
  display: block;
  font-size: 17px;
  font-weight: 700;
  color: var(--zsm-primary, #12264a);
}
.zsm-person-title {
  display: block;
  margin-top: 4px;
  font-size: 14px;
  color: var(--zsm-muted, #5b6675);
}

/* Bio dialog. */
.zsm-dialog {
  position: fixed;
  inset: 0;
  z-index: 99990;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(16, 38, 73, .68);
  overflow-y: auto;
}
.zsm-dialog[hidden] { display: none; }
.zsm-dialog-inner {
  position: relative;
  max-width: 720px;
  width: 100%;
  padding: 40px;
  border-radius: var(--zsm-radius, 10px);
  background: var(--zsm-surface, #fff);
  text-align: left;
}
.zsm-dialog-close {
  position: absolute;
  top: 12px;
  right: 16px;
  width: 40px;
  height: 40px;
  border: 0;
  background: none;
  font-size: 30px;
  line-height: 1;
  color: var(--zsm-muted, #5b6675);
  cursor: pointer;
}
.zsm-dialog-photo {
  float: left;
  width: 132px;
  height: 132px;
  margin: 0 22px 14px 0;
  border-radius: var(--zsm-radius, 10px);
  object-fit: cover;
}
.zsm-dialog-name { margin: 0 0 4px; font-size: var(--zsm-h3, 22px); color: var(--zsm-primary, #12264a); }
.zsm-dialog-title { margin: 0 0 16px; color: var(--zsm-muted, #5b6675); }
.zsm-dialog-bio { clear: none; }
.zsm-dialog-bio p:last-child { margin-bottom: 0; }
@media (max-width: 600px) {
  .zsm-dialog-inner { padding: 28px 20px; }
  .zsm-dialog-photo { float: none; margin: 0 0 16px; }
}

/* ── Leadership ───────────────────────────────────────────────────────────── */

.zsm-leadership { display: grid; gap: 40px; }
.zsm-leader { display: grid; grid-template-columns: 220px 1fr; gap: 28px; align-items: start; }
.zsm-leader-photo img { width: 100%; height: auto; border-radius: var(--zsm-radius, 10px); }
.zsm-leader-name { margin: 0 0 4px; font-size: var(--zsm-h3, 22px); color: var(--zsm-primary, #12264a); }
.zsm-leader-role { margin: 0 0 14px; font-weight: 600; color: var(--zsm-block-accent, var(--zsm-secondary, #4dc8ed)); }
.zsm-leader-bio { color: var(--zsm-muted, #5b6675); }
.zsm-leader-in { display: inline-block; margin-top: 12px; font-weight: 600; }
@media (max-width: 767px) { .zsm-leader { grid-template-columns: 1fr; } }

/* ── Feed ─────────────────────────────────────────────────────────────────── */

.zsm-feed-item { display: flex; flex-direction: column; }
.zsm-feed-thumb { display: block; overflow: hidden; border-radius: var(--zsm-radius, 10px); }
.zsm-feed-thumb img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; transition: transform .3s ease; }
.zsm-feed-thumb:hover img { transform: scale(1.04); }
.zsm-feed-body { padding-top: 16px; }
.zsm-feed-date {
  display: block;
  margin-bottom: 8px;
  font-size: 13px;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--zsm-muted, #5b6675);
}
.zsm-feed-title { margin: 0 0 8px; font-size: var(--zsm-h3, 22px); line-height: 1.3; }
.zsm-feed-title a { text-decoration: none; color: var(--zsm-primary, #12264a); }
.zsm-feed-title a:hover { color: var(--zsm-block-accent, var(--zsm-secondary, #4dc8ed)); }
.zsm-feed-excerpt { margin: 0; color: var(--zsm-muted, #5b6675); }
.zsm-feed-item[hidden] { display: none; }

/* Single-column feed reads as a list. */
.zsm-cols-1.zsm-feed .zsm-feed-item { flex-direction: row; gap: 24px; align-items: center; }
.zsm-cols-1.zsm-feed .zsm-feed-thumb { flex: 0 0 240px; }
.zsm-cols-1.zsm-feed .zsm-feed-body { padding-top: 0; }
@media (max-width: 600px) {
  .zsm-cols-1.zsm-feed .zsm-feed-item { flex-direction: column; }
  .zsm-cols-1.zsm-feed .zsm-feed-thumb { flex: 1 1 auto; width: 100%; }
}

.zsm-pagination { margin-top: 36px; }
.zsm-pagination ul { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.zsm-pagination :is(a, span) {
  display: grid;
  place-items: center;
  min-width: 40px;
  height: 40px;
  padding-inline: 10px;
  border: 1px solid var(--zsm-border, #e2e5ea);
  border-radius: 6px;
  text-decoration: none;
  color: var(--zsm-primary, #12264a);
}
.zsm-pagination .current { background: var(--zsm-primary, #12264a); border-color: var(--zsm-primary, #12264a); color: #fff; }

/* ── CTA ──────────────────────────────────────────────────────────────────── */

.zsm-block-cta_banner:not([style*="background"]) { background: var(--zsm-primary, #12264a); }
.zsm-block-cta_banner { color: #fff; }
.zsm-cta-title { margin: 0 0 10px; font-size: var(--zsm-h2, 34px); line-height: 1.2; color: inherit; }
.zsm-cta-sub { margin: 0; opacity: .92; }
.zsm-cta-center { text-align: center; }
.zsm-cta-center .zsm-btn-row { justify-content: center; }
.zsm-cta-split {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}
.zsm-cta-split .zsm-btn-row { margin-top: 0; }
.zsm-block-cta_banner .zsm-btn-primary { background: #fff; color: var(--zsm-primary, #12264a); }
.zsm-block-cta_banner .zsm-btn-primary:hover { background: var(--zsm-secondary, #4dc8ed); color: #fff; }

/* ── Forms ────────────────────────────────────────────────────────────────── */

.zsm-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.zsm-field-full { grid-column: 1 / -1; }
@media (max-width: 600px) { .zsm-form-grid { grid-template-columns: 1fr; } }

.zsm-field { margin: 0; display: flex; flex-direction: column; gap: 6px; }
.zsm-field label { font-size: 14px; font-weight: 600; color: var(--zsm-primary, #12264a); }
.zsm-req { color: #b32d2e; }
.zsm-field :is(input, textarea, select) {
  width: 100%;
  padding: 13px 15px;
  border: 1px solid var(--zsm-border, #e2e5ea);
  border-radius: var(--zsm-btn-radius, 8px);
  background: var(--zsm-surface, #fff);
  font: inherit;
  font-size: 15px;
  color: var(--zsm-text, #1d2939);
}
.zsm-field :is(input, textarea):focus {
  outline: 0;
  border-color: var(--zsm-secondary, #4dc8ed);
  box-shadow: 0 0 0 3px rgba(77, 200, 237, .22);
}
.zsm-form-submit { margin: 24px 0 0; }

/* The honeypot must be invisible but still fillable by bots. */
.zsm-hp {
  position: absolute !important;
  left: -9999px !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.zsm-form-success {
  margin-bottom: 24px;
  padding: 16px 20px;
  border-left: 4px solid var(--zsm-accent, #26d87f);
  border-radius: 6px;
  background: rgba(38, 216, 127, .1);
  font-weight: 600;
  color: var(--zsm-primary, #12264a);
}

/* ── Newsletter ───────────────────────────────────────────────────────────── */

.zsm-newsletter {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}
.zsm-newsletter-row { display: flex; flex-wrap: wrap; gap: 10px; }
.zsm-newsletter-row input {
  min-width: 260px;
  flex: 1 1 260px;
  padding: 14px 16px;
  border: 1px solid var(--zsm-border, #e2e5ea);
  border-radius: var(--zsm-btn-radius, 8px);
  font: inherit;
}
.zsm-newsletter-consent { margin: 10px 0 0; font-size: 13px; color: var(--zsm-muted, #5b6675); }

/* ── Offices ──────────────────────────────────────────────────────────────── */

.zsm-office-photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--zsm-radius, 10px); margin-bottom: 16px; }
.zsm-office-city { margin: 0 0 10px; font-size: var(--zsm-h3, 22px); color: var(--zsm-primary, #12264a); }
.zsm-office-address { margin: 0 0 12px; font-style: normal; color: var(--zsm-muted, #5b6675); }
.zsm-office-contact { margin: 0; padding: 0; list-style: none; }
.zsm-office-contact li { margin-bottom: 4px; }
.zsm-office-contact a { text-decoration: none; color: var(--zsm-block-accent, var(--zsm-secondary, #4dc8ed)); }
.zsm-office-contact a:hover { text-decoration: underline; }

/* ── Map ──────────────────────────────────────────────────────────────────── */

.zsm-map iframe {
  display: block;
  width: 100%;
  height: var(--zsm-map-h, 420px);
  border: 0;
  border-radius: var(--zsm-radius, 10px);
}

/* ── Vacancies ────────────────────────────────────────────────────────────── */

.zsm-vacancies { margin: 0; padding: 0; list-style: none; }
.zsm-vacancy {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 22px 24px;
  margin-bottom: 12px;
  border: 1px solid var(--zsm-border, #e2e5ea);
  border-radius: var(--zsm-radius, 10px);
  background: var(--zsm-surface, #fff);
}
.zsm-vacancy-title { margin: 0 0 8px; font-size: var(--zsm-h3, 22px); color: var(--zsm-primary, #12264a); }
.zsm-vacancy-meta { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 0; padding: 0; list-style: none; font-size: 14px; color: var(--zsm-muted, #5b6675); }
.zsm-vacancy-meta li { display: flex; align-items: center; gap: 6px; }
.zsm-vacancy-meta li:not(:last-child)::after { content: "·"; margin-left: 12px; opacity: .5; }
.zsm-vacancies-empty, .zsm-vacancy-cv { color: var(--zsm-muted, #5b6675); }
.zsm-vacancy-cv { margin-top: 20px; }

/* ── Downloads ────────────────────────────────────────────────────────────── */

.zsm-downloads { margin: 0; padding: 0; list-style: none; }
.zsm-download { margin-bottom: 10px; }
.zsm-download a {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 16px 20px;
  border: 1px solid var(--zsm-border, #e2e5ea);
  border-radius: var(--zsm-radius, 10px);
  background: var(--zsm-surface, #fff);
  text-decoration: none;
  color: inherit;
  transition: border-color .18s ease, box-shadow .18s ease;
}
.zsm-download a:hover { border-color: var(--zsm-secondary, #4dc8ed); box-shadow: 0 4px 16px rgba(16, 38, 73, .08); }
.zsm-download-thumb img { width: 54px; height: 70px; object-fit: cover; border-radius: 4px; }
.zsm-download-icon {
  flex: 0 0 auto;
  width: 40px;
  height: 50px;
  border: 2px solid var(--zsm-border, #e2e5ea);
  border-radius: 4px;
  position: relative;
}
.zsm-download-icon::after {
  content: "PDF";
  position: absolute;
  inset: auto 0 6px 0;
  text-align: center;
  font-size: 9px;
  font-weight: 700;
  color: var(--zsm-muted, #5b6675);
}
.zsm-download-body { flex: 1 1 auto; display: flex; flex-direction: column; gap: 3px; }
.zsm-download-title { font-weight: 600; color: var(--zsm-primary, #12264a); }
.zsm-download-meta { font-size: 13px; color: var(--zsm-muted, #5b6675); }
.zsm-download-cta { font-weight: 600; color: var(--zsm-block-accent, var(--zsm-secondary, #4dc8ed)); }

/* ── Utility ──────────────────────────────────────────────────────────────── */

.zsm-spacer { height: var(--zsm-spacer-h, 60px); }
@media (max-width: 767px) { .zsm-spacer { height: var(--zsm-spacer-hm, 32px); } }
.zsm-divider { margin: 0; }

.zsm-carousel {
  display: flex;
  gap: var(--zsm-gap, 24px);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: thin;
  padding-bottom: 12px;
}
.zsm-carousel > * { flex: 0 0 clamp(200px, 24%, 300px); scroll-snap-align: start; }

.zsm-shared-note, .zsm-empty-note {
  margin-top: 16px;
  padding: 10px 14px;
  border-radius: 6px;
  background: rgba(77, 200, 237, .1);
  font-size: 13px;
  color: var(--zsm-muted, #5b6675);
}

/* ── Entrance animations ──────────────────────────────────────────────────── */

.zsm-anim { opacity: 0; transition: opacity .6s ease, transform .6s ease; }
.zsm-anim-fade-up { transform: translateY(28px); }
.zsm-anim-zoom { transform: scale(.96); }
.zsm-anim.is-in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  .zsm-anim { opacity: 1 !important; transform: none !important; transition: none; }
  .zsm-btn:hover, a.zsm-card:hover { transform: none; }
}

/* Screen-reader-only text, in case the theme does not define it. */
.zsm-layout .screen-reader-text {
  position: absolute !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
