/* ==========================================================================
   SafeCloud — Elementor bridge
   Loaded only when Elementor is active. Maps Elementor's own widget classes
   onto the design tokens in site.css, so a heading or button placed with the
   builder matches one rendered by a shortcode.
   ========================================================================== */

/* ---- base ------------------------------------------------------------- */
body,
body.elementor-page,
body.elementor-kit-1 {
	background: var(--paper);
	color: var(--ink);
	font-family: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
	font-size: 16px;
	line-height: 1.6;
	font-variant-numeric: tabular-nums;
}

/* ---- headings --------------------------------------------------------- */
.elementor-widget-heading .elementor-heading-title,
.elementor-widget-theme-post-title .elementor-heading-title {
	font-family: Archivo, "IBM Plex Sans", sans-serif;
	font-weight: 600;
	letter-spacing: -0.015em;
	line-height: 1.15;
	color: var(--ink);
}
.elementor-widget-heading .elementor-heading-title h1,
.elementor-widget-heading h1.elementor-heading-title,
.elementor-widget-theme-post-title h1.elementor-heading-title {
	font-size: clamp(2rem, 4.2vw, 3.05rem);
	max-width: 18ch;
}
.elementor-widget-heading h2.elementor-heading-title {
	font-size: clamp(1.45rem, 2.5vw, 2rem);
}
.elementor-widget-heading h3.elementor-heading-title {
	font-size: 1.05rem;
	letter-spacing: 0;
}

/* headings sitting on the dark band or the roles section */
.roles .elementor-heading-title,
.sc-dark .elementor-heading-title {
	color: #fff;
}
.roles .elementor-widget-text-editor,
.sc-dark .elementor-widget-text-editor {
	color: #B5C2BC;
}

/* ---- body copy -------------------------------------------------------- */
.elementor-widget-text-editor,
.elementor-widget-theme-post-content,
.elementor-widget-theme-post-excerpt {
	color: var(--ink-2);
	font-size: 1rem;
}
.elementor-widget-text-editor a:not(.btn),
.elementor-widget-theme-post-content a:not(.btn) {
	color: var(--signal-ink);
	text-decoration: none;
	border-bottom: 1px solid var(--rule);
}
.elementor-widget-text-editor a:not(.btn):hover {
	border-bottom-color: var(--signal);
}

/* ---- buttons ---------------------------------------------------------- */
.elementor-button,
.elementor-button-link,
.elementor-widget-button .elementor-button {
	display: inline-block;
	padding: 12px 22px;
	border-radius: var(--r);
	font-family: "IBM Plex Sans", sans-serif;
	font-weight: 600;
	font-size: 0.94rem;
	line-height: 1.4;
	text-decoration: none;
	border: 1px solid var(--ink);
	background-color: var(--ink);
	color: var(--paper);
	fill: var(--paper);
	transition: background-color 0.15s, border-color 0.15s, color 0.15s;
	box-shadow: none;
}
.elementor-button:hover,
.elementor-button:focus,
.elementor-widget-button .elementor-button:hover {
	background-color: var(--deep);
	border-color: var(--deep);
	color: var(--paper);
}
.elementor-button .elementor-button-text {
	color: inherit;
}

/* second button in a row reads as the quieter option */
.e-con-inner > .elementor-widget-button:nth-of-type(2) .elementor-button,
.e-con > .elementor-widget-button:nth-of-type(2) .elementor-button {
	background-color: transparent;
	color: var(--ink);
}
.e-con-inner > .elementor-widget-button:nth-of-type(2) .elementor-button:hover,
.e-con > .elementor-widget-button:nth-of-type(2) .elementor-button:hover {
	background-color: var(--paper-2);
	color: var(--ink);
	border-color: var(--ink);
}

/* signal button, add the CSS class sc-btn-signal to the widget */
.sc-btn-signal .elementor-button {
	background-color: var(--signal);
	border-color: var(--signal);
	color: var(--ink);
}
.sc-btn-signal .elementor-button:hover {
	background-color: #c39800;
	border-color: #c39800;
	color: var(--ink);
}

/* buttons on the dark band */
.roles .elementor-button,
.sc-dark .elementor-button {
	background-color: var(--signal);
	border-color: var(--signal);
	color: var(--ink);
}

/* ---- containers ------------------------------------------------------- */
.e-con.e-con-boxed > .e-con-inner,
.elementor-section.elementor-section-boxed > .elementor-container {
	max-width: var(--wrap);
	margin-left: auto;
	margin-right: auto;
	padding-left: 24px;
	padding-right: 24px;
}

/* section divider rules, matching the static build */
.sc-rule {
	border-top: 1px solid var(--rule);
}

/* the facts band and other full-bleed shortcodes should ignore container padding */
.e-con-inner > .elementor-widget-shortcode > .elementor-widget-container > .facts {
	margin-left: -24px;
	margin-right: -24px;
}

/* ---- lists inside text editor ---------------------------------------- */
.elementor-widget-text-editor ul.hooks,
.elementor-widget-text-editor ul.assure {
	list-style: none;
	padding: 0;
	margin: 22px 0 0;
	display: grid;
	gap: 10px;
}
.elementor-widget-text-editor ul.hooks li,
.elementor-widget-text-editor ul.assure li {
	display: flex;
	gap: 11px;
	align-items: baseline;
	font-size: 0.95rem;
}
.elementor-widget-text-editor .tick {
	color: var(--ok);
	font-weight: 700;
	flex: none;
}
.roles .elementor-widget-text-editor .tick,
.sc-dark .elementor-widget-text-editor .tick {
	color: var(--signal);
}

/* ---- theme post elements --------------------------------------------- */
.elementor-widget-theme-post-featured-image img {
	border-radius: var(--r);
	width: 100%;
	height: auto;
}

/* ---- editor safety ---------------------------------------------------- */
/* Do not fight Elementor's own editor chrome while building. */
.elementor-editor-active .elementor-add-section-inner .elementor-button,
.elementor-panel .elementor-button {
	all: revert;
}
