/* CNS theme base styles (hand-written). Page designs live in canvas.css. */

body { margin: 0; -webkit-font-smoothing: antialiased; }
:where(.cns-canvas) :where(p, h1, h2, h3, h4, h5, h6, ul, ol, figure, blockquote, details) { margin: 0; }
:where(.cns-footer) :where(p, figure) { margin: 0; }
img { max-width: 100%; }
/* The design canvas uses the browser default (content-box); WordPress sets
   border-box on groups and lists. Restore the default inside designed areas. */
body .cns-canvas *:not(select, button), body .cns-footer *:not(select, button) { box-sizing: content-box; }
summary { cursor: pointer; }

/* Inline-element wrappers created from the canvas: the paragraph disappears
   from layout so the link/badge inside behaves exactly as in the design. */
.cns-contents { display: contents; }

/* Details (FAQ) blocks: keep the design's own spacing. */
.wp-block-details > summary { margin: 0; }

/* ------------------------------------------------------------ header */
.cns-header { position: relative; border-bottom: 1px solid #DDE3EE; background: #FFFFFF; z-index: 30; }
.cns-header__inner {
	max-width: 1200px; margin: 0 auto; padding: 16px 24px; box-sizing: border-box;
	display: flex; flex-wrap: wrap; gap: 16px 32px; align-items: center; justify-content: space-between;
}
.cns-brand { display: flex; flex-direction: column; gap: 9px; line-height: 1.2; }
.cns-brand > * { margin: 0; }
.cns-logo { margin: 0; }
.cns-logo img { height: 40px; width: auto; display: block; }
.cns-tagline {
	margin: 0; padding-left: 2px; white-space: nowrap;
	font-family: 'IBM Plex Mono', monospace; font-size: 10px; letter-spacing: 0.55px;
	text-transform: uppercase; color: #55607A;
}

.cns-nav { font-size: 15px; font-weight: 500; }
.cns-nav .wp-block-navigation__container { gap: 4px 26px; align-items: center; }
.cns-nav .wp-block-navigation-item__content { color: #080037; text-decoration: none; padding: 10px 0; }
.cns-nav .wp-block-navigation-item:not(.nav-cta) .wp-block-navigation-item__content:hover { color: #1F6BD2; }
.cns-nav .nav-cta { margin-left: 6px; }
.cns-nav .nav-cta .wp-block-navigation-item__content {
	background: #1F6BD2; color: #FFFFFF; padding: 10px 18px; border-radius: 6px; font-weight: 600;
}
.cns-nav .nav-cta .wp-block-navigation-item__content:hover { background: #154FA0; color: #FFFFFF; }

/* Mobile: the "Menu" button opens a dropdown panel, as in the design. */
.cns-nav .wp-block-navigation__responsive-container-open {
	display: none; align-items: center; gap: 8px; border: 1px solid #B8C2D6; border-radius: 6px;
	padding: 10px 14px; min-height: 44px; box-sizing: border-box; font-weight: 600; font-size: 15px; color: #080037;
	background: #FFFFFF;
}
.cns-nav .wp-block-navigation__responsive-container-open::after { content: "Menu"; }
@media (max-width: 960px) {
	.cns-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.cns-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
	.cns-nav .wp-block-navigation__responsive-container.is-menu-open {
		position: absolute; top: 100%; bottom: auto; left: 0; right: 0; height: auto; z-index: 40;
		background: #FFFFFF !important; border-bottom: 1px solid #DDE3EE;
		box-shadow: 0 16px 32px rgba(8, 0, 55, 0.14); padding: 4px 24px 24px; animation: none;
	}
	.cns-nav .is-menu-open .wp-block-navigation__responsive-close { max-width: none; }
	.cns-nav .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 0 !important; align-items: stretch !important; }
	.cns-nav .is-menu-open .wp-block-navigation__container { flex-direction: column; align-items: stretch !important; gap: 0; width: 100%; }
	.cns-nav .is-menu-open .wp-block-navigation-item { width: 100%; }
	.cns-nav .is-menu-open .wp-block-navigation-item__content { display: block; width: 100%; padding: 14px 0 !important; border-bottom: 1px solid #EDF1F3; font-size: 17px; }
	.cns-nav .is-menu-open .nav-cta { margin: 18px 0 0; }
	.cns-nav .is-menu-open .nav-cta .wp-block-navigation-item__content { text-align: center; padding: 14px 18px !important; border: 0; }
	.cns-nav .wp-block-navigation__responsive-container-close { top: 8px; right: 0; }
}
@media (min-width: 961px) {
	.cns-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: none; }
	.cns-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: block; position: relative; background: transparent; }
}

/* ------------------------------------------------------------ archive / 404 */
.cns-archive, .cns-404 { max-width: 1200px; margin: 0 auto; padding: 64px 24px 96px; box-sizing: border-box; }
.cns-archive__title { font-size: clamp(34px, 4.6vw, 52px); line-height: 1.1; letter-spacing: -1px; margin: 0 0 32px; }
.cns-archive__list .wp-block-post-template { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 24px; list-style: none; padding: 0; margin: 0; }
.cns-archive__list .wp-block-post { border: 1px solid #DDE3EE; border-radius: 12px; overflow: hidden; display: flex; flex-direction: column; gap: 10px; padding-bottom: 24px; }
.cns-archive__list .wp-block-post > *:not(.wp-block-post-featured-image) { padding: 0 24px; margin: 0; }
.cns-archive__list .wp-block-post-title { font-size: 20px; line-height: 1.3; }
.cns-archive__list .wp-block-post-title a { color: #080037; text-decoration: none; }
.cns-archive__list .wp-block-post-date { font-size: 14px; color: #55607A; padding-top: 0; }
.cns-404 h1 { font-size: clamp(34px, 4.6vw, 52px); line-height: 1.1; margin: 12px 0 16px; }
.cns-eyebrow { font-family: 'IBM Plex Mono', monospace; font-size: 13px; letter-spacing: 1.5px; text-transform: uppercase; color: #1F6BD2; margin: 0; }

/* ------------------------------------------------------------ forms */
.cns-form-note { grid-column: 1 / -1; margin: 0; padding: 10px 12px; border-radius: 6px; background: #FFF6D6; color: #5A4500; font-size: 14px; }
