/* RateSpyAlert Insurance Price Index – professional layout for shortcode blocks */

.ratespy-breadcrumbs {
	margin-bottom: 1rem;
	font-size: 0.9rem;
}
.ratespy-breadcrumbs-list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	list-style: none;
	margin: 0;
	padding: 0;
	gap: 0 0.5rem;
}
.ratespy-breadcrumb-item {
	display: flex;
	align-items: center;
}
.ratespy-breadcrumb-item:not(:last-child)::after {
	content: '›';
	margin-left: 0.5rem;
	color: #9ca3af;
	font-weight: 300;
}
.ratespy-breadcrumb-link {
	color: #2563eb;
	text-decoration: none;
}
.ratespy-breadcrumb-link:hover {
	text-decoration: underline;
}
.ratespy-breadcrumb-current {
	color: #6b7280;
	font-weight: 500;
}

.ratespy-index-hero {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem;
	margin-bottom: 1.5rem;
	padding: 0.75rem 0;
	border-bottom: 1px solid #e5e7eb;
	font-size: 0.9rem;
}

.ratespy-index-hero-trust {
	width: 100%;
	margin: 0 0 0.5rem 0;
	font-size: 0.85rem;
	color: #6b7280;
}

.ratespy-index-badge {
	display: inline-block;
	padding: 0.25rem 0.75rem;
	border-radius: 4px;
	font-weight: 600;
}

.ratespy-index-signal-drop { background: #d1fae5; color: #065f46; }
.ratespy-index-signal-rise { background: #fee2e2; color: #991b1b; }
.ratespy-index-signal-stable { background: #e5e7eb; color: #374151; }

.ratespy-index-updated { color: #6b7280; }
.ratespy-index-credibility { color: #6b7280; }

.ratespy-index-summary { margin-bottom: 1.5rem; }
.ratespy-index-back-link {
	margin: 0 0 1rem 0;
	font-size: 0.9rem;
}
.ratespy-index-back-link a {
	color: #2563eb;
	text-decoration: none;
}
.ratespy-index-back-link a:hover {
	text-decoration: underline;
}
.ratespy-index-h1 { margin: 0 0 0.5rem; font-size: 1.75rem; }
.ratespy-index-explainer { color: #4b5563; margin: 0 0 1rem; font-size: 0.95rem; }
.ratespy-index-summary-text { margin: 0 0 0.5rem; }
.ratespy-index-so-what { margin: 0; color: #4b5563; font-size: 0.95rem; }
.ratespy-index-market-context { margin: 0 0 0.5rem; color: #6b7280; font-size: 0.9rem; font-style: italic; }

.ratespy-index-narrative { margin-bottom: 1.5rem; padding: 1.25rem; background: #f8fafc; border-radius: 8px; border-left: 4px solid #2563eb; }
.ratespy-index-narrative-title { margin: 0 0 0.75rem; font-size: 1.2rem; }
.ratespy-index-narrative-lede,
.ratespy-index-narrative-impact { margin: 0 0 0.5rem; }
.ratespy-index-narrative-timing { margin: 0 0 0.5rem; font-weight: 600; }
.ratespy-index-narrative-next { margin: 0 0 0.5rem; }
.ratespy-index-narrative-disclaimer { margin: 0; font-size: 0.85rem; color: #6b7280; }

.ratespy-index-tiles {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
	gap: 1rem;
	margin-bottom: 1.5rem;
}

.ratespy-index-tile {
	padding: 1rem;
	background: #f9fafb;
	border-radius: 8px;
	border: 1px solid #e5e7eb;
}

.ratespy-index-tile-label { display: block; font-size: 0.8rem; color: #6b7280; margin-bottom: 0.25rem; }
.ratespy-index-tile-value { font-size: 1.25rem; font-weight: 600; }
.ratespy-index-tile-sublabel { display: block; font-size: 0.8rem; color: #6b7280; margin-top: 0.25rem; }
.ratespy-index-trend-down { color: #059669; }
.ratespy-index-trend-up { color: #dc2626; }

.ratespy-index-chart { margin-bottom: 1.5rem; padding: 1rem; background: #f9fafb; border-radius: 8px; }
.ratespy-index-chart-title { margin: 0 0 0.75rem; font-size: 1.1rem; }
.ratespy-index-chart-placeholder,
.ratespy-index-chart-fallback { margin: 0; color: #6b7280; font-size: 0.9rem; }
.ratespy-index-chart-inner { width: 100%; min-height: 160px; }
.ratespy-index-chart-canvas { display: block; width: 100%; }
.ratespy-index-chart-caption { margin: 0.5rem 0 0; color: #6b7280; font-size: 0.85rem; }

.ratespy-index-notable-movers { margin-bottom: 0.75rem; padding: 0.5rem 0; font-size: 0.9rem; }
.ratespy-index-notable-movers-label { display: inline; margin: 0; font-weight: 600; }
.ratespy-index-notable-movers-list { display: inline; margin: 0; }

.ratespy-index-recent-signals { margin-bottom: 1.5rem; padding: 1rem; background: #f0fdf4; border-radius: 8px; border: 1px solid #bbf7d0; }
.ratespy-index-recent-signals-title { margin: 0 0 0.5rem; font-size: 1.1rem; }
.ratespy-index-recent-signals-list { margin: 0; padding-left: 1.25rem; }

.ratespy-index-company-table { margin-bottom: 1.5rem; overflow-x: auto; }
.ratespy-index-table-title { margin: 0 0 0.75rem; font-size: 1.1rem; }
.ratespy-index-table { width: 100%; border-collapse: collapse; }
.ratespy-index-table th,
.ratespy-index-table td { padding: 0.5rem 0.75rem; text-align: left; border-bottom: 1px solid #e5e7eb; }
.ratespy-index-table th { background: #f3f4f6; font-size: 0.85rem; }
.ratespy-index-trend-cell { font-weight: 600; }

.ratespy-index-cta {
	margin-bottom: 1.5rem;
	padding: 1.5rem;
	background: #eff6ff;
	border-radius: 8px;
	border: 1px solid #bfdbfe;
	text-align: center;
}

.ratespy-index-cta-headline { margin: 0 0 0.75rem; font-size: 1.25rem; font-weight: 700; color: #1f2937; }
.ratespy-index-cta-text { margin: 0 0 1rem; font-size: 1rem; color: #374151; line-height: 1.5; }
.ratespy-index-cta-button {
	display: inline-block;
	padding: 0.75rem 1.5rem;
	background: #2563eb;
	color: #fff;
	text-decoration: none;
	border-radius: 6px;
	font-weight: 600;
}
.ratespy-index-cta-button:hover { background: #1d4ed8; color: #fff; }

/* B2B CTA – distinct from consumer CTA, professional/enterprise styling */
.ratespy-index-b2b-cta {
	margin-bottom: 1.5rem;
	padding: 1.5rem;
	background: #f8fafc;
	border-radius: 8px;
	border: 1px solid #e2e8f0;
	border-left: 4px solid #475569;
}

.ratespy-index-b2b-cta-heading { margin: 0 0 0.5rem; font-size: 1.15rem; font-weight: 700; color: #1e293b; }
.ratespy-index-b2b-cta-copy { margin: 0 0 0.75rem; font-size: 0.95rem; color: #475569; line-height: 1.5; }
.ratespy-index-b2b-cta-bullets {
	margin: 0 0 1rem;
	padding-left: 1.25rem;
	font-size: 0.9rem;
	color: #64748b;
	line-height: 1.6;
}
.ratespy-index-b2b-cta-bullets li { margin-bottom: 0.25rem; }
.ratespy-index-b2b-cta-action { margin: 0; }
.ratespy-index-b2b-cta .ratespy-index-b2b-cta-button {
	display: inline-block;
	padding: 0.6rem 1.25rem;
	background: #334155;
	color: #fff;
	text-decoration: none;
	border-radius: 6px;
	font-weight: 600;
	font-size: 0.95rem;
}
.ratespy-index-b2b-cta .ratespy-index-b2b-cta-button:hover { background: #1e293b; color: #fff; }

/* Compact B2B CTA for terminal header */
.ratespy-index-b2b-cta-compact {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem;
	margin: 0;
	padding: 0;
}
.ratespy-index-b2b-cta-compact-text {
	margin: 0;
	font-size: 0.85rem;
	color: #94a3b8;
	max-width: 200px;
}
.ratespy-terminal-b2b-header {
	margin-left: auto;
}
.ratespy-terminal-b2b-section { margin-top: 1.5rem; }

/* B2B Phase 3: Compare mode */
.ratespy-index-compare { margin-bottom: 1.5rem; }
.ratespy-index-compare-title { margin: 0 0 1rem; font-size: 1.2rem; }
.ratespy-index-compare-desc { margin: 0 0 1rem; color: #64748b; }
.ratespy-index-compare-form-inner { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; }
.ratespy-index-compare-form-inner label { margin-right: 0.25rem; }
.ratespy-index-compare-form-inner input[type="text"] { min-width: 220px; padding: 0.5rem; }
.ratespy-index-compare-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 1rem; }
.ratespy-index-compare-card {
	padding: 1rem;
	background: #f8fafc;
	border: 1px solid #e2e8f0;
	border-radius: 8px;
}
.ratespy-index-compare-card-label { margin: 0 0 0.5rem; font-size: 1rem; }
.ratespy-index-compare-card-label a { color: #2563eb; text-decoration: none; }
.ratespy-index-compare-card-label a:hover { text-decoration: underline; }
.ratespy-index-compare-card-summary { font-size: 0.9rem; color: #475569; margin-bottom: 0.5rem; line-height: 1.4; }
.ratespy-index-compare-card-rate { font-weight: 600; }
.ratespy-index-compare-card-trend.up { color: #dc2626; }
.ratespy-index-compare-card-trend.down { color: #059669; }
.ratespy-index-compare-card-error { border-color: #fecaca; background: #fef2f2; }

.ratespy-index-internal-links { margin-bottom: 1.5rem; }
.ratespy-index-internal-links-title { margin: 0 0 0.5rem; font-size: 1.1rem; }
.ratespy-index-internal-links-list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; }

/* FAQ - Professional card layout */
.ratespy-index-faq {
	margin-top: -1.5rem;
	margin-bottom: 2rem;
	padding: 1.75rem 1.5rem;
	background: #f8fafc !important;
	border-radius: 12px;
	border: 1px solid #cbd5e1 !important;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08) !important;
}
.ratespy-index-faq-title {
	margin: 0 0 1.5rem 0 !important;
	font-size: 1.35rem !important;
	font-weight: 700 !important;
	color: #0f172a !important;
	letter-spacing: 0.02em;
	border-bottom: 3px solid #0ea5e9 !important;
	padding-bottom: 0.5rem;
	display: inline-block;
}
.ratespy-index-faq-list {
	margin: 0 !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 0.75rem !important;
	padding: 0 !important;
	list-style: none !important;
}
.ratespy-index-faq-item {
	padding: 1rem 1.25rem 1rem 1.5rem !important;
	background: #ffffff !important;
	border-radius: 8px;
	border: 1px solid #e2e8f0 !important;
	border-left: 4px solid #0ea5e9 !important;
	transition: box-shadow 0.15s ease, border-color 0.15s ease;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}
.ratespy-index-faq-item:hover {
	box-shadow: 0 2px 8px rgba(14, 165, 233, 0.15) !important;
	border-left-color: #0284c7 !important;
}
.ratespy-index-faq-question {
	margin: 0 0 0.5rem 0 !important;
	font-size: 1rem !important;
	font-weight: 600 !important;
	color: #1e293b !important;
	line-height: 1.4;
}
.ratespy-index-faq-answer {
	margin: 0 !important;
	font-size: 0.95rem !important;
	color: #475569 !important;
	line-height: 1.55 !important;
}
/* FAQ inside terminal dark theme */
.ratespy-terminal-sections .ratespy-index-faq {
	background: rgba(255, 255, 255, 0.04) !important;
	border-color: rgba(255, 255, 255, 0.1) !important;
	box-shadow: none !important;
}
.ratespy-terminal-sections .ratespy-index-faq-title {
	color: #f8fafc !important;
	border-bottom-color: #0ea5e9 !important;
}
.ratespy-terminal-sections .ratespy-index-faq-item {
	background: rgba(0, 0, 0, 0.2) !important;
	border-color: rgba(255, 255, 255, 0.08) !important;
	border-left-color: #0ea5e9 !important;
}
.ratespy-terminal-sections .ratespy-index-faq-item:hover {
	background: rgba(0, 0, 0, 0.3) !important;
	box-shadow: 0 2px 8px rgba(14, 165, 233, 0.2) !important;
}
.ratespy-terminal-sections .ratespy-index-faq-question {
	color: #e2e8f0 !important;
}
.ratespy-terminal-sections .ratespy-index-faq-answer {
	color: #94a3b8 !important;
}

.ratespy-index-unavailable { padding: 1rem; background: #fef3c7; border-radius: 6px; color: #92400e; }

/* Data-being-collected notice for thin locations */
.ratespy-index-data-notice {
	margin-bottom: 1.5rem;
	padding: 1rem 1.25rem;
	background: #f0f9ff;
	border-radius: 8px;
	border: 1px solid #bae6fd;
}
.ratespy-index-data-notice-text {
	margin: 0;
	color: #0369a1;
	font-size: 0.9rem;
	line-height: 1.5;
}

/* Body carries .ratespy-index-hub (Hooks) — never set max-width on that selector or the whole viewport is boxed. */

/* Same terminal width on all index routes (hub, location terminal, full-width hub template). */
body.ratespy-index-page .ratespy-terminal,
body.ratespy-index-page .ratespy-terminal-sections.ratespy-terminal-full,
body.ratespy-index-page .ratespy-location-terminal-wrap {
	width: 100%;
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
	box-sizing: border-box;
}

/*
 * Bloomberg hub: full-viewport terminal shell; dark header/KPI/status are edge-to-edge.
 * Inner white column stays max 1200px via .ratespy-terminal-bloomberg-main (avoids 100vw scrollbar bugs).
 */
body.ratespy-index-page.ratespy-index-hub.ratespy-page-mode-bloomberg,
body.ratespy-index-page.ratespy-index-hub.ratespy-style-bloomberg {
	overflow-x: hidden;
}

body.ratespy-index-page.ratespy-index-hub.ratespy-page-mode-bloomberg .site-main .entry-content,
body.ratespy-index-page.ratespy-index-hub.ratespy-style-bloomberg .site-main .entry-content,
body.ratespy-index-page.ratespy-index-hub.ratespy-page-mode-bloomberg .content-area .entry-content,
body.ratespy-index-page.ratespy-index-hub.ratespy-style-bloomberg .content-area .entry-content {
	max-width: none;
	width: 100%;
	padding-left: 0;
	padding-right: 0;
	box-sizing: border-box;
}

/* Theme / page builder wrappers must span the viewport or the chrome/header stays a narrow band with white gutters */
body.ratespy-index-page.ratespy-index-hub.ratespy-page-mode-bloomberg #page,
body.ratespy-index-page.ratespy-index-hub.ratespy-style-bloomberg #page,
body.ratespy-index-page.ratespy-index-hub.ratespy-page-mode-bloomberg .site,
body.ratespy-index-page.ratespy-index-hub.ratespy-style-bloomberg .site,
body.ratespy-index-page.ratespy-index-hub.ratespy-page-mode-bloomberg .site-content,
body.ratespy-index-page.ratespy-index-hub.ratespy-style-bloomberg .site-content,
body.ratespy-index-page.ratespy-index-hub.ratespy-page-mode-bloomberg .site-main,
body.ratespy-index-page.ratespy-index-hub.ratespy-style-bloomberg .site-main,
body.ratespy-index-page.ratespy-index-hub.ratespy-page-mode-bloomberg #primary,
body.ratespy-index-page.ratespy-index-hub.ratespy-style-bloomberg #primary,
body.ratespy-index-page.ratespy-index-hub.ratespy-page-mode-bloomberg #content,
body.ratespy-index-page.ratespy-index-hub.ratespy-style-bloomberg #content,
body.ratespy-index-page.ratespy-index-hub.ratespy-page-mode-bloomberg .content-area,
body.ratespy-index-page.ratespy-index-hub.ratespy-style-bloomberg .content-area,
body.ratespy-index-page.ratespy-index-hub.ratespy-page-mode-bloomberg main,
body.ratespy-index-page.ratespy-index-hub.ratespy-style-bloomberg main {
	max-width: none;
	width: 100%;
	margin-left: 0;
	margin-right: 0;
	padding-left: 0;
	padding-right: 0;
	box-sizing: border-box;
}

body.ratespy-index-page.ratespy-index-hub.ratespy-page-mode-bloomberg .site .container,
body.ratespy-index-page.ratespy-index-hub.ratespy-style-bloomberg .site .container,
body.ratespy-index-page.ratespy-index-hub.ratespy-page-mode-bloomberg #page .container,
body.ratespy-index-page.ratespy-index-hub.ratespy-style-bloomberg #page .container {
	max-width: none;
	width: 100%;
	margin-left: 0;
	margin-right: 0;
	padding-left: 0;
	padding-right: 0;
	box-sizing: border-box;
}

body.ratespy-index-page.ratespy-index-hub.ratespy-page-mode-bloomberg .ratespy-theme-shell,
body.ratespy-index-page.ratespy-index-hub.ratespy-style-bloomberg .ratespy-theme-shell,
body.ratespy-index-page.ratespy-index-hub.ratespy-page-mode-bloomberg .ratespy-theme-shell__inner,
body.ratespy-index-page.ratespy-index-hub.ratespy-style-bloomberg .ratespy-theme-shell__inner {
	max-width: none;
	width: 100%;
	margin-left: 0;
	margin-right: 0;
	padding-left: 0;
	padding-right: 0;
	box-sizing: border-box;
}

/* Elementor (boxed sections / containers cap width below the terminal) */
body.ratespy-index-page.ratespy-index-hub.ratespy-page-mode-bloomberg .elementor-section .elementor-container,
body.ratespy-index-page.ratespy-index-hub.ratespy-style-bloomberg .elementor-section .elementor-container,
body.ratespy-index-page.ratespy-index-hub.ratespy-page-mode-bloomberg .elementor-row,
body.ratespy-index-page.ratespy-index-hub.ratespy-style-bloomberg .elementor-row {
	max-width: none !important;
	width: 100% !important;
	box-sizing: border-box;
}

body.ratespy-index-page.ratespy-index-hub.ratespy-page-mode-bloomberg .e-con,
body.ratespy-index-page.ratespy-index-hub.ratespy-style-bloomberg .e-con,
body.ratespy-index-page.ratespy-index-hub.ratespy-page-mode-bloomberg .e-con-inner,
body.ratespy-index-page.ratespy-index-hub.ratespy-style-bloomberg .e-con-inner {
	max-width: none !important;
	width: 100% !important;
	--container-max-width: 100%;
	box-sizing: border-box;
}

body.ratespy-index-page.ratespy-index-hub.ratespy-page-mode-bloomberg #ratespy-terminal.ratespy-bloomberg,
body.ratespy-index-page.ratespy-index-hub.ratespy-style-bloomberg #ratespy-terminal.ratespy-bloomberg {
	max-width: none;
	width: 100%;
	margin-left: 0;
	margin-right: 0;
	padding-left: 0;
	padding-right: 0;
	padding-top: 0;
	box-sizing: border-box;
}

/*
 * Hub Bloomberg: do not set background on #ratespy-terminal — it is min-height:100vh and would flood the viewport;
 * seams between shell rows are fixed with margin:0 on direct children (above).
 */

body.ratespy-index-page.ratespy-index-hub.ratespy-page-mode-bloomberg #ratespy-terminal.ratespy-bloomberg > .ratespy-exec-strip,
body.ratespy-index-page.ratespy-index-hub.ratespy-style-bloomberg #ratespy-terminal.ratespy-bloomberg > .ratespy-exec-strip {
	margin-top: 0;
	margin-bottom: 0;
	border-radius: 0;
	border-top: none;
	border-left: none;
	border-right: none;
}

body.ratespy-index-page.ratespy-index-hub.ratespy-page-mode-bloomberg #ratespy-terminal.ratespy-bloomberg > .ratespy-terminal-header,
body.ratespy-index-page.ratespy-index-hub.ratespy-style-bloomberg #ratespy-terminal.ratespy-bloomberg > .ratespy-terminal-header {
	margin-top: 0;
	margin-bottom: 0;
	border-radius: 0;
	border-top: none;
	border-left: none;
	border-right: none;
}

body.ratespy-index-page.ratespy-index-hub.ratespy-page-mode-bloomberg #ratespy-terminal.ratespy-bloomberg > .ratespy-bloomberg-status-strip,
body.ratespy-index-page.ratespy-index-hub.ratespy-style-bloomberg #ratespy-terminal.ratespy-bloomberg > .ratespy-bloomberg-status-strip {
	margin-top: 0;
	margin-bottom: 0;
	border-radius: 0;
	border-left: none;
	border-right: none;
}

/* JS-injected live bar (terminal.js injectLiveBar) — align with 1200px column like other shell rows */
body.ratespy-index-page.ratespy-index-hub.ratespy-page-mode-bloomberg #ratespy-terminal.ratespy-bloomberg > .ratespy-terminal-live-bar,
body.ratespy-index-page.ratespy-index-hub.ratespy-style-bloomberg #ratespy-terminal.ratespy-bloomberg > .ratespy-terminal-live-bar {
	margin-left: 0;
	margin-right: 0;
	margin-bottom: 0;
	padding-left: max(0.75rem, calc((100% - 1200px) / 2));
	padding-right: max(0.75rem, calc((100% - 1200px) / 2));
	border-radius: 0;
	border-left: none;
	border-right: none;
	border-top: none;
	box-sizing: border-box;
}

/* Reset negative horizontal insets from ratespy-terminal.css now that the shell is full width */
body.ratespy-index-page.ratespy-index-hub.ratespy-page-mode-bloomberg #ratespy-terminal.ratespy-bloomberg > .ratespy-index-chrome--header,
body.ratespy-index-page.ratespy-index-hub.ratespy-style-bloomberg #ratespy-terminal.ratespy-bloomberg > .ratespy-index-chrome--header {
	margin-bottom: 0;
	margin-left: 0;
	margin-right: 0;
	padding-left: max(0.75rem, calc((100% - 1200px) / 2));
	padding-right: max(0.75rem, calc((100% - 1200px) / 2));
}

body.ratespy-index-page.ratespy-index-hub.ratespy-page-mode-bloomberg #ratespy-terminal.ratespy-bloomberg > .ratespy-bloomberg-status-strip,
body.ratespy-index-page.ratespy-index-hub.ratespy-style-bloomberg #ratespy-terminal.ratespy-bloomberg > .ratespy-bloomberg-status-strip {
	margin-left: 0;
	margin-right: 0;
	padding-left: max(0.75rem, calc((100% - 1200px) / 2));
	padding-right: max(0.75rem, calc((100% - 1200px) / 2));
}

body.ratespy-index-page.ratespy-index-hub.ratespy-page-mode-bloomberg #ratespy-terminal.ratespy-bloomberg > .ratespy-exec-strip,
body.ratespy-index-page.ratespy-index-hub.ratespy-style-bloomberg #ratespy-terminal.ratespy-bloomberg > .ratespy-exec-strip,
body.ratespy-index-page.ratespy-index-hub.ratespy-page-mode-bloomberg #ratespy-terminal.ratespy-bloomberg > .ratespy-terminal-header,
body.ratespy-index-page.ratespy-index-hub.ratespy-style-bloomberg #ratespy-terminal.ratespy-bloomberg > .ratespy-terminal-header {
	margin-left: 0;
	margin-right: 0;
	padding-left: max(0.75rem, calc((100% - 1200px) / 2));
	padding-right: max(0.75rem, calc((100% - 1200px) / 2));
}

body.ratespy-index-page.ratespy-index-hub.ratespy-page-mode-bloomberg #ratespy-terminal.ratespy-bloomberg .ratespy-terminal-bloomberg-main,
body.ratespy-index-page.ratespy-index-hub.ratespy-style-bloomberg #ratespy-terminal.ratespy-bloomberg .ratespy-terminal-bloomberg-main {
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
}

body.ratespy-index-page.ratespy-index-hub.ratespy-page-mode-bloomberg #ratespy-terminal.ratespy-bloomberg .ratespy-index-chrome--footer,
body.ratespy-index-page.ratespy-index-hub.ratespy-style-bloomberg #ratespy-terminal.ratespy-bloomberg .ratespy-index-chrome--footer {
	margin-left: 0;
	margin-right: 0;
	padding-left: max(0.75rem, calc((100% - 1200px) / 2));
	padding-right: max(0.75rem, calc((100% - 1200px) / 2));
}

body.ratespy-index-page.ratespy-index-hub.ratespy-page-mode-bloomberg #ratespy-terminal.ratespy-bloomberg .ratespy-terminal-footer,
body.ratespy-index-page.ratespy-index-hub.ratespy-style-bloomberg #ratespy-terminal.ratespy-bloomberg .ratespy-terminal-footer {
	margin-left: 0;
	margin-right: 0;
	padding-left: max(0.75rem, calc((100% - 1200px) / 2));
	padding-right: max(0.75rem, calc((100% - 1200px) / 2));
}

body.ratespy-index-page.ratespy-page-mode-bloomberg .ratespy-terminal-sections.ratespy-terminal-full {
	background: #ffffff;
}

/* Location (state/city/ZIP): one middle column — chrome + status + terminal share width; grey side rules */
body.ratespy-index-page.ratespy-index-location-classic .ratespy-location-classic-shell.ratespy-bloomberg {
	max-width: 1200px;
	width: 100%;
	margin-left: auto;
	margin-right: auto;
	box-sizing: border-box;
	border-left: 1px solid #cbd5e1;
	border-right: 1px solid #cbd5e1;
}

body.ratespy-index-page.ratespy-index-location-classic .ratespy-location-classic-shell.ratespy-bloomberg > .ratespy-index-chrome--header,
body.ratespy-index-page.ratespy-index-location-classic .ratespy-location-classic-shell.ratespy-bloomberg > .ratespy-index-chrome--footer {
	margin-left: 0;
	margin-right: 0;
}

body.ratespy-index-page.ratespy-index-location-classic .ratespy-location-classic-shell.ratespy-bloomberg > .ratespy-bloomberg-status-strip {
	margin-left: 0;
	margin-right: 0;
}

body.ratespy-index-page.ratespy-index-location-classic .ratespy-location-classic-shell.ratespy-bloomberg #ratespy-terminal {
	max-width: none;
	width: 100%;
	margin-left: 0;
	margin-right: 0;
}
.ratespy-index-hub .ratespy-index-h1 { margin-bottom: 0.5rem; }
.ratespy-index-hub-search { margin: 1.5rem 0; padding: 1rem; background: #f9fafb; border-radius: 8px; }
.ratespy-index-zip-form { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
.ratespy-index-zip-form label { margin-right: 0.5rem; }
.ratespy-index-zip-form input { padding: 0.5rem 0.75rem; border: 1px solid #d1d5db; border-radius: 4px; }
.ratespy-index-zip-form button { padding: 0.5rem 1rem; background: #2563eb; color: #fff; border: none; border-radius: 4px; cursor: pointer; }
.ratespy-index-hub-note { margin: 0.5rem 0 0; font-size: 0.85rem; color: #6b7280; }
.ratespy-index-hub-national { margin: 1.5rem 0; padding: 1rem; background: #f0f9ff; border-radius: 8px; border: 1px solid #bae6fd; }
.ratespy-index-hub-national-trend { margin: 0 0 0.75rem; }
.ratespy-index-h2 { margin: 1.5rem 0 0.5rem; font-size: 1.25rem; }
.ratespy-index-h2:first-of-type { margin-top: 0; }
.ratespy-index-hub-state-list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.25rem 1rem; }
.ratespy-index-hub-movers { margin-bottom: 0.5rem; }
.ratespy-index-hub-map-section { margin: 1.5rem 0; }
.ratespy-index-hub-map-desc { margin: 0 0 0.75rem; color: #64748b; font-size: 0.9rem; }
.ratespy-index-map { background: #f8fafc; min-height: 420px; width: 100%; }
.ratespy-map-svg { vertical-align: top; }
.ratespy-map-svg-wrap { cursor: default; }
.ratespy-map-state-link { cursor: pointer; display: block; }
.ratespy-map-state-link:hover .ratespy-map-state-path { stroke: #0ea5e9; stroke-width: 1.5; }
.ratespy-map-state-path { transition: stroke 0.15s, stroke-width 0.15s; }
.ratespy-map-fallback { padding: 2rem; text-align: center; color: #64748b; }
.ratespy-map-tooltip { font-size: 12px; font-weight: 600; }
.ratespy-map-legend {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem 1.5rem;
	padding: 0.5rem 0.75rem;
	font-size: 0.75rem;
	color: #64748b;
	background: rgba(248, 250, 252, 0.95);
	border-top: 1px solid #e2e8f0;
}
.ratespy-map-legend span span { display: inline-block; margin-right: 0.35rem; vertical-align: middle; }
.ratespy-index-hub-cta { margin-top: 1.5rem; padding: 1.5rem; text-align: center; background: #eff6ff; border-radius: 8px; border: 1px solid #bfdbfe; }
.ratespy-index-hub-cta .ratespy-index-cta-text { margin-bottom: 1rem; }
.ratespy-index-confidence { color: #6b7280; font-size: 0.85rem; }

/* Classic hub: hide theme header/footer so only index content shows. Bloomberg hub: same for full-bleed terminal (matches Elementor reference). */
body.ratespy-page-mode-classic.ratespy-index-page.ratespy-index-hub .elementor-location-header,
body.ratespy-page-mode-classic.ratespy-index-page.ratespy-index-hub #masthead,
body.ratespy-page-mode-classic.ratespy-index-page.ratespy-index-hub .site-header,
body.ratespy-page-mode-classic.ratespy-index-page.ratespy-index-hub header.site-header,
body.ratespy-page-mode-bloomberg.ratespy-index-page.ratespy-index-hub .elementor-location-header,
body.ratespy-page-mode-bloomberg.ratespy-index-page.ratespy-index-hub #masthead,
body.ratespy-page-mode-bloomberg.ratespy-index-page.ratespy-index-hub .site-header,
body.ratespy-page-mode-bloomberg.ratespy-index-page.ratespy-index-hub header.site-header,
body.ratespy-page-mode-classic.ratespy-index-page.ratespy-index-hub .elementor-location-footer,
body.ratespy-page-mode-classic.ratespy-index-page.ratespy-index-hub #colophon,
body.ratespy-page-mode-classic.ratespy-index-page.ratespy-index-hub .site-footer,
body.ratespy-page-mode-classic.ratespy-index-page.ratespy-index-hub footer.site-footer,
body.ratespy-page-mode-bloomberg.ratespy-index-page.ratespy-index-hub .elementor-location-footer,
body.ratespy-page-mode-bloomberg.ratespy-index-page.ratespy-index-hub #colophon,
body.ratespy-page-mode-bloomberg.ratespy-index-page.ratespy-index-hub .site-footer,
body.ratespy-page-mode-bloomberg.ratespy-index-page.ratespy-index-hub footer.site-footer {
	display: none !important;
}

.ratespy-terminal-design-classic .ratespy-terminal-classic-intro {
	padding: 1rem 0 0.5rem;
}
.ratespy-terminal-design-classic .ratespy-terminal-classic-h1 {
	margin: 0 0 0.5rem;
	font-size: clamp(1.25rem, 2.5vw, 1.75rem);
	font-weight: 700;
	color: #0f172a;
}
.ratespy-terminal-design-classic .ratespy-terminal-classic-sub {
	margin: 0;
	color: #64748b;
	font-size: 0.95rem;
}

/* Hide common page-title output from theme/Elementor so location H1 is the only visible page title. */
.ratespy-index-page .entry-title { display: none !important; }
.ratespy-index-page .page-title { display: none !important; }
.ratespy-index-page .elementor-widget-theme-post-title { display: none !important; }
.ratespy-index-page .elementor-page-title { display: none !important; }

/* ========== RateSpyAlert Live Data Hub - Professional Leaderboard Design ========== */

/* Market Pulse - BEARISH/BULLISH/NEUTRAL */
.ratespy-index-market-pulse {
	margin-bottom: 1.5rem;
	padding: 1.25rem 1.5rem;
	border-radius: 12px;
	border: 2px solid #e2e8f0;
	background: #f8fafc;
}
.ratespy-index-market-pulse-headline {
	margin: 0 0 0.75rem 0;
	font-size: 1rem;
	font-weight: 600;
	color: #64748b;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}
.ratespy-index-market-pulse-badge {
	display: inline-flex;
	flex-direction: column;
	gap: 0.15rem;
	padding: 0.6rem 1.25rem;
	border-radius: 8px;
	font-weight: 700;
}
.ratespy-index-market-pulse-value {
	font-size: 1.5rem;
	letter-spacing: 0.08em;
}
.ratespy-index-market-pulse-sub {
	font-size: 0.85rem;
	font-weight: 600;
	opacity: 0.95;
}
.ratespy-index-pulse-bearish .ratespy-index-market-pulse-badge {
	background: #d1fae5;
	color: #065f46;
	border: 1px solid #a7f3d0;
}
.ratespy-index-pulse-bullish .ratespy-index-market-pulse-badge {
	background: #fee2e2;
	color: #991b1b;
	border: 1px solid #fecaca;
}
.ratespy-index-pulse-neutral .ratespy-index-market-pulse-badge {
	background: #e2e8f0;
	color: #475569;
	border: 1px solid #cbd5e1;
}

/* Volatility Score - X/100 */
.ratespy-index-volatility-score {
	margin-bottom: 1.5rem;
	padding: 1.25rem 1.5rem;
	border-radius: 12px;
	border: 1px solid #e2e8f0;
	background: #f8fafc;
}
.ratespy-index-volatility-score-title {
	margin: 0 0 0.75rem 0;
	font-size: 1rem;
	font-weight: 600;
	color: #64748b;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}
.ratespy-index-volatility-score-value {
	margin-bottom: 0.5rem;
}
.ratespy-index-volatility-score-number {
	font-size: 2.5rem;
	font-weight: 800;
	line-height: 1;
}
.ratespy-index-volatility-score-divider {
	font-size: 1.25rem;
	font-weight: 600;
	color: #94a3b8;
}
.ratespy-index-volatility-score-meaning {
	margin: 0;
	font-size: 0.95rem;
	color: #64748b;
	font-weight: 500;
}
.ratespy-index-vol-high .ratespy-index-volatility-score-number { color: #dc2626; }
.ratespy-index-vol-moderate .ratespy-index-volatility-score-number { color: #d97706; }
.ratespy-index-vol-low .ratespy-index-volatility-score-number { color: #059669; }

/* Live Status Strip */
.ratespy-index-live-status {
	margin-bottom: 1.75rem;
	padding: 1.25rem 1.5rem;
	background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%);
	border-radius: 12px;
	box-shadow: 0 4px 20px rgba(15, 23, 42, 0.25);
	color: #f8fafc;
}
.ratespy-index-live-status-title {
	margin: 0 0 1rem 0;
	font-size: 1rem;
	font-weight: 600;
	color: #94a3b8;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}
.ratespy-index-live-status-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 1.25rem;
}
.ratespy-index-live-status-item {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	padding: 0.75rem;
	background: rgba(255, 255, 255, 0.06);
	border-radius: 8px;
	border: 1px solid rgba(255, 255, 255, 0.08);
}
.ratespy-index-live-status-label {
	font-size: 0.75rem;
	color: #94a3b8;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}
.ratespy-index-live-status-value {
	font-size: 1.125rem;
	font-weight: 700;
	color: #f8fafc;
}

/* Leaderboard - Professional Market Terminal Style */
.ratespy-index-leaderboard {
	margin-bottom: 2rem;
	padding: 1.5rem 1.75rem;
	background: #ffffff;
	border-radius: 12px;
	border: 1px solid #e2e8f0;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}
.ratespy-index-leaderboard-title {
	margin: 0 0 1.25rem 0;
	font-size: 1.25rem;
	font-weight: 700;
	color: #0f172a;
	border-bottom: 2px solid #0ea5e9;
	padding-bottom: 0.5rem;
	display: inline-block;
}
.ratespy-index-leaderboard-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 1.5rem;
}
.ratespy-index-leaderboard-col {
	overflow: hidden;
	border-radius: 8px;
	border: 1px solid #e2e8f0;
}
.ratespy-index-leaderboard-col-title {
	margin: 0;
	padding: 0.65rem 1rem;
	font-size: 0.9rem;
	font-weight: 600;
	background: #f1f5f9;
	color: #334155;
	border-bottom: 1px solid #e2e8f0;
}
.ratespy-index-leaderboard-col-title.ratespy-index-drops-title {
	background: #ecfdf5;
	color: #065f46;
}
.ratespy-index-leaderboard-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9rem;
}
.ratespy-index-leaderboard-table th {
	padding: 0.6rem 1rem;
	text-align: left;
	background: #f8fafc;
	color: #64748b;
	font-weight: 600;
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}
.ratespy-index-leaderboard-table td {
	padding: 0.6rem 1rem;
	border-bottom: 1px solid #f1f5f9;
}
.ratespy-index-leaderboard-table tr:last-child td {
	border-bottom: none;
}
.ratespy-index-leaderboard-table tr:hover td {
	background: #f8fafc;
}
.ratespy-index-leaderboard-table a {
	color: #0ea5e9;
	text-decoration: none;
	font-weight: 500;
}
.ratespy-index-leaderboard-table a:hover {
	text-decoration: underline;
}

/* Activity Feed - Real-Time Ticker Style */
.ratespy-index-activity-feed {
	margin-bottom: 1.75rem;
	padding: 1.25rem 1.5rem;
	background: linear-gradient(180deg, #f0fdf4 0%, #dcfce7 100%);
	border-radius: 12px;
	border: 1px solid #86efac;
	box-shadow: 0 1px 3px rgba(34, 197, 94, 0.08);
}
.ratespy-index-activity-feed-title {
	margin: 0 0 1rem 0;
	font-size: 1.1rem;
	font-weight: 700;
	color: #166534;
}
.ratespy-index-activity-feed-list {
	margin: 0;
	padding: 0;
	list-style: none;
}
.ratespy-index-activity-feed-item {
	padding: 0.5rem 0;
	border-bottom: 1px solid rgba(34, 197, 94, 0.2);
	font-size: 0.95rem;
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.4rem;
}
.ratespy-index-activity-feed-item:last-child {
	border-bottom: none;
}
.ratespy-index-activity-feed-time {
	color: #64748b;
	font-size: 0.8rem;
	font-weight: 500;
	min-width: 4.5rem;
}
.ratespy-index-activity-feed-item a {
	color: #0ea5e9;
	text-decoration: none;
	font-weight: 600;
}
.ratespy-index-activity-feed-item a:hover {
	text-decoration: underline;
}
.ratespy-index-activity-feed-signal {
	color: #166534;
	font-weight: 600;
	margin-left: auto;
}

/* Switch Windows */
.ratespy-index-switch-windows {
	margin-bottom: 1.75rem;
	padding: 1.25rem 1.5rem;
	background: #fffbeb;
	border-radius: 12px;
	border: 1px solid #fde68a;
	box-shadow: 0 1px 3px rgba(245, 158, 11, 0.06);
}
.ratespy-index-switch-windows-title {
	margin: 0 0 0.5rem 0;
	font-size: 1.1rem;
	font-weight: 700;
	color: #92400e;
}
.ratespy-index-switch-windows-desc {
	margin: 0 0 1rem 0;
	font-size: 0.9rem;
	color: #78716c;
}
.ratespy-index-switch-windows-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9rem;
	border-radius: 8px;
	overflow: hidden;
	border: 1px solid #fde68a;
}
.ratespy-index-switch-windows-table th {
	padding: 0.65rem 1rem;
	text-align: left;
	background: #fef3c7;
	color: #92400e;
	font-weight: 600;
}
.ratespy-index-switch-windows-table td {
	padding: 0.6rem 1rem;
	border-bottom: 1px solid #fde68a;
	background: #fffbeb;
}
.ratespy-index-switch-windows-table tr:last-child td {
	border-bottom: none;
}
.ratespy-index-switch-windows-table a {
	color: #0ea5e9;
	text-decoration: none;
	font-weight: 600;
}
.ratespy-index-strength-strong {
	background: #22c55e;
	color: #fff;
	padding: 0.2rem 0.5rem;
	border-radius: 4px;
	font-size: 0.8rem;
	font-weight: 600;
}
.ratespy-index-strength-medium {
	background: #eab308;
	color: #422006;
	padding: 0.2rem 0.5rem;
	border-radius: 4px;
	font-size: 0.8rem;
	font-weight: 600;
}
.ratespy-index-strength-low {
	background: #94a3b8;
	color: #fff;
	padding: 0.2rem 0.5rem;
	border-radius: 4px;
	font-size: 0.8rem;
	font-weight: 600;
}

/* Hub ZIP Leaderboard (legacy - kept for compat) */
.ratespy-index-hub-zip-list {
	list-style: none;
	margin: 0.5rem 0 0 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1rem;
}
.ratespy-index-hub-zip-list li {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.35rem 0.65rem;
	background: rgba(14, 165, 233, 0.08);
	border-radius: 6px;
	border: 1px solid rgba(14, 165, 233, 0.2);
}
.ratespy-index-hub-zip-list a {
	color: #0284c7;
	text-decoration: none;
	font-weight: 600;
}
.ratespy-index-hub-zip-list a:hover {
	text-decoration: underline;
}

/* Live Hub Widget - Prominent National Leaderboard */
.ratespy-index-hub-live-leaderboard {
	margin: 1.5rem 0 2rem;
	padding: 1.5rem 1.75rem;
	background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%);
	border-radius: 14px;
	box-shadow: 0 8px 32px rgba(15, 23, 42, 0.35);
	border: 1px solid rgba(255, 255, 255, 0.08);
}
.ratespy-index-hub-live-leaderboard-header {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem;
	margin-bottom: 1.25rem;
}
.ratespy-index-hub-live-leaderboard-title {
	margin: 0;
	font-size: 1.35rem;
	font-weight: 700;
	color: #f8fafc;
	letter-spacing: 0.02em;
}
.ratespy-index-hub-live-leaderboard-badge {
	display: inline-block;
	padding: 0.3rem 0.75rem;
	background: rgba(14, 165, 233, 0.3);
	color: #7dd3fc;
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	border-radius: 6px;
	border: 1px solid rgba(14, 165, 233, 0.4);
}
.ratespy-index-hub-live-leaderboard-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 1.5rem;
}
.ratespy-index-hub-live-leaderboard-col {
	padding: 1rem 1.25rem;
	background: rgba(255, 255, 255, 0.05);
	border-radius: 10px;
	border: 1px solid rgba(255, 255, 255, 0.08);
}
.ratespy-index-hub-live-col-title {
	margin: 0 0 0.85rem 0;
	font-size: 0.9rem;
	font-weight: 600;
	color: #94a3b8;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}
.ratespy-index-hub-live-drops .ratespy-index-hub-live-col-title { color: #6ee7b7; }
.ratespy-index-hub-live-rises .ratespy-index-hub-live-col-title { color: #fca5a5; }
.ratespy-index-hub-live-zip-list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.ratespy-index-hub-live-zip-list li {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	padding: 0.5rem 0.65rem;
	margin-bottom: 0.35rem;
	background: rgba(0, 0, 0, 0.2);
	border-radius: 6px;
	transition: background 0.15s ease;
}
.ratespy-index-hub-live-zip-list li:hover {
	background: rgba(0, 0, 0, 0.3);
}
.ratespy-index-hub-live-zip-list li:last-child { margin-bottom: 0; }
.ratespy-index-hub-live-zip-list a {
	color: #e2e8f0;
	text-decoration: none;
	font-weight: 600;
	font-size: 0.95rem;
}
.ratespy-index-hub-live-zip-list a:hover {
	color: #7dd3fc;
}
.ratespy-index-hub-live-pct {
	font-weight: 700;
	font-size: 1rem;
	flex-shrink: 0;
}
.ratespy-index-hub-live-pct-down { color: #34d399; }
.ratespy-index-hub-live-pct-up { color: #f87171; }
