/* IMSIS header and footer — values taken from the approved Design canvas. */

.imsis-strip, .imsis-strip *, .imsis-header, .imsis-header *, .imsis-footer, .imsis-footer * { box-sizing: border-box; }

.screen-reader-text:not(:focus) {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}
.skip-link:focus {
	position: absolute; top: 8px; left: 8px; z-index: 1000;
	padding: 10px 16px; border-radius: 8px;
	background: #ffffff; color: #112a4c; font-weight: 700;
}
#imsis-content { outline: none; }

/* ---------- Top network strip ---------- */
.imsis-strip {
	background: #0a1a33;
	color: #dbe7ec;
	font-family: 'Atkinson Hyperlegible Next', system-ui, sans-serif;
	font-size: 14px;
	line-height: 1.6;
}
.imsis-strip__inner {
	max-width: 1320px;
	margin: 0 auto;
	padding: 8px 24px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 6px 24px;
}
.imsis-strip__nav {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 20px;
}
.imsis-strip a { color: #ffffff; text-decoration: none; }
.imsis-strip a:hover, .imsis-strip a:focus { color: #6cd3c2; text-decoration: underline; }
.imsis-strip a.is-current { color: #6cd3c2; font-weight: 700; }
.imsis-strip .imsis-strip__account {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: #6cd3c2;
	font-weight: 700;
}

/* ---------- Main bar ---------- */
.imsis-header {
	background: #112a4c;
	border-bottom: 1px solid #24406a;
	font-family: 'Atkinson Hyperlegible Next', system-ui, sans-serif;
	line-height: 1.6;
}
.imsis-header__inner {
	max-width: 1320px;
	margin: 0 auto;
	padding: 16px 24px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px 32px;
}

.imsis-brand {
	display: flex;
	align-items: center;
	gap: 12px;
	text-decoration: none;
	flex: none;
}
.imsis-brand__mark { display: block; height: 52px; width: auto; }
.imsis-brand__mark--region { height: 56px; }
.imsis-brand__text { display: flex; flex-direction: column; gap: 4px; }
.imsis-site:not(.imsis-site--global) .imsis-brand__text { gap: 2px; }
.imsis-brand__wordmark { display: block; height: 22px; width: auto; align-self: flex-start; }
.imsis-brand__tagline {
	font-family: 'Quicksand', sans-serif;
	font-weight: 600;
	font-size: 12px;
	line-height: 1.2;
	color: #b2d3ce;
	letter-spacing: 0.02em;
}
.imsis-brand__region {
	font-family: 'Courgette', cursive;
	font-size: 22px;
	line-height: 1.1;
	color: #6cd3c2;
}

.imsis-nav .imsis-nav__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 24px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.imsis-nav .imsis-nav__list li { margin: 0; padding: 0; }
.imsis-nav a {
	display: inline-flex;
	align-items: center;
	color: #ffffff;
	font-family: 'Quicksand', sans-serif;
	font-weight: 700;
	font-size: 16px;
	line-height: 1.6;
	text-decoration: none;
	white-space: nowrap;
}
.imsis-nav a:hover, .imsis-nav a:focus,
.imsis-nav .current-menu-item > a { color: #6cd3c2; }
.imsis-nav .imsis-locked > a::before { margin-right: 6px; vertical-align: 0; }

.imsis-header .imsis-header__join {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 22px;
	border-radius: 8px;
	background: #6cd3c2;
	color: #112a4c;
	font-weight: 700;
	font-size: 16px;
	text-decoration: none;
	white-space: nowrap;
}
.imsis-header .imsis-header__join:hover,
.imsis-header .imsis-header__join:focus { background: #8fe0d2; color: #112a4c; }

.imsis-nav-toggle { display: none; }

/* Tablet and phone: menu behind a button. */
@media (max-width: 1100px) {
	.imsis-header__inner { gap: 12px 16px; }
	.imsis-js .imsis-nav-toggle {
		display: inline-flex;
		align-items: center;
		gap: 8px;
		min-height: 44px;
		margin-left: auto;
		padding: 0 14px;
		border: 2px solid #3b5a84;
		border-radius: 8px;
		background: transparent;
		color: #ffffff;
		font: 700 16px/1 'Quicksand', sans-serif;
		cursor: pointer;
	}
	.imsis-nav-toggle:hover, .imsis-nav-toggle[aria-expanded="true"] { border-color: #6cd3c2; color: #6cd3c2; }
	.imsis-nav {
		order: 4;
		flex: 1 0 100%;
	}
	.imsis-js .imsis-nav { display: none; }
	.imsis-js .imsis-nav.is-open { display: block; }
	.imsis-nav .imsis-nav__list {
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		padding: 8px 0;
		border-top: 1px solid #24406a;
	}
	.imsis-nav a { display: flex; min-height: 48px; font-size: 18px; }
}
@media (max-width: 560px) {
	.imsis-header__join { order: 5; flex: 1 0 100%; justify-content: center; }
	.imsis-brand__tagline { display: none; }
	.imsis-nav-toggle span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); }
	.imsis-nav-toggle { padding: 0 10px; }
}

/* ---------- Footer ---------- */
.imsis-footer {
	background: #0d2240;
	color: #dbe7ec;
	border-top: 4px solid #6cd3c2;
	font-family: 'Atkinson Hyperlegible Next', system-ui, sans-serif;
	font-size: 16px;
	line-height: 1.6;
}
.imsis-footer__grid {
	max-width: 1200px;
	margin: 0 auto;
	padding: 56px 24px 32px;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 32px;
}
.imsis-footer__about { display: flex; flex-direction: column; gap: 14px; }
.imsis-footer__about p { margin: 0; font-size: 15px; line-height: 1.5; }
.imsis-footer__brand { display: flex; align-items: center; gap: 10px; }
.imsis-footer__mark { display: block; height: 44px; width: auto; }
.imsis-footer__mark--region { height: 48px; }
.imsis-footer__wordmark { display: block; height: 20px; width: auto; align-self: flex-start; }
.imsis-footer__region {
	font-family: 'Courgette', cursive;
	font-size: 19px;
	line-height: 1.1;
	color: #6cd3c2;
}
.imsis-footer__col { display: flex; flex-direction: column; gap: 8px; }
.imsis-footer__heading { font-family: 'Quicksand', sans-serif; font-weight: 700; color: #ffffff; }
.imsis-footer a { color: #dbe7ec; text-decoration: none; }
.imsis-footer a:hover, .imsis-footer a:focus { color: #6cd3c2; text-decoration: underline; }
.imsis-footer__legal {
	max-width: 1200px;
	margin: 0 auto;
	padding: 20px 24px 32px;
	border-top: 1px solid #2a4468;
	display: flex;
	flex-wrap: wrap;
	gap: 8px 24px;
	font-size: 14px;
}
.imsis-footer__legal a { text-decoration: underline; }

/* ---------- Drop-down menus ---------- */
.imsis-nav .menu-item-has-children { position: relative; }
.imsis-nav .menu-item-has-children > a::after {
	content: "";
	display: inline-block;
	width: 7px; height: 7px;
	margin-left: 8px;
	border-right: 2px solid #6cd3c2;
	border-bottom: 2px solid #6cd3c2;
	transform: translateY(-3px) rotate(45deg);
}
.imsis-nav .sub-menu {
	margin: 0;
	padding: 8px 0;
	list-style: none;
}
@media (min-width: 1101px) {
	.imsis-nav .sub-menu {
		position: absolute;
		top: 100%;
		left: -16px;
		z-index: 100;
		min-width: 230px;
		padding: 8px 0;
		border: 1px solid #24406a;
		border-radius: 8px;
		background: #112a4c;
		box-shadow: 0 12px 28px rgba(5, 15, 30, 0.35);
		opacity: 0;
		visibility: hidden;
		transform: translateY(6px);
		transition: opacity .15s ease, transform .15s ease, visibility 0s linear .15s;
	}
	/* Bridge the gap so the menu doesn't close on the way down. */
	.imsis-nav .menu-item-has-children::after { content: ""; position: absolute; left: 0; right: 0; top: 100%; height: 12px; }
	.imsis-nav .menu-item-has-children:hover > .sub-menu,
	.imsis-nav .menu-item-has-children:focus-within > .sub-menu {
		opacity: 1;
		visibility: visible;
		transform: translateY(12px);
		transition: opacity .15s ease, transform .15s ease;
	}
	.imsis-nav .sub-menu a { display: flex; padding: 8px 16px; font-size: 15px; }
	.imsis-nav .sub-menu a:hover, .imsis-nav .sub-menu a:focus { background: #183659; }
}
@media (max-width: 1100px) {
	.imsis-nav .sub-menu { padding: 0 0 8px 18px; border-left: 2px solid #24406a; margin-left: 4px; }
	.imsis-nav .sub-menu a { min-height: 44px; font-size: 16px; font-weight: 600; }
	.imsis-nav .menu-item-has-children > a::after { display: none; }
}
