/* =========================================================================
   NISSU site header
   Two-row header modelled on nar.realtor:
     Row 1 (white)  — logo | wide search | utility links
     Row 2 (navy)   — primary nav, title case, dropdown / mega panels
   Sticky; below 1100px row 2 folds into an off-canvas drawer.
   ========================================================================= */

/* ---------- Layout primitives ---------- */

.rw-container {
	width: 100%;
	max-width: var(--rwh-container, 1280px);
	margin-inline: auto;
	padding-inline: 20px;
}

@media (min-width: 768px) {
	.rw-container {
		padding-inline: 32px;
	}
}

.rw-header-wrap *,
.rw-drawer * {
	box-sizing: border-box;
}

/* Explicit, so Elementor's frontend resets can't reclaim the header type. */
.rw-header-wrap,
.rw-drawer,
.rw-header-wrap input,
.rw-header-wrap button,
.rw-drawer input,
.rw-drawer button {
	font-family: var(--rwh-font);
}

/* ---------- Sticky shell ---------- */

/* The whole header pins, offset upward by the height of the brand row, so the
   brand row sits just above the viewport and only the nav bar is visible once
   scrolled.
   
   The header's height therefore NEVER changes. Collapsing it instead — the
   obvious approach — animates the height of an in-flow sticky element, which
   reflows everything below it on every frame of the animation and reads as the
   page shaking. --rwh-brand-offset is measured and set by header.js.
   
   Note a sticky element only sticks within its own parent, so this has to be
   the wrapper; pinning .rw-navbar alone does nothing, because its parent ends
   immediately after it. */
.rw-header-wrap {
	--rwh-brand-offset: 0px;

	position: sticky;
	top: var(--rwh-brand-offset);
	z-index: 900;
	background: var(--rwh-white, #fff);
	box-shadow: 0 1px 0 rgba(13, 26, 62, 0.1);
}

.rw-header-wrap.is-stuck {
	box-shadow: 0 6px 20px rgba(13, 26, 62, 0.16);
}

/* Clear the WP admin bar, keeping the brand-row offset. */
.admin-bar .rw-header-wrap {
	top: calc( var(--rwh-brand-offset) + 32px );
}

@media (max-width: 782px) {
	.admin-bar .rw-header-wrap {
		top: calc( var(--rwh-brand-offset) + 46px );
	}
}

@media (max-width: 600px) {
	.admin-bar .rw-header-wrap {
		top: var(--rwh-brand-offset);
	}
}

.rw-header {
	position: relative;
}

/* =========================================================================
   Row 1 — brand: logo | search | utility links
   ========================================================================= */

.rw-brand {
	background: var(--rwh-white, #fff);
	border-bottom: 1px solid var(--rwh-border, #dde3ed);
}

.rw-brand__inner {
	display: flex;
	align-items: center;
	gap: 28px;
	min-height: 80px;
	padding-block: 10px;
}

/* Logo */

.rw-logo {
	display: inline-flex;
	align-items: center;
	/* Must be allowed to shrink, or a wide lockup pushes the actions past the
	   container padding on narrow viewports. */
	flex: 0 1 auto;
	min-width: 0;
	text-decoration: none;
}

.rw-logo__img {
	display: block;
	width: auto;
	height: auto;
	max-height: 60px;
	max-width: 100%;
}

/* Text lockup fallback (until a logo image is set). */
.rw-logo__lockup {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-width: 0;
}

.rw-logo__mark {
	font-size: 2rem;
	font-weight: 800;
	line-height: 1;
	letter-spacing: -0.02em;
}

.rw-logo__mark-navy {
	color: var(--rwh-navy, #08323f);
}

.rw-logo__mark-red {
	color: var(--rwh-red, #b06105);
}

.rw-logo__text {
	display: flex;
	flex-direction: column;
	gap: 1px;
	min-width: 0;
	max-width: 240px;
}

.rw-logo__name {
	color: var(--rwh-navy, #08323f);
	font-size: 0.8125rem;
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

.rw-logo__tagline {
	color: var(--rwh-red, #b06105);
	font-size: 0.625rem;
	font-style: italic;
	line-height: 1.2;
}

/* Search — wide field, icon-only submit inside the border. */

.rw-brand__search {
	flex: 1 1 auto;
	min-width: 0;
	max-width: 560px;
}

.rw-search {
	display: flex;
	align-items: stretch;
	height: 40px;
	border: 1px solid #c9ced6;
	border-radius: 3px;
	background: var(--rwh-white, #fff);
	overflow: hidden;
	transition: border-color var(--rwh-transition, 200ms ease),
		box-shadow var(--rwh-transition, 200ms ease);
}

.rw-search:focus-within {
	border-color: var(--rwh-navy, #08323f);
	box-shadow: 0 0 0 3px rgba(20, 39, 92, 0.12);
}

/* Two classes deliberately: WordPress's block-library sheet styles
   input[type="search"] (0,1,1), which outranks a single class. */
.rw-search .rw-search__input {
	flex: 1 1 auto;
	width: 100%;
	min-width: 0;
	height: 100%;
	margin: 0;
	padding: 0 14px;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: var(--rwh-text, #1b2333);
	font-family: inherit;
	font-size: 1rem;
	line-height: 1.4;
	outline: none;
	-webkit-appearance: none;
	appearance: none;
}

.rw-search .rw-search__input::placeholder {
	color: #8b93a3;
	opacity: 1;
}

/* Drop Safari/Chrome's built-in clear button so the field has one control. */
.rw-search .rw-search__input::-webkit-search-cancel-button,
.rw-search .rw-search__input::-webkit-search-decoration,
.rw-search .rw-search__input::-webkit-search-results-button {
	-webkit-appearance: none;
	appearance: none;
}

.rw-search__submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 46px;
	padding: 0;
	border: 0;
	background: transparent;
	color: #5b8bc4;
	cursor: pointer;
	transition: color var(--rwh-transition, 200ms ease);
}

.rw-search__submit:hover,
.rw-search__submit:focus-visible {
	color: var(--rwh-red, #b06105);
}

.rw-search__submit-icon {
	width: 20px;
	height: 20px;
	fill: currentColor;
}

/* Utility links — plain text links, right of the search. */

.rw-utility {
	flex: 0 0 auto;
	margin-left: auto;
}

.rw-utility__list {
	display: flex;
	align-items: center;
	gap: 4px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.rw-utility__list > li {
	margin: 0;
	padding: 0;
	list-style: none;
}

.rw-utility__list a,
.rw-utility__link {
	display: inline-block;
	padding: 6px 12px;
	color: var(--rwh-navy, #08323f);
	font-size: 0.9375rem;
	font-weight: 500;
	line-height: 1.3;
	text-decoration: none;
	white-space: nowrap;
	border-bottom: 2px solid transparent;
	transition: color var(--rwh-transition, 200ms ease),
		border-color var(--rwh-transition, 200ms ease);
}

.rw-utility__list a:hover,
.rw-utility__list a:focus-visible {
	color: var(--rwh-red, #b06105);
	border-bottom-color: var(--rwh-red, #b06105);
}

/* ---------- Buttons ---------- */

.rw-brand__actions {
	display: flex;
	align-items: center;
	gap: 10px;
	flex: 0 0 auto;
	margin-left: auto;
}

.rw-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 11px 22px;
	border: 0;
	border-radius: var(--rwh-radius, 4px);
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	line-height: 1;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color var(--rwh-transition, 200ms ease);
}

.rw-btn--red {
	background: var(--rwh-red, #b06105);
	color: var(--rwh-white, #fff);
}

.rw-btn--red:hover,
.rw-btn--red:focus-visible {
	background: var(--rwh-red-dark, #7d4304);
	color: var(--rwh-white, #fff);
}

.rw-btn--sm {
	padding: 8px 16px;
	font-size: 0.8125rem;
}

.rw-btn--block {
	display: flex;
	width: 100%;
}

.rw-icon-btn {
	display: none;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	padding: 0;
	border: 1px solid #c9ced6;
	border-radius: 3px;
	background: var(--rwh-white, #fff);
	color: var(--rwh-navy, #08323f);
	cursor: pointer;
	transition: background-color var(--rwh-transition, 200ms ease),
		color var(--rwh-transition, 200ms ease),
		border-color var(--rwh-transition, 200ms ease);
}

.rw-icon-btn svg {
	width: 20px;
	height: 20px;
	fill: currentColor;
}

.rw-icon-btn:hover,
.rw-icon-btn:focus-visible {
	background: var(--rwh-navy, #08323f);
	border-color: var(--rwh-navy, #08323f);
	color: var(--rwh-white, #fff);
}

.rw-icon-btn--on-navy {
	display: inline-flex;
	width: 36px;
	height: 36px;
	border-color: rgba(255, 255, 255, 0.3);
	background: transparent;
	color: var(--rwh-white, #fff);
}

.rw-icon-btn--on-navy:hover,
.rw-icon-btn--on-navy:focus-visible {
	background: rgba(255, 255, 255, 0.14);
	border-color: rgba(255, 255, 255, 0.55);
	color: var(--rwh-white, #fff);
}

.rw-burger__bars {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 4px;
	width: 20px;
}

.rw-burger__bars i {
	display: block;
	height: 2px;
	border-radius: 2px;
	background: currentColor;
}

/* =========================================================================
   Row 2 — primary nav bar
   ========================================================================= */

.rw-navbar {
	position: relative;
	background: var(--rwh-navy, #08323f);
}

.rw-navbar__inner {
	display: flex;
	align-items: stretch;
	gap: 14px;
	min-height: 48px;
}

/* The logo is navy-on-transparent, so on the navy bar it sits on a white chip. */
.rw-navbar__compact-logo {
	display: none;
	align-items: center;
	align-self: center;
	flex: 0 0 auto;
	margin-right: 14px;
	padding: 3px 8px;
	border-radius: 3px;
	background: var(--rwh-white, #fff);
	text-decoration: none;
}

.rw-navbar__compact-logo .rw-logo__img {
	max-height: 34px;
}

.rw-navbar__compact-logo .rw-logo__mark {
	font-size: 1.25rem;
}

.rw-navbar__compact-logo .rw-logo__text {
	display: none;
}

.rw-navbar__actions {
	display: none;
	align-items: center;
	gap: 10px;
	margin-left: auto;
	flex: 0 0 auto;
}

.rw-nav {
	flex: 1 1 auto;
	min-width: 0;
}

.rw-menu {
	display: flex;
	align-items: stretch;
	flex-wrap: wrap;
	margin: 0;
	padding: 0;
	list-style: none;
}

.rw-menu > li {
	position: relative;
	display: flex;
	align-items: stretch;
	margin: 0;
	padding: 0;
	list-style: none;
}

.rw-menu > li > .rw-menu__link,
.rw-menu > li > a {
	display: inline-flex;
	align-items: center;
	padding: 13px 17px;
	border-bottom: 3px solid transparent;
	color: var(--rwh-white, #fff);
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.25;
	text-decoration: none;
	white-space: nowrap;
	transition: background-color var(--rwh-transition, 200ms ease),
		border-color var(--rwh-transition, 200ms ease);
}

.rw-menu > li > .rw-menu__link:hover,
.rw-menu > li > .rw-menu__link:focus-visible,
.rw-menu > li.is-open > .rw-menu__link,
.rw-menu > li.current-menu-item > .rw-menu__link,
.rw-menu > li.current-menu-ancestor > .rw-menu__link {
	background: var(--rwh-navy-mid, #0e5a73);
	border-bottom-color: var(--rwh-red, #b06105);
}

.rw-submenu-toggle__icon {
	width: 10px;
	height: 7px;
	fill: currentColor;
	transition: transform var(--rwh-transition, 200ms ease);
}

/* =========================================================================
   Desktop dropdowns (>= 1100px)
   ========================================================================= */

@media (min-width: 1100px) {

	/* The reference header shows no caret on top-level items — panels open on
	   hover. Keep the button in the DOM for keyboard/AT users and reveal it
	   only when it takes focus. */
	.rw-menu > li > .rw-submenu-toggle {
		position: absolute;
		width: 1px;
		height: 1px;
		padding: 0;
		margin: -1px;
		border: 0;
		background: transparent;
		color: var(--rwh-white, #fff);
		overflow: hidden;
		clip-path: inset(50%);
		cursor: pointer;
	}

	.rw-menu > li > .rw-submenu-toggle:focus-visible {
		position: static;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 28px;
		height: auto;
		margin: 0 0 0 -10px;
		padding: 0 0 3px;
		clip-path: none;
		overflow: visible;
		background: var(--rwh-navy-mid, #0e5a73);
		outline: 2px solid var(--rwh-white, #fff);
		outline-offset: -2px;
	}

	.rw-menu .sub-menu {
		position: absolute;
		top: 100%;
		left: 0;
		z-index: 20;
		display: block;
		min-width: 290px;
		margin: 0;
		padding: 10px 0;
		list-style: none;
		background: var(--rwh-white, #fff);
		border-top: 3px solid var(--rwh-red, #b06105);
		box-shadow: var(--rwh-shadow, 0 8px 28px rgba(13, 26, 62, 0.14));
		opacity: 0;
		visibility: hidden;
		transform: translateY(6px);
		pointer-events: none;
		transition: opacity 160ms ease, transform 160ms ease, visibility 160ms;
	}

	.rw-menu > li:hover > .sub-menu,
	.rw-menu > li.is-open > .sub-menu,
	.rw-menu > li:focus-within > .sub-menu {
		opacity: 1;
		visibility: visible;
		transform: translateY(0);
		pointer-events: auto;
	}

	.rw-menu .sub-menu li {
		position: relative;
		margin: 0;
		padding: 0;
		list-style: none;
	}

	.rw-menu .sub-menu .rw-menu__link,
	.rw-menu .sub-menu a {
		display: block;
		padding: 9px 22px;
		border-left: 3px solid transparent;
		color: var(--rwh-navy, #08323f);
		font-size: 0.9375rem;
		font-weight: 500;
		line-height: 1.35;
		text-decoration: none;
		transition: background-color var(--rwh-transition, 200ms ease),
			border-color var(--rwh-transition, 200ms ease),
			color var(--rwh-transition, 200ms ease);
	}

	.rw-menu .sub-menu .rw-menu__link:hover,
	.rw-menu .sub-menu .rw-menu__link:focus-visible {
		background: var(--rwh-off-white, #f5f7fa);
		border-left-color: var(--rwh-red, #b06105);
		color: var(--rwh-red-dark, #7d4304);
	}

	/* Third level flies out to the right. */
	.rw-menu .sub-menu .sub-menu {
		top: -10px;
		left: 100%;
	}

	.rw-menu .sub-menu .rw-submenu-toggle {
		position: absolute;
		top: 8px;
		right: 12px;
		display: flex;
		align-items: center;
		justify-content: center;
		width: 22px;
		height: 22px;
		padding: 0;
		border: 0;
		background: transparent;
		color: var(--rwh-navy, #08323f);
		cursor: pointer;
		transform: rotate(-90deg);
	}

	/* Mega panel: spans the nav bar. The item leaves the positioning flow so
	   the panel anchors to .rw-navbar instead of the <li>. */
	.rw-menu > li.rw-menu-item--mega {
		position: static;
	}

	.rw-menu > li.rw-menu-item--mega > .rw-submenu--mega {
		left: 0;
		right: 0;
		width: auto;
		min-width: 0;
		display: grid;
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 2px 32px;
		padding: 26px max(20px, calc((100% - var(--rwh-container, 1280px)) / 2 + 32px));
	}

	.rw-menu > li.rw-menu-item--mega > .rw-submenu--mega > li > .rw-menu__link {
		padding-inline: 0;
		border-left: 0;
		border-bottom: 1px solid var(--rwh-border, #dde3ed);
		font-weight: 700;
	}

	.rw-menu > li.rw-menu-item--mega > .rw-submenu--mega > li > .rw-menu__link:hover {
		background: transparent;
		border-bottom-color: var(--rwh-red, #b06105);
	}

	/* Inside a mega panel the third level is listed inline, not as a flyout. */
	.rw-menu > li.rw-menu-item--mega .rw-submenu--depth-2 {
		position: static;
		min-width: 0;
		padding: 0 0 8px;
		border-top: 0;
		box-shadow: none;
		opacity: 1;
		visibility: visible;
		transform: none;
		pointer-events: auto;
	}

	.rw-menu > li.rw-menu-item--mega .rw-submenu--depth-2 .rw-menu__link {
		padding: 5px 0;
		border-left: 0;
		color: var(--rwh-text-muted, #5b6478);
		font-size: 0.875rem;
	}

	.rw-menu > li.rw-menu-item--mega > .rw-submenu--mega > li > .rw-submenu-toggle {
		display: none;
	}
}

/* ---------- Compact (stuck) state ---------- */

@media (min-width: 1100px) {
	/* Swapped in the frame the bar pins — a single discrete change, never an
	   animation, so nothing reflows repeatedly. */
	.rw-header-wrap.is-stuck .rw-navbar {
		box-shadow: 0 6px 20px rgba(13, 26, 62, 0.18);
	}

	.rw-header-wrap.is-stuck .rw-navbar__compact-logo,
	.rw-header-wrap.is-stuck .rw-navbar__actions {
		display: flex;
	}
}

@media (prefers-reduced-motion: reduce) {
	.rw-header-wrap *,
	.rw-drawer * {
		transition-duration: 1ms !important;
	}
}

/* ---------- Collapsible search panel ---------- */

.rw-search-panel {
	background: var(--rwh-off-white, #f5f7fa);
	border-top: 1px solid var(--rwh-border, #dde3ed);
	padding-block: 14px;
}

.rw-search-panel[hidden] {
	display: none;
}

/* =========================================================================
   Below 1100px — drawer navigation
   ========================================================================= */

@media (max-width: 1099px) {
	.rw-brand__search,
	.rw-brand__cta,
	.rw-navbar {
		display: none;
	}

	/* Below this width the nav bar is hidden, so there is nothing to offset —
	   header.js sets --rwh-brand-offset back to 0 and the brand row pins. */

	.rw-brand__inner {
		gap: 12px;
		min-height: 64px;
	}

	.rw-icon-btn {
		display: inline-flex;
	}

	/* Utility links scroll sideways rather than widening the page. */
	.rw-utility {
		min-width: 0;
		max-width: 100%;
		overflow-x: auto;
		scrollbar-width: none;
		-ms-overflow-style: none;
	}

	.rw-utility::-webkit-scrollbar {
		display: none;
	}

	.rw-utility__list {
		flex-wrap: nowrap;
	}
}

@media (max-width: 860px) {
	.rw-utility {
		display: none;
	}
}

@media (max-width: 560px) {
	.rw-logo__mark {
		font-size: 1.625rem;
	}

	.rw-logo__text {
		max-width: 170px;
	}

	.rw-logo__name {
		font-size: 0.6875rem;
	}

	.rw-logo__tagline {
		display: none;
	}

	.rw-logo__img {
		max-height: 40px;
	}
}

/* ---------- Off-canvas drawer ---------- */

.rw-overlay {
	position: fixed;
	inset: 0;
	z-index: 1000;
	background: rgba(13, 26, 62, 0.55);
	opacity: 0;
	transition: opacity 220ms ease;
}

.rw-overlay[hidden] {
	display: none;
}

.rw-overlay.is-visible {
	opacity: 1;
}

.rw-drawer {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	z-index: 1001;
	display: flex;
	flex-direction: column;
	width: min(400px, 92vw);
	background: var(--rwh-white, #fff);
	box-shadow: -12px 0 32px rgba(13, 26, 62, 0.2);
	transform: translateX(100%);
	transition: transform 260ms cubic-bezier(0.22, 0.61, 0.36, 1);
	overscroll-behavior: contain;
}

.rw-drawer[hidden] {
	display: none;
}

.rw-drawer.is-open {
	transform: translateX(0);
}

.rw-drawer__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex: 0 0 auto;
	padding: 14px 20px;
	background: var(--rwh-navy, #08323f);
	color: var(--rwh-white, #fff);
}

.rw-drawer__title {
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.rw-drawer__close {
	display: inline-flex;
	border-color: rgba(255, 255, 255, 0.3);
	background: transparent;
	color: var(--rwh-white, #fff);
}

.rw-drawer__close:hover,
.rw-drawer__close:focus-visible {
	background: rgba(255, 255, 255, 0.14);
	border-color: rgba(255, 255, 255, 0.55);
	color: var(--rwh-white, #fff);
}

.rw-drawer__search {
	flex: 0 0 auto;
	padding: 16px 20px;
	background: var(--rwh-off-white, #f5f7fa);
	border-bottom: 1px solid var(--rwh-border, #dde3ed);
}

.rw-drawer__nav {
	flex: 1 1 auto;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
}

.rw-drawer__nav ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.rw-drawer__nav li {
	position: relative;
	margin: 0;
	padding: 0;
	list-style: none;
	border-bottom: 1px solid var(--rwh-border, #dde3ed);
}

.rw-drawer__nav .rw-menu__link,
.rw-drawer__nav a {
	display: block;
	padding: 15px 56px 15px 20px;
	color: var(--rwh-navy, #08323f);
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.3;
	text-decoration: none;
}

.rw-drawer__nav a:hover,
.rw-drawer__nav a:focus-visible {
	background: var(--rwh-off-white, #f5f7fa);
	color: var(--rwh-red-dark, #7d4304);
}

.rw-drawer__nav .rw-submenu-toggle {
	position: absolute;
	top: 0;
	right: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 50px;
	padding: 0;
	border: 0;
	border-left: 1px solid var(--rwh-border, #dde3ed);
	background: transparent;
	color: var(--rwh-navy, #08323f);
	cursor: pointer;
}

.rw-drawer__nav .rw-submenu-toggle:hover,
.rw-drawer__nav .rw-submenu-toggle:focus-visible {
	background: var(--rwh-navy, #08323f);
	color: var(--rwh-white, #fff);
}

.rw-drawer__nav .rw-submenu-toggle__icon {
	width: 12px;
	height: 8px;
}

.rw-drawer__nav li.is-open > .rw-submenu-toggle .rw-submenu-toggle__icon {
	transform: rotate(180deg);
}

.rw-drawer__nav .sub-menu {
	display: none;
	background: var(--rwh-off-white, #f5f7fa);
	border-top: 1px solid var(--rwh-border, #dde3ed);
}

.rw-drawer__nav li.is-open > .sub-menu {
	display: block;
}

.rw-drawer__nav .sub-menu a {
	padding-left: 36px;
	font-size: 0.875rem;
	font-weight: 500;
}

.rw-drawer__nav .sub-menu .sub-menu a {
	padding-left: 52px;
	color: var(--rwh-text-muted, #5b6478);
}

.rw-drawer__nav .sub-menu li:last-child {
	border-bottom: 0;
}

.rw-drawer__footer {
	flex: 0 0 auto;
	padding: 16px 20px calc(16px + env(safe-area-inset-bottom));
	border-top: 1px solid var(--rwh-border, #dde3ed);
	background: var(--rwh-white, #fff);
}

.rw-drawer__utility .rw-utility__list {
	flex-wrap: wrap;
	gap: 4px 6px;
	justify-content: center;
}

.rw-drawer__utility .rw-utility__list a {
	padding: 6px 8px;
	font-size: 0.8125rem;
}

body.rw-drawer-open {
	overflow: hidden;
}

@media (min-width: 1100px) {
	.rw-drawer,
	.rw-overlay {
		display: none !important;
	}
}

/* ---------- Utilities ---------- */

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

.skip-link:focus {
	position: fixed !important;
	top: 8px;
	left: 8px;
	z-index: 100000;
	width: auto;
	height: auto;
	padding: 12px 20px;
	clip: auto;
	clip-path: none;
	background: var(--rwh-navy, #08323f);
	color: var(--rwh-white, #fff);
	font-weight: 700;
	text-decoration: none;
}

/* Focus-after-click keeps the fill (the global reset blanks :focus). */
.rw-icon-btn:focus { background: var(--rwh-navy, #08323f); color: #fff; }
.rw-icon-btn--on-navy:focus { background: rgba(255, 255, 255, 0.14); }

/* ---------- Header cart ---------- */

/* The slot is always in the DOM so WooCommerce fragments have something to
   replace; it collapses entirely while the cart is empty. */
.rw-cart-slot:empty {
	display: none;
}

.rw-cart {
	display: inline-flex;
	align-items: center;
	gap: 11px;
	padding: 8px 12px;
	border-radius: 8px;
	font-family: var(--rwh-font);
	font-size: 0.875rem;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
	transition: background-color 160ms ease;
}

.rw-cart__icon {
	position: relative;
	display: inline-flex;
	flex: 0 0 auto;
}

.rw-cart__icon svg {
	width: 22px;
	height: 22px;
	fill: currentColor;
}

.rw-cart__badge {
	position: absolute;
	top: -7px;
	right: -9px;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	border-radius: 999px;
	background: var(--rwh-red, #b06105);
	color: #fff;
	font-size: 0.6875rem;
	font-weight: 700;
	line-height: 18px;
	text-align: center;
}

.rw-cart__total {
	opacity: 0.88;
}

/* In the navy bar — the row that stays put when the page is scrolled. */
.rw-navbar__inner .rw-cart-slot {
	display: flex;
	align-items: center;
	flex: 0 0 auto;
}

.rw-navbar__inner .rw-cart {
	color: #fff;
}

.rw-navbar__inner .rw-cart:hover,
.rw-navbar__inner .rw-cart:focus-visible {
	background: rgba(255, 255, 255, 0.14);
}

/* In the white brand row, which is the whole header below 1100px. */
.rw-brand__actions .rw-cart {
	color: var(--rwh-navy, #08323f);
}

.rw-brand__actions .rw-cart:hover,
.rw-brand__actions .rw-cart:focus-visible {
	background: rgba(20, 39, 92, 0.07);
}

/* Both rows are visible at desktop widths, so only the navy one shows there. */
@media (min-width: 1100px) {
	.rw-brand__actions .rw-cart-slot {
		display: none;
	}
}

/* Tight on phones: the badge already carries the count. */
@media (max-width: 640px) {
	.rw-cart__total {
		display: none;
	}

	.rw-cart {
		gap: 0;
		padding: 8px;
	}
}
