/*
 * BuyerDesk base: GeneratePress neutralisation, typography, containers,
 * buttons, links, focus, breadcrumbs, disclosure, utilities.
 */

/* ---------- GeneratePress skeleton ---------- */
body.bdt {
	background: var(--bd-surface);
	color: var(--bd-ink);
	font-family: var(--bd-font-sans);
	font-size: var(--bd-fs-base);
	line-height: var(--bd-lh-body);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
body.bdt .site.grid-container,
body.bdt .site-footer .grid-container {
	max-width: none;
	padding: 0;
}
body.bdt .site-content {
	display: block;
	padding: 0;
}
body.bdt .site,
body.bdt .inside-article,
body.bdt .separate-containers .inside-article,
body.bdt .one-container .container,
body.bdt .site-footer {
	background: transparent;
}
/* Plain GP templates (policies, about…) get a comfortable reading column. */
body.bdt .site-content > .content-area {
	width: 100%;
	max-width: calc(var(--bd-container-narrow) + 2 * var(--bd-gutter));
	margin: 0 auto;
	padding: var(--bd-space-6) var(--bd-gutter) var(--bd-section-gap);
	float: none;
}
body.bdt .site-content > .content-area .inside-article {
	padding: 0;
}
body.bdt .site-content > .content-area .entry-title {
	font-size: var(--bd-fs-2xl);
}

/* ---------- Typography ---------- */
body.bdt h1, body.bdt h2, body.bdt h3, body.bdt h4, body.bdt h5, body.bdt h6,
.bdt-display, .bdt-h1, .bdt-h2, .bdt-h3 {
	color: var(--bd-navy-900);
	font-family: var(--bd-font-sans);
	font-weight: var(--bd-fw-bold);
	line-height: var(--bd-lh-tight);
	letter-spacing: var(--bd-tracking-tight);
	margin: 0 0 var(--bd-space-3);
}
body.bdt h1, .bdt-h1 { font-size: var(--bd-fs-2xl); }
body.bdt h2, .bdt-h2 { font-size: var(--bd-fs-xl); }
body.bdt h3, .bdt-h3 { font-size: var(--bd-fs-lg); line-height: var(--bd-lh-snug); }
body.bdt h4 { font-size: var(--bd-fs-md); line-height: var(--bd-lh-snug); }
.bdt-display { font-size: var(--bd-fs-display); letter-spacing: -0.03em; line-height: 1.08; }
.bdt-small { font-size: var(--bd-fs-sm); }
body.bdt p { margin: 0 0 var(--bd-space-4); }
body.bdt strong { font-weight: var(--bd-fw-semibold); color: var(--bd-navy-900); }

/* :where() keeps global link colour at element specificity so components can override it. */
:where(body.bdt) a {
	color: var(--bd-blue-600);
	text-decoration-thickness: 1px;
	text-underline-offset: 2px;
}
:where(body.bdt) a:hover { color: var(--bd-blue-700); }
body.bdt img { max-width: 100%; height: auto; }

/* ---------- Focus: always visible for keyboard users ---------- */
body.bdt :focus { outline: none; }
body.bdt :focus-visible,
body.bdt .bdt-card__link:focus-visible::after {
	outline: 2px solid var(--bd-blue-600);
	outline-offset: 2px;
	border-radius: 4px;
}
body.bdt .skip-link:focus {
	z-index: 1000;
	background: var(--bd-navy-900);
	color: #fff;
	padding: 0.75rem 1rem;
	border-radius: var(--bd-radius-sm);
}

/* ---------- Containers ---------- */
.bdt-container {
	width: 100%;
	max-width: calc(var(--bd-container) + 2 * var(--bd-gutter));
	margin-inline: auto;
	padding-inline: var(--bd-gutter);
	box-sizing: border-box;
}
.bdt-container--narrow { max-width: calc(var(--bd-container-narrow) + 2 * var(--bd-gutter)); }
.bdt-main { padding-bottom: 0; } /* The newsletter band / footer provide the closing gap. */

/* ---------- Buttons ---------- */
.bdt-btn,
body.bdt button.bdt-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--bd-space-2);
	min-height: 44px;
	padding: 0.625rem 1.25rem;
	border: 1px solid transparent;
	border-radius: var(--bd-radius-sm);
	font: var(--bd-fw-semibold) var(--bd-fs-base) / 1.2 var(--bd-font-sans);
	text-decoration: none;
	cursor: pointer;
	transition: background-color var(--bd-dur) var(--bd-ease), border-color var(--bd-dur) var(--bd-ease), color var(--bd-dur) var(--bd-ease);
}
.bdt-btn--primary,
body.bdt a.bdt-btn--primary { background: var(--bd-blue-600); color: #fff; }
.bdt-btn--primary:hover,
body.bdt a.bdt-btn--primary:hover { background: var(--bd-blue-700); color: #fff; }
.bdt-btn--secondary,
body.bdt a.bdt-btn--secondary { background: #fff; color: var(--bd-blue-600); border-color: var(--bd-blue-600); }
.bdt-btn--secondary:hover,
body.bdt a.bdt-btn--secondary:hover { background: var(--bd-blue-50); }
.bdt-btn--ghost,
body.bdt a.bdt-btn--ghost { background: transparent; color: var(--bd-navy-900); border-color: var(--bd-border-strong); }
.bdt-btn--ghost:hover { background: var(--bd-surface-alt); }

.bdt-icon-btn,
body.bdt button.bdt-icon-btn {
	display: inline-grid;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: var(--bd-radius-sm);
	background: transparent;
	color: var(--bd-navy-900);
	cursor: pointer;
}
.bdt-icon-btn:hover { background: var(--bd-surface-alt); }

/* "View all →" */
.bdt-arrow-link,
body.bdt a.bdt-arrow-link {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	font-size: var(--bd-fs-sm);
	font-weight: var(--bd-fw-semibold);
	color: var(--bd-blue-600);
	text-decoration: none;
	white-space: nowrap;
}
.bdt-arrow-link:hover span { text-decoration: underline; }
.bdt-arrow-link .bd-icon { transition: transform var(--bd-dur) var(--bd-ease); }
.bdt-arrow-link:hover .bd-icon { transform: translateX(2px); }

/* ---------- Breadcrumbs ---------- */
.bdt-breadcrumbs-wrap { padding-top: var(--bd-space-4); }
.bdt-breadcrumbs { font-size: var(--bd-fs-sm); color: var(--bd-muted); }
.bdt-breadcrumbs__trail { margin: 0 !important; display: flex; flex-wrap: wrap; align-items: center; gap: 0.25rem; }
.bdt-breadcrumbs a { color: var(--bd-muted); text-decoration: none; }
.bdt-breadcrumbs a:hover { color: var(--bd-blue-600); text-decoration: underline; }
.bdt-breadcrumbs .separator { color: var(--bd-border-strong); padding: 0 0.15rem; }
.bdt-breadcrumbs .last { color: var(--bd-ink); font-weight: var(--bd-fw-medium); }
@media (max-width: 767px) {
	/* Long article titles: keep the trail to one line on phones. */
	.bdt-breadcrumbs .last { max-width: 60vw; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
}

/* ---------- Affiliate disclosure ---------- */
.bdt-disclosure {
	display: flex;
	gap: var(--bd-space-2);
	align-items: flex-start;
	color: var(--bd-muted);
	font-size: var(--bd-fs-sm);
	line-height: 1.5;
}
.bdt-disclosure p { margin: 0 !important; }
.bdt-disclosure .bd-icon { flex: none; margin-top: 2px; color: var(--bd-blue-600); }
.bdt-disclosure--box {
	padding: var(--bd-space-3) var(--bd-space-4);
	background: var(--bd-surface-alt);
	border: 1px solid var(--bd-border);
	border-radius: var(--bd-radius-sm);
}
.bdt-prefooter-disclosure { margin-block: var(--bd-space-6); }

/* ---------- Utilities ---------- */
.bdt-admin-hint {
	margin: var(--bd-space-4) 0;
	padding: var(--bd-space-2) var(--bd-space-3);
	border: 1px dashed var(--bd-border-strong);
	border-radius: var(--bd-radius-sm);
	font-size: var(--bd-fs-sm);
	color: var(--bd-muted);
}
.bdt .screen-reader-text:not(:focus) {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}
body.bdt-lock { overflow: hidden; }

@media (prefers-reduced-motion: reduce) {
	.bdt *, .bdt *::before, .bdt *::after {
		scroll-behavior: auto !important;
		transition-duration: 0ms !important;
		animation-duration: 0ms !important;
	}
}

/* =========================================================
 * Ordinary Pages (About, policies, contact…) — Part 6
 * ======================================================= */
.bdt-page { padding-block: var(--bd-space-6) var(--bd-space-10); }
.bdt-page__title,
body.bdt .bdt-page__title { margin: 0 0 var(--bd-space-3); font-size: clamp(1.75rem, 1.3rem + 1.8vw, 2.5rem); line-height: 1.15; overflow-wrap: break-word; }
.bdt-page__intro { margin: 0 0 var(--bd-space-3) !important; font-size: 1.0625rem; color: var(--bd-ink); }
.bdt-page__updated { margin: 0 0 var(--bd-space-6) !important; font-size: var(--bd-fs-sm); color: var(--bd-muted); }
.bdt-page__body { font-size: 1.0625rem; line-height: 1.7; color: var(--bd-ink); overflow-wrap: break-word; }
.bdt-page__body h2 { margin: var(--bd-space-8) 0 var(--bd-space-3); font-size: clamp(1.25rem, 1.05rem + 0.8vw, 1.625rem); }
.bdt-page__body h3 { margin: var(--bd-space-6) 0 var(--bd-space-2); font-size: var(--bd-fs-lg); }
.bdt-page__body ul, .bdt-page__body ol { padding-left: 1.3rem; }
.bdt-page__body img { max-width: 100%; height: auto; border-radius: var(--bd-radius); }
.bdt-page__body .wp-block-table { overflow-x: auto; }
.bdt-page__body a { text-decoration: underline; }
