/* SMaRTre "Ledger & Blueprint" design tokens for Elementor-built pages */
:root {
	--smartre-ink: #141a20;
	--smartre-ink-2: #1d2530;
	--smartre-parchment: #f5f1e8;
	--smartre-parchment-2: #eae3d3;
	--smartre-brass: #c19a56;
	--smartre-brass-dark: #9c7b3f;
	--smartre-slate: #5b6472;
	--smartre-ledger-green: #4a6b52;
	--smartre-line: rgba(20, 26, 32, 0.14);
	--smartre-line-light: rgba(245, 241, 232, 0.22);
}

body {
	background: var(--smartre-parchment);
	color: var(--smartre-ink);
}

/* === anchors === */
/* === eyebrow / mono / status === */
.smartre-eyebrow {
	font-family: "JetBrains Mono", Menlo, monospace;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	font-size: 0.8rem;
	font-weight: 700;
	color: var(--smartre-brass-dark);
}
.smartre-eyebrow.is-on-dark {
	color: var(--smartre-brass);
}
.smartre-mono {
	font-family: "JetBrains Mono", Menlo, monospace;
}
.smartre-is-paid { color: var(--smartre-ledger-green); }
.smartre-is-pending { color: var(--smartre-brass-dark); }
.smartre-section-title {
	font-family: "Fraunces", Georgia, serif;
	font-weight: 600;
	line-height: 1.15;
}

/* Elementor's global typography sets widget text color via a high-priority
   rule (.elementor-widget-text-editor { color: var(--e-global-color-text) }).
   Our brand classes need to win on dark sections. Heading widgets render the
   text inside a nested .elementor-heading-title, so target that; text-editor
   widgets render straight into the wrapper, so the class itself is enough
   provided we chain .elementor-widget-text-editor for specificity. */
.elementor-widget-text-editor.smartre-stat-num { color: var(--smartre-brass); }
.elementor-widget-text-editor.smartre-stat-label { color: var(--smartre-parchment); opacity: 0.7; }
.elementor-widget-text-editor.smartre-eyebrow.is-on-dark { color: var(--smartre-brass); }
.elementor-widget-text-editor.smartre-commission-desc { color: var(--smartre-parchment); opacity: 0.8; }
.elementor-widget-text-editor.smartre-hero-sub { color: var(--smartre-parchment); opacity: 0.8; }
.elementor-widget-heading.smartre-hero-title .elementor-heading-title { color: var(--smartre-parchment); }
.elementor-widget-heading.smartre-section-title.is-on-dark .elementor-heading-title { color: var(--smartre-parchment); }
.elementor-widget-text-editor.smartre-eyebrow { color: var(--smartre-brass-dark); }
.elementor-widget-text-editor.smartre-eyebrow.is-on-dark { color: var(--smartre-brass); }
.elementor-widget-heading.smartre-cta-title .elementor-heading-title { color: var(--smartre-ink); }
.elementor-widget-text-editor.smartre-cta-sub { color: var(--smartre-ink); opacity: 0.75; }
/* === bracket + card === */
.smartre-bracket {
	position: relative;
}
.smartre-bracket::before,
.smartre-bracket::after {
	content: "";
	position: absolute;
	width: 22px;
	height: 22px;
	border: 2px solid var(--smartre-brass);
	opacity: 0.7;
	pointer-events: none;
}
.smartre-bracket::before {
	top: 0;
	left: 0;
	border-right: none;
	border-bottom: none;
}
.smartre-bracket::after {
	bottom: 0;
	right: 0;
	border-left: none;
	border-top: none;
}

.smartre-ledger-card {
	background: var(--smartre-parchment);
	color: var(--smartre-ink);
	padding: 2rem;
	border-radius: 3px;
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.35);
}
.smartre-ledger-row {
	display: flex;
	justify-content: space-between;
	font-size: 0.95rem;
	padding: 0.5rem 0;
	margin: 0;
	border-bottom: 1px solid var(--smartre-line);
}
.smartre-ledger-row:last-child { border-bottom: none; }
.smartre-ledger-row span:first-child { color: var(--smartre-slate); }
.smartre-ledger-row.smartre-ledger-total {
	font-weight: 700;
	font-size: 1.1rem;
	border-top: 1px solid var(--smartre-line);
	border-bottom: none;
	margin-top: 0.5rem;
	padding-top: 0.75rem;
}
.smartre-ledger-total .smartre-mono { color: var(--smartre-brass-dark); }

.smartre-feature-card,
.smartre-price-card {
	background: var(--smartre-parchment-2);
	border-radius: 3px;
	padding: 2rem 1.75rem;
}
.smartre-doc-list {
	background: var(--smartre-parchment);
	border-radius: 3px;
	padding: 2rem 1.75rem;
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.35);
}
.smartre-feature-num {
	font-family: "JetBrains Mono", Menlo, monospace;
	color: var(--smartre-brass-dark);
	font-size: 0.8rem;
	font-weight: 700;
	margin-bottom: 0.75rem;
	display: block;
}

.smartre-commission-table {
	background: var(--smartre-parchment);
	border-radius: 3px;
	padding: 1.75rem 2rem;
}
.smartre-commission-table .elementor-widget-text-editor { color: var(--smartre-ink); }
.smartre-ct-head { color: var(--smartre-slate) !important; }
.smartre-ct-head .smartre-ledger-row span { color: var(--smartre-slate); font-family: "JetBrains Mono", Menlo, monospace; text-transform: uppercase; letter-spacing: 0.05em; font-size: 0.75rem; }

.smartre-check-list.elementor-widget-icon-list .elementor-icon-list-text {
	color: var(--smartre-parchment);
	opacity: 0.9;
}
.smartre-check-list .elementor-icon-list-icon i {
	color: var(--smartre-brass);
}
.smartre-check-list .elementor-icon-list-item { margin-bottom: 0.6rem; }
.smartre-check-list.is-on-light.elementor-widget-icon-list .elementor-icon-list-text {
	color: var(--smartre-ink);
	opacity: 0.85;
}
.smartre-check-list.is-on-light .elementor-icon-list-icon i {
	color: var(--smartre-brass-dark);
}

/* === multi-column flex sizing ===
   Elementor containers don't expose per-child width/flex-basis in the JSON
   schema (only widgets do) - control it here with plain CSS on our classes. */
.smartre-pipeline-track { align-items: flex-start; }
.smartre-pipeline-step {
	flex: 1 1 0;
	border-right: 1px dashed var(--smartre-line);
	padding-right: 1.75rem !important;
	margin-right: 1.75rem;
}
.smartre-pipeline-step.is-last { border-right: none; margin-right: 0; padding-right: 0 !important; }

.smartre-feature-card { flex: 1 1 0; min-width: 0; }
.smartre-stat { flex: 1 1 0; min-width: 180px; }

@media (min-width: 769px) {
	.smartre-hero-col-left { flex: 1 1 55%; min-width: 0; }
	.smartre-hero-col-right { flex: 1 1 45%; min-width: 0; }
	.smartre-commission-col { flex: 1 1 50%; min-width: 0; }
	.smartre-feat-col { flex: 1 1 50%; min-width: 0; }
}

/* === inner page hero === */
.smartre-page-hero, .smartre-page-title, .smartre-page-sub { }
.smartre-page-title .elementor-heading-title { color: var(--smartre-parchment); font-size: clamp(2.2rem, 4.2vw, 3.2rem); max-width: 18ch; margin: 0.75rem auto 0; }
.smartre-page-sub.elementor-widget-text-editor { color: var(--smartre-parchment); opacity: 0.75; max-width: 52ch; margin: 1.25rem auto 0; }

/* === alternating feature rows === */
.smartre-feat-num { font-family: "JetBrains Mono", Menlo, monospace; text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.8rem; color: var(--smartre-brass-dark); font-weight: 700; display: block; margin-bottom: 0.5rem; }

/* === pricing cards === */
@media (min-width: 769px) {
	.smartre-price-grid > .smartre-price-card { flex: 1 1 0; min-width: 0; }
}
.smartre-price-card {
	display: flex;
	flex-direction: column;
	background: var(--smartre-parchment-2);
	padding: 2.25rem 2rem;
	border-radius: 3px;
}
.smartre-price-card.is-featured {
	background: var(--smartre-ink);
}
.smartre-price-badge.elementor-widget-text-editor {
	font-family: "JetBrains Mono", Menlo, monospace;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	font-size: 0.7rem;
	color: var(--smartre-brass);
	margin-bottom: 0.25rem;
}
.smartre-price-tier.elementor-widget-text-editor {
	font-family: "JetBrains Mono", Menlo, monospace;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	font-size: 0.85rem;
	color: var(--smartre-slate);
}
.smartre-price-card.is-featured .smartre-price-tier.elementor-widget-text-editor { color: var(--smartre-parchment); }
.smartre-price-amount .elementor-heading-title {
	font-family: "Fraunces", Georgia, serif;
	font-size: 2.3rem;
	color: var(--smartre-ink);
	margin-top: 0.25rem;
}
.smartre-price-card.is-featured .smartre-price-amount .elementor-heading-title { color: var(--smartre-parchment); }
.smartre-price-desc.elementor-widget-text-editor { color: var(--smartre-slate); font-size: 0.92rem; min-height: 3em; }
.smartre-price-card.is-featured .smartre-price-desc.elementor-widget-text-editor { color: var(--smartre-parchment); opacity: 0.75; }
.smartre-price-card .smartre-check-list { margin-top: 1rem; flex-grow: 1; }
.smartre-price-card.is-featured .smartre-check-list .elementor-icon-list-text { color: var(--smartre-parchment); opacity: 0.9; }
.smartre-price-card.is-featured .smartre-check-list .elementor-icon-list-icon i { color: var(--smartre-brass); }
.smartre-price-btn.elementor-widget-button { margin-top: 1.5rem; }
.smartre-price-btn .elementor-button { display: block; width: 100%; text-align: center; }

/* === FAQ === */
.smartre-faq-item { max-width: 700px; margin-top: 2rem; padding-bottom: 1.75rem; border-bottom: 1px solid var(--smartre-line); }
.smartre-faq-q .elementor-heading-title { font-size: 1.2rem; color: var(--smartre-ink); }
.smartre-faq-a.elementor-widget-text-editor { color: var(--smartre-slate); margin-top: 0.4rem; }

/* === about: stat block === */
.smartre-stat-block {
	background: var(--smartre-ink);
	padding: 2.25rem;
	border-radius: 3px;
}
.smartre-stat-block .smartre-stat-num.elementor-widget-text-editor {
	color: var(--smartre-brass);
	font-size: 1.8rem;
	font-family: "JetBrains Mono", Menlo, monospace;
	font-weight: 700;
}
.smartre-stat-block .dark-label.elementor-widget-text-editor {
	color: var(--smartre-parchment);
	opacity: 0.65;
	margin-bottom: 1.25rem;
	padding-bottom: 1.25rem;
	border-bottom: 1px solid var(--smartre-line-light);
}
.smartre-stat-block > .e-con-inner > *:last-child .dark-label,
.smartre-stat-block .dark-label:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }

/* === contact === */
@media (min-width: 769px) {
	.smartre-contact-info { flex: 1 1 35%; min-width: 0; }
	.smartre-contact-form-col { flex: 1 1 65%; min-width: 0; }
}
.smartre-contact-heading .elementor-heading-title { font-size: 1.3rem; color: var(--smartre-ink); }
.smartre-contact-line.elementor-widget-text-editor {
	color: var(--smartre-slate);
	margin-bottom: 1.25rem;
	line-height: 1.5;
}
.smartre-form-card {
	background: var(--smartre-parchment-2);
	padding: 2.5rem;
	border-radius: 3px;
}
.smartre-form-card .grunion-field-label,
.smartre-form-card label {
	font-family: "JetBrains Mono", Menlo, monospace;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	font-size: 0.75rem;
	color: var(--smartre-slate);
	display: block;
	margin-bottom: 0.35rem;
}
.smartre-form-card input[type="text"],
.smartre-form-card input[type="email"],
.smartre-form-card textarea {
	background: var(--smartre-parchment);
	border: 1px solid var(--smartre-line);
	border-radius: 2px;
	padding: 0.7em 0.9em;
	font-family: "Work Sans", Georgia, serif;
	width: 100%;
	margin-bottom: 1rem;
}
.smartre-form-card input:focus, .smartre-form-card textarea:focus {
	border-color: var(--smartre-brass-dark);
	outline: none;
}
.smartre-form-card button, .smartre-form-card input[type="submit"] {
	background: var(--smartre-brass);
	color: var(--smartre-ink);
	font-family: "JetBrains Mono", Menlo, monospace;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	font-size: 0.85rem;
	border: none;
	border-radius: 2px;
	padding: 0.85em 1.6em;
	cursor: pointer;
	transition: background-color 0.2s ease;
}
.smartre-form-card button:hover, .smartre-form-card input[type="submit"]:hover {
	background: var(--smartre-ink);
	color: var(--smartre-parchment);
}
.smartre-step-num {
	font-family: "JetBrains Mono", Menlo, monospace;
	color: var(--smartre-brass-dark);
	font-size: 0.85rem;
	font-weight: 700;
}
.smartre-step-title .elementor-heading-title { font-size: 1.3rem; }
.smartre-step-desc { color: var(--smartre-slate); font-size: 0.95rem; }

/* === feature titles / desc color fix on light bg === */
.smartre-feature-title .elementor-heading-title,
.smartre-faq-q .elementor-heading-title,
.smartre-contact-heading .elementor-heading-title { color: var(--smartre-ink); }
.smartre-feature-desc, .smartre-faq-a { color: var(--smartre-slate); }

/* === price cards on light bg === */
.smartre-price-tier .elementor-heading-title { color: var(--smartre-slate); font-family: "JetBrains Mono", Menlo, monospace; text-transform: uppercase; letter-spacing: 0.06em; font-size: 0.85rem; }
.smartre-price-amount .elementor-heading-title { font-family: "Fraunces", Georgia, serif; font-size: 2.5rem; color: var(--smartre-ink); }
.smartre-price-desc { color: var(--smartre-slate); }
/* === header/footer (Hello Elementor classic header/footer) === */
.site-header {
	background: var(--smartre-parchment);
	border-bottom: 2px solid var(--smartre-ink);
	padding: 1.5rem 5%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 1rem;
}
.site-header .site-title a {
	font-family: "Fraunces", Georgia, serif;
	font-weight: 700;
	font-size: 1.5rem;
	color: var(--smartre-ink);
	text-decoration: none;
}
.site-header .site-description {
	display: none;
}
.site-header .site-navigation ul {
	display: flex;
	gap: 1.75rem;
	list-style: none;
	margin: 0;
	padding: 0;
	flex-wrap: wrap;
}
.site-header .site-navigation a {
	font-family: "JetBrains Mono", Menlo, monospace;
	font-size: 0.85rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--smartre-ink);
	text-decoration: none;
	border-bottom: 1px solid transparent;
	padding-bottom: 2px;
}
.site-header .site-navigation a:hover {
	color: var(--smartre-brass-dark);
	border-bottom-color: var(--smartre-brass-dark);
}

.site-footer {
	background: var(--smartre-ink);
	color: var(--smartre-parchment);
	padding: 3rem 5%;
	text-align: center;
}
.site-footer .site-navigation ul {
	display: flex;
	justify-content: center;
	gap: 2rem;
	list-style: none;
	margin: 0;
	padding: 0;
	flex-wrap: wrap;
}
.site-footer .site-navigation a {
	color: var(--smartre-parchment);
	opacity: 0.8;
	text-decoration: none;
	font-size: 0.95rem;
}
.site-footer .site-navigation a:hover {
	opacity: 1;
	color: var(--smartre-brass);
}
/* === buttons ===
   The smartre-btn-* class lands on the widget wrapper div, while Elementor
   renders the actual clickable element as a nested <a class="elementor-button">.
   Use a descendant selector, not a combined-class selector. */
.smartre-btn-primary .elementor-button {
	background-color: var(--smartre-brass);
	color: var(--smartre-ink);
	font-family: "JetBrains Mono", Menlo, monospace;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	font-size: 0.85rem;
	border-radius: 2px;
	transition: background-color 0.2s ease, transform 0.2s ease;
}
.smartre-btn-primary .elementor-button:hover {
	background-color: var(--smartre-ink);
	color: var(--smartre-parchment);
	transform: translateY(-2px);
}
.smartre-btn-ghost .elementor-button {
	background-color: transparent;
	color: var(--smartre-parchment);
	border: 1px solid var(--smartre-line-light);
	font-family: "JetBrains Mono", Menlo, monospace;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	font-size: 0.85rem;
	border-radius: 2px;
}
.smartre-btn-ghost .elementor-button:hover {
	border-color: var(--smartre-brass);
	color: var(--smartre-brass);
}
.smartre-btn-ghost-dark .elementor-button {
	background-color: transparent;
	color: var(--smartre-ink);
	border: 1px solid var(--smartre-ink);
	font-family: "JetBrains Mono", Menlo, monospace;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	font-size: 0.85rem;
	border-radius: 2px;
}
.smartre-btn-ghost-dark .elementor-button:hover {
	background-color: var(--smartre-ink);
	color: var(--smartre-parchment);
}
.smartre-cta .smartre-btn-primary .elementor-button {
	background-color: var(--smartre-ink);
	color: var(--smartre-parchment);
}
.smartre-cta .smartre-btn-primary .elementor-button:hover {
	background-color: var(--smartre-parchment);
	color: var(--smartre-ink);
}
/* === responsive === */
