/*    2. RESET & BASE
   ------------------------------------------- */
*,
*::before,
*::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

html {
	scroll-behavior: smooth;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	/* Prevent any horizontal scroll/panning from off-screen fixed drawers,
	   wide marquee tracks, or decorative transforms leaking past the viewport.
	   `clip` is the modern value (no scroll container); `hidden` is the fallback. */
	overflow-x: hidden;
	overflow-x: clip;
	/* In-app webviews (Facebook / Instagram / Messenger) autosize embedded
	   pages, which inflated every rem-based size — the sticky bottom CTA
	   rendered noticeably taller there than in Chrome. Opt out of the
	   autosizing so type keeps its authored size everywhere. */
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
}

body {
	font-family: var(--font-body);
	font-size: var(--text-base);
	line-height: 1.7;
	color: var(--color-text-primary);
	background-color: var(--color-bg-primary);
	/* `hidden` creates a scroll container, which silently breaks every
	   `position: sticky` child of <body> (the site header scrolled away and
	   the mobile menu became unreachable). `clip` prevents the same
	   horizontal leaking without creating a scroll container; browsers that
	   do not support it keep the `hidden` fallback. */
	overflow-x: hidden;
	overflow-x: clip;
	min-height: 100vh;
}

::selection {
	background-color: var(--color-accent);
	color: var(--color-bg-dark);
}

::-moz-selection {
	background-color: var(--color-accent);
	color: var(--color-bg-dark);
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

a {
	color: var(--color-accent);
	text-decoration: none;
	transition: color var(--transition-fast);
}

a:hover {
	color: var(--color-accent-light);
}

ul {
	list-style: none;
}

/* Container */
.container {
	width: 100%;
	max-width: var(--container-max);
	margin: 0 auto;
	padding: 0 var(--space-xl);
}

/* Content Area */
.content-area {
	padding-top: var(--space-4xl);
	padding-bottom: var(--space-4xl);
}

/* Section */
.section {
	padding: var(--space-4xl) 0;
	position: relative;
}

.section-header {
	text-align: center;
	margin-bottom: var(--space-3xl);
	max-width: 700px;
	margin-left: auto;
	margin-right: auto;
}

.section-label {
	display: inline-block;
	font-family: var(--font-mono);
	font-size: var(--text-xs);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 3px;
	color: var(--color-accent);
	margin-bottom: var(--space-md);
	position: relative;
}

.section-label::before,
.section-label::after {
	content: '';
	display: inline-block;
	width: 24px;
	height: 1px;
	background-color: var(--color-accent);
	vertical-align: middle;
	margin: 0 8px;
}

.section-title {
	font-family: var(--font-heading);
	font-size: var(--text-4xl);
	font-weight: 800;
	line-height: 1.1;
	margin-bottom: var(--space-md);
	color: var(--color-text-primary);
}

.section-desc {
	font-size: var(--text-lg);
	color: var(--color-text-secondary);
	max-width: 600px;
	margin: 0 auto;
}

.section-actions {
	text-align: center;
	margin-top: var(--space-3xl);
}

/* Page Hero */
.page-hero {
	padding: 120px 0 var(--space-2xl);
	text-align: center;
	position: relative;
	background: linear-gradient(180deg, var(--color-bg-secondary) 0%, var(--color-bg-primary) 100%);
}

.page-hero .page-title {
	font-family: var(--font-heading);
	font-size: var(--text-5xl);
	font-weight: 800;
	line-height: 1.1;
	margin-bottom: var(--space-md);
}

.page-hero .page-desc {
	font-size: var(--text-lg);
	color: var(--color-text-secondary);
	max-width: 600px;
	margin: 0 auto;
}

.page-hero .hero-badge {
	composes: section-label;
}

/* -------------------------------------------
   PAGE TITLE (HERO) — hidden by default
   ------------------------------------------- */
/* Page titles are hidden by default; shown when the Customizer toggle
   "Page Title → Show page title banner" is enabled. */
.page-title-hidden .page-hero {
	display: none;
}

/* Refined top accent for hero-less pages — a slim brand gradient line
   that anchors the page content under the fixed glass header.
   (The following .section/.content-area still keep their own top padding,
   so content always clears the ~99px fixed header.) */
.page-title-hidden .content-area,
.page-title-hidden .section:first-of-type {
	position: relative;
}

.page-title-hidden .content-area::before,
.page-title-hidden .section:first-of-type::before {
	content: '';
	position: absolute;
	/* .site-main padding 35px + offset 80px = ~115px, just below the
	   ~99px fixed glass header, above the first content block. */
	top: 80px;
	left: 50%;
	transform: translateX(-50%);
	width: 96px;
	height: 3px;
	border-radius: 2px;
	background: linear-gradient(90deg, var(--color-accent), var(--color-purple));
	opacity: 0.9;
	box-shadow: 0 0 18px var(--color-accent-glow);
}

/* Full-screen plugin app pages (Bitree Project Blueprint wizard & client
   dashboard) — the plugin ships its own header, so keep the page chrome
   out of the way and let the app breathe edge-to-edge. */
.binaweb-app-page .content-area,
.binaweb-app-page .page-content-entry {
	max-width: none;
}
