/**
 * Capital Core — Global Design System
 * Colors + typography defaults matching capital-glass.html (Tailwind config).
 *
 * CRITICAL: Never reset .elementor-button / .elementor-form —
 * Form templates must keep full Style-tab control (button colors, fields, etc).
 */

:root {
	/* Palette */
	--cc-dark: #102c36;
	--cc-teal: #187b8e;
	--cc-yellow: #ffe21b;
	--cc-muted: #597078;
	--cc-lightbg: #dcecf0;
	--cc-pagebg: #f6f8f7;
	--cc-white: #ffffff;

	/* Typography */
	--cc-font-body: "Manrope", sans-serif;
	--cc-font-display: "DM Sans", sans-serif;

	/* Layout */
	--cc-container: 80rem; /* Tailwind max-w-7xl = 1280px */
}

.capital-core-widget,
.capital-core-widget *,
.capital-core-widget *::before,
.capital-core-widget *::after {
	box-sizing: border-box;
}

.capital-core-widget {
	font-family: var(--cc-font-body);
	color: var(--cc-dark);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

/* Soft reset for widget chrome — button intentionally omitted */
.capital-core-widget h1,
.capital-core-widget h2,
.capital-core-widget h3,
.capital-core-widget h4,
.capital-core-widget h5,
.capital-core-widget h6,
.capital-core-widget p,
.capital-core-widget ul,
.capital-core-widget ol,
.capital-core-widget li,
.capital-core-widget a,
.capital-core-widget span,
.capital-core-widget div {
	margin: 0;
	padding: 0;
	border: 0;
	font: inherit;
	color: inherit;
	line-height: inherit;
	letter-spacing: inherit;
	text-decoration: none;
	background: transparent;
	list-style: none;
}

/*
 * Undo the soft reset inside Elementor Form templates so their Style CSS wins.
 * (Without this, background:transparent / color:inherit fights yellow submit etc.)
 */
.capital-core-widget .elementor-form,
.capital-core-widget .elementor-form *,
.capital-core-widget .elementor-widget-form,
.capital-core-widget .elementor-widget-form *,
.capital-core-widget .elementor-button,
.capital-core-widget .elementor-button * {
	font: revert;
	color: revert;
	background: revert;
	margin: revert;
	padding: revert;
	border: revert;
	line-height: revert;
	letter-spacing: revert;
	text-decoration: revert;
	list-style: revert;
}

.capital-core-widget a:not(.elementor-form a):not(.elementor-button):not([class*="__cta"]):not(.cc-footer__item) {
	color: inherit;
	text-decoration: none;
}

/* Our chrome buttons only — never Form submit / FAQ / header menu toggles */
.capital-core-widget button:not(.elementor-button):not(.cc-faq__question):not([data-cc-faq-toggle]):not([data-cc-header-toggle]) {
	cursor: pointer;
	appearance: none;
	-webkit-appearance: none;
	margin: 0;
	padding: 0;
	border: none;
	font: inherit;
	color: inherit;
	line-height: inherit;
	letter-spacing: inherit;
	text-decoration: none;
	background: none;
}

.capital-core-widget img {
	display: block;
	max-width: 100%;
	/* Do NOT force height:auto — widgets (e.g. logo) set explicit heights */
}

/* Shared type roles (defaults — Style tab can override via Elementor) */
.cc-type-display {
	font-family: var(--cc-font-display);
}

.cc-type-body {
	font-family: var(--cc-font-body);
}

.cc-type-label {
	font-family: var(--cc-font-body);
	font-weight: 900;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.cc-type-nav {
	font-family: var(--cc-font-body);
	font-size: 0.875rem; /* text-sm */
	font-weight: 700;
	line-height: 1.25;
}

.cc-type-button {
	font-family: var(--cc-font-body);
	font-size: 0.75rem; /* text-xs */
	font-weight: 900;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	line-height: 1.25;
}

/*
 * Display title letter-spacing — exact capital-glass.html tracking.
 * Locked with !important so Elementor Style → Typography / Kit cannot alter em tracking.
 * Includes nested nodes (br/span/em) so soft-reset inherit cannot zero it out.
 */
.elementor-widget-capital_core_home_hero .cc-hero__title,
.elementor-widget-capital_core_home_hero .cc-hero__title *,
.capital-core-widget .cc-hero__title,
.capital-core-widget .cc-hero__title * {
	letter-spacing: -0.055em !important; /* tracking-[-0.055em] */
}

.elementor-widget-capital_core_home_hero .cc-hero__form-title,
.elementor-widget-capital_core_home_hero .cc-hero__form-title *,
.capital-core-widget .cc-hero__form-title,
.capital-core-widget .cc-hero__form-title * {
	letter-spacing: -0.04em !important; /* tracking-[-0.04em] */
}

.elementor-widget-capital_core_who_we_do .cc-who__title,
.elementor-widget-capital_core_who_we_do .cc-who__title *,
.elementor-widget-capital_core_full_gallery .cc-gallery__title,
.elementor-widget-capital_core_full_gallery .cc-gallery__title *,
.elementor-widget-capital_core_capital_difference .cc-diff__title,
.elementor-widget-capital_core_capital_difference .cc-diff__title *,
.capital-core-widget .cc-who__title,
.capital-core-widget .cc-who__title *,
.capital-core-widget .cc-gallery__title,
.capital-core-widget .cc-gallery__title *,
.capital-core-widget .cc-diff__title,
.capital-core-widget .cc-diff__title * {
	letter-spacing: -0.05em !important; /* tracking-[-0.05em] */
}

.elementor-widget-capital_core_our_faq .cc-faq__title,
.elementor-widget-capital_core_our_faq .cc-faq__title *,
.elementor-widget-capital_core_contact_us .cc-contact__title,
.elementor-widget-capital_core_contact_us .cc-contact__title *,
.capital-core-widget .cc-faq__title,
.capital-core-widget .cc-faq__title *,
.capital-core-widget .cc-contact__title,
.capital-core-widget .cc-contact__title * {
	letter-spacing: -0.06em !important; /* tracking-[-0.06em] */
}

.elementor-widget-capital_core_capital_glass .cc-cg__title,
.elementor-widget-capital_core_capital_glass .cc-cg__title *,
.capital-core-widget .cc-cg__title,
.capital-core-widget .cc-cg__title * {
	letter-spacing: -0.045em !important; /* tracking-[-0.045em] */
}
