/*
Theme Name: BittMint
Description: BittMint design on top of GeneratePress.
Template: generatepress
Version: 1.0.0
*/

/* Fonts are served from this theme (latin subset), not from Google. */
@font-face {  font-family: 'IBM Plex Mono';  font-style: normal;  font-weight: 500;  font-display: swap;  src: url(fonts/ibm-plex-mono-500.woff2) format('woff2');  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face {  font-family: 'IBM Plex Mono';  font-style: normal;  font-weight: 700;  font-display: swap;  src: url(fonts/ibm-plex-mono-700.woff2) format('woff2');  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face {  font-family: 'Inter';  font-style: normal;  font-weight: 400 700;  font-display: swap;  src: url(fonts/inter-400-700.woff2) format('woff2');  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face {  font-family: 'Space Grotesk';  font-style: normal;  font-weight: 500 700;  font-display: swap;  src: url(fonts/space-grotesk-500-700.woff2) format('woff2');  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

:root {
	/* GeneratePress palette, re-pointed at the brand */
	--accent: #d6201a;      /* text-safe red (5:1 on white) */
	--contrast: #111;
	--contrast-2: #5b5f66;
	--contrast-3: #b9bcc2;
	--base: #e4e2dc;        /* hairlines */
	--base-2: #fff;
	--base-3: #fff;
	--bm-red: #ee2a24;      /* logo red, large text and marks only */
	--bm-soft: #f5f4f0;
	--bm-head: "Space Grotesk", "Inter", system-ui, sans-serif;
	--bm-up: #0a8a4b;
	--bm-up-dark: #3ddc84;
	--bm-down-dark: #ff6259;
	--bm-mono: "IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace;
}

body { background: #fff; color: var(--contrast); font-size: 17px; }
h1, h2, h3, h4 { font-family: var(--bm-head); font-weight: 700; letter-spacing: -0.025em; line-height: 1.12; }
a { color: var(--accent); }
a:focus-visible, button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

button, input[type="submit"], a.button {
	background: var(--contrast); color: #fff; border-radius: 0;
	font: 500 13px/1 var(--bm-mono); text-transform: uppercase; letter-spacing: .05em; padding: 14px 20px;
}
button:hover, input[type="submit"]:hover, a.button:hover { background: var(--accent); color: #fff; }

/* Shared small type: labels, kickers, meta */
.bm-label, .bm-kicker, .bm-meta, .entry-meta, .bm-sec__head a, .bm-more a, .site-info {
	font-family: var(--bm-mono); font-weight: 500; text-transform: uppercase; letter-spacing: .06em;
}

/* ---------- Header ---------- */
.site-header { border-bottom: 1px solid var(--contrast); }
.inside-header { padding: 18px 40px; }
.main-title { margin: 0; font: 700 30px/1 var(--bm-mono); letter-spacing: -0.03em; text-transform: uppercase; }
.bm-wordmark, .bm-wordmark:hover { color: var(--contrast); text-decoration: none; }
.bm-wordmark span { color: var(--bm-red); }

.main-navigation, .main-navigation ul ul { background: transparent; }
.main-navigation .main-nav ul li a,
.main-navigation .menu-toggle {
	font: 500 13px/44px var(--bm-mono); text-transform: uppercase; letter-spacing: .05em;
	color: var(--contrast); padding: 0 12px;
}
.main-navigation .main-nav ul li:not([class*="current-menu-"]):hover > a,
.main-navigation .main-nav ul li:not([class*="current-menu-"]):focus > a,
.main-navigation .main-nav ul li[class*="current-menu-"] > a { color: var(--accent); background: transparent; }

/* ---------- Cards ---------- */
.bm-card { margin: 0; display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.bm-card__media { display: block; aspect-ratio: 16 / 9; overflow: hidden; background: var(--bm-soft); }
.bm-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .35s ease; }
.bm-card:hover .bm-card__media img { transform: scale(1.03); }

/* Stand-in when a post has no image file: graph paper with the topic name */
.bm-ph {
	display: flex; align-items: flex-end; width: 100%; height: 100%; padding: 16px;
	background-color: var(--contrast);
	background-image: linear-gradient(rgba(255,255,255,.07) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.07) 1px, transparent 1px);
	background-size: 28px 28px;
	color: #fff; font: 700 15px/1 var(--bm-mono); text-transform: uppercase; letter-spacing: .04em;
}
.bm-ph span::before { content: ""; display: inline-block; width: 10px; height: 10px; margin-right: 8px; background: var(--bm-red); }

.bm-kicker { display: inline-block; font-size: 11px; color: var(--accent); text-decoration: none; }
.bm-kicker:hover { text-decoration: underline; }
.bm-card__title { font-size: 20px; font-weight: 600; letter-spacing: -0.015em; line-height: 1.22; margin: 6px 0 8px; }
.bm-card__title a { color: var(--contrast); text-decoration: none; }
.bm-card__title a:hover { text-decoration: underline; text-decoration-color: var(--bm-red); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.bm-card__excerpt { font-size: 15px; line-height: 1.5; color: var(--contrast-2); margin: 0 0 10px; }
.bm-meta { font-size: 11px; color: var(--contrast-2); margin: 0; }
.bm-meta span::before, .bm-read::before { content: "·"; margin: 0 8px; }

/* ---------- Homepage ---------- */
.bm-label { font-size: 14px; font-weight: 700; margin: 0; }
.bm-top { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 40px; }
.bm-lead .bm-card__title { font-size: clamp(30px, 3.5vw, 46px); font-weight: 700; letter-spacing: -0.03em; line-height: 1.04; margin: 8px 0 12px; }
.bm-lead .bm-card__excerpt { font-size: 18px; max-width: 60ch; }


.bm-sec { margin-top: 64px; }
.bm-sec__head { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; border-top: 3px solid var(--contrast); padding-top: 10px; margin-bottom: 22px; }
.bm-sec__head a, .bm-more a { font-size: 12px; color: var(--contrast); text-decoration: none; }
.bm-sec__head a:hover, .bm-more a:hover { color: var(--accent); }
.bm-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 36px 26px; }
.bm-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.bm-more { margin: 56px 0 0; padding-top: 18px; border-top: 1px solid var(--base); text-align: center; }

/* ---------- Live market data ---------- */
.bm-live { font: 700 11px var(--bm-mono); text-transform: uppercase; letter-spacing: .08em; }
.bm-live::before { content: ""; display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--bm-red); margin-right: 7px; vertical-align: 1px; }
.bm-live-on .bm-live::before { animation: bm-pulse 2s ease-in-out infinite; }
@keyframes bm-pulse { 50% { opacity: .25; } }
[data-chg].up { color: var(--bm-up); }
[data-chg].down { color: var(--accent); }

.bm-ticker { background: var(--contrast); color: #fff; font: 500 12px/1 var(--bm-mono); }
.bm-ticker__in { max-width: 1200px; margin: 0 auto; padding: 0 40px; height: 38px; display: flex; align-items: center; gap: 28px; overflow-x: auto; white-space: nowrap; scrollbar-width: none; }
.bm-ticker__in::-webkit-scrollbar { display: none; }
.bm-tick b { color: #9a9a9a; font-weight: 500; margin-right: 4px; }
.bm-ticker [data-chg].up, .bm-mkt [data-chg].up { color: var(--bm-up-dark); }
.bm-ticker [data-chg].down, .bm-mkt [data-chg].down { color: var(--bm-down-dark); }

.bm-mkt { background: var(--contrast); color: #fff; padding: 24px 24px 18px; align-self: start; }
.bm-mkt__head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.bm-mkt .bm-label { color: #fff; }
.bm-mkt__rows { list-style: none; margin: 0; font: 500 14px/1 var(--bm-mono); }
.bm-mkt__rows li { display: grid; grid-template-columns: 46px minmax(40px, 1fr) auto 64px; align-items: center; gap: 12px; padding: 13px 0; border-top: 1px solid #2b2b2b; }
.bm-mkt__rows b { font-weight: 700; }
.bm-mkt__rows [data-chg] { text-align: right; font-size: 12px; }
.bm-spark { width: 100%; height: 26px; }
.bm-spark polyline { stroke-width: 1.5; stroke: #777; }
.bm-spark polyline.up { stroke: var(--bm-up-dark); }
.bm-spark polyline.down { stroke: var(--bm-down-dark); }
.bm-fng, .bm-halv { border-top: 1px solid #2b2b2b; padding: 16px 0 14px; }
.bm-mkt__sub { font: 500 11px var(--bm-mono); text-transform: uppercase; letter-spacing: .08em; color: #9a9a9a; margin: 0 0 10px; }
.bm-mkt p { margin: 0; font-size: 14px; color: #c9c9c9; }
.bm-mkt p b { color: #fff; font: 700 18px var(--bm-head); margin-right: 6px; }
.bm-fng__bar { position: relative; height: 6px; margin: 4px 0 12px; background: linear-gradient(90deg, #ff6259, #f2c94c, #3ddc84); }
.bm-fng__bar i { position: absolute; top: -5px; width: 4px; height: 16px; margin-left: -2px; background: #fff; }
.bm-mkt p.bm-mkt__src { border-top: 1px solid #2b2b2b; padding-top: 12px; font: 500 10.5px var(--bm-mono); color: #7d7d7d; }
.bm-top:has(.bm-mkt[hidden]) { grid-template-columns: 1fr; }

/* Converter */
.bm-conv { border-top: 3px solid var(--contrast); background: var(--bm-soft); padding: 24px; margin: 28px 0 36px; }
.bm-conv__row { display: grid; grid-template-columns: 1fr 1.4fr auto 1.4fr; gap: 12px; align-items: end; }
.bm-conv label { font: 500 11px var(--bm-mono); text-transform: uppercase; letter-spacing: .08em; color: var(--contrast-2); display: grid; gap: 6px; }
.bm-conv input, .bm-conv select { width: 100%; height: 48px; padding: 0 12px; font: 500 16px var(--bm-mono); color: var(--contrast); background: #fff; border: 1px solid var(--contrast); border-radius: 0; }
.bm-conv [data-swap] { height: 48px; width: 48px; padding: 0; font-size: 20px; }
.entry-content .bm-conv__out { font: 700 clamp(22px, 3.4vw, 32px)/1.2 var(--bm-head); letter-spacing: -0.02em; margin: 24px 0 6px; overflow-wrap: anywhere; }
.entry-content .bm-conv__rate { font: 500 12.5px var(--bm-mono); color: var(--contrast-2); margin: 0 0 20px; white-space: pre-wrap; }
.entry-content .bm-conv__table { margin: 0 0 14px; background: #fff; font-family: var(--bm-mono); font-size: 14px; }
.entry-content .bm-conv__src { font: 500 11px var(--bm-mono); color: var(--contrast-2); margin: 0; }
@media (max-width: 640px) {
	.bm-conv { padding: 18px; }
	.bm-conv__row { grid-template-columns: 1fr auto; }
	.bm-conv__row label:first-child { grid-column: 1 / -1; }
	.bm-conv__row label:last-child { grid-column: 1; }
	.bm-conv [data-swap] { grid-row: 2; grid-column: 2; }
}

/* Search in the menu, back-to-top button */
.main-navigation .menu-bar-items .menu-bar-item > a { color: var(--contrast); line-height: 44px; padding: 0 12px; }
.main-navigation .menu-bar-items .menu-bar-item > a:hover { color: var(--accent); }
.navigation-search input[type="search"], .navigation-search input[type="search"]:focus { font: 500 15px var(--bm-mono); background: #fff; color: var(--contrast); opacity: 1; border: 0; border-bottom: 2px solid var(--contrast); }
a.generate-back-to-top { background: var(--contrast); color: #fff; border: 1px solid rgba(255,255,255,.4); border-radius: 0; right: 24px; bottom: 24px; }
a.generate-back-to-top:hover, a.generate-back-to-top:focus { background: var(--bm-red); color: #fff; }

/* ---------- Archives, search ---------- */
.archive .site-main, .search .site-main { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px 26px; }
.site-main > .page-header, .site-main > nav, .site-main > .no-results { grid-column: 1 / -1; }
.page-header { border-bottom: 3px solid var(--contrast); padding: 0 0 14px; margin: 0 0 32px; }
.archive .page-header, .search .page-header { margin-bottom: 0; }
.page-header .page-title { font-size: clamp(32px, 4vw, 46px); margin: 0; }
.taxonomy-description { max-width: 68ch; margin-top: 14px; font-size: 16.5px; line-height: 1.6; color: var(--contrast-2); }
.taxonomy-description p:last-child { margin-bottom: 0; }
.nav-links, .paging-navigation { font: 500 13px var(--bm-mono); margin-top: 40px; }
.nav-links .page-numbers { padding: 8px 12px; color: var(--contrast); text-decoration: none; }
.nav-links .page-numbers.current { background: var(--contrast); color: #fff; }

/* ---------- Article and pages ---------- */
.single .site-main, .page .site-main, .error404 .site-main { max-width: 740px; margin: 0 auto; }
.single .entry-title, .page .entry-title { font-size: clamp(32px, 4.6vw, 50px); line-height: 1.06; margin: 10px 0 16px; }
.entry-meta { font-size: 11.5px; color: var(--contrast-2); }
.entry-meta a { color: var(--contrast); text-decoration: none; }
.entry-header { padding-bottom: 20px; border-bottom: 1px solid var(--base); }
.featured-image { margin: 28px 0 0; }
.entry-content { font-size: 18.5px; line-height: 1.7; }
.entry-content:not(:first-child) { margin-top: 28px; }
.entry-content h2 { font-size: 30px; margin: 1.8em 0 .5em; }
.entry-content h3 { font-size: 24px; margin: 1.6em 0 .4em; }
.entry-content a { color: inherit; text-decoration: underline; text-decoration-color: var(--bm-red); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.entry-content a:hover { color: var(--accent); }
.entry-content blockquote { border-left: 3px solid var(--bm-red); font: 500 22px/1.4 var(--bm-head); padding: 4px 0 4px 22px; margin: 1.6em 0; }
.entry-content table { font-size: 15.5px; border: 0; border-top: 2px solid var(--contrast); }
.entry-content th { font: 500 12px var(--bm-mono); text-transform: uppercase; letter-spacing: .05em; text-align: left; background: var(--bm-soft); }
.entry-content th, .entry-content td { border: 0; border-bottom: 1px solid var(--base); padding: 10px 12px; }
.single footer.entry-meta { margin-top: 40px; padding-top: 18px; border-top: 1px solid var(--base); }
.comments-area { margin-top: 48px; padding-top: 24px; border-top: 3px solid var(--contrast); }
.comments-area h3, .comment-reply-title { font-size: 24px; }

/* Article extras */
.entry-content h2[id] { scroll-margin-top: 24px; }
.bm-toc { border: 1px solid var(--base); border-left: 3px solid var(--bm-red); padding: 16px 22px; margin: 0 0 32px; font-size: 16px; line-height: 1.5; }
.bm-toc summary { font: 700 12px var(--bm-mono); text-transform: uppercase; letter-spacing: .08em; cursor: pointer; }
.bm-toc ol { margin: 14px 0 2px 1.3em; }
.bm-toc li { margin-bottom: 6px; }
.entry-content .bm-toc a { text-decoration: none; }
.entry-content .bm-toc a:hover { text-decoration: underline; text-decoration-color: var(--bm-red); }

.bm-share { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 40px; }
.bm-share .bm-label { font-size: 12px; margin-right: 6px; }
.bm-share a, .bm-share button { font: 500 12px/1 var(--bm-mono); text-transform: uppercase; letter-spacing: .05em; padding: 10px 12px; border: 1px solid var(--contrast); background: #fff; color: var(--contrast); text-decoration: none; }
.bm-share a:hover, .bm-share button:hover { background: var(--contrast); color: #fff; }

.bm-author { display: flex; gap: 18px; margin-top: 32px; padding: 24px; background: var(--bm-soft); }
.bm-author img { width: 64px; height: 64px; border-radius: 50%; flex: none; }
.bm-author p { margin: 0; font-size: 15px; line-height: 1.55; color: var(--contrast-2); }
.bm-author p.bm-author__name { font: 700 17px var(--bm-head); color: var(--contrast); margin-bottom: 6px; }
.bm-author__name a { color: var(--contrast); }

.bm-related { margin-top: 56px; }
.bm-related .bm-grid { gap: 28px 20px; }
.bm-related .bm-card__excerpt { display: none; }
.bm-related .bm-card__title { font-size: 17px; }

.bm-hp { position: absolute; left: -9999px; }

/* Breadcrumbs */
.rank-math-breadcrumb { font: 500 11.5px var(--bm-mono); text-transform: uppercase; letter-spacing: .06em; color: var(--contrast-2); margin-bottom: 20px; }
.rank-math-breadcrumb p { margin: 0; }
.rank-math-breadcrumb a { color: var(--contrast); text-decoration: none; }
.rank-math-breadcrumb a:hover { color: var(--accent); }
.rank-math-breadcrumb .separator { margin: 0 6px; color: var(--contrast-3); }
.archive .rank-math-breadcrumb, .search .rank-math-breadcrumb { margin-bottom: -12px; }
/* On articles the headline sits right below, so the trail stops at the category. */
.single-post .rank-math-breadcrumb .last, .single-post .rank-math-breadcrumb .separator:has(+ .last) { display: none; }

/* Article sidebar */
.bm-side { display: flex; flex-direction: column; gap: 28px; }
.bm-side .bm-mkt { padding: 20px 20px 14px; }
.bm-side .bm-mkt__rows li { grid-template-columns: 42px minmax(30px, 1fr) auto 58px; gap: 10px; padding: 11px 0; font-size: 13px; }
.bm-side__cta { display: grid; gap: 8px; padding: 18px 20px; border: 1px solid var(--contrast); color: var(--contrast); text-decoration: none; font-size: 15px; line-height: 1.45; }
.bm-side__cta:hover { background: var(--contrast); color: #fff; }
.bm-side__cta .bm-label { color: var(--accent); font-size: 12px; }
.bm-side__cta:hover .bm-label { color: #fff; }
.bm-side section + section { margin-top: 28px; }
.bm-side section .bm-label { border-top: 3px solid var(--contrast); padding-top: 10px; }
.bm-side ul { list-style: none; margin: 0; }
.bm-side__list li { padding: 14px 0; border-bottom: 1px solid var(--base); }
.bm-side__list a { display: block; font: 600 16px/1.3 var(--bm-head); letter-spacing: -0.01em; color: var(--contrast); text-decoration: none; margin-bottom: 6px; }
.bm-side__list a:hover { text-decoration: underline; text-decoration-color: var(--bm-red); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.bm-side__topics { margin-top: 10px !important; font: 500 13px var(--bm-mono); color: var(--contrast-2); }
.bm-side__topics li { display: flex; justify-content: space-between; padding: 8px 0; border-bottom: 1px solid var(--base); }
.bm-side__topics a { color: var(--contrast); text-decoration: none; text-transform: uppercase; letter-spacing: .05em; }
.bm-side__topics a:hover { color: var(--accent); }
@media (min-width: 1025px) {
	.single-post .site-content { gap: 56px; }
	.single-post .site-content .content-area { flex: 1 1 0; width: auto; min-width: 0; }
	.single-post .site-main { margin: 0; }
	.bm-side { flex: 0 0 320px; }
	.bm-side__stick { position: sticky; top: 24px; }
}
@media (max-width: 1024px) {
	.single-post .site-content { flex-direction: column; }
	.bm-side { width: 100%; max-width: 740px; margin: 56px auto 0; }
}

/* ---------- Footer ---------- */
.site-footer { background: var(--contrast); color: #c9c9c9; margin-top: 80px; }
.bm-foot { max-width: 1200px; margin: 0 auto; padding: 56px 40px 40px; display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 40px; font-size: 15px; }
.bm-foot p { max-width: 38ch; margin: 0 0 12px; }
.bm-foot__mark { font: 700 26px/1 var(--bm-mono); letter-spacing: -0.03em; text-transform: uppercase; }
.bm-foot .bm-wordmark { color: #fff; }
.bm-foot h2 { font: 700 12px var(--bm-mono); text-transform: uppercase; letter-spacing: .08em; color: #8d8d8d; margin: 0 0 14px; }
.bm-foot ul { list-style: none; margin: 0; }
.bm-foot li { margin-bottom: 8px; }
.bm-foot li a { color: #fff; text-decoration: none; }
.bm-foot li a:hover { color: var(--bm-red); }
.site-footer .site-info { background: var(--contrast); color: #8d8d8d; border-top: 1px solid #2b2b2b; font-size: 11px; }
.site-footer .inside-site-info { padding: 18px 40px; }

/* ---------- Smaller screens ---------- */
@media (max-width: 1024px) {
	.bm-grid, .bm-grid--3, .archive .site-main, .search .site-main { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.bm-top { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
	.inside-header { padding: 14px 20px; }
	.bm-ticker__in { padding: 0 20px; gap: 22px; }
	.main-title { font-size: 24px; }
	.bm-sec { margin-top: 48px; }
	.bm-foot { grid-template-columns: 1fr 1fr; padding: 40px 20px 28px; }
	.bm-foot > div { grid-column: 1 / -1; }
	.site-footer .inside-site-info { padding: 16px 20px; }
	.entry-content { font-size: 17.5px; }
}
@media (max-width: 560px) {
	.bm-grid, .bm-grid--3, .archive .site-main, .search .site-main { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
	.bm-card__media img { transition: none; }
	.bm-live-on .bm-live::before { animation: none; }
}
