/** Layout corrections shared across existing and newly inserted content. */
/* Headings and all content modules share the reading column. */
.entry-content > h2:has(+ .hawk-news-empty) { display:none; }
.entry-content .wp-block-column:has(> .wp-block-image):has(a) a {
	text-underline-offset:.2em;
	text-decoration-thickness:1px;
}
.entry-content .wp-block-column:has(> .wp-block-image):has(a):focus-within {
	outline:2px solid var(--color-primary);
	outline-offset:6px;
}
.entry-content .wp-block-column:has(> .wp-block-image):has(a) a:is(:hover,:focus-visible) {
	text-decoration-thickness:3px;
}
.entry-content a[aria-disabled="true"] { color:inherit; text-decoration:none; cursor:default; }
.site-title, .site-description { overflow-wrap: anywhere; }
.primary-navigation > .menu { flex-wrap: wrap; }
.primary-navigation > .menu > li > a {
	min-height: 44px;
	display: flex;
	align-items: center;
	text-decoration: none;
	text-underline-offset: .7rem;
	text-decoration-thickness: 3px;
	transition: color 160ms ease;
}
.primary-navigation > .menu > li > a:is(:hover, :focus-visible),
.primary-navigation > .menu > :is(.current-menu-item, .current-menu-ancestor, .current_page_item, .current_page_ancestor) > a {
	color: var(--color-primary);
	text-decoration-line: underline;
}
.primary-navigation .sub-menu a:is(:hover, :focus-visible) {
	color: var(--color-primary);
	text-decoration: underline;
	text-underline-offset: .25em;
	background: transparent;
}
@media (min-width: 64.001rem) {
	.primary-navigation .sub-menu {
		--submenu-shift: 0px;
		--submenu-caret: 50%;
		width: 18rem;
		max-width: calc(100vw - 2rem);
		padding: 1rem 1.25rem .65rem;
		border-top: 0;
		box-shadow: 0 3px 12px rgb(37 34 117 / 15%);
		transform: translateX(var(--submenu-shift, 0px));
	}
	.primary-navigation > .menu > li > .sub-menu {
		top: calc(100% + .65rem);
		left: 50%;
		transform: translateX(calc(-50% + var(--submenu-shift, 0px)));
	}
	/* Invisible bridge keeps the menu open while crossing the caret gap. */
	.primary-navigation > .menu > li > .sub-menu::before {
		content: "";
		position: absolute;
		inset: -.75rem 0 auto;
		height: .75rem;
	}
	.primary-navigation > .menu > li > .sub-menu::after {
		content: "";
		position: absolute;
		top: -.35rem;
		left: clamp(.75rem, var(--submenu-caret, 50%), calc(100% - .75rem));
		width: .7rem;
		height: .7rem;
		background: #fff;
		box-shadow: -2px -2px 4px rgb(37 34 117 / 5%);
		transform: translateX(-50%) rotate(45deg);
	}
	.primary-navigation .sub-menu a {
		padding: .7rem 0;
		font-size: .9rem;
		font-weight: 500;
		line-height: 1.5;
		white-space: normal;
		overflow-wrap: anywhere;
	}
	.primary-navigation .sub-menu li:last-child > a { border-bottom: 0; }
	.primary-navigation > .menu > li:last-child > .sub-menu {
		--submenu-caret: calc(100% - 2rem);
		right: 0;
		left: auto;
		transform: translateX(var(--submenu-shift, 0px));
	}
	.primary-navigation > .menu > li:last-child > .sub-menu::after { left: var(--submenu-caret, calc(100% - 2rem)); }
	.primary-navigation .sub-menu .sub-menu { top: -.65rem; left: 100%; }
	.primary-navigation .sub-menu .sub-menu.opens-left { right: 100%; left: auto; }
}

/* Content-frame widths are owned by editorial-modules.css. */
.entry-content :is(.wp-block-column, .wp-block-group, .wp-block-media-text__content) { min-width: 0; }
.entry-content :is(h1, h2, h3, h4, p, a) { overflow-wrap: anywhere; }
.entry-content [id] { scroll-margin-top: 2rem; }
.entry-content .wp-block-media-text .wp-block-media-text__content { padding: clamp(1rem, 3vw, 2rem); }
.entry-content .wp-block-table { max-width: 100%; overflow-x: auto; }
.entry-content .wp-block-table table { min-width: 30rem; }
.page-header__title, .page-header__lead, .page-header__inner > .breadcrumb { width: min(100%, var(--container-content)); margin-inline: auto; }
.page-header__title span { padding-inline: 0; }
.wp-block-group:is(.is-style-hawk-contact-panel, .is-style-hawk-status-panel, .is-style-hawk-anchor-navigation, .is-style-hawk-external-content) > :first-child { margin-top: 0; }

@media (min-width: 64.001rem) {
	.site-header__inner:not(:has(.language-link)) { grid-template-columns: minmax(18rem, 1fr) auto; grid-template-areas: "brand nav"; }
	.site-header__inner:not(:has(.language-link)) .site-header__controls { display: none; }
}
@media (max-width: 64rem) {
	/* Progressive enhancement keeps every link reachable without JavaScript. */
	.site-header:not(.is-enhanced) .primary-navigation { display: block; max-height: none; overflow: visible; }
	.site-header:not(.is-enhanced) .menu-toggle { display: none; }
	.site-header:not(.is-enhanced) .primary-navigation :is(.sub-menu, .children) { display: block; position: static; padding-left: 1rem; }
	.primary-navigation .sub-menu .sub-menu { left: auto; right: auto; }
	.site-header.is-open .primary-navigation { max-height: none; overflow: visible; }
}
@media (max-width: 48rem) {
	.hawk-marginal-section { display: grid !important; grid-template-columns: minmax(0, 1fr); }
	.site-header__controls { gap: 0.25rem; }
	.language-link { padding-left: 0.5rem; }
}
@media (min-width: 48.001rem) and (max-width: 64rem) {
	/* Three-card rows need more space than a tablet reading column provides. */
	.entry-content > .wp-block-columns:has(> .wp-block-column:nth-child(3)) {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.entry-content > .wp-block-columns:has(> .wp-block-column:nth-child(3)) > :last-child:nth-child(odd) { grid-column: 1 / -1; }
}
@media (max-width: 48rem) {
	.entry-content .wp-block-media-text.is-stacked-on-mobile > .wp-block-media-text__media,
	.entry-content .wp-block-media-text.is-stacked-on-mobile > .wp-block-media-text__content {
		grid-column: 1;
		grid-row: auto;
	}
	.entry-content .wp-block-media-text.is-stacked-on-mobile > .wp-block-media-text__content { padding: 1.25rem 0; }
}
@media (max-width: 30rem) {
	.wp-block-gallery.is-style-hawk-square-grid:is(.columns-3, .columns-4) { grid-template-columns: minmax(0, 1fr); }
	.entry-content .wp-block-buttons > .wp-block-button { width: 100%; }
	.entry-content .wp-block-buttons .wp-block-button__link { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
	.primary-navigation a { transition: none; }
}
@media (max-width: 23.5rem) {
	.language-link { display: inline-flex; }
	.site-branding { gap: 0.5rem; }
	.site-branding .custom-logo { width: 3.75rem; }
}
