.primary-menu > li { position: relative; }
.primary-menu .sub-menu { display: none; position: absolute; top: 100%; right: 0; z-index: 50; min-width: 18rem; max-width: min(24rem, 90vw); margin: 0; padding: .75rem 1rem; list-style: none; background: #FAF7F1; border: 1px solid #c9bfaa; border-radius: 10px; box-shadow: 0 12px 28px #14182115; }
.primary-menu .sub-menu a { white-space: normal; line-height: 1.5; padding-block: .4rem; }
.primary-menu li:hover > .sub-menu, .primary-menu li:focus-within > .sub-menu, .primary-menu li.kdb-submenu-open > .sub-menu { display: block; }
.kdb-submenu-toggle { border: 0; background: transparent; color: #6D2736; min-width: 40px; min-height: 40px; cursor: pointer; font-size: 1rem; }
.kdb-submenu-toggle:focus-visible, .primary-menu a:focus-visible { outline: 2px solid #6D2736; outline-offset: 2px; }
.kdb-publications .entry-card__content h3 { font-family: var(--kdb-font-display); font-size: 1.7rem; line-height: 1.25; margin-block: .75rem; }
.kdb-publications time { font-family: var(--kdb-font-label); font-size: .85rem; color: var(--kdb-text-soft); }
.kdb-publications-gateway { margin-block: 2rem 3rem; border-top: 1px solid #c9bfaa; padding-block: 1.5rem; }
.kdb-publications-gateway h2 { font-size: 1.6rem; }
.kdb-publications-gateway ul { list-style: none; padding: 0; }
.kdb-knowledge__body h2 { hyphens: none; overflow-wrap: normal; word-break: normal; }
@media (max-width: 960px) {
 .primary-menu .sub-menu { position: static; min-width: 0; width: 100%; max-width: none; box-shadow: none; border: 0; border-left: 1px solid #c9bfaa; border-radius: 0; padding: .25rem 1rem; }
 .primary-menu > li { width: 100%; }
 .site-navigation { max-height: 80vh; overflow-y: auto; }
}
.primary-menu.kdb-menu-enhanced li:not(.kdb-submenu-open) > .sub-menu { display: none; }

/* 2.4.28: align label and disclosure on a single row. */
.primary-menu > li { display: grid; grid-template-columns: auto auto; align-items: center; column-gap: .1rem; }
.primary-menu > li > a { grid-column: 1; grid-row: 1; }
.primary-menu > li > .kdb-submenu-toggle { grid-column: 2; grid-row: 1; padding: 0; width: 1.5rem; min-width: 1.5rem; height: 40px; min-height: 40px; display: inline-flex; align-items: center; justify-content: center; font-family: var(--kdb-font-label); line-height: 1; }
.primary-menu > li > .sub-menu { grid-column: 1 / -1; }
/* Restrained editorial lists on the homepage, without images or card surfaces. */
.kdb-publications.section { padding-block: clamp(1.6rem, 3vw, 2.5rem); }
.kdb-publications .section__header { margin-bottom: 1.15rem; }
.kdb-publications .section__header h2 { font-size: clamp(1.45rem, 2vw, 1.75rem); margin: 0 0 .35rem; }
.kdb-publications .section__header p { font-size: .95rem; margin: 0; }
.kdb-publications .card-grid { gap: 1.5rem; }
.kdb-publication-item { border-top: 1px solid var(--kdb-line); padding-top: .8rem; min-width: 0; }
.kdb-publication-item time { font-family: var(--kdb-font-body); font-size: .82rem; color: var(--kdb-text-soft); }
.kdb-publication-item h3 { font-family: var(--kdb-font-body); font-size: 1.05rem; font-weight: 400; line-height: 1.55; margin: .4rem 0 0; }
.kdb-publication-item h3 a { color: var(--kdb-text); text-decoration: none; }
.kdb-publication-item h3 a:hover { color: var(--kdb-accent); text-decoration: underline; }
.kdb-publications .front-section-link { margin-top: 1rem; font-size: .95rem; }
.kdb-knowledge__body a { font-family: var(--kdb-font-body); font-size: 1rem; }
@media (max-width: 960px) {
 .primary-menu > li { grid-template-columns: minmax(0, 1fr) auto; }
 .primary-menu > li > .sub-menu { grid-row: 2; }
}
