/**
 * Subject discovery hub redesign (all browse subjects except Add Business).
 * Accent tokens follow --hub-accent from discovery-hub.php.
 */

body.duchy-subject-hub-redesign {
	--food-pink: var(--hub-accent, #ff8fab);
	--food-pink-dark: color-mix(in srgb, var(--hub-accent, #ff8fab) 72%, #111827);
	--food-pink-soft: color-mix(in srgb, var(--hub-accent, #ff8fab) 16%, #ffffff);
	--food-ink: #111827;
	--food-muted: #64748b;
	--food-line: #dce2ea;
	--food-surface: #ffffff;
	--food-bg: #f7f8fb;
	--duchy-explorer-sidebar-w: 320px;
	--ch-sd-dock-surface: var(--food-pink-soft);
	--ch-sd-dock-accent-border: color-mix(in srgb, var(--hub-accent, #ff8fab) 22%, transparent);
	background: var(--food-bg);
	color: var(--food-ink);
	overflow-x: clip;
}

.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page) {
	background: var(--food-bg);
	min-width: 0;
}

.duchy-subject-hub-redesign #disco-hero-box {
	margin: 0 !important;
	padding: clamp(28px, 5vw, 58px) max(16px, calc((100vw - 1320px) / 2 + 32px));
	border: 0;
	background:
		radial-gradient(circle at 92% 14%, color-mix(in srgb, var(--hub-accent, #ff8fab) 30%, transparent), transparent 28%),
		linear-gradient(135deg, #fff 0%, var(--food-pink-soft) 62%, color-mix(in srgb, var(--hub-accent, #ff8fab) 12%, #ffffff) 100%);
	text-align: left;
}

.duchy-subject-hub-redesign #disco-hero-box .ch-sd-hub-hero__inner {
	max-width: 1320px;
	margin: 0 auto;
}

.duchy-subject-hub-redesign #disco-hero-box h1 {
	max-width: 760px;
	margin: 0;
	color: var(--food-ink);
	font-family: Inter, system-ui, sans-serif;
	font-size: clamp(2rem, 5vw, 4.5rem);
	font-weight: 800;
	line-height: 1.02;
	letter-spacing: -0.045em;
	text-transform: none;
	text-wrap: balance;
}

.duchy-subject-hub-redesign #disco-hero-box .hub-hero-intro {
	max-width: 670px;
	margin: 16px 0 0;
	color: #475569;
	font-size: clamp(1rem, 1.7vw, 1.15rem);
	font-weight: 500;
	line-height: 1.65;
	text-shadow: none;
}

/* Food dock: Stay-style fixed bottom bar, Food visual language. */
.duchy-subject-hub-redesign .food-hub-controls {
	position: static;
	z-index: auto;
	width: auto;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}

body.duchy-subject-hub-redesign .food-hub-controls #filter-dock.ch-sd-filter-dock {
	position: fixed !important;
	left: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	z-index: 120 !important;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	transform: none !important;
	overflow: visible;
	border-top: 1px solid var(--ch-sd-dock-accent-border, rgba(74, 31, 46, 0.12));
	border-radius: 0;
	background: var(--ch-sd-dock-surface, #ffe9f0);
	box-shadow: 0 -8px 30px rgba(15, 23, 42, 0.12);
	--ch-sd-dock-hover-lift: 0px;
}

/* Keep the bar pinned; do not inherit Stay's 75vh sheet lift. */
body.duchy-subject-hub-redesign .food-hub-controls #filter-dock.ch-sd-filter-dock.is-expanded,
body.duchy-subject-hub-redesign .food-hub-controls #filter-dock.ch-sd-filter-dock.is-expanded.is-collapsed {
	height: auto !important;
	max-height: none !important;
	min-height: 0 !important;
	border-radius: 0 !important;
	overflow: visible !important;
	transform: none !important;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).disco-hub-main--dock-expanded {
	padding-bottom: 6rem !important;
}

.duchy-subject-hub-redesign .food-hub-controls .ch-sd-filter-dock__shell {
	overflow: visible !important;
	border: 0;
	background: transparent;
	box-shadow: none;
}

body.duchy-subject-hub-redesign .food-hub-controls #filter-dock .ch-sd-filter-dock__bar {
	display: flex !important;
	flex-direction: row;
	align-items: center;
	gap: 12px;
	width: min(1280px, calc(100% - 24px));
	max-width: 1280px;
	margin: 0 auto;
	padding: 10px 12px calc(10px + env(safe-area-inset-bottom, 0px)) !important;
	border: 0;
	background: transparent;
	box-shadow: none;
}

body.duchy-subject-hub-redesign .food-hub-controls #filter-dock .ch-sd-filter-dock__search-wrap {
	display: block !important;
	flex: 1 1 auto;
	min-width: 0;
	max-width: none;
	height: 40px;
}

.duchy-subject-hub-redesign .ch-sd-dock-search-glass {
	min-height: 40px;
	height: 40px;
	border: 1px solid rgba(74, 31, 46, 0.12);
	border-radius: 999px;
	background: #fff;
	box-shadow: none;
}

.duchy-subject-hub-redesign .ch-sd-dock-search-input {
	min-width: 0;
	color: var(--food-ink);
	font-family: Inter, system-ui, sans-serif;
	font-size: 0.95rem;
}

body.duchy-subject-hub-redesign .food-hub-controls #filter-dock .ch-sd-filter-dock__actions {
	position: static !important;
	left: auto !important;
	bottom: auto !important;
	z-index: auto !important;
	display: flex !important;
	flex: 0 0 auto;
	align-items: center;
	justify-content: flex-end;
	gap: 6px;
	width: auto !important;
	max-width: none !important;
	margin: 0;
	padding: 0 !important;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
	transform: none !important;
}

.duchy-subject-hub-redesign .ch-sd-dock-segment {
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	flex: 0 0 104px;
	width: 104px;
	min-width: 104px;
	max-width: 104px;
	height: 40px;
	min-height: 40px;
	padding: 0;
	border: 0;
	border-radius: 12px;
	background: #fff;
	box-shadow: none;
	overflow: hidden;
}

body.duchy-subject-hub-redesign .food-hub-controls #filter-dock .ch-sd-dock-segment {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
	flex: 0 0 104px !important;
	width: 104px !important;
	min-width: 104px !important;
	max-width: 104px !important;
	height: 40px !important;
	min-height: 40px !important;
	padding: 0 !important;
	border: 2px solid var(--food-ink);
	border-radius: 12px !important;
	overflow: hidden !important;
	isolation: isolate;
}

.duchy-subject-hub-redesign .ch-sd-dock-segment-btn,
.duchy-subject-hub-redesign .ch-sd-dock-bar-action,
.duchy-subject-hub-redesign .ch-sd-dock-toggle {
	min-width: 0;
	min-height: 36px;
	border: 1px solid transparent;
	border-radius: 10px;
	background: transparent;
	color: #526176;
	box-shadow: none;
	font-family: Inter, system-ui, sans-serif;
	font-weight: 700;
}

body.duchy-subject-hub-redesign .food-hub-controls #filter-dock .ch-sd-dock-segment-btn {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	flex: none !important;
	width: 100% !important;
	min-width: 0 !important;
	max-width: none !important;
	height: 100% !important;
	min-height: 0 !important;
	gap: 2px !important;
	padding: 0 !important;
	padding-inline: 2px !important;
	border: 0 !important;
	border-radius: 0 !important;
	font-size: 0.68rem !important;
	text-transform: none !important;
	box-sizing: border-box;
	overflow: hidden;
}

body.duchy-subject-hub-redesign .food-hub-controls #filter-dock .ch-sd-dock-segment-icon-wrap {
	flex: 0 0 13px;
	width: 13px;
	height: 13px;
}

body.duchy-subject-hub-redesign .food-hub-controls #filter-dock .ch-sd-dock-segment-icon {
	width: 13px;
	height: 13px;
}

body.duchy-subject-hub-redesign .food-hub-controls #filter-dock .ch-sd-dock-bar-action,
body.duchy-subject-hub-redesign .food-hub-controls #filter-dock .ch-sd-dock-toggle {
	height: 40px !important;
	min-height: 40px !important;
	background: #fff;
	border: 1px solid rgba(74, 31, 46, 0.12);
}

/* The yellow subject-dock chevron replaces the legacy white dock toggle. */
body.duchy-subject-hub-redesign .food-hub-controls #filter-dock .ch-sd-dock-toggle {
	display: none !important;
}

body.duchy-subject-hub-redesign .food-hub-controls #filter-dock .ch-sd-dock-bar-near {
	margin-left: 0;
}

.duchy-subject-hub-redesign .ch-sd-dock-segment-btn.active {
	background: var(--food-pink-dark) !important;
	color: #fff !important;
	box-shadow: none;
}

.duchy-subject-hub-redesign .ch-sd-dock-bar-action:hover,
.duchy-subject-hub-redesign .ch-sd-dock-toggle:hover {
	border-color: #cbd5e1;
	background: #fff;
	color: var(--food-ink);
}

.duchy-subject-hub-redesign .ch-sd-dock-bar-filters {
	padding-inline: 14px;
	border-color: transparent;
	background: var(--food-pink-dark) !important;
	color: #fff !important;
}

.duchy-subject-hub-redesign .ch-sd-dock-bar-filters.food-hub-dock-chevron {
	padding-inline: 0;
	border-color: rgba(74, 31, 46, 0.12);
	background: #fff !important;
	color: var(--food-ink, #0f172a) !important;
}

.duchy-subject-hub-redesign .ch-sd-dock-bar-filters.food-hub-dock-chevron.is-expanded,
.duchy-subject-hub-redesign .ch-sd-dock-bar-filters.food-hub-dock-chevron[aria-expanded="true"] {
	background: var(--food-pink-dark) !important;
	color: #fff !important;
	border-color: transparent;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-controls #filter-dock .ch-sd-filter-dock__actions {
	gap: 0 !important;
	overflow: visible !important;
	padding: 0 !important;
	align-items: stretch !important;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-controls #filter-dock .ch-sd-filter-dock__actions > .ch-sd-dock-segment,
body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-controls #filter-dock .ch-sd-filter-dock__actions > .food-hub-dock-grip,
body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-controls #filter-dock .ch-sd-filter-dock__actions > .food-hub-dock-map-tools,
body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-controls #filter-dock .ch-sd-filter-dock__actions > #disco-dock-filters-btn {
	height: 40px !important;
	min-height: 40px !important;
	max-height: 40px !important;
	align-self: center;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-controls #filter-dock .ch-sd-filter-dock__actions .ch-sd-dock-segment {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
	flex: 0 0 104px !important;
	width: 104px !important;
	min-width: 104px !important;
	max-width: 104px !important;
	border: 2px solid var(--food-ink) !important;
	border-radius: 12px !important;
	overflow: hidden !important;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-grip {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	align-self: center;
	flex: 1 1 0 !important;
	min-width: 40px !important;
	max-width: 64px !important;
	width: auto !important;
	height: 36px !important;
	min-height: 36px !important;
	padding: 2px 4px;
	border-left: 1px solid var(--food-line);
	border-right: 1px solid var(--food-line);
	overflow: hidden;
}

body.duchy-subject-hub-redesign .food-hub-dock-map-tools {
	display: none;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-map-tools.is-ready {
	display: flex;
	flex: 0 0 auto;
	align-items: stretch;
	align-self: center;
	height: 36px !important;
	min-height: 36px !important;
	margin-left: 0;
	border-radius: 12px;
	background: #0f172a;
	overflow: hidden;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.06);
}

/* Keep chrome available if an optimiser strips the JS readiness hook after controls mount. */
body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-map-tools:has(.hub-explorer-layers-btn, .duchy-map-chrome-layers):has(.hub-explorer-gmaps-stack, .duchy-map-chrome-stack) {
	display: flex !important;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-slot--layers {
	flex: 0 0 52px;
	width: 52px;
	min-width: 52px;
	border-right: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: 12px 0 0 12px;
	overflow: hidden;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-slot--layers:has(.hub-explorer-layers-btn.is-satellite),
body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-slot--layers:has(.duchy-map-chrome-layers.is-satellite) {
	background: #1a3d31;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-slot--chrome {
	flex: 0 0 auto;
	height: 36px !important;
	border: 0;
	background: transparent;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-grip__label {
	font-size: 0.5rem;
	line-height: 1.1;
	letter-spacing: normal;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	max-width: 100%;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-slot--layers .hub-explorer-layers-btn,
body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-slot--layers .duchy-map-chrome-layers {
	height: 36px !important;
	min-height: 36px !important;
	border-radius: 12px 0 0 12px !important;
	overflow: hidden;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-slot--layers .hub-explorer-layers-btn__cap {
	display: flex !important;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 1px;
	min-height: 36px;
	height: 100% !important;
	padding: 2px 3px;
	border-radius: 12px 0 0 12px !important;
	background: transparent !important;
	color: #fff !important;
	font-size: 0;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-slot--layers .hub-explorer-layers-btn__ico {
	width: 13px;
	height: 13px;
	flex: 0 0 auto;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-slot--layers .hub-explorer-layers-btn__label {
	display: block;
	font-size: 0.56rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.01em;
	text-transform: none;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-slot--layers .hub-explorer-layers-btn.is-satellite .hub-explorer-layers-btn__cap,
body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-slot--layers .duchy-map-chrome-layers.is-satellite .hub-explorer-layers-btn__cap {
	color: #ecfdf5 !important;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-slot--chrome .hub-explorer-gmaps-stack,
body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-slot--chrome .duchy-map-chrome-stack {
	min-height: 36px;
	height: 36px !important;
	padding: 0 3px !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-slot--chrome .hub-explorer-gmaps-stack__btn {
	width: 26px !important;
	height: 26px !important;
	min-width: 26px !important;
	min-height: 26px !important;
	margin: 0;
	border-radius: 7px !important;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-slot--chrome .hub-explorer-gmaps-stack__btn[data-duchy-map-expand] {
	display: none !important;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-controls #disco-dock-filters-btn {
	height: 36px !important;
	min-height: 36px !important;
	min-width: 36px !important;
	width: 36px !important;
	margin-left: 4px;
	padding: 0 !important;
	border-radius: 12px !important;
}

body.duchy-subject-hub-redesign .food-hub-dock-chevron {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 40px !important;
	min-width: 40px !important;
	height: 40px !important;
	min-height: 40px !important;
	padding: 0 !important;
	border: 2px solid var(--food-ink, #111827) !important;
	border-radius: 12px !important;
	background: #f5c842 !important;
	color: #1a1208 !important;
	box-shadow: 0 2px 0 var(--food-ink, #111827);
	transform-origin: center;
}

body.duchy-subject-hub-redesign .food-hub-dock-chevron.is-notice-wobble {
	animation: food-hub-show-map-wobble 0.7s ease-in-out 5;
}

body.duchy-subject-hub-redesign .food-hub-dock-chevron.is-expanded,
body.duchy-subject-hub-redesign .food-hub-dock-chevron[aria-expanded="true"] {
	background: var(--food-pink-dark) !important;
	color: #fff !important;
	border-color: transparent !important;
	box-shadow: none;
	animation: none;
}

body.duchy-subject-hub-redesign .food-hub-dock-chevron__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 0;
	transition: transform 0.18s ease;
}

body.duchy-subject-hub-redesign .food-hub-dock-chevron.is-expanded .food-hub-dock-chevron__icon,
body.duchy-subject-hub-redesign .food-hub-dock-chevron[aria-expanded="true"] .food-hub-dock-chevron__icon {
	transform: rotate(180deg);
}

body.duchy-subject-hub-redesign .food-hub-dock-chevron .ch-sd-dock-filters-badge {
	display: none !important;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-controls #filter-dock .ch-sd-dock-bar-action,
body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-controls #filter-dock .ch-sd-dock-toggle {
	height: 36px !important;
	min-height: 36px !important;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active #disco-dock-nearest-btn,
body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active #disco-dock-sort-bar,
body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active #disco-dock-reset-btn,
body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active #toggle-dock-btn,
body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-grip {
	display: none !important;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active #disco-dock-filters-btn .ch-sd-dock-bar-action-label {
	display: none !important;
}

/* Map view actions: flex row on desktop; mobile uses one-line grid below. */
@media (min-width: 700px) {
	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-controls #filter-dock .ch-sd-filter-dock__actions {
		display: flex !important;
		flex-wrap: nowrap;
		align-items: center;
		width: auto !important;
		max-width: none !important;
		gap: 6px;
	}
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-grip__bar {
	width: 22px;
	height: 3px;
	margin: 0 auto 2px;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-map-tools {
	flex: 0 0 auto;
	margin-left: 0;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-controls #disco-dock-filters-btn.food-hub-dock-chevron {
	flex: 0 0 auto;
	margin-left: 0;
	width: 36px !important;
	min-width: 36px !important;
	height: 36px !important;
	min-height: 36px !important;
	padding: 0 !important;
	border: 2px solid var(--food-ink, #111827) !important;
	border-radius: 12px !important;
	background: #f5c842 !important;
	color: #1a1208 !important;
	box-shadow: 0 2px 0 var(--food-ink, #111827);
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-controls #disco-dock-filters-btn.food-hub-dock-chevron.is-expanded,
body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-controls #disco-dock-filters-btn.food-hub-dock-chevron[aria-expanded="true"] {
	background: var(--food-pink-dark) !important;
	color: #fff !important;
	border-color: transparent !important;
	box-shadow: none;
	animation: none;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .ch-sd-dock-segment-btn {
	height: 100% !important;
	min-height: 0 !important;
}

body.duchy-subject-hub-redesign.duchy-sd-inner :is(.disco-hub-main, .towns-hub-main).map-view-active .food-hub-controls #filter-dock .ch-sd-dock-segment-btn {
	gap: 2px !important;
	padding-inline: 1px !important;
	font-size: 0.62rem !important;
	font-weight: 700 !important;
	text-transform: none !important;
	letter-spacing: normal;
}

body.duchy-subject-hub-redesign.duchy-sd-inner :is(.disco-hub-main, .towns-hub-main).map-view-active .food-hub-controls #filter-dock .ch-sd-dock-segment-label {
	display: inline !important;
	font-size: 0.62rem !important;
	line-height: 1;
}

body.duchy-subject-hub-redesign.duchy-sd-inner :is(.disco-hub-main, .towns-hub-main).map-view-active .food-hub-controls #filter-dock .ch-sd-dock-segment-icon-wrap {
	width: 12px !important;
	height: 12px !important;
	flex: 0 0 12px !important;
}

body.duchy-subject-hub-redesign.duchy-sd-inner :is(.disco-hub-main, .towns-hub-main).map-view-active .food-hub-controls #filter-dock .ch-sd-dock-segment-icon {
	width: 12px !important;
	height: 12px !important;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-slot--chrome .hub-explorer-gmaps-stack__btn svg {
	width: 11px !important;
	height: 11px !important;
	flex-shrink: 0;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-map-tools:not(:has(.hub-explorer-layers-btn, .duchy-map-chrome-layers, .hub-explorer-gmaps-stack, .duchy-map-chrome-stack)) {
	visibility: hidden;
	pointer-events: none;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-controls #filter-dock .ch-sd-dock-segment:hover,
body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-controls #filter-dock .ch-sd-dock-bar-action:hover,
body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-controls #filter-dock .ch-sd-dock-toggle:hover,
body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-slot--chrome .hub-explorer-gmaps-stack__btn:hover,
body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-slot--chrome .duchy-map-chrome-stack__btn:hover,
body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-slot--layers .hub-explorer-layers-btn:hover {
	transform: none !important;
	box-shadow: none !important;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-slot--chrome .hub-explorer-gmaps-stack__btn:hover,
body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-slot--chrome .duchy-map-chrome-stack__btn:hover {
	background: rgba(255, 255, 255, 0.14) !important;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-slot--layers .hub-explorer-layers-btn:hover .hub-explorer-layers-btn__cap {
	background: rgba(255, 255, 255, 0.1) !important;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active #disco-dock-nearest-btn,
body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active #disco-dock-sort-bar,
body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active #disco-dock-reset-btn,
body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active #toggle-dock-btn {
	display: none !important;
}

@media (min-width: 1024px) {
	body.duchy-subject-hub-redesign.duchy-sd-inner :is(.disco-hub-main, .towns-hub-main).map-view-active .food-hub-controls #filter-dock .ch-sd-filter-dock__actions .ch-sd-dock-segment {
		flex: 0 0 104px !important;
		width: 104px !important;
		min-width: 104px !important;
		max-width: 104px !important;
	}
}

.duchy-subject-hub-redesign .food-hub-dock-slot {
	display: none;
	align-items: stretch;
	justify-content: center;
	min-width: 0;
	overflow: visible;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-slot {
	display: flex;
	align-items: stretch;
	align-self: stretch;
	min-height: 36px;
	pointer-events: auto;
	position: relative;
	z-index: 2;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-slot--layers .hub-explorer-layers-btn,
body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-slot--layers .duchy-map-chrome-layers {
	cursor: pointer;
	pointer-events: auto;
	background-image: none !important;
	background-color: transparent !important;
	border: 0 !important;
	overflow: hidden;
	border-radius: 12px 0 0 12px !important;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-slot--layers .hub-explorer-layers-btn__cap {
	position: static !important;
	inset: auto !important;
	flex-direction: column;
	gap: 2px;
	border-radius: 12px 0 0 12px !important;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-slot--layers .hub-explorer-layers-btn.is-satellite .hub-explorer-layers-btn__cap {
	background: #1e3a2f !important;
	border-radius: 12px 0 0 12px !important;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-slot--chrome .hub-explorer-gmaps-stack,
body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-slot--chrome .duchy-map-chrome-stack {
	pointer-events: auto;
	cursor: default;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-slot--chrome .hub-explorer-gmaps-stack__btn {
	cursor: pointer;
	pointer-events: auto;
	color: #fff;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-controls #filter-dock .ch-sd-filter-dock__actions {
	isolation: isolate;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-slot--layers {
	min-height: 36px;
	height: 36px !important;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .hub-explorer-map-canvas > .hub-explorer-layers-btn,
body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .hub-explorer-map-canvas > .hub-explorer-gmaps-stack,
body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .hub-explorer-map-canvas > .duchy-map-chrome-layers,
body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .hub-explorer-map-canvas > .duchy-map-chrome-stack {
	display: none !important;
}

body.duchy-subject-hub-redesign .food-hub-dock-slot--layers {
	flex: 0 0 72px;
	width: 72px;
	min-width: 72px;
	border-right: 1px solid var(--food-line);
}

body.duchy-subject-hub-redesign .food-hub-dock-slot--chrome {
	flex: 0 0 auto;
	border-left: 1px solid var(--food-line);
}

body.duchy-subject-hub-redesign .food-hub-dock-slot--layers .hub-explorer-layers-btn,
body.duchy-subject-hub-redesign .food-hub-dock-slot--layers .duchy-map-chrome-layers {
	display: block !important;
	position: relative !important;
	left: auto !important;
	right: auto !important;
	top: auto !important;
	bottom: auto !important;
	width: 100% !important;
	height: 40px !important;
	min-height: 40px !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
}

body.duchy-subject-hub-redesign .food-hub-dock-slot--layers .hub-explorer-layers-btn__cap {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	min-height: 36px;
	margin: 0;
	padding: 4px;
	border: 0 !important;
	border-radius: 0 !important;
	background: rgba(15, 23, 42, 0.92) !important;
	color: #fff !important;
	box-shadow: none !important;
	font-size: 0.58rem;
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: 0.01em;
	text-transform: none;
}

body.duchy-subject-hub-redesign .food-hub-dock-slot--chrome .hub-explorer-gmaps-stack,
body.duchy-subject-hub-redesign .food-hub-dock-slot--chrome .duchy-map-chrome-stack {
	display: flex !important;
	position: relative !important;
	left: auto !important;
	right: auto !important;
	top: auto !important;
	bottom: auto !important;
	flex-direction: row !important;
	align-items: center !important;
	height: 100% !important;
	min-height: 40px;
	padding: 0 4px !important;
	gap: 0 !important;
	background: #0f172a !important;
	border-radius: 0 !important;
	box-shadow: none !important;
}

body.duchy-subject-hub-redesign .food-hub-dock-slot--chrome .hub-explorer-gmaps-stack__btn {
	width: 28px !important;
	height: 28px !important;
	min-width: 28px !important;
	min-height: 28px !important;
	border-radius: 7px !important;
}

.duchy-subject-hub-redesign .food-hub-dock-grip {
	display: none;
	min-width: 0;
	height: 40px;
	padding: 4px 10px;
	border: 0;
	border-right: 1px solid var(--food-line);
	border-left: 1px solid var(--food-line);
	background: #fff;
	color: var(--food-muted);
	font-family: Inter, system-ui, sans-serif;
	font-size: 0.72rem;
	font-weight: 700;
	cursor: pointer;
}

.duchy-subject-hub-redesign .food-hub-dock-grip__bar {
	display: block;
	width: 34px;
	height: 4px;
	margin: 0 auto 3px;
	border-radius: 999px;
	background: #94a3b8;
}

.duchy-subject-hub-redesign .food-hub-dock-grip__label {
	display: block;
	max-width: none;
	overflow: visible;
	white-space: nowrap;
}

.duchy-subject-hub-redesign .ch-sd-filter-dock__body {
	max-height: min(560px, calc(100vh - 180px));
	border: 0;
	border-top: 1px solid var(--food-line);
	background: #fff;
	box-shadow: none;
}

.duchy-subject-hub-redesign .ch-sd-filter-dock.is-expanded .ch-sd-filter-dock__body {
	padding: 18px;
}

body.duchy-subject-hub-redesign .food-hub-controls .ch-sd-filter-dock.is-expanded #disco-dock-body {
	display: block !important;
	position: fixed !important;
	left: 50%;
	bottom: calc(72px + env(safe-area-inset-bottom, 0px));
	z-index: 1198;
	box-sizing: border-box;
	width: min(900px, calc(100% - 24px));
	max-height: min(68vh, 620px);
	padding: 18px !important;
	overflow: auto;
	border: 1px solid var(--food-line);
	border-radius: 22px;
	background: #fff;
	box-shadow: 0 -8px 34px rgba(15, 23, 42, 0.18);
	transform: translateX(-50%);
	/* Keep fixed panel out of dock height calc. */
	margin: 0 !important;
}

body.duchy-subject-hub-redesign .food-hub-controls #filter-dock.is-expanded .ch-sd-filter-dock__shell {
	display: block !important;
	height: auto !important;
}

body.duchy-subject-hub-redesign .food-hub-controls #filter-dock.is-expanded .ch-sd-filter-dock__footer {
	display: none !important;
}

.duchy-subject-hub-redesign .food-hub-controls__lower {
	display: none;
}

.duchy-subject-hub-redesign .food-hub-type-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	min-width: 0;
}

.duchy-subject-hub-redesign .food-hub-type-chip {
	flex: 0 0 auto;
	min-height: 40px;
	padding: 0 16px;
	border: 1px solid var(--food-line);
	border-radius: 999px;
	background: #fff;
	color: #475569;
	font-family: Inter, system-ui, sans-serif;
	font-size: 0.88rem;
	font-weight: 700;
	box-shadow: none;
	cursor: pointer;
}

.duchy-subject-hub-redesign .food-hub-type-chip.is-on {
	border-color: var(--food-ink);
	background: var(--food-ink);
	color: #fff;
}

.duchy-subject-hub-redesign .food-hub-results {
	margin: 10px 0 0;
	color: var(--food-muted);
	font-size: 0.88rem;
	font-weight: 700;
}

.duchy-subject-hub-redesign .food-hub-dock-type-section .food-hub-type-chips {
	overflow: visible;
}

.duchy-subject-hub-redesign .hub-main-wrap {
	display: block;
	width: min(1320px, calc(100% - 64px));
	max-width: none;
	min-width: 0;
	margin: 0 auto;
	padding: 0 0 48px;
	background: transparent;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page) .hub-main-wrap {
	width: min(1320px, calc(100% - 64px)) !important;
	max-width: 1320px !important;
	margin-inline: auto !important;
}

.duchy-subject-hub-redesign .hub-view-pane {
	min-width: 0;
	border: 0;
}

.duchy-subject-hub-redesign #grid-wrap-v {
	overflow: visible;
}

.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page):not(.map-view-active) #map-wrap-v {
	display: none !important;
	height: 0 !important;
	min-height: 0 !important;
}

.duchy-subject-hub-redesign #disco-cards-container {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: 24px !important;
	min-width: 0;
	padding: 0 !important;
}

.duchy-subject-hub-redesign #disco-cards-container > .inner-card-wrap {
	min-width: 0;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 20px !important;
	background: transparent !important;
	box-shadow: none !important;
	transform: none !important;
}

.duchy-subject-hub-redesign #disco-cards-container .inner-card {
	position: relative;
	display: flex;
	height: 100%;
	min-width: 0;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--food-line) !important;
	border-radius: 20px !important;
	background: var(--food-surface);
	box-shadow: 0 8px 24px rgba(15, 23, 42, 0.07) !important;
	transform: none !important;
	transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.duchy-subject-hub-redesign #disco-cards-container .inner-card:hover {
	border-color: #f39ab2 !important;
	box-shadow: 0 16px 34px rgba(15, 23, 42, 0.12) !important;
	transform: translateY(-2px) !important;
}

.duchy-subject-hub-redesign #disco-cards-container .inner-card__banner {
	position: absolute;
	top: 14px;
	left: 14px;
	z-index: 3;
	display: inline-flex;
	width: auto;
	max-width: calc(100% - 28px);
	min-height: 32px;
	padding: 6px 11px;
	border: 1px solid rgba(255, 255, 255, 0.8);
	border-radius: 999px;
	background: rgba(255, 233, 240, 0.96) !important;
	color: #92304f;
	box-shadow: 0 4px 12px rgba(15, 23, 42, 0.12);
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.035em;
	text-transform: uppercase;
}

.duchy-subject-hub-redesign #disco-cards-container .inner-card__banner-icon {
	display: none;
}

.duchy-subject-hub-redesign #disco-cards-container .inner-card__banner-rating {
	margin-left: 8px;
	color: var(--food-ink);
}

.duchy-subject-hub-redesign #disco-cards-container .inner-card__img-wrap {
	order: -1;
	width: 100%;
	aspect-ratio: 16 / 10;
	min-height: 0;
	overflow: hidden;
	background: linear-gradient(135deg, #ffe9f0, #f1f5f9);
}

.duchy-subject-hub-redesign #disco-cards-container .inner-card__img,
.duchy-subject-hub-redesign #disco-cards-container .inner-card__placeholder {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.duchy-subject-hub-redesign #disco-cards-container .inner-card__body {
	display: flex;
	flex: 1;
	min-width: 0;
	flex-direction: column;
	padding: 19px 20px 18px;
}

.duchy-subject-hub-redesign #disco-cards-container .inner-card__title {
	margin: 0;
	color: var(--food-ink);
	font-size: 1.15rem;
	font-weight: 750;
	line-height: 1.28;
	letter-spacing: -0.018em;
}

.duchy-subject-hub-redesign #disco-cards-container .inner-card__meta {
	display: flex;
	gap: 7px;
	flex-wrap: wrap;
	margin-top: 10px;
}

.duchy-subject-hub-redesign #disco-cards-container .inner-card__meta > span {
	border: 0;
	border-radius: 999px;
	background: #f1f5f9;
	color: #475569;
	font-size: 0.76rem;
	font-weight: 700;
}

.duchy-subject-hub-redesign #disco-cards-container .inner-card__desc {
	display: -webkit-box;
	overflow: hidden;
	margin: 10px 0 0;
	color: var(--food-muted);
	font-size: 0.91rem;
	line-height: 1.55;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.duchy-subject-hub-redesign #disco-cards-container .inner-card__foot {
	display: flex;
	gap: 10px;
	align-items: center;
	justify-content: space-between;
	margin-top: auto;
	padding-top: 15px;
	border-top: 0;
}

.duchy-subject-hub-redesign #disco-cards-container .inner-card__territory {
	min-width: 0;
	overflow: hidden;
	color: var(--food-muted);
	font-size: 0.83rem;
	font-weight: 650;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.duchy-subject-hub-redesign #disco-cards-container .inner-card__cta {
	flex: 0 0 auto;
	color: var(--food-pink-dark);
	font-size: 0.84rem;
	font-weight: 800;
}

.duchy-subject-hub-redesign #map-wrap-v {
	min-height: 660px;
	overflow: hidden;
	border: 1px solid var(--food-line);
	border-radius: 22px;
	background: #dbeafe;
	box-shadow: 0 12px 34px rgba(15, 23, 42, 0.1);
}

.duchy-subject-hub-redesign #map-wrap-v.active,
.duchy-subject-hub-redesign #leaf-map-id,
.duchy-subject-hub-redesign #google-map-id {
	min-height: 660px;
}

/* Map view: Stay-like page scroll + fixed dock. Keep Food map tools in the bar. */
body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active {
	padding-bottom: 6rem;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-controls #filter-dock .ch-sd-filter-dock__search-wrap {
	display: block !important;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .hub-main-wrap,
body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .hub-main-wrap--dock {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active #map-wrap-v,
body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active #map-wrap-v.active {
	position: relative !important;
	top: auto !important;
	left: auto !important;
	right: auto !important;
	bottom: auto !important;
	z-index: auto !important;
	width: 100% !important;
	height: var(--duchy-map-height) !important;
	min-height: var(--duchy-map-height) !important;
	border-radius: 0 !important;
	border: 0 !important;
	box-shadow: none !important;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active #leaf-map-id,
body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active #google-map-id,
body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .hub-explorer-map-canvas,
body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .hub-explorer-layout {
	width: 100% !important;
	height: 100% !important;
	min-height: 0 !important;
	border-radius: 0 !important;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active #grid-wrap-v {
	display: none !important;
}

/* One-card rail on desktop only. Mobile uses full-width bottom sheets below. */
body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active #map-wrap-v.active .hub-explorer-mapsearch,
body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active #map-wrap-v.active .hub-explorer-map-controls,
body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active #map-wrap-v.active .hub-explorer-search {
	display: none !important;
}

@media (min-width: 1024px) {
	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active #map-wrap-v.active .hub-explorer-sidebar,
	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active #map-wrap-v.active .hub-explorer-sidebar.is-showing-detail {
		flex: 0 0 var(--duchy-explorer-sidebar-w, 320px) !important;
		width: var(--duchy-explorer-sidebar-w, 320px) !important;
		max-width: var(--duchy-explorer-sidebar-w, 320px) !important;
		height: 100% !important;
		max-height: 100% !important;
		min-height: 0 !important;
		align-self: stretch !important;
		overflow: hidden !important;
		background: rgba(255, 255, 255, 0.98);
	}

	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active #map-wrap-v.active.hub-explorer-map-wrap.is-showing-detail,
	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active #map-wrap-v.active.duchy-explorer-wrap.is-showing-detail {
		height: var(--duchy-map-height) !important;
		max-height: var(--duchy-map-height) !important;
		min-height: var(--duchy-map-height) !important;
		align-items: stretch !important;
	}

	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active #map-wrap-v.active.is-showing-detail .hub-explorer-map-canvas,
	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active #map-wrap-v.active.is-showing-detail .duchy-explorer-canvas {
		height: 100% !important;
		min-height: 0 !important;
		position: relative !important;
		top: auto !important;
		align-self: stretch !important;
	}
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active #map-wrap-v.active .hub-explorer-sidebar__band,
body.duchy-subject-hub-redesign.duchy-listing-hub-map .disco-hub-main.map-view-active #map-wrap-v.active .hub-explorer-sidebar.is-half .hub-explorer-sidebar__band,
body.duchy-subject-hub-redesign.duchy-listing-hub-map .disco-hub-main.map-view-active #map-wrap-v.active .hub-explorer-sidebar.is-full .hub-explorer-sidebar__band {
	display: block !important;
	flex: 0 0 auto;
	background: var(--food-pink, #ff8fab) !important;
	color: var(--food-ink, #4a1f2e) !important;
	border-bottom: 0 !important;
	padding: 14px 16px 12px;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active #map-wrap-v.active .hub-explorer-sidebar__band-title,
body.duchy-subject-hub-redesign.duchy-listing-hub-map .disco-hub-main.map-view-active #map-wrap-v.active .hub-explorer-sidebar.is-half .hub-explorer-sidebar__band-title,
body.duchy-subject-hub-redesign.duchy-listing-hub-map .disco-hub-main.map-view-active #map-wrap-v.active .hub-explorer-sidebar.is-full .hub-explorer-sidebar__band-title {
	margin: 0;
	color: var(--food-ink, #4a1f2e) !important;
	font-family: 'Inter', 'Segoe UI', system-ui, sans-serif;
	font-size: 1.05rem;
	font-weight: 800;
	letter-spacing: normal;
	text-transform: none;
	line-height: 1.2;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active #map-wrap-v.active .hub-explorer-sidebar__band-sub {
	margin: 4px 0 0;
	color: rgba(74, 31, 46, 0.82) !important;
	font-size: 0.78rem;
	font-weight: 500;
	line-height: 1.4;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active #map-wrap-v.active .hub-explorer-sidebar__collapse,
body.duchy-subject-hub-redesign.duchy-listing-hub-map .disco-hub-main.map-view-active #map-wrap-v.active .hub-explorer-sidebar.is-half .hub-explorer-sidebar__collapse,
body.duchy-subject-hub-redesign.duchy-listing-hub-map .disco-hub-main.map-view-active #map-wrap-v.active .hub-explorer-sidebar.is-full .hub-explorer-sidebar__collapse {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 6px;
	margin: 0;
	padding: 8px 12px;
	border: 2px solid var(--food-ink, #4a1f2e) !important;
	border-radius: 999px;
	background: #f5c842 !important;
	color: #1a1208 !important;
	box-shadow: 0 2px 0 var(--food-ink, #4a1f2e);
	font-family: 'Inter', 'Segoe UI', system-ui, sans-serif;
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: normal;
	text-transform: none !important;
	line-height: 1;
	cursor: pointer;
	animation: food-hub-show-map-wobble 1.6s ease-in-out infinite;
	transform-origin: center;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active #map-wrap-v.active .hub-explorer-sidebar__collapse-x {
	font-size: 1.1rem;
	line-height: 1;
	font-weight: 800;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active #map-wrap-v.active .hub-explorer-sidebar__collapse:hover,
body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active #map-wrap-v.active .hub-explorer-sidebar__collapse:focus-visible {
	background: #ffd65c !important;
	animation: none;
	transform: translateY(-1px);
}

@keyframes food-hub-show-map-wobble {
	0%,
	100% {
		transform: rotate(0deg);
	}
	15% {
		transform: rotate(-6deg);
	}
	30% {
		transform: rotate(5deg);
	}
	45% {
		transform: rotate(-4deg);
	}
	60% {
		transform: rotate(3deg);
	}
	75% {
		transform: rotate(-2deg);
	}
}

@media (prefers-reduced-motion: reduce) {
	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active #map-wrap-v.active .hub-explorer-sidebar__collapse,
	body.duchy-subject-hub-redesign .food-hub-dock-chevron.is-notice-wobble {
		animation: none;
	}
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active #map-wrap-v.active .hub-explorer-sidebar__body,
body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active #map-wrap-v.active .hub-explorer-sidebar.is-showing-detail .hub-explorer-sidebar__body,
body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active #map-wrap-v.active .hub-explorer-sidebar.is-showing-detail .duchy-explorer-sidebar__body {
	flex: 1 1 auto !important;
	min-height: 0 !important;
	overflow-x: hidden !important;
	overflow-y: auto !important;
	-webkit-overflow-scrolling: touch;
	padding-bottom: 20px;
}

body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active #map-wrap-v.active .hub-explorer-detail__name {
	font-family: 'Inter', 'Segoe UI', system-ui, sans-serif;
	font-weight: 800;
	letter-spacing: normal;
	text-transform: none;
}

.duchy-subject-hub-redesign .hub-explorer-sidebar,
.duchy-subject-hub-redesign .hub-explorer-rail {
	background: rgba(255, 255, 255, 0.98);
}

.duchy-subject-hub-redesign .hub-explorer-pin__dot {
	border: 3px solid #fff;
	background: var(--food-pink-dark);
	box-shadow: 0 2px 8px rgba(123, 35, 65, 0.4);
}

.duchy-subject-hub-redesign .hub-explorer-pin--selected .hub-explorer-pin__dot {
	background: var(--food-ink);
	transform: scale(1.35);
}

.duchy-subject-hub-redesign .duchy-sd-food-map-preview-ribbon--hub {
	display: none !important;
}

.duchy-subject-hub-redesign :is(button, a, input, select):focus-visible {
	outline: 3px solid #0b70ff;
	outline-offset: 3px;
}

/* Search fields: no blue focus ring. Keep a quiet ink border instead. */
.duchy-subject-hub-redesign .ch-sd-dock-search-input:focus,
.duchy-subject-hub-redesign .ch-sd-dock-search-input:focus-visible,
.duchy-subject-hub-redesign .hub-explorer-search__input:focus,
.duchy-subject-hub-redesign .hub-explorer-search__input:focus-visible,
.duchy-subject-hub-redesign #header-search-input-chrome:focus,
.duchy-subject-hub-redesign #header-search-input-chrome:focus-visible,
.duchy-subject-hub-redesign #header-search-input:focus,
.duchy-subject-hub-redesign #header-search-input:focus-visible,
.duchy-subject-hub-redesign input[type="search"]:focus,
.duchy-subject-hub-redesign input[type="search"]:focus-visible,
.duchy-subject-hub-redesign input[type="text"][name="s"]:focus,
.duchy-subject-hub-redesign input[type="text"][name="s"]:focus-visible {
	outline: none !important;
	box-shadow: none !important;
}

.duchy-subject-hub-redesign .ch-sd-filter-dock__search-wrap:focus-within .ch-sd-dock-search-glass,
.duchy-subject-hub-redesign .ch-sd-dock-search-glass:focus-within,
body.duchy-subject-hub-redesign.duchy-sd-inner .ch-sd-filter-dock__search-wrap:focus-within .ch-sd-dock-search-glass {
	border-color: var(--food-ink, #111827) !important;
	box-shadow: none !important;
	background: #fff !important;
}

.duchy-subject-hub-redesign .hub-explorer-search:focus-within {
	outline: none !important;
	border-color: var(--food-ink, #111827) !important;
	box-shadow: none !important;
}

@media (min-width: 1400px) {
	.duchy-subject-hub-redesign #disco-cards-container {
		grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 1023px) {
	.duchy-subject-hub-redesign .food-hub-controls,
	.duchy-subject-hub-redesign .hub-main-wrap {
		width: min(100% - 40px, 1320px);
	}

	.duchy-subject-hub-redesign .food-hub-controls .ch-sd-filter-dock__bar {
		grid-template-columns: 1fr;
	}

	.duchy-subject-hub-redesign .ch-sd-filter-dock__actions {
		justify-content: space-between;
	}

	.duchy-subject-hub-redesign #disco-cards-container {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 20px !important;
	}
}

@media (min-width: 700px) and (max-width: 1023px) {
	body.duchy-subject-hub-redesign .food-hub-controls #disco-dock-nearest-btn,
	body.duchy-subject-hub-redesign .food-hub-controls #disco-dock-sort-bar,
	body.duchy-subject-hub-redesign .food-hub-controls #disco-dock-filters-btn,
	body.duchy-subject-hub-redesign .food-hub-controls #disco-dock-reset-btn,
	body.duchy-subject-hub-redesign .food-hub-controls #toggle-dock-btn {
		display: inline-flex !important;
		align-items: center;
		justify-content: center;
	}

	body.duchy-subject-hub-redesign .food-hub-controls .ch-sd-dock-bar-action-label,
	body.duchy-subject-hub-redesign .food-hub-controls .ch-sd-dock-sort-label {
		display: inline-flex !important;
	}
}

@media (max-width: 699px) {
	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page) {
		padding-bottom: calc(120px + env(safe-area-inset-bottom, 0px));
	}

	body.duchy-subject-hub-redesign .food-hub-controls #filter-dock .ch-sd-filter-dock__bar {
		display: flex !important;
		flex-direction: column !important;
	}

	body.duchy-subject-hub-redesign .food-hub-controls #filter-dock .ch-sd-filter-dock__search-wrap {
		width: 100% !important;
		max-width: none !important;
	}

	.duchy-subject-hub-redesign #disco-hero-box {
		padding: 26px 16px 42px;
	}

	.duchy-subject-hub-redesign #disco-hero-box h1 {
		font-size: clamp(2rem, 10vw, 2.65rem);
		letter-spacing: -0.04em;
	}

	.duchy-subject-hub-redesign #disco-hero-box .hub-hero-intro {
		margin-top: 12px;
		font-size: 0.98rem;
		line-height: 1.55;
	}

	.duchy-subject-hub-redesign .hub-main-wrap {
		width: calc(100% - 32px);
	}

	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page) .hub-main-wrap {
		width: calc(100% - 32px) !important;
	}

	.duchy-subject-hub-redesign .food-hub-controls {
		width: auto;
		margin: 0;
		border-radius: 0;
		background: transparent;
		box-shadow: none;
	}

	.duchy-subject-hub-redesign .food-hub-controls .ch-sd-filter-dock,
	.duchy-subject-hub-redesign .food-hub-controls .ch-sd-filter-dock__shell {
		overflow: visible !important;
		border-radius: 0;
	}

	.duchy-subject-hub-redesign .food-hub-controls .ch-sd-filter-dock__bar {
		display: flex !important;
		flex-direction: column !important;
		padding: 12px;
		gap: 10px;
	}

	.duchy-subject-hub-redesign .ch-sd-filter-dock__search-wrap {
		width: 100% !important;
		min-width: 0;
	}

	.duchy-subject-hub-redesign .ch-sd-dock-search-glass {
		min-height: 48px;
	}

	body.duchy-subject-hub-redesign .food-hub-controls #filter-dock .ch-sd-filter-dock__bar {
		flex-direction: column !important;
		align-items: stretch;
		gap: 8px;
		width: calc(100% - 16px);
		padding: 8px 8px calc(8px + env(safe-area-inset-bottom, 0px)) !important;
	}

	/* Grid + Map: Grid/Map | Search | Chrome (map) | Chevron on one line. */
	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page) .food-hub-controls #filter-dock .ch-sd-filter-dock__bar {
		display: grid !important;
		grid-template-columns: auto minmax(0, 1fr) auto;
		align-items: center;
		gap: 8px;
		flex-direction: unset !important;
	}

	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-controls #filter-dock .ch-sd-filter-dock__bar {
		grid-template-columns: auto minmax(0, 1fr) auto auto;
	}

	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page) .food-hub-controls #filter-dock .ch-sd-filter-dock__actions,
	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-controls #filter-dock .ch-sd-filter-dock__actions {
		display: contents !important;
		width: auto !important;
		max-width: none !important;
		pointer-events: auto;
		background: transparent !important;
		box-shadow: none !important;
	}

	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page) .food-hub-controls #filter-dock .ch-sd-filter-dock__search-wrap {
		grid-column: 2;
		grid-row: 1;
		z-index: 2;
		width: auto !important;
		max-width: none !important;
		min-width: 0;
		height: 40px;
	}

	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-controls #filter-dock .ch-sd-filter-dock__search-wrap {
		grid-column: 2;
		grid-row: 1;
		min-width: 0 !important;
		width: auto !important;
		max-width: none !important;
		flex: 1 1 auto !important;
	}

	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page) .food-hub-controls #filter-dock .ch-sd-dock-segment {
		grid-column: 1;
		grid-row: 1;
	}

	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page) .food-hub-controls #disco-dock-filters-btn {
		grid-column: 3;
		grid-row: 1;
	}

	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-controls #disco-dock-filters-btn {
		grid-column: 4;
	}

	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page) .food-hub-controls #disco-dock-nearest-btn,
	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page) .food-hub-controls #disco-dock-sort-bar,
	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page) .food-hub-controls #disco-dock-reset-btn,
	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page) .food-hub-controls #toggle-dock-btn,
	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page) .food-hub-dock-grip {
		display: none !important;
	}

	/* Map chrome stays in the dock (right of search), not floating on the map. */
	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-map-tools.is-ready {
		position: static !important;
		left: auto !important;
		bottom: auto !important;
		z-index: auto !important;
		display: flex !important;
		align-items: stretch;
		grid-column: 3;
		grid-row: 1;
		justify-self: end;
		align-self: center;
		flex: 0 0 auto !important;
		width: max-content !important;
		max-width: none;
		height: 36px !important;
		min-height: 36px !important;
		margin: 0 !important;
		padding: 0 !important;
		border-radius: 12px;
		background: #0f172a !important;
		box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.06);
		overflow: hidden !important;
		transform: none !important;
		pointer-events: auto;
	}

	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page):not(.map-view-active) .food-hub-dock-map-tools,
	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page):not(.map-view-active) .food-hub-dock-slot {
		display: none !important;
	}

	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active:has(:is(.hub-explorer-sidebar, .duchy-explorer-sidebar).is-showing-detail) .food-hub-dock-map-tools,
	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active:has(:is(.hub-explorer-sidebar, .duchy-explorer-sidebar).is-half) .food-hub-dock-map-tools,
	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active:has(:is(.hub-explorer-sidebar, .duchy-explorer-sidebar).is-full) .food-hub-dock-map-tools {
		display: none !important;
	}

	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active:has(:is(.hub-explorer-sidebar, .duchy-explorer-sidebar).is-showing-detail) .food-hub-controls #filter-dock .ch-sd-filter-dock__bar,
	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active:has(:is(.hub-explorer-sidebar, .duchy-explorer-sidebar).is-half) .food-hub-controls #filter-dock .ch-sd-filter-dock__bar,
	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active:has(:is(.hub-explorer-sidebar, .duchy-explorer-sidebar).is-full) .food-hub-controls #filter-dock .ch-sd-filter-dock__bar {
		grid-template-columns: auto minmax(0, 1fr) auto;
	}

	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active:has(:is(.hub-explorer-sidebar, .duchy-explorer-sidebar).is-showing-detail) .food-hub-controls #disco-dock-filters-btn,
	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active:has(:is(.hub-explorer-sidebar, .duchy-explorer-sidebar).is-half) .food-hub-controls #disco-dock-filters-btn,
	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active:has(:is(.hub-explorer-sidebar, .duchy-explorer-sidebar).is-full) .food-hub-controls #disco-dock-filters-btn {
		grid-column: 3;
	}

	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page) {
		padding-bottom: calc(72px + env(safe-area-inset-bottom, 0px));
	}

	body.duchy-subject-hub-redesign .food-hub-controls #filter-dock .ch-sd-filter-dock__search-wrap {
		width: 100% !important;
		max-width: none !important;
		height: 40px;
	}

	.duchy-subject-hub-redesign .ch-sd-dock-search-glass {
		min-height: 40px;
		height: 40px;
	}

	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page) .food-hub-controls #filter-dock .ch-sd-filter-dock__actions,
	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-controls #filter-dock .ch-sd-filter-dock__actions {
		position: static !important;
		left: auto !important;
		bottom: auto !important;
		z-index: auto !important;
		display: contents !important;
		width: auto !important;
		max-width: none !important;
		margin: 0;
		padding: 0 !important;
		border: 0;
		border-radius: 0;
		background: transparent !important;
		box-shadow: none !important;
		backdrop-filter: none;
		-webkit-backdrop-filter: none;
		transform: none !important;
		overflow: visible !important;
		gap: 8px;
		pointer-events: auto;
	}

	body.duchy-subject-hub-redesign .food-hub-controls #filter-dock .ch-sd-dock-segment {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
		flex: 0 0 104px !important;
		width: 104px !important;
		min-width: 104px !important;
		max-width: 104px !important;
		height: 40px !important;
		min-height: 40px !important;
		border: 2px solid var(--food-ink) !important;
		border-radius: 12px !important;
		overflow: hidden !important;
	}

	body.duchy-subject-hub-redesign .food-hub-controls #filter-dock .ch-sd-dock-segment-btn {
		flex: none !important;
		min-width: 0 !important;
		border: 0 !important;
		border-radius: 0 !important;
	}

	.duchy-subject-hub-redesign .ch-sd-dock-bar-filters {
		display: inline-flex !important;
		align-items: center;
		justify-content: center;
		width: 40px;
		min-width: 40px;
		min-height: 40px;
		padding: 0;
		border-radius: 12px;
	}

	body.duchy-subject-hub-redesign .food-hub-controls #disco-dock-filters-btn {
		display: inline-flex !important;
		height: 40px !important;
		min-height: 40px !important;
		width: 40px !important;
		min-width: 40px !important;
		padding: 0 !important;
		border-radius: 12px !important;
		background: var(--food-pink-dark) !important;
		color: #fff !important;
	}

	body.duchy-subject-hub-redesign .food-hub-controls #disco-dock-filters-btn.food-hub-dock-chevron {
		background: #f5c842 !important;
		color: #1a1208 !important;
		border: 2px solid var(--food-ink, #111827) !important;
		box-shadow: 0 2px 0 var(--food-ink, #111827);
	}

	body.duchy-subject-hub-redesign .food-hub-controls #disco-dock-filters-btn.food-hub-dock-chevron.is-expanded,
	body.duchy-subject-hub-redesign .food-hub-controls #disco-dock-filters-btn.food-hub-dock-chevron[aria-expanded="true"] {
		background: var(--food-pink-dark) !important;
		color: #fff !important;
		border-color: transparent !important;
		box-shadow: none;
		animation: none;
	}

	body.duchy-subject-hub-redesign .food-hub-controls .ch-sd-filter-dock.is-expanded #disco-dock-body {
		display: block !important;
		position: fixed !important;
		left: 50%;
		bottom: calc(88px + env(safe-area-inset-bottom, 0px));
		z-index: 1198;
		box-sizing: border-box;
		width: min(440px, calc(100% - 24px));
		max-height: min(62vh, 520px);
		padding: 18px !important;
		overflow: auto;
		border: 1px solid var(--food-line);
		border-radius: 22px;
		background: #fff;
		box-shadow: 0 -8px 34px rgba(15, 23, 42, 0.18);
		transform: translateX(-50%);
	}

	.duchy-subject-hub-redesign .ch-sd-dock-bar-filters .ch-sd-dock-bar-action-label,
	.duchy-subject-hub-redesign .ch-sd-dock-bar-near,
	.duchy-subject-hub-redesign .ch-sd-dock-bar-sort,
	.duchy-subject-hub-redesign .ch-sd-dock-bar-reset,
	.duchy-subject-hub-redesign .ch-sd-dock-toggle {
		display: none !important;
	}

	.duchy-subject-hub-redesign .food-hub-controls__lower {
		display: block;
		padding: 0 12px 14px;
	}

	.duchy-subject-hub-redesign .food-hub-type-chips {
		margin-right: -12px;
		padding-right: 12px;
	}

	.duchy-subject-hub-redesign .food-hub-type-chip {
		padding-inline: 17px;
	}

	.duchy-subject-hub-redesign .food-hub-results {
		margin-top: 12px;
		padding-left: 2px;
	}

	.duchy-subject-hub-redesign #disco-cards-container {
		grid-template-columns: minmax(0, 1fr) !important;
		gap: 18px !important;
	}

	.duchy-subject-hub-redesign #disco-cards-container .inner-card__body {
		padding: 17px 17px 16px;
	}

	.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page):not(.map-view-active) #map-wrap-v,
	.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page):not(.map-view-active) #map-wrap-v.active,
	.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page):not(.map-view-active) #leaf-map-id,
	.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page):not(.map-view-active) #google-map-id {
		min-height: calc(100svh - 190px) !important;
	}

	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active #map-wrap-v,
	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active #map-wrap-v.active,
	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active #leaf-map-id,
	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active #google-map-id {
		min-height: 0 !important;
		height: 100% !important;
	}

	.duchy-subject-hub-redesign #map-wrap-v {
		border-radius: 18px;
	}

	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active #map-wrap-v,
	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active #map-wrap-v.active {
		border-radius: 0 !important;
	}
}

@media (max-width: 1023px) {
	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-controls #filter-dock .ch-sd-filter-dock__actions {
		gap: 0;
		overflow: visible !important;
	}

	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-slot--chrome .hub-explorer-gmaps-stack__btn {
		width: 24px !important;
		height: 24px !important;
		min-width: 24px !important;
		min-height: 24px !important;
		border-radius: 6px !important;
	}

	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-slot--chrome .hub-explorer-gmaps-stack__btn svg {
		width: 10px !important;
		height: 10px !important;
	}

	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-slot--chrome .hub-explorer-gmaps-stack,
	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-slot--chrome .duchy-map-chrome-stack {
		padding: 0 1px !important;
	}

	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-grip {
		display: none !important;
	}

	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active #disco-dock-filters-btn,
	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-slot {
		display: inline-flex !important;
		align-items: center;
		justify-content: center;
	}

	body.duchy-subject-hub-redesign :is(#map-wrap-v.active, .duchy-explorer-page.map-view-active .duchy-explorer-wrap) .duchy-explorer-sheet-lip {
		display: none !important;
	}

	body.duchy-subject-hub-redesign :is(#map-wrap-v.active, .duchy-explorer-page.map-view-active .duchy-explorer-wrap) :is(.hub-explorer-sidebar, .duchy-explorer-sidebar).is-min,
	body.duchy-subject-hub-redesign :is(#map-wrap-v.active, .duchy-explorer-page.map-view-active .duchy-explorer-wrap) :is(.hub-explorer-sidebar, .duchy-explorer-sidebar).is-peek:not(.is-showing-detail) {
		display: none !important;
	}

	body.duchy-subject-hub-redesign :is(#map-wrap-v.active, .duchy-explorer-page.map-view-active .duchy-explorer-wrap) :is(.hub-explorer-sidebar, .duchy-explorer-sidebar).is-half,
	body.duchy-subject-hub-redesign :is(#map-wrap-v.active, .duchy-explorer-page.map-view-active .duchy-explorer-wrap) :is(.hub-explorer-sidebar, .duchy-explorer-sidebar).is-full,
	body.duchy-subject-hub-redesign :is(#map-wrap-v.active, .duchy-explorer-page.map-view-active .duchy-explorer-wrap) :is(.hub-explorer-sidebar, .duchy-explorer-sidebar).is-showing-detail {
		position: fixed !important;
		left: 0 !important;
		right: 0 !important;
		bottom: calc(72px + env(safe-area-inset-bottom, 0px)) !important;
		z-index: 1100;
		display: flex !important;
		flex-direction: column !important;
		width: 100% !important;
		max-width: none !important;
		border: 0;
		border-radius: 18px 18px 0 0;
		box-shadow: 0 -8px 28px rgba(15, 23, 42, 0.16);
		overflow: hidden !important;
		background: #fff;
	}

	body.duchy-subject-hub-redesign :is(#map-wrap-v.active, .duchy-explorer-page.map-view-active .duchy-explorer-wrap) :is(.hub-explorer-sidebar, .duchy-explorer-sidebar).is-half {
		top: auto !important;
		height: min(68dvh, 560px) !important;
		max-height: calc(100dvh - 100px) !important;
	}

	body.duchy-subject-hub-redesign :is(#map-wrap-v.active, .duchy-explorer-page.map-view-active .duchy-explorer-wrap) :is(.hub-explorer-sidebar, .duchy-explorer-sidebar).is-full,
	body.duchy-subject-hub-redesign :is(#map-wrap-v.active, .duchy-explorer-page.map-view-active .duchy-explorer-wrap) :is(.hub-explorer-sidebar, .duchy-explorer-sidebar).is-showing-detail {
		top: auto !important;
		height: min(78dvh, 720px) !important;
		max-height: calc(100dvh - 96px) !important;
	}

	body.duchy-subject-hub-redesign :is(#map-wrap-v.active, .duchy-explorer-page.map-view-active .duchy-explorer-wrap) :is(.hub-explorer-sidebar, .duchy-explorer-sidebar).is-half :is(.hub-explorer-sidebar__body, .duchy-explorer-sidebar__body),
	body.duchy-subject-hub-redesign :is(#map-wrap-v.active, .duchy-explorer-page.map-view-active .duchy-explorer-wrap) :is(.hub-explorer-sidebar, .duchy-explorer-sidebar).is-full :is(.hub-explorer-sidebar__body, .duchy-explorer-sidebar__body),
	body.duchy-subject-hub-redesign :is(#map-wrap-v.active, .duchy-explorer-page.map-view-active .duchy-explorer-wrap) :is(.hub-explorer-sidebar, .duchy-explorer-sidebar).is-showing-detail :is(.hub-explorer-sidebar__body, .duchy-explorer-sidebar__body) {
		flex: 1 1 auto !important;
		min-height: 0 !important;
		overflow-y: auto !important;
		-webkit-overflow-scrolling: touch;
	}

	/* Selected place: hide search visually but keep the middle gap. */
	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active:has(:is(.hub-explorer-sidebar, .duchy-explorer-sidebar).is-showing-detail) .food-hub-controls #filter-dock .ch-sd-filter-dock__search-wrap {
		visibility: hidden !important;
		pointer-events: none !important;
	}

	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active:has(:is(.hub-explorer-sidebar, .duchy-explorer-sidebar).is-showing-detail) .food-hub-controls #filter-dock .ch-sd-filter-dock__bar {
		display: grid !important;
		grid-template-columns: auto minmax(0, 1fr) auto;
		align-items: center;
		gap: 8px;
		flex-direction: unset !important;
		padding-top: 6px !important;
		padding-bottom: calc(6px + env(safe-area-inset-bottom, 0px)) !important;
	}

	body.duchy-subject-hub-redesign :is(#map-wrap-v.active, .duchy-explorer-page.map-view-active .duchy-explorer-wrap) :is(.hub-explorer-sidebar, .duchy-explorer-sidebar).is-showing-detail {
		bottom: calc(56px + env(safe-area-inset-bottom, 0px)) !important;
	}

	body.duchy-subject-hub-redesign :is(#map-wrap-v.active, .duchy-explorer-page.map-view-active .duchy-explorer-wrap) :is(.hub-explorer-sidebar, .duchy-explorer-sidebar).is-showing-detail .hub-explorer-detail__thumb {
		max-height: 140px;
		object-fit: cover;
	}

	body.duchy-subject-hub-redesign :is(#map-wrap-v.active, .duchy-explorer-page.map-view-active .duchy-explorer-wrap) :is(.hub-explorer-sidebar, .duchy-explorer-sidebar).is-showing-detail .hub-explorer-detail__excerpt {
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 2;
		overflow: hidden;
		margin-bottom: 8px;
	}

	body.duchy-subject-hub-redesign :is(#map-wrap-v.active, .duchy-explorer-page.map-view-active .duchy-explorer-wrap) :is(.hub-explorer-sidebar, .duchy-explorer-sidebar).is-showing-detail .hub-explorer-detail__foot {
		display: flex;
		flex-direction: row;
		flex-wrap: nowrap;
		align-items: stretch;
		gap: 8px;
		margin-top: 10px;
		position: sticky;
		bottom: 0;
		z-index: 2;
		padding: 8px 0 4px;
		background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, #fff 28%);
	}

	body.duchy-subject-hub-redesign :is(#map-wrap-v.active, .duchy-explorer-page.map-view-active .duchy-explorer-wrap) :is(.hub-explorer-sidebar, .duchy-explorer-sidebar).is-showing-detail .hub-explorer-detail__go,
	body.duchy-subject-hub-redesign :is(#map-wrap-v.active, .duchy-explorer-page.map-view-active .duchy-explorer-wrap) :is(.hub-explorer-sidebar, .duchy-explorer-sidebar).is-showing-detail .hub-explorer-detail__link--dirs {
		flex: 1 1 0;
		min-width: 0;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-height: 44px;
		padding: 0 10px;
		box-sizing: border-box;
		border-radius: 10px;
		font-family: 'Inter', 'Segoe UI', system-ui, sans-serif;
		font-size: 0.82rem;
		font-weight: 700;
		letter-spacing: normal;
		text-transform: none;
		text-align: center;
		text-decoration: none;
		white-space: nowrap;
	}

	body.duchy-subject-hub-redesign :is(#map-wrap-v.active, .duchy-explorer-page.map-view-active .duchy-explorer-wrap) :is(.hub-explorer-sidebar, .duchy-explorer-sidebar).is-showing-detail .hub-explorer-detail__go {
		border: 2px solid var(--food-ink, #0f172a);
		background: var(--food-pink, #ff8fab);
		color: var(--food-ink, #0f172a);
		box-shadow: none;
	}

	body.duchy-subject-hub-redesign :is(#map-wrap-v.active, .duchy-explorer-page.map-view-active .duchy-explorer-wrap) :is(.hub-explorer-sidebar, .duchy-explorer-sidebar).is-showing-detail .hub-explorer-detail__link--dirs {
		border: 2px solid #1d4ed8;
		background: #2563eb;
		color: #fff;
		box-shadow: none;
	}

	/* Combined Place sheet: include former filter-panel content (no third screen). */
	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-sheet-filters {
		display: block;
		margin-top: 14px;
		padding-top: 12px;
		border-top: 1px solid var(--food-line, #e2e8f0);
	}

	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-sheet-filters #disco-dock-body {
		display: block !important;
		position: static !important;
		left: auto !important;
		right: auto !important;
		bottom: auto !important;
		z-index: auto !important;
		width: 100% !important;
		max-width: none !important;
		max-height: none !important;
		margin: 0 !important;
		padding: 0 !important;
		overflow: visible !important;
		border: 0 !important;
		border-radius: 0 !important;
		background: transparent !important;
		box-shadow: none !important;
		transform: none !important;
	}

	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-sheet-filters .food-hub-dock-type-section {
		display: none !important;
	}

	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-sheet-filters .ch-sd-dock-panel-sections {
		display: flex;
		flex-direction: column;
		gap: 16px;
	}

	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-sheet-filters .ch-sd-dock-panel-col {
		display: flex;
		flex-direction: column;
		gap: 14px;
		min-width: 0;
	}

	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-sheet-filters .ch-sd-filter-dock__section {
		margin: 0;
		padding: 0;
		border: 0;
	}

	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-sheet-filters .ch-sd-filter-dock__heading,
	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-sheet-filters .ch-sd-filter-dock__subheading {
		margin: 0 0 8px;
		font-family: 'Inter', 'Segoe UI', system-ui, sans-serif;
		font-size: 0.78rem;
		font-weight: 800;
		letter-spacing: normal;
		text-transform: none;
		color: var(--food-ink, #0f172a);
	}

	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-sheet-filters .ch-sd-dock-pill-grid {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 8px;
	}

	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-sheet-filters .ch-sd-dock-pill,
	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-sheet-filters .ch-sd-dock-quick-pick,
	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-sheet-filters .disco-sidebar-type .btn-u,
	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-sheet-filters .disco-sidebar-type .btn-reset-u {
		min-height: 40px;
		border-radius: 10px;
		font-family: 'Inter', 'Segoe UI', system-ui, sans-serif;
		font-size: 0.78rem;
		font-weight: 700;
		text-transform: none;
		letter-spacing: normal;
	}

	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-sheet-filters .ch-sd-dock-place-type {
		display: flex;
		flex-wrap: wrap;
		gap: 8px;
	}

	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-sheet-filters .disco-sidebar-abc {
		display: grid;
		grid-template-columns: repeat(7, minmax(0, 1fr));
		gap: 6px;
	}

	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-sheet-filters .abc-sq {
		min-height: 32px;
		border-radius: 8px;
	}

	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-controls #filter-dock.is-expanded #disco-dock-body {
		display: none !important;
	}

	/* Listing maps use one compact sheet: Place and Type only. */
	body.duchy-subject-hub-redesign .disco-hub-main.map-view-active #map-wrap-v.active .hub-explorer-sidebar:not(.is-showing-detail) .hub-explorer-sidebar__band,
	body.duchy-subject-hub-redesign .disco-hub-main.map-view-active #map-wrap-v.active .hub-explorer-sidebar:not(.is-showing-detail) .food-hub-sheet-filters {
		display: none !important;
	}

	body.duchy-subject-hub-redesign .disco-hub-main.map-view-active #map-wrap-v.active .hub-explorer-sidebar:is(.is-half, .is-full):not(.is-showing-detail) {
		height: auto !important;
		max-height: min(46dvh, 360px) !important;
	}

	body.duchy-subject-hub-redesign .disco-hub-main.map-view-active #map-wrap-v.active .hub-explorer-sidebar:is(.is-half, .is-full):not(.is-showing-detail) .hub-explorer-sidebar__body {
		flex: 0 1 auto !important;
	}
}

@media (max-width: 699px) {
	body.duchy-subject-hub-redesign #map-wrap-v.active .hub-explorer-sidebar:is(.is-half, .is-full):not(.is-showing-detail) {
		top: auto !important;
		height: min(72dvh, 640px) !important;
		max-height: calc(100dvh - 100px) !important;
	}

	body.duchy-subject-hub-redesign #map-wrap-v.active .hub-explorer-sidebar:not(.is-showing-detail) .hub-explorer-stats,
	body.duchy-subject-hub-redesign #map-wrap-v.active .hub-explorer-sidebar:not(.is-showing-detail) .hub-explorer-search,
	body.duchy-subject-hub-redesign #map-wrap-v.active .hub-explorer-sidebar:not(.is-showing-detail) .hub-explorer-suggest,
	body.duchy-subject-hub-redesign #map-wrap-v.active .hub-explorer-sidebar:not(.is-showing-detail) .hub-explorer-hint {
		display: none !important;
	}

	body.duchy-subject-hub-redesign #map-wrap-v.active .hub-explorer-sidebar:not(.is-showing-detail) .hub-explorer-sidebar__band {
		display: block !important;
	}

	body.duchy-subject-hub-redesign #map-wrap-v.active .hub-explorer-sidebar:not(.is-showing-detail) .hub-explorer-sidebar__body {
		flex: 1 1 auto !important;
		min-height: 0 !important;
		padding: 12px 14px 18px !important;
		overflow-y: auto !important;
	}

	body.duchy-subject-hub-redesign #map-wrap-v.active .hub-explorer-sidebar:not(.is-showing-detail) .hub-explorer-overview {
		display: grid;
		gap: 12px;
	}

	body.duchy-subject-hub-redesign #map-wrap-v.active .hub-explorer-sidebar:not(.is-showing-detail) :is(.hub-explorer-layers, .hub-explorer-keywords) {
		min-width: 0;
		margin: 0 !important;
		padding: 0 !important;
	}

	body.duchy-subject-hub-redesign #map-wrap-v.active .hub-explorer-sidebar:not(.is-showing-detail) .hub-explorer-group-label {
		margin: 0 0 6px !important;
		color: #526176;
		font-size: 0.72rem;
		font-weight: 800;
		line-height: 1.2;
		letter-spacing: 0.04em;
		text-transform: uppercase;
	}

	body.duchy-subject-hub-redesign #map-wrap-v.active .hub-explorer-sidebar:not(.is-showing-detail) .hub-explorer-legend {
		display: grid !important;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 8px !important;
		margin: 0 !important;
		padding: 0 !important;
		list-style: none;
	}

	body.duchy-subject-hub-redesign #map-wrap-v.active .hub-explorer-sidebar:not(.is-showing-detail) .hub-explorer-legend > li {
		min-width: 0;
		margin: 0 !important;
		padding: 0 !important;
	}

	body.duchy-subject-hub-redesign #map-wrap-v.active .hub-explorer-sidebar:not(.is-showing-detail) .hub-explorer-legend__row {
		display: flex !important;
		align-items: center;
		justify-content: center;
		gap: 5px;
		width: 100%;
		min-width: 0;
		height: 44px;
		min-height: 44px;
		padding: 0 8px !important;
		border: 1px solid #d9e0ea !important;
		border-radius: 12px !important;
		background: #fff !important;
		color: var(--food-ink) !important;
		box-shadow: none !important;
		font-size: 0.8rem;
		font-weight: 750;
		line-height: 1;
	}

	body.duchy-subject-hub-redesign #map-wrap-v.active .hub-explorer-sidebar:not(.is-showing-detail) .hub-explorer-legend__row.is-on {
		border-color: var(--layer, var(--food-pink-dark)) !important;
		background: #fff4f7 !important;
	}

	body.duchy-subject-hub-redesign #map-wrap-v.active .hub-explorer-sidebar:not(.is-showing-detail) .food-hub-place-all.is-on {
		border-color: var(--food-ink) !important;
		background: var(--food-ink) !important;
		color: #fff !important;
	}

	body.duchy-subject-hub-redesign #map-wrap-v.active .hub-explorer-sidebar:not(.is-showing-detail) :is(.hub-explorer-legend__count, .hub-explorer-keywords__note) {
		display: none !important;
	}

	body.duchy-subject-hub-redesign #map-wrap-v.active .hub-explorer-sidebar:not(.is-showing-detail) .hub-explorer-legend__dot {
		flex: 0 0 9px;
		width: 9px;
		height: 9px;
	}

	body.duchy-subject-hub-redesign #map-wrap-v.active .hub-explorer-sidebar:not(.is-showing-detail) .food-hub-place-all__dot {
		border: 2px solid currentColor;
		background: transparent;
	}

	body.duchy-subject-hub-redesign .food-hub-controls .ch-sd-filter-dock.is-expanded #disco-dock-body {
		left: 0 !important;
		right: 0 !important;
		width: 100% !important;
		max-width: none !important;
		bottom: calc(72px + env(safe-area-inset-bottom, 0px)) !important;
		border-radius: 18px 18px 0 0;
		transform: none !important;
		max-height: min(70vh, 560px);
	}
}

@media (max-width: 1023px) {
	/* Keep the listing-map overview to the promised Place and Type rows. */
	body.duchy-subject-hub-redesign.duchy-listing-hub-map .disco-hub-main.map-view-active #map-wrap-v.active .hub-explorer-sidebar:is(.is-half, .is-full):not(.is-showing-detail) .hub-explorer-sidebar__band {
		display: none !important;
	}
}

@media (max-width: 399px) {
	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-dock-slot--layers {
		flex: 0 0 40px;
		width: 40px;
		min-width: 40px;
	}

	body.duchy-subject-hub-redesign :is(.disco-hub-main, .towns-hub-main, .duchy-explorer-page).map-view-active .food-hub-controls #filter-dock .ch-sd-dock-segment {
		flex: 0 0 96px !important;
		width: 96px !important;
		min-width: 96px !important;
		max-width: 96px !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.duchy-subject-hub-redesign *,
	.duchy-subject-hub-redesign *::before,
	.duchy-subject-hub-redesign *::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}

/* Hide duplicate sidebar controls when the shared bottom dock is active. */
body.duchy-subject-hub-redesign.duchy-explorer-dock .beaches-explorer-search--head,
body.duchy-subject-hub-redesign.duchy-explorer-dock .walks-explorer-search--head {
	display: none !important;
}

body.duchy-subject-hub-redesign.duchy-explorer-dock .duchy-explorer-sheet-grip {
	display: none !important;
}

body.duchy-subject-hub-redesign :is(.towns-hub-main, .duchy-explorer-page).map-view-active .settlements-map-view-row,
body.duchy-subject-hub-redesign :is(.towns-hub-main, .duchy-explorer-page).map-view-active .settlements-map-search--head {
	display: none !important;
}

body.duchy-subject-hub-redesign .duchy-explorer-page.map-view-active {
	padding-bottom: calc(88px + env(safe-area-inset-bottom, 0px));
}

/* Beach / Walks: no Grid/Map segment — Search · chrome · chevron. */
body.duchy-subject-hub-redesign.duchy-explorer-dock .explorer-subject-dock #filter-dock .ch-sd-filter-dock__bar {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) auto auto !important;
	align-items: center;
	gap: 8px;
}

body.duchy-subject-hub-redesign.duchy-explorer-dock .explorer-subject-dock #filter-dock .ch-sd-filter-dock__actions {
	display: contents !important;
}

body.duchy-subject-hub-redesign.duchy-explorer-dock .explorer-subject-dock #filter-dock .ch-sd-filter-dock__search-wrap {
	grid-column: 1 !important;
	grid-row: 1;
	min-width: 0 !important;
	width: auto !important;
	max-width: none !important;
}

body.duchy-subject-hub-redesign.duchy-explorer-dock .explorer-subject-dock .food-hub-dock-map-tools {
	grid-column: 2 !important;
	grid-row: 1;
}

body.duchy-subject-hub-redesign.duchy-explorer-dock .explorer-subject-dock #disco-dock-filters-btn {
	grid-column: 3 !important;
	grid-row: 1;
}

/* Towns map view: keep the shared subject dock visible (override legacy place-hub hide). */
body.duchy-subject-hub-redesign.duchy-sd-inner.duchy-place-hub-map .food-hub-controls #filter-dock.ch-sd-filter-dock {
	display: block !important;
	visibility: visible !important;
	pointer-events: auto !important;
}

body.duchy-subject-hub-redesign.duchy-sd-inner.duchy-place-hub-map .food-hub-controls #filter-dock .ch-sd-filter-dock__shell {
	pointer-events: auto;
}

/* Towns: kill legacy town-slim look if anything still loads it. */
body.duchy-subject-hub-redesign .towns-hub-main .food-hub-controls #filter-dock.ch-sd-filter-dock--town-slim,
body.duchy-subject-hub-redesign .towns-hub-main .food-hub-controls #filter-dock {
	border-top: 1px solid var(--ch-sd-dock-accent-border, rgba(74, 31, 46, 0.12)) !important;
	box-shadow: 0 -8px 30px rgba(15, 23, 42, 0.12) !important;
	background: var(--ch-sd-dock-surface, var(--food-pink-soft)) !important;
}

body.duchy-subject-hub-redesign .towns-hub-main .food-hub-controls #filter-dock .ch-sd-dock-search-glass {
	border: 1px solid rgba(74, 31, 46, 0.12) !important;
	border-radius: 999px !important;
	box-shadow: none !important;
	background: #fff !important;
}

body.duchy-subject-hub-redesign .towns-hub-main.map-view-active .food-hub-controls #filter-dock .ch-sd-filter-dock__search-wrap {
	min-width: 0 !important;
	max-width: none !important;
	flex: 1 1 auto !important;
}

body.duchy-subject-hub-redesign .towns-hub-main .food-hub-controls #filter-dock .ch-sd-dock-segment {
	border: 2px solid var(--food-ink, #111827) !important;
	border-radius: 12px !important;
	box-shadow: none !important;
	width: 104px !important;
	min-width: 104px !important;
	max-width: 104px !important;
}
