/*
Theme Name: mango-salient
Text Domain: mango-salient
Description: Fast, minimal editorial theme for Mango Market. Single stylesheet, no web fonts, no jQuery.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: GPL-2.0-or-later
*/

/* ============================================================
   Tokens. Monochrome editorial, one mango accent.
   ============================================================ */
:root {
	--ms-bg: #ffffff;
	--ms-bg-soft: #f6f6f4;
	--ms-ink: #0a0a0a;
	--ms-ink-2: #3a3a3a;
	--ms-muted: #6f6f6f;
	--ms-line: #e6e6e3;
	--ms-line-strong: #cfcfca;
	--ms-accent: #f28c1d;
	--ms-accent-soft: #fff1e3;
	--ms-good: #167a4a;
	--ms-good-soft: #e6f4ec;
	--ms-radius: 14px;
	--ms-radius-sm: 8px;
	--ms-sans: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--ms-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	--ms-wrap: 1240px;
	--ms-gutter: clamp(20px, 4vw, 48px);
	--ms-ease: cubic-bezier(0.2, 0.7, 0.2, 1);

	/* Legacy names used by plugin markup and older custom CSS. */
	--mm-paper: var(--ms-bg);
	--mm-paper-soft: var(--ms-bg-soft);
	--mm-card: var(--ms-bg);
	--mm-ink: var(--ms-ink-2);
	--mm-ink-deep: var(--ms-ink);
	--mm-ink-soft: var(--ms-muted);
	--mm-primary: var(--ms-ink);
	--mm-primary-dark: var(--ms-ink);
	--mm-olive: var(--ms-good);
	--mm-mango: var(--ms-accent);
	--mm-line: var(--ms-line);
	--mm-serif: var(--ms-sans);
	--mm-sans: var(--ms-sans);
	--mm-shadow: none;
	--mm-radius: var(--ms-radius);
}

/* ============================================================
   Base
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; animation: none !important; } }

body {
	margin: 0;
	background: var(--ms-bg);
	color: var(--ms-ink-2);
	font-family: var(--ms-sans);
	font-size: 1.0625rem;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

img, svg, video { max-width: 100%; height: auto; display: block; }
a { color: var(--ms-ink); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; text-decoration-color: var(--ms-line-strong); transition: color .15s var(--ms-ease), text-decoration-color .15s var(--ms-ease); }
a:hover { text-decoration-color: var(--ms-ink); }
:focus-visible { outline: 2px solid var(--ms-ink); outline-offset: 3px; border-radius: 4px; }
::selection { background: var(--ms-accent-soft); color: var(--ms-ink); }

h1, h2, h3, h4, h5, h6 {
	color: var(--ms-ink);
	font-weight: 600;
	letter-spacing: -0.025em;
	line-height: 1.1;
	margin: 0 0 0.5em;
	text-wrap: balance;
}
h1 { font-size: clamp(2.4rem, 5.2vw, 4rem); letter-spacing: -0.035em; }
h2 { font-size: clamp(1.7rem, 3.2vw, 2.5rem); margin-top: 2.2em; }
h3 { font-size: 1.25rem; letter-spacing: -0.015em; margin-top: 1.6em; }
h4 { font-size: 1.05rem; margin-top: 1.4em; }
h2:first-child, h3:first-child { margin-top: 0; }

p, ul, ol, dl, blockquote, table, figure, pre { margin: 0 0 1.25em; }
ul, ol { padding-left: 1.3em; }
li { margin-bottom: 0.35em; }
body strong, body b { font-weight: 600; color: var(--ms-ink); }
body a { color: var(--ms-ink); }
em, i { font-style: italic; }
small { font-size: 0.875em; }
hr { border: 0; border-top: 1px solid var(--ms-line); margin: 3rem 0; }
code, kbd { font-family: var(--ms-mono); font-size: 0.92em; background: var(--ms-bg-soft); padding: 0.15em 0.4em; border-radius: 5px; }
pre { background: var(--ms-bg-soft); padding: 1rem 1.2rem; border-radius: var(--ms-radius-sm); overflow: auto; }
pre code { background: none; padding: 0; }
blockquote { border-left: 2px solid var(--ms-ink); margin-left: 0; padding: 0.2rem 0 0.2rem 1.4rem; color: var(--ms-ink); font-size: 1.15rem; letter-spacing: -0.01em; }
figcaption { font-size: 0.85rem; color: var(--ms-muted); margin-top: 0.5rem; }

table { width: 100%; border-collapse: collapse; font-size: 0.95rem; }
th, td { text-align: left; padding: 0.8rem 0.9rem; border-bottom: 1px solid var(--ms-line); vertical-align: top; }
th { font-size: 0.72rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ms-muted); }
tbody tr:hover { background: var(--ms-bg-soft); }

.screen-reader-text { position: absolute !important; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; width: 1px; overflow: hidden; word-wrap: normal !important; }
.skip-link { position: absolute; left: -999px; top: 0; z-index: 100; background: var(--ms-ink); color: #fff; padding: 0.6rem 1rem; text-decoration: none; }
.skip-link:focus { left: 1rem; top: 1rem; }

/* ============================================================
   Layout
   ============================================================ */
.ms-wrap { width: 100%; max-width: var(--ms-wrap); margin: 0 auto; padding-left: var(--ms-gutter); padding-right: var(--ms-gutter); }
.ms-narrow { max-width: 820px; }
.ms-main { min-height: 60vh; }
.ms-article { padding: clamp(1.6rem, 4vw, 3.2rem) 0 clamp(3rem, 6vw, 5rem); }
.entry-content > *:last-child { margin-bottom: 0; }
.alignwide { max-width: var(--ms-wrap); margin-left: auto; margin-right: auto; }
.alignfull { width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); }

/* Eyebrow: the small numbered label used across the design. */
.ms-eyebrow, .mm-kicker, .ms-footer-heading {
	display: inline-block;
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--ms-muted);
	margin: 0 0 1rem;
}

.ms-page-head { padding: 0 0 clamp(1.2rem, 3vw, 2.4rem); margin-bottom: clamp(1.4rem, 3vw, 2.4rem); border-bottom: 1px solid var(--ms-line); }
.ms-page-title { margin: 0; max-width: 20ch; }
.ms-meta { display: flex; align-items: center; gap: 0.6rem; font-size: 0.85rem; color: var(--ms-muted); margin: 1rem 0 0; }
.ms-meta-sep { width: 4px; height: 4px; border-radius: 50%; background: var(--ms-line-strong); }
.ms-lead { font-size: 1.2rem; color: var(--ms-ink-2); max-width: 60ch; }
.ms-fine, .mm-fine, .mdp-fineprint { font-size: 0.82rem; color: var(--ms-muted); border-top: 1px solid var(--ms-line); padding-top: 1rem; margin-top: 3rem; }
.ms-featured { margin: 0 0 2rem; }
.ms-featured img { width: 100%; border-radius: var(--ms-radius); }
.ms-post-footer { margin-top: 2rem; }

/* ============================================================
   Buttons
   ============================================================ */
.ms-btn, .mm-btn, .mdp-cta, .provider-button, .wp-block-button__link, .mdp-hub-link, .mpm-lp-cta a, .mpm-pp-cta a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	font-family: var(--ms-sans);
	font-weight: 600;
	font-size: 0.95rem;
	line-height: 1;
	padding: 0.9rem 1.5rem;
	border-radius: 999px;
	background: var(--ms-ink);
	color: #fff !important;
	border: 1px solid var(--ms-ink);
	text-decoration: none !important;
	cursor: pointer;
	white-space: nowrap;
	transition: background .18s var(--ms-ease), border-color .18s var(--ms-ease), transform .18s var(--ms-ease);
}
.ms-btn:hover, .mm-btn:hover, .mdp-cta:hover, .provider-button:hover, .wp-block-button__link:hover, .mdp-hub-link:hover { background: #2a2a2a; border-color: #2a2a2a; transform: translateY(-1px); }
.ms-btn-alt, .mm-btn-alt, .mdp-hub-link { background: transparent; color: var(--ms-ink) !important; border-color: var(--ms-line-strong); }
.ms-btn-alt:hover, .mm-btn-alt:hover, .mdp-hub-link:hover { background: var(--ms-bg-soft); border-color: var(--ms-ink); color: var(--ms-ink) !important; }
.ms-btn-sm, .mdp-hub-link, .mpm-lp-cta a, .mpm-pp-cta a { padding: 0.65rem 1.1rem; font-size: 0.875rem; }
.ms-btn-row { display: flex; flex-wrap: wrap; gap: 0.7rem; }
.ms-arrow-link { display: inline-flex; align-items: center; gap: 0.4rem; font-weight: 600; font-size: 0.9rem; color: var(--ms-ink); text-decoration: none; }
.ms-arrow-link::after, .mm-dose-link::after { content: "\2192"; display: inline-block; transition: transform .18s var(--ms-ease); }
.ms-arrow-link:hover::after, .mm-dose-link:hover::after { transform: translateX(3px); }

/* ============================================================
   Header
   ============================================================ */
.ms-header { position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,0.86); backdrop-filter: saturate(160%) blur(12px); -webkit-backdrop-filter: saturate(160%) blur(12px); border-bottom: 1px solid var(--ms-line); }
.ms-header-inner { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-height: 68px; }
.ms-brand { display: inline-flex; align-items: center; gap: 0.55rem; text-decoration: none !important; color: var(--ms-ink); font-weight: 700; letter-spacing: -0.03em; font-size: 1.2rem; }
.ms-brand img { height: 36px; width: auto; }
.ms-brand-dot { width: 12px; height: 12px; border-radius: 50%; background: var(--ms-accent); box-shadow: inset -3px -3px 0 rgba(0,0,0,0.12); flex: none; }
.ms-brand-name::after { content: "\00AE"; font-size: 0.55em; vertical-align: super; margin-left: 1px; font-weight: 500; }

.ms-nav { display: flex; align-items: center; gap: 1.2rem; }
.ms-menu, .ms-menu ul { list-style: none; margin: 0; padding: 0; }
.ms-menu { display: flex; align-items: center; gap: 0.2rem; }
.ms-menu li { margin: 0; position: relative; }
.ms-menu a { display: inline-block; padding: 0.5rem 0.75rem; font-size: 0.92rem; font-weight: 500; color: var(--ms-ink-2); text-decoration: none; border-radius: 999px; transition: background .15s var(--ms-ease), color .15s var(--ms-ease); }
.ms-menu a:hover, .ms-menu li:focus-within > a { background: var(--ms-bg-soft); color: var(--ms-ink); }
.ms-menu .current-menu-item > a, .ms-menu .current-menu-ancestor > a { color: var(--ms-ink); font-weight: 600; }
.ms-menu .menu-item-has-children > a::after { content: ""; display: inline-block; width: 6px; height: 6px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); margin: 0 0 3px 0.5rem; opacity: 0.6; }
.ms-menu .sub-menu { position: absolute; top: calc(100% + 6px); left: 0; min-width: 220px; background: #fff; border: 1px solid var(--ms-line); border-radius: 12px; padding: 0.4rem; box-shadow: 0 16px 40px -16px rgba(0,0,0,0.25); opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .18s var(--ms-ease), transform .18s var(--ms-ease), visibility 0s .18s; }
.ms-menu li:hover > .sub-menu, .ms-menu li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.ms-menu .sub-menu a { display: block; padding: 0.55rem 0.8rem; border-radius: 8px; font-size: 0.9rem; }

.ms-nav-toggle { display: none; align-items: center; gap: 0.6rem; background: none; border: 1px solid var(--ms-line-strong); border-radius: 999px; padding: 0.55rem 0.95rem; font: inherit; font-size: 0.85rem; font-weight: 600; color: var(--ms-ink); cursor: pointer; }
.ms-nav-toggle-bar { width: 16px; height: 2px; background: currentColor; position: relative; }
.ms-nav-toggle-bar::before, .ms-nav-toggle-bar::after { content: ""; position: absolute; left: 0; width: 100%; height: 2px; background: currentColor; }
.ms-nav-toggle-bar::before { top: -5px; }
.ms-nav-toggle-bar::after { top: 5px; }

@media (max-width: 980px) {
	.ms-nav-toggle { display: inline-flex; }
	.ms-nav { position: fixed; inset: 68px 0 0 0; background: #fff; flex-direction: column; align-items: stretch; padding: 1rem var(--ms-gutter) 2rem; overflow: auto; transform: translateY(-8px); opacity: 0; visibility: hidden; transition: opacity .2s var(--ms-ease), transform .2s var(--ms-ease), visibility 0s .2s; }
	body.ms-nav-open .ms-nav { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
	body.ms-nav-open { overflow: hidden; }
	.ms-menu { flex-direction: column; align-items: stretch; gap: 0; }
	.ms-menu > li { border-bottom: 1px solid var(--ms-line); }
	.ms-menu a { display: block; padding: 0.95rem 0; font-size: 1.1rem; border-radius: 0; }
	.ms-menu a:hover { background: none; }
	.ms-menu .menu-item-has-children > a::after { float: right; margin-top: 0.55rem; }
	.ms-menu .sub-menu { position: static; opacity: 1; visibility: visible; transform: none; border: 0; box-shadow: none; padding: 0 0 0.6rem 1rem; min-width: 0; }
	.ms-menu .sub-menu a { padding: 0.5rem 0; font-size: 1rem; color: var(--ms-muted); }
	.ms-nav-cta { padding-top: 1.2rem; }
	.ms-nav-cta .ms-btn { width: 100%; }
}

/* ============================================================
   Homepage components (mm-*) restyled
   ============================================================ */
.mm-hero { padding: clamp(2.5rem, 8vw, 7rem) 0 clamp(2rem, 5vw, 4rem); max-width: 980px; }
.mm-hero h1, h1.mm-hero-title { font-size: clamp(2.8rem, 7.2vw, 5.6rem); line-height: 0.98; letter-spacing: -0.045em; max-width: 14ch; margin: 0 0 1.4rem; }
.mm-hero h1 em { font-style: normal; color: var(--ms-accent); }
.mm-sub { font-size: clamp(1.1rem, 1.6vw, 1.3rem); color: var(--ms-ink-2); max-width: 56ch; margin: 0 0 2rem; }
.mm-hero p:last-child { display: flex; flex-wrap: wrap; gap: 0.7rem; margin: 0; }
.mm-hero .mm-btn { margin: 0; }
.mm-kicker { background: none; border: 0; padding: 0; margin-bottom: 1.4rem; }
.mm-kicker::before { content: ""; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--ms-good); margin-right: 0.6rem; vertical-align: 1px; }

/* Direct answer block */
.mm-answer { background: var(--ms-bg-soft); border: 1px solid var(--ms-line); border-radius: var(--ms-radius); padding: 1.4rem 1.6rem; margin: 0 0 2.5rem; }
.mm-answer > p { margin: 0; }
.mm-answer > p > strong { display: block; font-size: 1.15rem; letter-spacing: -0.02em; margin-bottom: 0.6rem; }
.mm-answer br { display: none; }
.page-summary { margin: 0; }
.page-summary p, .page-summary li { margin: 0 0 0.25rem; font-size: 0.98rem; color: var(--ms-ink-2); }
.page-summary ul { list-style: none; padding: 0; }
.page-summary li::before { content: "\2014"; color: var(--ms-line-strong); margin-right: 0.6rem; }
.mpm-price-answer p:first-child { font-size: 1.2rem; font-weight: 600; color: var(--ms-ink); letter-spacing: -0.02em; margin-bottom: 0.5rem; }

/* Cheapest providers (plugin cards) */
.mpm-lowest-prices { margin: 1.5rem 0 1rem; }
.mpm-lp-header, .mpm-pp-header { margin: 0 0 1rem; }
.mpm-lp-title, .mpm-pp-title { font-size: 0.72rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ms-muted); margin: 0; }
.mpm-lp-grid, .mpm-pp-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 0.9rem; counter-reset: none; }
.mpm-lp-card, .mpm-pp-card { margin: 0; background: #fff; border: 1px solid var(--ms-line); border-radius: var(--ms-radius); padding: 1.2rem 1.25rem 1.25rem; display: flex; flex-direction: column; gap: 0.9rem; transition: border-color .18s var(--ms-ease), transform .18s var(--ms-ease); }
.mpm-lp-card:hover, .mpm-pp-card:hover { border-color: var(--ms-ink); transform: translateY(-2px); }
.mpm-lp-rank-1 { border-color: var(--ms-ink); }
.mpm-lp-card-head, .mpm-pp-card-head { display: flex; align-items: center; gap: 0.6rem; }
.mpm-lp-rank { font-size: 0.72rem; font-weight: 600; letter-spacing: 0.06em; color: var(--ms-muted); }
.mpm-lp-rank-1 .mpm-lp-rank { background: var(--ms-ink); color: #fff; padding: 0.2rem 0.5rem; border-radius: 999px; }
.mpm-lp-provider { font-weight: 600; font-size: 1.05rem; letter-spacing: -0.015em; text-decoration: none; }
.mpm-pp-dose { font-size: 1.5rem; font-weight: 700; letter-spacing: -0.03em; }
.mpm-lp-fields, .mpm-pp-fields { display: grid; grid-template-columns: 1fr auto; gap: 0.3rem 0.8rem; margin: 0; font-size: 0.9rem; }
.mpm-lp-fields dt, .mpm-pp-fields dt { color: var(--ms-muted); }
.mpm-lp-fields dd, .mpm-pp-fields dd { margin: 0; text-align: right; font-variant-numeric: tabular-nums; color: var(--ms-ink); }
.mpm-lp-discount, .mpm-pp-price-discount { font-size: 1.35rem; font-weight: 700; letter-spacing: -0.03em; }
.mpm-lp-retail, .mpm-pp-price-retail { text-decoration: line-through; color: var(--ms-muted) !important; }
.mpm-lp-saving, .mpm-pp-price-saving { color: var(--ms-good) !important; font-weight: 600; }
.mpm-pp-stock-in_stock { color: var(--ms-good) !important; font-size: 0; }
.mpm-pp-stock-in_stock::after { content: "In stock"; font-size: 0.9rem; }
.mpm-lp-cta, .mpm-pp-cta { margin: auto 0 0; }
.mpm-lp-cta a, .mpm-pp-cta a { width: 100%; }

/* Dose grid */
.mm-dose-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 0.9rem; margin: 1.5rem 0 2rem; }
.mm-dose-card { background: #fff; border: 1px solid var(--ms-line); border-radius: var(--ms-radius); padding: 1.2rem 1.25rem; display: flex; flex-direction: column; gap: 0.3rem; transition: border-color .18s var(--ms-ease), transform .18s var(--ms-ease); }
.mm-dose-card:hover { border-color: var(--ms-ink); transform: translateY(-2px); }
.mm-dose-card p { margin: 0; }
.mm-dose-name { font-size: 1.9rem; font-weight: 700; letter-spacing: -0.04em; color: var(--ms-ink); line-height: 1; }
.mm-dose-label { font-size: 0.72rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ms-muted); }
.mm-dose-link { margin-top: 0.9rem; font-size: 0.9rem; font-weight: 600; text-decoration: none; }
.mm-dose-card .provider-button { align-self: flex-start; padding: 0.55rem 1rem; font-size: 0.85rem; }
.mm-dose-card .mpm-best-price, .mm-dose-card .mpm-best-price-card { border: 0; background: none; box-shadow: none; padding: 0; margin: 0; }
.mm-dose-card .mpm-footer-default { display: none; }
.mm-dose-card .mpm-best-amount { font-size: 1.5rem; font-weight: 700; letter-spacing: -0.03em; color: var(--ms-ink); margin: 0.2rem 0 0; }
.mm-dose-nav { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 1rem 0 1.8rem; padding: 0; list-style: none; }
.mm-dose-nav li { margin: 0; }
.mm-dose-nav a { display: inline-block; padding: 0.45rem 1rem; border-radius: 999px; border: 1px solid var(--ms-line-strong); font-weight: 600; font-size: 0.9rem; text-decoration: none !important; color: var(--ms-ink); }
.mm-dose-nav a:hover { border-color: var(--ms-ink); }
.mm-dose-nav .mm-dose-current { background: var(--ms-ink); border-color: var(--ms-ink); color: #fff !important; }

/* Cards and grids */
.mm-card { background: #fff; border: 1px solid var(--ms-line); border-radius: var(--ms-radius); padding: 1.6rem 1.7rem; display: flex; flex-direction: column; }
.mm-card h3 { margin-top: 0; font-size: 1.2rem; }
.mm-card p { margin-bottom: 0.8rem; color: var(--ms-ink-2); }
.mm-card p:last-child { margin: auto 0 0; }
.mm-card p:last-child a { font-weight: 600; text-decoration: none; }
.mm-grid-2, .mm-grid-3 { display: grid; gap: 0.9rem; margin: 1.5rem 0 2rem; }
.mm-grid-2 { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.mm-grid-3 { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }

/* Band */
.mm-band { background: var(--ms-ink); color: #d6d6d2; border-radius: var(--ms-radius); padding: clamp(2rem, 4vw, 3.2rem); margin: 3.5rem 0; }
.mm-band h2 { color: #fff; margin-top: 0; }
.mm-band strong { color: #fff; }

/* Numbered steps */
.mm-steps { counter-reset: mmstep; list-style: none; padding: 0; margin: 1.5rem 0 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1rem; }
.mm-steps li { counter-increment: mmstep; position: relative; padding: 2.4rem 0 0; margin: 0; border-top: 1px solid rgba(255,255,255,0.18); }
.mm-steps li::before { content: "0" counter(mmstep); position: absolute; top: 0.7rem; left: 0; font-size: 0.72rem; font-weight: 600; letter-spacing: 0.12em; color: var(--ms-accent); }
.mm-steps li strong { display: block; font-size: 1.1rem; letter-spacing: -0.02em; margin-bottom: 0.3rem; }
body:not(.home) .mm-steps li { border-top-color: var(--ms-line); }

/* Tick list */
.mm-ticks { list-style: none; padding: 0; }
.mm-ticks li { position: relative; padding: 0.7rem 0 0.7rem 1.8rem; margin: 0; border-bottom: 1px solid var(--ms-line); }
.mm-ticks li::before { content: "\2713"; position: absolute; left: 0; top: 0.7rem; color: var(--ms-good); font-weight: 700; }
.mm-ticks li a { font-weight: 600; text-decoration: none; }

/* Stat chips */
.mm-stats { display: flex; flex-wrap: wrap; gap: 0.6rem; margin: 2rem 0 0; padding: 0; list-style: none; }
.mm-stats li { margin: 0; border: 1px solid var(--ms-line); border-radius: 999px; padding: 0.45rem 1rem; font-size: 0.88rem; font-weight: 500; }
.mm-stats li strong { font-weight: 700; }
.mm-stamp { display: inline-flex; align-items: center; gap: 0.45rem; font-size: 0.8rem; font-weight: 600; color: var(--ms-muted); border: 1px solid var(--ms-line); border-radius: 999px; padding: 0.35rem 0.9rem; }
.mm-stamp::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--ms-good); }

/* Homepage rhythm: every h2 gets a hairline and a number */
body.home .entry-content > h2 { counter-increment: mmsection; padding-top: 2rem; border-top: 1px solid var(--ms-line); margin-top: 3.5rem; }
body.home .entry-content > h2::before { content: "(0" counter(mmsection) ")"; display: block; font-size: 0.72rem; font-weight: 600; letter-spacing: 0.12em; color: var(--ms-muted); margin-bottom: 0.8rem; font-variant-numeric: tabular-nums; }
body.home .entry-content { counter-reset: mmsection; }
body.home .entry-content > h2 + p { max-width: 62ch; }
body.home .mm-band h2 { border: 0; padding: 0; margin-top: 0; counter-increment: none; }
body.home .mm-band h2::before { content: none; }

/* ============================================================
   Discount pages (mdp-*)
   ============================================================ */
.mdp-intro { font-size: 1.15rem; color: var(--ms-ink-2); max-width: 62ch; }
.mdp-none { background: var(--ms-bg-soft); border: 1px dashed var(--ms-line-strong); border-radius: var(--ms-radius-sm); padding: 0.9rem 1.1rem; font-size: 0.95rem; color: var(--ms-muted); }
.mdp-h2 { margin-top: 2.4em; }
.mdp-offer { background: #fff; border: 1px solid var(--ms-line); border-left: 3px solid var(--ms-accent); border-radius: var(--ms-radius); padding: 1.4rem 1.5rem; margin: 0 0 1rem; }
.mdp-offer-title { font-size: 1.2rem; font-weight: 600; letter-spacing: -0.02em; }
.mdp-code { display: inline-block; font-family: var(--ms-mono); font-weight: 600; background: var(--ms-accent-soft); border: 1px dashed var(--ms-accent); color: var(--ms-ink); padding: 0.4rem 0.8rem; border-radius: var(--ms-radius-sm); letter-spacing: 0.04em; }
.mdp-chip { display: inline-block; font-size: 0.72rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; padding: 0.25rem 0.6rem; border-radius: 999px; background: var(--ms-bg-soft); color: var(--ms-muted); border: 1px solid var(--ms-line); }
.mdp-chip-new { background: var(--ms-good-soft); color: var(--ms-good); border-color: transparent; }
.mdp-chip-returning { background: var(--ms-accent-soft); color: #9a5200; border-color: transparent; }
.mdp-discount-banner { background: var(--ms-accent-soft); border: 1px solid #f7d5b0; border-radius: var(--ms-radius); padding: 1.2rem 1.4rem; }
.mdp-hub { border-top: 1px solid var(--ms-line); margin: 1.5rem 0 2.5rem; }
.mdp-hub-row { display: grid; grid-template-columns: 1.2fr 1fr auto; align-items: center; gap: 1rem; padding: 0.9rem 0; border-bottom: 1px solid var(--ms-line); }
.mdp-hub-name { font-weight: 600; font-size: 1.05rem; letter-spacing: -0.015em; text-decoration: none; }
.mdp-hub-offer { font-size: 0.9rem; color: var(--ms-muted); }
.mdp-price-links { font-size: 0.95rem; }
.mdp-faq { margin-top: 3rem; }
.mdp-faq-q { font-size: 1.05rem; margin: 1.6rem 0 0.4rem; padding-top: 1.2rem; border-top: 1px solid var(--ms-line); }
.mdp-faq-a { color: var(--ms-ink-2); }
@media (max-width: 640px) {
	.mdp-hub-row { grid-template-columns: 1fr auto; }
	.mdp-hub-offer { grid-column: 1 / -1; order: 3; }
}

/* ============================================================
   Price manager tables and shells (mpm-*)
   ============================================================ */
.mpm-provider-prices, .mpm-table-wrap, .mpm-price-table, .mpm-table-shell { background: #fff; border: 1px solid var(--ms-line); border-radius: var(--ms-radius); overflow: hidden; margin: 1rem 0 2rem; }
.mpm-provider-prices { padding: 1.25rem; }
.mpm-price-table table, .mpm-provider-prices table, .mpm-table-wrap table { margin: 0; }
tr.mpm-row[data-total-price=""] { display: none; }

/* Column picker and swipeable tables carried over from the old Customizer CSS */
.dt-colvis-wrapper { position: relative; display: flex; align-items: center; margin-left: auto; margin-bottom: 12px; }
.dt-colvis-btn { background: var(--ms-ink); color: #fff; border: 1px solid var(--ms-ink); border-radius: 999px; padding: 0.6rem 1rem; font: inherit; font-size: 0.85rem; font-weight: 600; cursor: pointer; margin-left: auto; }
.dt-colvis-menu { display: none; position: absolute; right: 0; top: 100%; background: #fff; border: 1px solid var(--ms-line); border-radius: 12px; box-shadow: 0 16px 40px -16px rgba(0,0,0,0.25); padding: 10px 14px; min-width: 230px; z-index: 9999; }
.dt-colvis-menu strong { font-size: 13px; display: block; margin-bottom: 6px; }
.dt-colvis-menu label { display: flex; justify-content: space-between; align-items: center; font-size: 14px; padding: 4px 0; cursor: pointer; }
.dt-colvis-menu hr { margin: 10px 0; }
@media (max-width: 768px) {
	.tablepress-wrapper::after { content: "Swipe to see more"; display: block; text-align: center; font-size: 12px; color: var(--ms-muted); padding: 6px 0; }
	.tablepress { display: block; width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
	.tablepress table { min-width: 900px; }
}

/* ============================================================
   Blog index cards
   ============================================================ */
.ms-post-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1rem; }
.ms-post-card { margin: 0; }
.ms-post-card-link { display: flex; flex-direction: column; height: 100%; padding: 1.6rem; border: 1px solid var(--ms-line); border-radius: var(--ms-radius); text-decoration: none; transition: border-color .18s var(--ms-ease), transform .18s var(--ms-ease); }
.ms-post-card-link:hover { border-color: var(--ms-ink); transform: translateY(-2px); }
.ms-post-card-date { font-size: 0.75rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ms-muted); margin-bottom: 0.8rem; }
.ms-post-card-title { font-size: 1.3rem; margin: 0 0 0.6rem; }
.ms-post-card-excerpt { color: var(--ms-ink-2); font-size: 0.95rem; margin-bottom: 1.2rem; }
.ms-post-card .ms-arrow-link { margin-top: auto; }
.ms-pagination { margin: 2.5rem 0 0; }
.ms-pagination .nav-links { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.ms-pagination .page-numbers { display: inline-block; padding: 0.5rem 0.9rem; border: 1px solid var(--ms-line); border-radius: 999px; text-decoration: none; font-size: 0.9rem; font-weight: 600; }
.ms-pagination .page-numbers.current { background: var(--ms-ink); color: #fff; border-color: var(--ms-ink); }
.ms-404 { padding: clamp(3rem, 8vw, 7rem) var(--ms-gutter); }

/* ============================================================
   Footer
   ============================================================ */
.ms-footer { border-top: 1px solid var(--ms-line); background: var(--ms-bg-soft); padding: clamp(3rem, 6vw, 5rem) 0 2rem; margin-top: clamp(2rem, 5vw, 4rem); font-size: 0.95rem; }
.ms-footer-grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 2.5rem; }
.ms-footer-blurb { max-width: 44ch; color: var(--ms-ink-2); margin: 1.2rem 0 1rem; }
.ms-footer-independence { font-size: 0.85rem; color: var(--ms-muted); max-width: 48ch; }
.ms-footer-heading { color: var(--ms-ink); }
.ms-footer-col ul { list-style: none; margin: 0; padding: 0; }
.ms-footer-col li { margin: 0 0 0.55rem; }
.ms-footer-col a { text-decoration: none; color: var(--ms-ink-2); }
.ms-footer-col a:hover { color: var(--ms-ink); text-decoration: underline; }
.ms-footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; border-top: 1px solid var(--ms-line); margin-top: 3rem; padding-top: 1.5rem; font-size: 0.8rem; color: var(--ms-muted); }
.ms-footer-bottom p { margin: 0; max-width: 72ch; }
.ms-footer-credit a { font-weight: 600; }
@media (max-width: 900px) { .ms-footer-grid { grid-template-columns: 1fr 1fr; } .ms-footer-brand { grid-column: 1 / -1; } }
@media (max-width: 520px) { .ms-footer-grid { grid-template-columns: 1fr; } }

/* ============================================================
   Gutenberg basics
   ============================================================ */
.wp-block-image img { border-radius: var(--ms-radius); }
.wp-block-table table { margin: 0; }
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 0.7rem; }
.wp-block-quote { border-left: 2px solid var(--ms-ink); }
.wp-block-separator { border: 0; border-top: 1px solid var(--ms-line); }
.has-text-align-center { text-align: center; }
.wp-block-columns { display: flex; flex-wrap: wrap; gap: 1.5rem; }
.wp-block-column { flex: 1 1 260px; min-width: 0; }
