/* ==========================================================================
   Global chrome: contact strip, header, navigation, mobile bar, footer.
   ========================================================================== */

/* ----------------------------------------------------- 1. Top contact strip */

.wt-contact-strip {
	display: none;
	background: var(--wt-navy-charcoal);
	color: var(--wt-text-on-dark);
	font-size: var(--wt-text-sm);
}

@media (min-width: 1024px) {
	.wt-contact-strip {
		display: block;
	}
}

.wt-contact-strip__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--wt-space-5);
	min-height: 2.75rem;
}

.wt-contact-strip__list {
	display: flex;
	align-items: center;
	gap: var(--wt-space-5);
	margin: 0;
	padding: 0;
	list-style: none;
}

.wt-contact-strip__item {
	display: inline-flex;
	align-items: center;
	gap: var(--wt-space-2);
}

.wt-contact-strip a {
	color: var(--wt-white);
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: var(--wt-space-2);
}

.wt-contact-strip a:hover {
	text-decoration: underline;
}

.wt-contact-strip .wt-icon {
	color: var(--wt-orange);
}

.wt-contact-strip__offer {
	display: inline-flex;
	align-items: center;
	gap: var(--wt-space-2);
	color: var(--wt-white);
	font-weight: var(--wt-weight-bold);
}

.wt-contact-strip__offer::before {
	content: "";
	width: 0.5rem;
	height: 0.5rem;
	border-radius: 50%;
	background: var(--wt-red);
	flex: none;
}

/* ------------------------------------------------------------- 2. Header */

.wt-header {
	position: sticky;
	top: var(--wt-adminbar-h);
	z-index: var(--wt-z-header);
	background: var(--wt-white);
	border-bottom: 1px solid var(--wt-border);
	transition: box-shadow var(--wt-duration) var(--wt-ease);
}

.wt-header.is-stuck {
	box-shadow: var(--wt-shadow);
}

.wt-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--wt-space-4);
	min-height: 5.25rem;
}

.wt-header__brand {
	display: inline-flex;
	align-items: center;
	flex: none;
	text-decoration: none;
}

/* The logo sits on a white plate and is never distorted or recoloured. */
.wt-header__logo img {
	width: auto;
	max-height: 3.25rem;
	object-fit: contain;
}

.wt-header__logo--bundled {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	text-decoration: none;
	min-width: 0;
}

.wt-header__logo--bundled img {
	width: 4.2rem;
	height: 3.6rem;
	object-fit: contain;
	flex: none;
}

.wt-header__wordmark {
	display: grid;
	line-height: 1;
	text-transform: uppercase;
}

.wt-header__wordmark strong {
	color: var(--wt-navy);
	font-family: var(--wt-font-display);
	font-size: clamp(1.15rem, 1.5vw, 1.55rem);
	letter-spacing: 0.015em;
	white-space: nowrap;
}

.wt-header__wordmark small {
	color: var(--wt-orange-700);
	font-family: var(--wt-font-display);
	font-size: 0.72rem;
	font-weight: var(--wt-weight-bold);
	letter-spacing: 0.12em;
	margin-top: 0.3rem;
}

@media (max-width: 420px) {
	.wt-header__logo--bundled {
		gap: 0.45rem;
	}

	.wt-header__logo--bundled img {
		width: 3.25rem;
		height: 3rem;
	}

	.wt-header__wordmark strong {
		font-size: 1rem;
	}

	.wt-header__wordmark small {
		font-size: 0.62rem;
		letter-spacing: 0.08em;
	}
}

@media (max-width: 350px) {
	.wt-menu-toggle span {
		position: absolute !important;
		width: 1px;
		height: 1px;
		padding: 0;
		margin: -1px;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
		white-space: nowrap;
		border: 0;
	}
}

.wt-header__logo--core .custom-logo-link {
	display: inline-flex;
	align-items: center;
}

@media (min-width: 1024px) {
	.wt-header__logo img {
		max-height: 4rem;
	}
}

.wt-header__brand-text {
	font-family: var(--wt-font-display);
	font-size: var(--wt-text-lg);
	font-weight: var(--wt-weight-bold);
	line-height: 1.05;
	color: var(--wt-navy);
	text-transform: uppercase;
}

.wt-header__actions {
	display: flex;
	align-items: center;
	gap: var(--wt-space-3);
}

/* ------------------------------------------------- 2b. Desktop navigation */

.wt-nav {
	display: none;
}

@media (min-width: 1180px) {
	.wt-nav {
		display: block;
	}
}

.wt-nav__list {
	display: flex;
	align-items: center;
	gap: var(--wt-space-1);
	margin: 0;
	padding: 0;
	list-style: none;
}

.wt-nav__item {
	position: relative;
}

.wt-nav__link {
	display: inline-flex;
	align-items: center;
	padding: var(--wt-space-3) var(--wt-space-3);
	font-family: var(--wt-font-display);
	font-size: var(--wt-text-md);
	font-weight: var(--wt-weight-bold);
	letter-spacing: 0.02em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--wt-navy);
	white-space: nowrap;
	border-bottom: 3px solid transparent;
}

.wt-nav__link:hover,
.wt-nav__item.is-current > .wt-nav__link {
	color: var(--wt-accent-text);
	border-bottom-color: var(--wt-accent);
}

.wt-nav__toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2rem;
	min-height: 2rem;
	padding: 0;
	margin-inline-start: -0.35rem;
	background: none;
	border: 0;
	color: var(--wt-navy);
	cursor: pointer;
}

.wt-nav__toggle .wt-icon {
	transition: transform var(--wt-duration) var(--wt-ease);
}

.wt-nav__toggle[aria-expanded="true"] .wt-icon {
	transform: rotate(180deg);
}

.wt-nav__submenu {
	position: absolute;
	top: 100%;
	inset-inline-start: 0;
	min-width: 14rem;
	margin: 0;
	padding: var(--wt-space-2);
	list-style: none;
	background: var(--wt-white);
	border: 1px solid var(--wt-border);
	border-radius: var(--wt-radius);
	box-shadow: var(--wt-shadow);
	display: none;
}

.wt-nav__item--has-children.is-open > .wt-nav__submenu {
	display: block;
}

.wt-nav__submenu .wt-nav__link {
	display: block;
	width: 100%;
	padding: var(--wt-space-3);
	border-bottom: 0;
	border-radius: var(--wt-radius-sm);
	text-transform: none;
	font-size: var(--wt-text-base);
}

.wt-nav__submenu .wt-nav__link:hover {
	background: var(--wt-navy-100);
}

/* --------------------------------------------------- 2c. Mobile navigation */

.wt-menu-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--wt-space-2);
	padding: 0.6rem 0.9rem;
	background: var(--wt-navy);
	border: 0;
	border-radius: var(--wt-radius);
	color: var(--wt-white);
	font-size: var(--wt-text-sm);
	font-weight: var(--wt-weight-bold);
	cursor: pointer;
}

@media (min-width: 1180px) {
	.wt-menu-toggle {
		display: none;
	}
}

/* V6: the header CTA now survives down to phone width.
   V5 hid it below 1180px, which left tablets between 768px and 1179px with no
   quick action at all - the mobile action bar stops at 767px, so that band had
   only a Menu button. The nav is already hidden at this size, so there is
   ample room for logo, CTA and menu trigger. */
@media (max-width: 767px) {
	.wt-header__actions > .wt-btn {
		display: none;
	}
}

@media (min-width: 768px) and (max-width: 1179px) {
	.wt-header__actions > .wt-btn {
		padding-inline: 1.1rem;
	}
}

.wt-drawer {
	position: fixed;
	inset: 0;
	z-index: var(--wt-z-drawer);
	display: none;
}

.wt-drawer.is-open {
	display: block;
}

.wt-drawer__backdrop {
	position: absolute;
	inset: 0;
	background: var(--wt-scrim-drawer);
	border: 0;
	width: 100%;
	cursor: pointer;
}

.wt-drawer__panel {
	position: absolute;
	inset-block: var(--wt-adminbar-h) 0;
	inset-inline-end: 0;
	width: min(22rem, 92vw);
	background: var(--wt-white);
	box-shadow: var(--wt-shadow-lg);
	display: flex;
	flex-direction: column;
	overflow-y: auto;
	overscroll-behavior: contain;
}

.wt-drawer__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--wt-space-4);
	padding: var(--wt-space-4);
	border-bottom: 1px solid var(--wt-border);
}

.wt-drawer__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	background: var(--wt-steel-100);
	border: 0;
	border-radius: var(--wt-radius);
	color: var(--wt-navy);
	cursor: pointer;
}

.wt-drawer__body {
	padding: var(--wt-space-4);
}

/* V6 drawer search. Stacks on narrow phones so neither control is cramped. */
.wt-drawer__search {
	margin-bottom: var(--wt-space-4);
	padding-bottom: var(--wt-space-4);
	border-bottom: 1px solid var(--wt-border);
}

.wt-drawer__search .wt-searchform {
	flex-wrap: wrap;
	max-width: none;
}

.wt-drawer__search .wt-searchform__field {
	flex: 1 1 100%;
}

.wt-drawer__search .wt-searchform .wt-btn {
	flex: 1 1 100%;
}

.wt-drawer .wt-nav {
	display: block;
}

.wt-drawer .wt-nav__list {
	flex-direction: column;
	align-items: stretch;
	gap: 0;
}

.wt-drawer .wt-nav__item {
	border-bottom: 1px solid var(--wt-border);
}

.wt-drawer .wt-nav__link {
	padding: var(--wt-space-4) 0;
	border-bottom: 0;
	width: 100%;
}

.wt-drawer .wt-nav__toggle {
	position: absolute;
	inset-inline-end: 0;
	inset-block-start: 0.5rem;
	width: 2.75rem;
	min-height: 2.75rem;
}

.wt-drawer .wt-nav__submenu {
	position: static;
	box-shadow: none;
	border: 0;
	padding: 0 0 var(--wt-space-3) var(--wt-space-4);
	min-width: 0;
}

.wt-drawer__contact {
	display: grid;
	gap: var(--wt-space-3);
	padding: var(--wt-space-4);
	margin-top: auto;
	border-top: 1px solid var(--wt-border);
	background: var(--wt-off-white);
}

/* --------------------------------------------------- 16b. Mobile action bar
   Fixed to the bottom on small screens. The body reserves matching padding in
   base.css, so this bar can never sit on top of content. */

.wt-mobile-bar {
	position: fixed;
	inset-inline: 0;
	inset-block-end: 0;
	z-index: var(--wt-z-mobile-bar);
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	background: var(--wt-navy-charcoal);
	border-top: 1px solid var(--wt-line-light);
	padding-bottom: env(safe-area-inset-bottom, 0);
}

@media (min-width: 768px) {
	.wt-mobile-bar {
		display: none;
	}
}

.wt-mobile-bar__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.2rem;
	padding: var(--wt-space-3) var(--wt-space-2);
	color: var(--wt-white);
	font-size: var(--wt-text-xs);
	font-weight: var(--wt-weight-bold);
	text-decoration: none;
	text-align: center;
}

.wt-mobile-bar__item + .wt-mobile-bar__item {
	border-inline-start: 1px solid var(--wt-line-light);
}

.wt-mobile-bar__item .wt-icon {
	width: 1.35rem;
	height: 1.35rem;
	color: var(--wt-orange);
}

.wt-mobile-bar__item--accent {
	background: var(--wt-accent);
	color: var(--wt-accent-label);
}

.wt-mobile-bar__item--accent .wt-icon {
	color: var(--wt-accent-label);
}

.wt-mobile-bar__item--accent:hover,
.wt-mobile-bar__item--accent:focus {
	color: var(--wt-accent-label);
}

/* ------------------------------------------------------------- 16. Footer */

.wt-footer {
	background: var(--wt-navy-charcoal);
	color: var(--wt-text-on-dark);
	padding-block: var(--wt-space-9) var(--wt-space-5);
	font-size: var(--wt-text-sm);
}

.wt-footer h2,
.wt-footer h3 {
	color: var(--wt-white);
	font-size: var(--wt-text-base);
	letter-spacing: var(--wt-tracking-wide);
	text-transform: uppercase;
	margin-bottom: var(--wt-space-4);
}

.wt-footer a {
	color: var(--wt-text-on-dark);
	text-decoration: none;
}

.wt-footer a:hover {
	color: var(--wt-white);
	text-decoration: underline;
}

.wt-footer__grid {
	display: grid;
	gap: var(--wt-space-7);
	grid-template-columns: 1fr;
}

@media (min-width: 640px) {
	.wt-footer__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	.wt-footer__grid {
		grid-template-columns: 1.4fr 1fr 1fr 1fr;
	}
}

.wt-footer__logo {
	display: inline-block;
	background: var(--wt-white);
	padding: var(--wt-space-3);
	border-radius: var(--wt-radius);
	margin-bottom: var(--wt-space-4);
}

.wt-footer__logo img {
	max-height: 4.5rem;
	width: auto;
}

.wt-footer__bundled-logo {
	display: block;
	width: 11rem;
	height: auto;
	padding: var(--wt-space-3);
	margin-bottom: var(--wt-space-4);
	background: var(--wt-white);
	border-radius: var(--wt-radius);
}

.wt-footer__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: var(--wt-space-2);
}

.wt-footer__contact {
	display: grid;
	gap: var(--wt-space-3);
	margin: 0;
}

.wt-footer__contact div {
	display: flex;
	gap: var(--wt-space-3);
	align-items: flex-start;
}

.wt-footer__contact .wt-icon {
	color: var(--wt-orange);
	margin-top: 0.15rem;
	flex: none;
}

.wt-footer__social {
	display: flex;
	gap: var(--wt-space-3);
	list-style: none;
	margin: var(--wt-space-4) 0 0;
	padding: 0;
}

.wt-footer__social a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	border: 1px solid var(--wt-line-light-strong);
	border-radius: var(--wt-radius);
}

.wt-footer__social a:hover {
	border-color: var(--wt-orange);
	background: var(--wt-fill-orange);
}

.wt-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--wt-space-4);
	margin-top: var(--wt-space-8);
	padding-top: var(--wt-space-5);
	border-top: 1px solid var(--wt-line-light-soft);
	color: var(--wt-text-on-dark-muted);
	font-size: var(--wt-text-xs);
}

.wt-footer__legal {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wt-space-4);
	list-style: none;
	margin: 0;
	padding: 0;
}
