/* ============================================================
   Stop Hubs – Tour Builder  v1.3.23
   Author: Vista Radio - Ashley Roberts
   ============================================================ */

.sh-tour-wrap {
	--sh-purple:     #5c2d6e;
	--sh-purple-lt:  #f5eef8;
	--sh-teal:       #1a9b9b;
	--sh-teal-lt:    #e8f7f7;
	--sh-gold:       #c8860a;
	--sh-text:       #1a1a1a;
	--sh-muted:      #6b7280;
	--sh-border:     #e5e7eb;
	--sh-card-bg:    #ffffff;
	--sh-shadow:     0 1px 4px rgba(0,0,0,.08);
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
	color: var(--sh-text);
	max-width: 1100px;
	margin: 0 auto;
	padding: 0 0 48px;
}

.sh-tour-wrap *, .sh-tour-wrap *::before, .sh-tour-wrap *::after { box-sizing: border-box; }

/* ── Header ── */
.sh-tour-header { text-align: center; margin-bottom: 28px; }
.sh-tour-step-badge { display: inline-block; background: var(--sh-purple); color: #fff; font-size: .72em; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; padding: 4px 14px; border-radius: 20px; margin-bottom: 10px; }
.sh-tour-title { font-size: 1.7em; font-weight: 700; margin: 0 0 8px; color: var(--sh-purple); }
.sh-tour-subtitle { font-size: .97em; color: var(--sh-muted); margin: 0; max-width: 560px; margin: 0 auto; }

/* ── Search bar ── */
.sh-tour-search-wrap { display: flex; align-items: center; gap: 12px; margin-bottom: 20px; }
.sh-tour-search { flex: 1; border: 2px solid var(--sh-border); border-radius: 0; padding: 11px 16px; font-size: .95em; font-family: inherit; outline: none; transition: border-color .2s; }
.sh-tour-search:focus { border-color: var(--sh-teal); }
.sh-tour-selected-count { font-size: .85em; color: var(--sh-muted); white-space: nowrap; font-weight: 600; }
.sh-tour-selected-count #sh-selected-num { color: var(--sh-teal); font-size: 1.1em; }

.sh-tour-limit-note {
	background: #f0fdf4;
	border: 1px solid #99f6e4;
	border-left: 4px solid var(--sh-teal);
	color: #0f766e;
	font-size: .9em;
	line-height: 1.5;
	margin: -8px 0 20px;
	padding: 12px 16px;
}

.sh-tour-limit-note--warning {
	background: #fffbeb;
	border-color: #fcd34d;
	border-left-color: var(--sh-gold);
	color: #78350f;
}

/* ── Stop group ── */
.sh-tour-stop-group { margin-bottom: 24px; }
.sh-tour-stop-group.sh-hidden { display: none; }

.sh-tour-stop-heading { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; padding-bottom: 10px; border-bottom: 2px solid var(--sh-border); }
.sh-tour-route-badge { background: var(--sh-purple); color: #fff; font-size: .7em; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; padding: 3px 10px; border-radius: 20px; white-space: nowrap; }
.sh-tour-stop-name { font-weight: 700; font-size: 1em; color: var(--sh-text); }
.sh-tour-stop-times { display: flex; gap: 5px; flex-wrap: wrap; margin-left: auto; }
.sh-tour-time-chip { border: 1px solid var(--sh-border); border-radius: 4px; padding: 2px 8px; font-size: .78em; color: var(--sh-muted); }

/* ── Winery cards grid ── */
.sh-tour-wineries-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 12px; }

.sh-tour-winery-card { position: relative; cursor: pointer; display: block; user-select: none; -webkit-user-select: none; }
.sh-tour-winery-inner { border: 2px solid var(--sh-border); background: var(--sh-card-bg); padding: 14px 12px; text-align: center; transition: border-color .2s, background .2s, box-shadow .2s; display: flex; flex-direction: column; align-items: center; gap: 8px; position: relative; min-height: 150px; justify-content: center; }

.sh-tour-winery-card:hover .sh-tour-winery-inner { border-color: var(--sh-teal); box-shadow: 0 3px 12px rgba(26,155,155,.15); }
.sh-tour-winery-card.sh-limit-disabled { cursor: not-allowed; opacity: .45; }
.sh-tour-winery-card.sh-limit-disabled .sh-tour-winery-inner { background: #f9fafb; border-color: #e5e7eb; box-shadow: none; }
.sh-tour-winery-card.sh-limit-disabled:hover .sh-tour-winery-inner { border-color: #e5e7eb; box-shadow: none; }

/* Selected state */
.sh-tour-winery-card.sh-selected .sh-tour-winery-inner { border-color: var(--sh-teal); background: var(--sh-teal-lt); }
.sh-tour-winery-card.sh-selected .sh-tour-check-indicator { opacity: 1; transform: scale(1); }

.sh-tour-inline-build {
	align-items: stretch;
	display: flex;
	min-height: 150px;
	opacity: 0;
	transform: translateY(10px);
	transition: opacity .28s ease, transform .28s ease;
}

.sh-tour-inline-build.sh-is-visible {
	opacity: 1;
	transform: translateY(0);
}

.sh-tour-inline-build .sh-tour-btn {
	align-items: center;
	box-shadow: 0 8px 20px rgba(92,45,110,.16);
	justify-content: center;
	min-height: 150px;
	text-align: center;
	width: 100%;
}

.sh-tour-winery-logo { max-width: 100px; max-height: 56px; object-fit: contain; }
.sh-tour-winery-logo-placeholder { font-size: 2em; }
.sh-tour-winery-name { font-size: .8em; font-weight: 600; color: var(--sh-text); line-height: 1.3; }
.sh-tour-walk-time { font-size: .72em; color: var(--sh-teal); display: flex; align-items: center; gap: 3px; }
.sh-tour-walk-time svg { width: 12px; height: 12px; }

.sh-tour-check-indicator { position: absolute; top: 6px; right: 8px; background: var(--sh-teal); color: #fff; border-radius: 50%; width: 20px; height: 20px; font-size: .75em; display: flex; align-items: center; justify-content: center; font-weight: 700; opacity: 0; transform: scale(0.5); transition: opacity .2s, transform .2s; }

/* ── Footer actions ── */
.sh-tour-picker-footer { display: flex; gap: 12px; align-items: center; margin-top: 28px; justify-content: center; }

/* ── Buttons ── */
.sh-tour-btn { display: inline-flex; align-items: center; gap: 6px; padding: 12px 24px; font-size: .92em; font-family: inherit; font-weight: 600; border: none; cursor: pointer; transition: background .2s, color .2s, opacity .2s; text-decoration: none; }
.sh-tour-btn:disabled { opacity: .4; cursor: not-allowed; }

.sh-tour-btn-primary { background: var(--sh-purple); color: #fff; }
.sh-tour-btn-primary:hover:not(:disabled) { background: #4a2259; }

.sh-tour-btn-ghost { background: #fff; color: var(--sh-text); border: 2px solid var(--sh-border); }
.sh-tour-btn-ghost:hover { border-color: var(--sh-purple); color: var(--sh-purple); }

.sh-tour-btn-pdf { background: var(--sh-teal); color: #fff; }
.sh-tour-btn-pdf:hover { background: #147a7a; }
.sh-tour-btn-pdf svg { width: 18px; height: 18px; }

/* ── Itinerary ── */
.sh-itinerary-actions { display: flex; align-items: center; justify-content: space-between; margin-bottom: 24px; flex-wrap: wrap; gap: 10px; }

.sh-itinerary-stop { border: 1px solid var(--sh-border); margin-bottom: 20px; box-shadow: var(--sh-shadow); }

.sh-itinerary-stop-header { background: var(--sh-purple); color: #fff; padding: 14px 18px; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; }
.sh-itinerary-header-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.sh-itinerary-stop-num { font-size: .75em; background: rgba(255,255,255,.2); padding: 2px 10px; border-radius: 20px; font-weight: 700; letter-spacing: .06em; white-space: nowrap; }
.sh-itinerary-remove-stop {
	background: rgba(255,255,255,.14);
	border: 1px solid rgba(255,255,255,.5);
	color: #fff;
	cursor: pointer;
	font: inherit;
	font-size: .72em;
	font-weight: 800;
	letter-spacing: .06em;
	padding: 4px 10px;
	text-transform: uppercase;
}
.sh-itinerary-remove-stop:hover { background: rgba(255,255,255,.24); }
.sh-itinerary-stop-name { font-size: 1.1em; font-weight: 700; }
.sh-itinerary-route-tag { font-size: .72em; text-transform: uppercase; letter-spacing: .08em; opacity: .8; }

.sh-itinerary-stop-body { padding: 16px 18px; }
.sh-itinerary-address { font-size: .85em; color: var(--sh-muted); margin-bottom: 12px; display: flex; align-items: center; gap: 5px; }
.sh-itinerary-address a { color: var(--sh-teal); text-decoration: none; font-weight: 600; margin-left: 6px; font-size: .9em; }
.sh-itinerary-address a:hover { text-decoration: underline; }

/* Times row inside itinerary */
.sh-itinerary-times { margin-bottom: 14px; }
.sh-itinerary-times-label { font-size: .72em; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--sh-muted); margin-bottom: 7px; }
.sh-itinerary-times-row { display: flex; flex-wrap: wrap; gap: 6px; }
.sh-itinerary-time-pill { border: 1px solid var(--sh-border); border-radius: 4px; padding: 5px 12px; font-size: .85em; font-weight: 500; background: #fff; }
.sh-itinerary-time-pill.sh-suggested { border-color: var(--sh-teal); background: var(--sh-teal-lt); color: var(--sh-teal); font-weight: 700; }

/* Winery list inside itinerary */
.sh-itinerary-wineries-label { font-size: .72em; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--sh-muted); margin-bottom: 10px; padding-top: 12px; border-top: 1px solid var(--sh-border); }
.sh-itinerary-winery-row { display: flex; align-items: center; gap: 14px; padding: 10px 0; border-bottom: 1px solid #f3f4f6; }
.sh-itinerary-winery-row:last-child { border-bottom: none; }
.sh-itinerary-winery-logo { width: 70px; height: 46px; object-fit: contain; flex-shrink: 0; }
.sh-itinerary-winery-logo-ph { width: 70px; height: 46px; background: #f3f0ea; display: flex; align-items: center; justify-content: center; font-size: 1.5em; flex-shrink: 0; }
.sh-itinerary-winery-info { flex: 1; min-width: 0; }
.sh-itinerary-winery-name { font-weight: 700; font-size: .95em; margin-bottom: 3px; }
.sh-itinerary-winery-meta { display: flex; gap: 12px; flex-wrap: wrap; }
.sh-itinerary-walk { font-size: .82em; color: var(--sh-teal); display: flex; align-items: center; gap: 4px; }
.sh-itinerary-walk svg { width: 13px; height: 13px; flex-shrink: 0; }
.sh-itinerary-map-link { font-size: .82em; color: var(--sh-purple); text-decoration: none; font-weight: 600; }
.sh-itinerary-map-link:hover { text-decoration: underline; }

.sh-itinerary-dropoffs {
	border-top: 1px solid var(--sh-border);
	margin-top: 14px;
	padding-top: 14px;
}

.sh-itinerary-dropoffs-label {
	color: var(--sh-muted);
	font-size: .72em;
	font-weight: 700;
	letter-spacing: .1em;
	margin-bottom: 10px;
	text-transform: uppercase;
}

.sh-itinerary-dropoff-row {
	align-items: center;
	border: 1px solid var(--sh-border);
	display: flex;
	gap: 14px;
	justify-content: space-between;
	margin-bottom: 8px;
	padding: 10px 12px;
}

.sh-itinerary-dropoff-row:last-child { margin-bottom: 0; }
.sh-itinerary-dropoff-main { min-width: 0; }
.sh-itinerary-dropoff-name { font-size: .92em; font-weight: 800; }
.sh-itinerary-dropoff-address { color: var(--sh-muted); font-size: .8em; line-height: 1.35; margin-top: 2px; }
.sh-itinerary-dropoff-meta { align-items: flex-end; display: flex; flex-direction: column; gap: 6px; flex-shrink: 0; }

/* ── Summary bar ── */
.sh-itinerary-summary { background: var(--sh-purple-lt); border: 1px solid #d8b4e2; padding: 14px 18px; margin-bottom: 20px; display: flex; gap: 24px; flex-wrap: wrap; }
.sh-itinerary-summary-item { font-size: .88em; color: var(--sh-purple); font-weight: 600; }
.sh-itinerary-summary-item span { font-size: 1.2em; }
.sh-itinerary-summary-warn { color: #92400e; }

/* ── Responsive ── */
@media (max-width: 600px) {
	.sh-tour-wineries-grid { grid-template-columns: repeat(2, 1fr); }
	.sh-tour-title { font-size: 1.3em; }
	.sh-itinerary-winery-logo, .sh-itinerary-winery-logo-ph { width: 50px; height: 36px; }
}

/* ── Time window block ─────────────────────────────────────── */
.sh-itinerary-time-window {
	background: #fafafa;
	border: 1px solid var(--sh-border);
	margin-bottom: 16px;
	overflow: hidden;
}

.sh-itinerary-time-row {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding: 12px 16px;
}

.sh-time-arrive { border-left: 4px solid var(--sh-teal); }
.sh-time-depart { border-left: 4px solid var(--sh-purple); border-top: 1px dashed var(--sh-border); }

.sh-time-row-icon { font-size: 1.2em; flex-shrink: 0; margin-top: 2px; }

.sh-time-row-label {
	font-size: .78em;
	font-weight: 700;
	letter-spacing: .05em;
	text-transform: uppercase;
	color: var(--sh-muted);
	margin-bottom: 7px;
}

.sh-time-row-body {
	flex: 1;
	min-width: 0;
}

.sh-time-row-value { display: flex; flex-wrap: wrap; gap: 6px; }

.sh-itinerary-selected-time {
	display: inline-flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 8px;
	max-width: 100%;
	border: 1px solid var(--sh-border);
	border-radius: 4px;
	background: #fff;
	color: var(--sh-text);
	font-size: 1.05em;
	font-weight: 800;
	padding: 7px 12px;
	line-height: 1.1;
}

.sh-itinerary-selected-time small {
	color: var(--sh-muted);
	font-size: .62em;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.sh-time-row-help {
	font-size: .78em;
	color: var(--sh-muted);
	line-height: 1.4;
	margin-top: 6px;
}

/* Explore band between arrive and depart */
.sh-itinerary-explore-band {
	display: flex;
	align-items: center;
	gap: 10px;
	background: linear-gradient(135deg, #f5eef8, #e8f7f7);
	padding: 9px 16px;
	font-size: .85em;
	color: #4a2259;
	font-style: italic;
	border-top: 1px dashed var(--sh-border);
	border-bottom: 1px dashed var(--sh-border);
}
.sh-explore-icon { font-size: 1.1em; }
.sh-explore-text { font-weight: 500; }

/* Time pill variants */
.sh-itinerary-time-pill { border: 1px solid var(--sh-border); border-radius: 4px; padding: 5px 12px; font-size: .85em; font-weight: 500; background: #fff; color: var(--sh-muted); }
.sh-time-arrive-hl { border-color: var(--sh-teal); background: var(--sh-teal-lt); color: #0d6b6b; font-weight: 700; }
.sh-time-depart-hl { border-color: var(--sh-purple); background: var(--sh-purple-lt); color: var(--sh-purple); font-weight: 700; }

/* Tip box */
.sh-itinerary-tip {
	background: #fffbf0;
	border-left: 4px solid var(--sh-gold);
	padding: 12px 16px;
	font-size: .88em;
	color: #374151;
	margin-bottom: 20px;
	line-height: 1.6;
}

.sh-itinerary-conflict-banner {
	background: #fff7ed;
	border: 1px solid #fdba74;
	border-left: 4px solid #f59e0b;
	color: #7c2d12;
	font-size: .88em;
	line-height: 1.5;
	margin-bottom: 20px;
	padding: 12px 16px;
}

.sh-itinerary-conflict-note {
	background: #fff7ed;
	border: 1px solid #fdba74;
	color: #7c2d12;
	font-size: .88em;
	line-height: 1.5;
	margin-bottom: 16px;
	padding: 12px 14px;
}

.sh-itinerary-conflict-time {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 10px;
}

.sh-itinerary-empty {
	background: #f9fafb;
	border: 1px solid var(--sh-border);
	color: var(--sh-muted);
	font-size: .92em;
	padding: 16px 18px;
	text-align: center;
}

/* End of day note */
.sh-itinerary-endnote {
	background: var(--sh-purple-lt);
	border: 1px solid #d8b4e2;
	padding: 14px 18px;
	font-size: .9em;
	color: var(--sh-purple);
	text-align: center;
	margin-top: 8px;
}

/* ── Collapsible button shortcode ────────────────────────────── */
.sh-tour-collapse-wrap {
	margin: 0 0 24px;
}

.sh-tour-collapse-btn {
	display: flex;
	align-items: center;
	gap: 12px;
	width: 100%;
	padding: 18px 24px;
	background: var(--sh-purple); /* overridden by inline style from DB settings */
	color: #fff;
	border: none;
	cursor: pointer;
	font-family: inherit;
	font-size: 1.05em;
	font-weight: 700;
	letter-spacing: .02em;
	text-align: left;
	transition: filter .2s;
}

.sh-tour-collapse-btn:hover { filter: brightness(0.88); }

.sh-tour-collapse-icon { font-size: 1.3em; flex-shrink: 0; }

.sh-tour-collapse-label { flex: 1; }

.sh-tour-collapse-arrow {
	width: 24px;
	height: 24px;
	flex-shrink: 0;
	transition: transform .3s ease;
	display: flex;
	align-items: center;
}

.sh-tour-collapse-arrow svg { width: 24px; height: 24px; fill: currentColor; }

.sh-tour-collapse-btn[aria-expanded="true"] .sh-tour-collapse-arrow {
	transform: rotate(180deg);
}

/* Panel — hidden by default, animates open */
.sh-tour-collapse-panel {
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows .35s ease;
	overflow: hidden;
}

.sh-tour-collapse-panel.sh-panel-open {
	grid-template-rows: 1fr;
}

.sh-tour-collapse-inner {
	overflow: hidden;
	border: 1px solid var(--sh-border);
	border-top: none;
}

/* Tighten the tour wrap when inside a collapsed panel */
.sh-tour-collapse-inner .sh-tour-wrap {
	padding: 24px 20px 32px;
}

/* ── Fix #1: Button default bg (now set inline from settings, but CSS fallback) ── */
.sh-tour-collapse-btn { background: #5c2d6e; color: #ffffff; }
.sh-tour-btn-primary  { background: #5c2d6e; color: #ffffff; }

/* ── How it works steps ──────────────────────────────────────── */
.sh-tour-how-it-works {
	display: flex;
	align-items: center;
	gap: 12px;
	background: #f9f5fc;
	border: 1px solid #d8b4e2;
	padding: 16px 20px;
	margin-bottom: 24px;
	flex-wrap: wrap;
}

.sh-how-step {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	flex: 1;
	min-width: 160px;
}

.sh-how-num {
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: #5c2d6e;
	color: #fff;
	font-weight: 700;
	font-size: .9em;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.sh-how-text { font-size: .85em; line-height: 1.4; color: #374151; }
.sh-how-text strong { display: block; margin-bottom: 2px; }

.sh-how-arrow { font-size: 1.4em; color: #5c2d6e; font-weight: 700; flex-shrink: 0; }

/* ── Stop group hint text ────────────────────────────────────── */
.sh-tour-stop-hint {
	font-size: .83em;
	color: #6b7280;
	margin: -4px 0 10px;
	font-style: italic;
}

/* ── Stop heading layout ─────────────────────────────────────── */
.sh-tour-stop-heading {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
}
.sh-tour-stop-heading-left  { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.sh-tour-stop-heading-right { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; font-size: .82em; }
.sh-tour-stop-times-label { color: var(--sh-muted); font-size: .85em; }

/* ── Winery select indicator ─────────────────────────────────── */
.sh-tour-select-indicator {
	font-size: .75em;
	font-weight: 700;
	margin-top: 4px;
	height: 18px;
}
.sh-unselected-label { color: #9ca3af; }
.sh-selected-label   { color: var(--sh-teal); display: none; }

.sh-tour-winery-card.sh-selected .sh-unselected-label { display: none; }
.sh-tour-winery-card.sh-selected .sh-selected-label   { display: inline; }

/* ── Footer info bar ─────────────────────────────────────────── */
.sh-tour-footer-info {
	background: var(--sh-purple-lt);
	border: 1px solid #d8b4e2;
	padding: 10px 16px;
	font-size: .88em;
	color: var(--sh-purple);
	margin-bottom: 14px;
	text-align: center;
}

.sh-tour-footer-btns {
	display: flex;
	gap: 12px;
	justify-content: center;
	flex-wrap: wrap;
}

.sh-tour-picker-footer { flex-direction: column; }

/* ── Downtown pickup section in itinerary ────────────────────── */
.sh-itinerary-pickup-section {
	border: 2px solid var(--sh-purple);
	margin-bottom: 24px;
	overflow: hidden;
}

.sh-itinerary-pickup-heading {
	background: var(--sh-purple);
	color: #fff;
	padding: 12px 18px;
	display: flex;
	align-items: center;
	gap: 12px;
}

.sh-pickup-step-num {
	background: rgba(255,255,255,.2);
	padding: 3px 10px;
	border-radius: 20px;
	font-size: .72em;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	white-space: nowrap;
}

.sh-pickup-title { font-weight: 700; font-size: 1em; }

.sh-pickup-desc {
	padding: 10px 18px 0;
	font-size: .88em;
	color: var(--sh-muted);
}

.sh-pickup-stops-row {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	padding: 12px 18px;
}

.sh-pickup-stop-card {
	flex: 1;
	min-width: 180px;
	border: 1px solid var(--sh-border);
	padding: 12px 14px;
	background: var(--sh-bg);
}

.sh-pickup-stop-name { font-weight: 700; font-size: .95em; margin-bottom: 4px; }
.sh-pickup-stop-addr { font-size: .82em; color: var(--sh-muted); margin-bottom: 8px; }
.sh-pickup-times-label { font-size: .75em; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--sh-muted); margin-bottom: 5px; }
.sh-pickup-times-row { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 8px; }
.sh-pickup-map-link { font-size: .82em; color: var(--sh-purple); text-decoration: none; font-weight: 600; }
.sh-pickup-map-link:hover { text-decoration: underline; }

.sh-pickup-then-arrow {
	text-align: center;
	font-weight: 700;
	font-size: .95em;
	color: var(--sh-purple);
	padding: 10px;
	border-top: 1px dashed var(--sh-border);
	background: var(--sh-purple-lt);
}

.sh-itinerary-stops-heading {
	font-size: 1.05em;
	font-weight: 700;
	color: var(--sh-purple);
	margin-bottom: 14px;
	padding-bottom: 8px;
	border-bottom: 2px solid var(--sh-purple);
}

/* ── Step footer ─────────────────────────────────────────────── */
.sh-tour-step-footer {
	display: flex;
	gap: 12px;
	align-items: center;
	justify-content: flex-start;
	margin-top: 28px;
	padding-top: 20px;
	border-top: 1px solid var(--sh-border);
	flex-wrap: wrap;
}

/* ── Step 1: Pickup cards ────────────────────────────────────── */
.sh-pickup-grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 14px;
	margin-bottom: 4px;
}

.sh-pickup-card {
	cursor: pointer;
	user-select: none;
	-webkit-user-select: none;
}

.sh-pickup-inner {
	border: 2px solid var(--sh-border);
	border-radius: 0;
	background: #fff;
	padding: 16px 12px;
	text-align: center;
	transition: border-color .2s, background .2s, box-shadow .2s;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	position: relative;
}

.sh-pickup-card:hover .sh-pickup-inner { border-color: var(--sh-teal); box-shadow: 0 3px 12px rgba(26,155,155,.12); }
.sh-pickup-card.sh-selected .sh-pickup-inner { border-color: var(--sh-teal); background: var(--sh-teal-lt); }

.sh-pickup-icon { font-size: 1.7em; }
.sh-pickup-name { font-weight: 700; font-size: .92em; color: var(--sh-text); line-height: 1.25; }
.sh-pickup-address { font-size: .78em; color: var(--sh-muted); }
.sh-pickup-times { color: var(--sh-muted); width: 100%; }
.sh-pickup-times-label { display: block; font-size: .72em; font-weight: 800; letter-spacing: .07em; margin: 2px 0 6px; text-transform: uppercase; }
.sh-pickup-times-row { display: flex; flex-wrap: wrap; gap: 5px; justify-content: center; }
.sh-pickup-map-link { font-size: .78em; color: var(--sh-teal); text-decoration: none; }
.sh-pickup-map-link:hover { text-decoration: underline; }
.sh-pickup-check-indicator { display: none; font-size: .8em; font-weight: 700; color: var(--sh-teal); margin-top: 4px; }
.sh-pickup-card.sh-selected .sh-pickup-check-indicator { display: block; }

.sh-tour-no-pickups { background: #fef3c7; border: 1px solid #f59e0b; padding: 16px; font-size: .9em; margin-bottom: 20px; }

/* ── Step 2: stop heading improvements ───────────────────────── */
.sh-tour-stop-heading-main { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
.sh-tour-stop-desc { font-size: .78em; color: var(--sh-teal); font-style: italic; }
.sh-tour-tip { font-size: .88em; color: var(--sh-muted); font-style: italic; display: block; margin-top: 6px; }

/* Warn badge when too many wineries at one stop */
.sh-tour-stop-count-warn {
	background: #fff8e1;
	border: 1px solid #f59e0b;
	border-left: 4px solid #f59e0b;
	padding: 8px 12px;
	font-size: .84em;
	color: #78350f;
	margin-bottom: 10px;
}

/* ── Pickup / return itinerary card variants ─────────────────── */
.sh-itinerary-stop--pickup .sh-itinerary-stop-header { background: var(--sh-teal); }
.sh-itinerary-stop--unscheduled .sh-itinerary-stop-header { background: #92400e; }
.sh-itinerary-stop--return .sh-itinerary-stop-header { background: #374151; }

@media (max-width: 1100px) {
	.sh-pickup-grid {
		grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	}
}

@media (max-width: 600px) {
	.sh-pickup-grid {
		grid-template-columns: 1fr;
	}

	.sh-itinerary-dropoff-row {
		align-items: flex-start;
		flex-direction: column;
	}

	.sh-itinerary-dropoff-meta {
		align-items: flex-start;
	}
}
