/* ==========================================================================
   FinQdrive — design tokens + shared primitives
   Palette taken from the company profile deck: slate ink, cream, steel blue.
   ========================================================================== */

:root {
	/* Colour */
	--fq-ink: #2c3e45;
	--fq-ink-deep: #223036;
	--fq-ink-soft: #40565d;
	--fq-cream: #f7efd2;
	--fq-cream-deep: #e3cf94;
	--fq-paper: #fbfaf5;
	--fq-steel: #c3d0d8;
	--fq-body: #44535a;
	--fq-line: rgba(44, 62, 69, 0.14);
	--fq-line-light: rgba(255, 255, 255, 0.18);

	/* Type */
	--fq-serif: "Source Serif 4", Georgia, "Times New Roman", serif;
	--fq-sans: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;
	--fq-h1: clamp(2.15rem, 4.4vw, 3.6rem);
	--fq-h2: clamp(1.6rem, 2.7vw, 2.35rem);
	--fq-h3: 1.15rem;
	--fq-lead: clamp(1rem, 1.15vw, 1.12rem);

	/* Space */
	--fq-pad-y: clamp(3.5rem, 7vw, 6.5rem);
	--fq-pad-x: clamp(1.15rem, 4vw, 2rem);
	--fq-max: 1180px;
	--fq-radius: 3px;
	--fq-shadow: 0 12px 34px rgba(44, 62, 69, 0.09);
}

/* --- Primitives ---------------------------------------------------------- */

.fq-section {
	font-family: var(--fq-sans);
	color: var(--fq-body);
	padding: var(--fq-pad-y) var(--fq-pad-x);
	font-size: 1rem;
	line-height: 1.6;
	box-sizing: border-box;
}

.fq-section *,
.fq-section *::before,
.fq-section *::after {
	box-sizing: border-box;
}

.fq-wrap {
	max-width: var(--fq-max);
	margin-inline: auto;
	width: 100%;
}

.fq-kicker {
	font-family: var(--fq-sans);
	font-size: 0.85rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	color: var(--fq-ink-soft);
	margin: 0 0 0.4rem;
}

.fq-h2 {
	font-family: var(--fq-serif);
	font-size: var(--fq-h2);
	line-height: 1.18;
	font-weight: 600;
	color: var(--fq-ink);
	margin: 0 0 0.85rem;
	letter-spacing: -0.01em;
}

.fq-h2--light {
	color: var(--fq-cream);
}

.fq-intro {
	font-size: var(--fq-lead);
	line-height: 1.7;
	max-width: 68ch;
	margin: 0;
}

/* Buttons */
.fq-btn {
	display: inline-block;
	font-family: var(--fq-sans);
	font-size: 0.95rem;
	font-weight: 600;
	padding: 0.85rem 1.7rem;
	border-radius: var(--fq-radius);
	text-decoration: none;
	border: 1.5px solid transparent;
	cursor: pointer;
	transition: background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}

.fq-btn--solid {
	background: var(--fq-cream);
	color: var(--fq-ink-deep);
	border-color: var(--fq-cream);
}

.fq-btn--solid:hover,
.fq-btn--solid:focus-visible {
	background: var(--fq-cream-deep);
	border-color: var(--fq-cream-deep);
	color: var(--fq-ink-deep);
}

.fq-btn--ink {
	background: var(--fq-ink);
	color: #fff;
	border-color: var(--fq-ink);
}

.fq-btn--ink:hover,
.fq-btn--ink:focus-visible {
	background: var(--fq-ink-deep);
	color: #fff;
}

.fq-btn--ghost {
	border-color: currentColor;
	color: inherit;
	background: transparent;
}

.fq-btn--ghost:hover,
.fq-btn--ghost:focus-visible {
	background: rgba(255, 255, 255, 0.1);
}

/* Accessibility floor */
.fq-section a:focus-visible,
.fq-section button:focus-visible {
	outline: 2px solid var(--fq-cream-deep);
	outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
	.fq-section *,
	.fq-section *::before,
	.fq-section *::after {
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
	}
}

/* Elementor containers sometimes add their own padding; neutralise it around
   our sections so the vertical rhythm stays under the plugin's control. */
.elementor-widget-shortcode > .elementor-widget-container {
	margin: 0;
	padding: 0;
}
