/* Scope only the executive hierarchy; preserve the municipality's existing shell and theme. */
.exec-hierarchy .exec-group { margin: 0 0 44px; }
.exec-hierarchy .exec-level { position: relative; width: 100%; min-width: 0; margin-top: 32px; }
.exec-hierarchy .exec-level:first-child { margin-top: 0; }
.exec-hierarchy .exec-level + .exec-level::before { content: ''; position: absolute; width: 1px; height: 24px; left: 50%; top: -30px; background: var(--nsr-lilac,#d8c3e4); }
.exec-hierarchy .exec-level-heading { display: flex; justify-content: center; align-items: center; gap: 10px; margin: 0 0 22px; text-align: center; font-size: 1rem; font-weight: 500; color: var(--nsr-plum-deep,#4c1d64); line-height: 1.5; }
.exec-hierarchy .exec-level-number { flex: 0 0 28px; height: 28px; display: grid; place-items: center; border: 1px solid var(--nsr-divider,#d8c3e4); font: 500 12px/1 'Inter',sans-serif; color: var(--nsr-plum-deep,#4c1d64); }
.exec-hierarchy .exec-level-grid { display: flex; flex-wrap: wrap; justify-content: center; align-items: stretch; gap: 24px; width: 100%; min-width: 0; }
.exec-hierarchy .exec-level-grid > .exec-card { flex: 0 1 230px; width: 230px; max-width: 100%; min-width: 0; padding: 22px 16px; }
.exec-hierarchy .exec-level-1 .exec-card { flex-basis: 260px; width: 260px; }
.exec-hierarchy .exec-info, .exec-hierarchy .exec-name, .exec-hierarchy .exec-position, .exec-hierarchy .exec-phone { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
.exec-hierarchy .exec-name { font-size: 15px; overflow-x: auto; scrollbar-width: thin; }
.exec-hierarchy .exec-name span { display: inline-block; white-space: nowrap; max-width: none; overflow-wrap: normal; word-break: normal; }
.exec-hierarchy .exec-name.exec-name-scroll { text-align: left; }
.exec-hierarchy .executive-group-section { overflow: visible; }
.exec-hierarchy .exec-detail-button { white-space: normal; }
html.nsm-color-dark .exec-hierarchy .exec-level-heading, html.nsm-color-dark .exec-hierarchy .exec-level-number { color: var(--text,#e9ddf6); }
@media(max-width: 767px) {
    .exec-hierarchy .exec-level-grid { gap: 18px; }
    .exec-hierarchy .exec-level-grid > .exec-card { flex-basis: 260px; }
    .exec-hierarchy .group-title-wrap { padding: 15px 12px; }
    .exec-hierarchy .group-title-wrap h2 { font-size: 1.25rem; }
    .exec-hierarchy .exec-level-heading { font-size: .95rem; }
}

/* The global typography rule aligns all div/span/headings left. Override only card labels. */
.exec-hierarchy .exec-info,
.exec-hierarchy .exec-name,
.exec-hierarchy .exec-name span,
.exec-hierarchy .exec-position,
.exec-hierarchy .exec-phone,
.exec-hierarchy .exec-detail-button span { text-align: center; }
body.nsm-section-redesign .exec-hierarchy .group-title-wrap,
body.nsm-section-redesign .exec-hierarchy .group-title-wrap h2,
body.nsm-section-redesign .exec-hierarchy .group-title-wrap p { text-align: center; }

/* English titles can be longer than Thai names; wrap only at spaces, keeping words intact. */
html[lang=en] .exec-hierarchy .exec-name span { white-space: normal; word-break: keep-all; overflow-wrap: normal; text-wrap: balance; }
