/*
Theme Name: Report Kit 360
Theme URI: https://reportkit360.com
Description: Child theme of Hello Elementor for the Report Kit 360 marketing site. Design tokens, Inter, header and footer, blog and legal templates, and the utility classes used by the Elementor page builds.
Author: Digital Depth Studio Ltd
Author URI: https://reportkit360.com
Template: hello-elementor
Version: 1.0.0
Requires at least: 6.4
Tested up to: 7.1
Requires PHP: 8.1
License: GNU General Public License v3 or later
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Text Domain: rk360
*/

/* ------------------------------------------------------------------
   1. Font
   ------------------------------------------------------------------ */
@font-face {
	font-family: "Inter";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("assets/fonts/InterVariable.woff2") format("woff2");
}

/* ------------------------------------------------------------------
   2. Design tokens
   ------------------------------------------------------------------ */
:root {
	--rk-teal: #0E7C86;
	--rk-teal-bright: #2AB3BF;
	--rk-teal-dark: #0A5F67;
	--rk-ink: #0F172A;
	--rk-slate: #475569;
	--rk-slate-light: #64748B;
	--rk-paper: #F5F7FA;
	--rk-tint: #E6F4F5;
	--rk-white: #FFFFFF;
	--rk-line: #E2E8F0;
	--rk-line-strong: #CBD5E1;
	--rk-focus: #2AB3BF;

	--rk-font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

	--rk-text-xs: 0.8125rem;
	--rk-text-sm: 0.9375rem;
	--rk-text-base: 1.0625rem;
	--rk-text-lg: 1.1875rem;
	--rk-text-xl: 1.375rem;
	--rk-text-2xl: clamp(1.5rem, 1.2rem + 1vw, 1.875rem);
	--rk-text-3xl: clamp(1.75rem, 1.3rem + 1.6vw, 2.5rem);
	--rk-text-4xl: clamp(2.25rem, 1.6rem + 2.6vw, 3.5rem);

	--rk-leading-tight: 1.15;
	--rk-leading-snug: 1.3;
	--rk-leading-body: 1.6;

	--rk-container: 1200px;
	--rk-measure: 760px;
	--rk-gutter: 24px;

	--rk-space-1: 0.25rem;
	--rk-space-2: 0.5rem;
	--rk-space-3: 0.75rem;
	--rk-space-4: 1rem;
	--rk-space-5: 1.5rem;
	--rk-space-6: 2rem;
	--rk-space-7: 3rem;
	--rk-space-8: 4rem;
	--rk-space-9: 6rem;

	--rk-section-y: clamp(3.5rem, 5vw + 1rem, 6rem);

	--rk-radius-sm: 8px;
	--rk-radius: 12px;
	--rk-radius-lg: 16px;
	--rk-radius-pill: 999px;

	--rk-shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.06), 0 1px 3px rgba(15, 23, 42, 0.08);
	--rk-shadow: 0 4px 12px rgba(15, 23, 42, 0.08), 0 1px 3px rgba(15, 23, 42, 0.06);
	--rk-shadow-lg: 0 18px 40px rgba(15, 23, 42, 0.12);

	--rk-header-h: 72px;
	--rk-transition: 160ms ease;

	/* Elementor kit fallbacks so widgets inherit the brand when the kit has no value. */
	--e-global-color-primary: var(--rk-teal);
	--e-global-color-secondary: var(--rk-ink);
	--e-global-color-text: var(--rk-slate);
	--e-global-color-accent: var(--rk-teal-bright);
}

/* ------------------------------------------------------------------
   3. Base
   ------------------------------------------------------------------ */
html {
	scroll-behavior: smooth;
	-webkit-text-size-adjust: 100%;
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}

body {
	margin: 0;
	font-family: var(--rk-font);
	font-size: var(--rk-text-base);
	line-height: var(--rk-leading-body);
	color: var(--rk-slate);
	background: var(--rk-white);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	font-feature-settings: "cv11", "ss01";
}

body.rk-nav-open {
	overflow: hidden;
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--rk-font);
	color: var(--rk-ink);
	font-weight: 700;
	letter-spacing: -0.015em;
	line-height: var(--rk-leading-snug);
	margin: 0 0 var(--rk-space-4);
}

h1 { font-size: var(--rk-text-4xl); line-height: var(--rk-leading-tight); letter-spacing: -0.025em; }
h2 { font-size: var(--rk-text-3xl); letter-spacing: -0.02em; }
h3 { font-size: var(--rk-text-2xl); }
h4 { font-size: var(--rk-text-xl); }
h5 { font-size: var(--rk-text-lg); }
h6 { font-size: var(--rk-text-base); text-transform: uppercase; letter-spacing: 0.06em; }

p { margin: 0 0 var(--rk-space-4); }

a {
	color: var(--rk-teal);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.15em;
	transition: color var(--rk-transition);
}

a:hover { color: var(--rk-teal-dark); }

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
summary:focus-visible {
	outline: 3px solid var(--rk-focus);
	outline-offset: 2px;
	border-radius: 4px;
}

img, svg, video { max-width: 100%; height: auto; }
img { display: block; }

strong, b { font-weight: 600; color: var(--rk-ink); }

code, pre, kbd {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 0.9em;
}

hr {
	border: 0;
	border-top: 1px solid var(--rk-line);
	margin: var(--rk-space-6) 0;
}

::selection { background: var(--rk-tint); color: var(--rk-ink); }

/* Hello Elementor's own header-footer sheet is dequeued; neutralise any leftovers. */
.site-header, .site-footer { padding: 0; }

.skip-link.screen-reader-text:focus {
	position: fixed;
	top: 8px;
	left: 8px;
	z-index: 10000;
	width: auto;
	height: auto;
	clip: auto;
	clip-path: none;
	padding: 10px 16px;
	background: var(--rk-ink);
	color: var(--rk-white);
	border-radius: var(--rk-radius-sm);
	font-weight: 600;
	text-decoration: none;
}

/* ------------------------------------------------------------------
   4. Layout utilities
   ------------------------------------------------------------------ */
.rk-container {
	width: 100%;
	max-width: var(--rk-container);
	margin-inline: auto;
	padding-inline: var(--rk-gutter);
	box-sizing: border-box;
}

.rk-container--narrow { max-width: calc(var(--rk-measure) + 2 * var(--rk-gutter)); }
.rk-container--mid { max-width: 960px; }

.rk-section {
	padding-block: var(--rk-section-y);
}

.rk-section--tight { padding-block: calc(var(--rk-section-y) * 0.6); }
.rk-section--flush-top { padding-top: 0; }
.rk-section--flush-bottom { padding-bottom: 0; }
.rk-section--paper { background: var(--rk-paper); }
.rk-section--tint { background: var(--rk-tint); }
.rk-section--ink { background: var(--rk-ink); color: #CBD5E1; }
.rk-section--ink h1, .rk-section--ink h2, .rk-section--ink h3, .rk-section--ink h4 { color: var(--rk-white); }
.rk-section--ink a:not(.rk-btn) { color: var(--rk-teal-bright); }
.rk-section--border-top { border-top: 1px solid var(--rk-line); }

.rk-grid-2, .rk-grid-3, .rk-grid-4 {
	display: grid;
	gap: var(--rk-space-5);
	list-style: none;
	margin: 0;
	padding: 0;
}
.rk-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rk-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.rk-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.rk-stack > * + * { margin-top: var(--rk-space-4); }
.rk-cluster { display: flex; flex-wrap: wrap; gap: var(--rk-space-3); align-items: center; }
.rk-cluster--center { justify-content: center; }

.rk-text-center { text-align: center; }
.rk-measure { max-width: var(--rk-measure); }
.rk-measure--center { max-width: var(--rk-measure); margin-inline: auto; }

.rk-mt-0 { margin-top: 0 !important; }
.rk-mt-2 { margin-top: var(--rk-space-2) !important; }
.rk-mt-4 { margin-top: var(--rk-space-4) !important; }
.rk-mt-6 { margin-top: var(--rk-space-6) !important; }
.rk-mt-8 { margin-top: var(--rk-space-8) !important; }
.rk-mb-0 { margin-bottom: 0 !important; }
.rk-mb-2 { margin-bottom: var(--rk-space-2) !important; }
.rk-mb-4 { margin-bottom: var(--rk-space-4) !important; }
.rk-mb-6 { margin-bottom: var(--rk-space-6) !important; }
.rk-mb-8 { margin-bottom: var(--rk-space-8) !important; }

.rk-eyebrow {
	display: inline-block;
	font-size: var(--rk-text-xs);
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--rk-teal);
	margin-bottom: var(--rk-space-3);
}

.rk-lead {
	font-size: var(--rk-text-lg);
	line-height: 1.55;
	color: var(--rk-slate);
}

.rk-muted { color: var(--rk-slate-light); }
.rk-small { font-size: var(--rk-text-sm); }

.rk-section__head {
	max-width: 720px;
	margin: 0 auto var(--rk-space-7);
	text-align: center;
}
.rk-section__head p:last-child { margin-bottom: 0; }

/* ------------------------------------------------------------------
   5. Buttons
   ------------------------------------------------------------------ */
.rk-btn,
.rk-btn:visited,
a.rk-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5em;
	min-height: 44px;
	padding: 0.65rem 1.25rem;
	border-radius: var(--rk-radius-sm);
	border: 1.5px solid transparent;
	font-family: var(--rk-font);
	font-size: var(--rk-text-sm);
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	white-space: nowrap;
	transition: background-color var(--rk-transition), border-color var(--rk-transition), color var(--rk-transition), box-shadow var(--rk-transition), transform var(--rk-transition);
	-webkit-appearance: none;
	appearance: none;
}

.rk-btn:active { transform: translateY(1px); }

.rk-btn-primary, .rk-btn--primary, a.rk-btn-primary, a.rk-btn--primary,
.rk-btn-primary:visited, .rk-btn--primary:visited {
	background: var(--rk-teal);
	border-color: var(--rk-teal);
	color: var(--rk-white);
}
.rk-btn-primary:hover, .rk-btn--primary:hover, .rk-btn-primary:focus-visible, .rk-btn--primary:focus-visible {
	background: var(--rk-teal-dark);
	border-color: var(--rk-teal-dark);
	color: var(--rk-white);
	box-shadow: var(--rk-shadow);
}

.rk-btn-secondary, .rk-btn--secondary, a.rk-btn-secondary, a.rk-btn--secondary,
.rk-btn-secondary:visited, .rk-btn--secondary:visited {
	background: var(--rk-white);
	border-color: var(--rk-line-strong);
	color: var(--rk-ink);
}
.rk-btn-secondary:hover, .rk-btn--secondary:hover, .rk-btn-secondary:focus-visible, .rk-btn--secondary:focus-visible {
	border-color: var(--rk-teal);
	color: var(--rk-teal);
	background: var(--rk-white);
}

.rk-btn-ghost, .rk-btn--ghost, a.rk-btn-ghost, a.rk-btn--ghost {
	background: transparent;
	border-color: transparent;
	color: var(--rk-teal);
	padding-inline: 0.75rem;
}
.rk-btn-ghost:hover, .rk-btn--ghost:hover { color: var(--rk-teal-dark); background: var(--rk-tint); }

.rk-btn-light, .rk-btn--light, a.rk-btn-light, a.rk-btn--light {
	background: var(--rk-white);
	border-color: var(--rk-white);
	color: var(--rk-teal);
}
.rk-btn-light:hover, .rk-btn--light:hover { background: var(--rk-tint); border-color: var(--rk-tint); color: var(--rk-teal-dark); }

.rk-btn-outline-light, .rk-btn--outline-light, a.rk-btn-outline-light, a.rk-btn--outline-light {
	background: transparent;
	border-color: rgba(255, 255, 255, 0.55);
	color: var(--rk-white);
}
.rk-btn-outline-light:hover, .rk-btn--outline-light:hover { border-color: var(--rk-white); background: rgba(255, 255, 255, 0.08); color: var(--rk-white); }

.rk-btn-lg, .rk-btn--lg { min-height: 52px; padding: 0.85rem 1.6rem; font-size: var(--rk-text-base); border-radius: var(--rk-radius); }
.rk-btn-sm, .rk-btn--sm { min-height: 36px; padding: 0.4rem 0.9rem; font-size: var(--rk-text-xs); }
.rk-btn-block, .rk-btn--block { width: 100%; }

.rk-btn-group, .rk-actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--rk-space-3);
	align-items: center;
}
.rk-btn-group--center, .rk-actions--center { justify-content: center; }

/* Elementor button widget opt-in: add rk-btn-primary / rk-btn-secondary to the widget's CSS classes. */
.elementor-widget-button.rk-btn-primary .elementor-button,
.elementor-widget-button.rk-btn--primary .elementor-button {
	background: var(--rk-teal); color: var(--rk-white); border-radius: var(--rk-radius-sm); font-weight: 600; font-family: var(--rk-font);
}
.elementor-widget-button.rk-btn-primary .elementor-button:hover,
.elementor-widget-button.rk-btn--primary .elementor-button:hover { background: var(--rk-teal-dark); }
.elementor-widget-button.rk-btn-secondary .elementor-button,
.elementor-widget-button.rk-btn--secondary .elementor-button {
	background: var(--rk-white); color: var(--rk-ink); border: 1.5px solid var(--rk-line-strong); border-radius: var(--rk-radius-sm); font-weight: 600; font-family: var(--rk-font);
}
.elementor-widget-button.rk-btn-secondary .elementor-button:hover,
.elementor-widget-button.rk-btn--secondary .elementor-button:hover { border-color: var(--rk-teal); color: var(--rk-teal); }

/* ------------------------------------------------------------------
   6. Badges
   ------------------------------------------------------------------ */
.rk-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.3em;
	padding: 0.15em 0.6em;
	border-radius: var(--rk-radius-pill);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	line-height: 1.5;
	vertical-align: middle;
	white-space: nowrap;
}

.rk-badge-pro, .rk-badge--pro {
	background: var(--rk-ink);
	color: var(--rk-white);
}

.rk-badge-basic, .rk-badge--basic {
	background: var(--rk-tint);
	color: var(--rk-teal-dark);
}

.rk-badge-basic-pro, .rk-badge--both {
	background: var(--rk-paper);
	color: var(--rk-slate);
	border: 1px solid var(--rk-line);
}

.rk-badge-pro:not(.rk-badge),
.rk-badge-basic:not(.rk-badge) {
	display: inline-flex;
	align-items: center;
	padding: 0.15em 0.6em;
	border-radius: var(--rk-radius-pill);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	line-height: 1.5;
	vertical-align: middle;
}

/* ------------------------------------------------------------------
   7. Header
   ------------------------------------------------------------------ */
.rk-header {
	position: sticky;
	top: 0;
	z-index: 1000;
	background: rgba(255, 255, 255, 0.92);
	-webkit-backdrop-filter: saturate(180%) blur(12px);
	backdrop-filter: saturate(180%) blur(12px);
	border-bottom: 1px solid transparent;
	transition: border-color var(--rk-transition), box-shadow var(--rk-transition);
}

.rk-header.is-scrolled {
	border-bottom-color: var(--rk-line);
	box-shadow: 0 1px 0 rgba(15, 23, 42, 0.02), 0 8px 24px rgba(15, 23, 42, 0.06);
}

.admin-bar .rk-header { top: 32px; }

.rk-header__inner {
	display: flex;
	align-items: center;
	gap: var(--rk-space-5);
	min-height: var(--rk-header-h);
}

.rk-header__logo {
	display: inline-flex;
	align-items: center;
	flex: 0 0 auto;
	text-decoration: none;
	line-height: 0;
}

.rk-header__logo svg {
	height: 44px;
	width: auto;
	display: block;
}

.rk-header__logo img { height: 44px; width: auto; }

.rk-nav {
	flex: 1 1 auto;
	display: flex;
	justify-content: center;
}

.rk-menu,
.rk-menu ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.rk-menu {
	display: flex;
	align-items: center;
	gap: 0.25rem;
}

.rk-menu > li {
	position: relative;
}

.rk-menu > li > a,
.rk-menu > li > .rk-menu__parent {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.55rem 0.8rem;
	border-radius: var(--rk-radius-sm);
	color: var(--rk-ink);
	font-size: var(--rk-text-sm);
	font-weight: 500;
	text-decoration: none;
	transition: background-color var(--rk-transition), color var(--rk-transition);
	white-space: nowrap;
}

.rk-menu > li > a:hover,
.rk-menu > li.is-open > a,
.rk-menu > li:hover > a,
.rk-menu > li.current-menu-item > a,
.rk-menu > li.current-menu-ancestor > a,
.rk-menu > li.current_page_parent > a {
	color: var(--rk-teal);
	background: var(--rk-tint);
}

.rk-menu__parent {
	display: inline-flex;
	align-items: center;
}

.rk-sub-toggle,
.elementor-kit-5 .rk-sub-toggle,
body .rk-header .rk-sub-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	margin-left: -0.35rem;
	padding: 0;
	border: 0 !important;
	background: transparent !important;
	color: var(--rk-slate) !important;
	box-shadow: none !important;
	cursor: pointer;
	border-radius: 6px;
}
.rk-sub-toggle:hover, .rk-sub-toggle:focus-visible { color: var(--rk-teal) !important; background: var(--rk-tint) !important; }

.rk-sub-toggle svg {
	width: 14px;
	height: 14px;
	transition: transform var(--rk-transition);
}

li.is-open > .rk-menu__parent .rk-sub-toggle svg,
li:hover > .rk-menu__parent .rk-sub-toggle svg { transform: rotate(180deg); }

.rk-menu .sub-menu {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	min-width: 260px;
	padding: 0.5rem;
	background: var(--rk-white);
	border: 1px solid var(--rk-line);
	border-radius: var(--rk-radius);
	box-shadow: var(--rk-shadow-lg);
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity var(--rk-transition), transform var(--rk-transition), visibility var(--rk-transition);
	z-index: 50;
}

.rk-menu > li.rk-has-cols .sub-menu {
	min-width: 560px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 0.25rem;
}

.rk-menu > li:hover > .sub-menu,
.rk-menu > li.is-open > .sub-menu,
.rk-menu > li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.rk-menu .sub-menu a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	padding: 0.55rem 0.75rem;
	border-radius: var(--rk-radius-sm);
	color: var(--rk-ink);
	font-size: var(--rk-text-sm);
	font-weight: 500;
	text-decoration: none;
	line-height: 1.35;
}

.rk-menu .sub-menu a:hover,
.rk-menu .sub-menu .current-menu-item > a {
	background: var(--rk-paper);
	color: var(--rk-teal);
}

.rk-menu .sub-menu .rk-badge { flex: 0 0 auto; }

.rk-menu .rk-menu__external svg { width: 12px; height: 12px; opacity: 0.6; }

.rk-header__actions {
	display: flex;
	align-items: center;
	gap: var(--rk-space-2);
	flex: 0 0 auto;
}

.rk-burger,
.elementor-kit-5 .rk-burger,
body .rk-header .rk-burger {
	display: none;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid var(--rk-line);
	border-radius: var(--rk-radius-sm);
	background: var(--rk-white) !important;
	color: var(--rk-ink) !important;
	box-shadow: none !important;
	cursor: pointer;
	flex: 0 0 auto;
}
.rk-burger:hover, .rk-burger:focus-visible { background: var(--rk-paper) !important; color: var(--rk-teal) !important; border-color: var(--rk-line-strong); }

.rk-burger__box {
	position: relative;
	width: 20px;
	height: 14px;
}

.rk-burger__box span {
	position: absolute;
	left: 0;
	width: 100%;
	height: 2px;
	border-radius: 2px;
	background: currentColor;
	transition: transform var(--rk-transition), opacity var(--rk-transition), top var(--rk-transition);
}

.rk-burger__box span:nth-child(1) { top: 0; }
.rk-burger__box span:nth-child(2) { top: 6px; }
.rk-burger__box span:nth-child(3) { top: 12px; }

.rk-burger[aria-expanded="true"] .rk-burger__box span:nth-child(1) { top: 6px; transform: rotate(45deg); }
.rk-burger[aria-expanded="true"] .rk-burger__box span:nth-child(2) { opacity: 0; }
.rk-burger[aria-expanded="true"] .rk-burger__box span:nth-child(3) { top: 6px; transform: rotate(-45deg); }

.rk-nav__actions { display: none; }

/* ------------------------------------------------------------------
   8. Hero
   ------------------------------------------------------------------ */
.rk-hero {
	position: relative;
	padding-block: clamp(3.5rem, 6vw + 1rem, 7rem) clamp(3rem, 5vw + 1rem, 6rem);
	background: linear-gradient(180deg, var(--rk-tint) 0%, var(--rk-white) 100%);
	overflow: hidden;
}

.rk-hero--ink {
	background: radial-gradient(1200px 600px at 80% -10%, rgba(42, 179, 191, 0.28), transparent 60%), var(--rk-ink);
	color: #CBD5E1;
}
.rk-hero--ink h1, .rk-hero--ink h2 { color: var(--rk-white); }
.rk-hero--ink .rk-lead { color: #CBD5E1; }
.rk-hero--ink .rk-eyebrow { color: var(--rk-teal-bright); }

.rk-hero--plain { background: var(--rk-white); }
.rk-hero--compact { padding-block: clamp(2.5rem, 4vw + 1rem, 4.5rem); }

.rk-hero h1 { margin-bottom: var(--rk-space-5); }
.rk-hero .rk-lead { max-width: 640px; margin-bottom: var(--rk-space-6); }
.rk-hero--center { text-align: center; }
.rk-hero--center .rk-lead { margin-inline: auto; }
.rk-hero--center .rk-btn-group, .rk-hero--center .rk-actions { justify-content: center; }

.rk-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	gap: var(--rk-space-8);
	align-items: center;
}

.rk-hero__media img {
	border-radius: var(--rk-radius-lg);
	box-shadow: var(--rk-shadow-lg);
	border: 1px solid var(--rk-line);
}

.rk-hero__note {
	margin-top: var(--rk-space-4);
	font-size: var(--rk-text-sm);
	color: var(--rk-slate-light);
}

.rk-hero .elementor-widget-heading .elementor-heading-title { color: inherit; }

/* ------------------------------------------------------------------
   9. Cards
   ------------------------------------------------------------------ */
.rk-card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: var(--rk-space-3);
	padding: var(--rk-space-6);
	background: var(--rk-white);
	border: 1px solid var(--rk-line);
	border-radius: var(--rk-radius-lg);
	box-shadow: var(--rk-shadow-sm);
	transition: box-shadow var(--rk-transition), transform var(--rk-transition), border-color var(--rk-transition);
	box-sizing: border-box;
	height: 100%;
}

.rk-card:hover { box-shadow: var(--rk-shadow); border-color: var(--rk-line-strong); }

.rk-card--link:hover { transform: translateY(-2px); }

.rk-card--tint { background: var(--rk-tint); border-color: transparent; }
.rk-card--paper { background: var(--rk-paper); border-color: transparent; box-shadow: none; }
.rk-card--flat { box-shadow: none; }

.rk-card h3, .rk-card h4, .rk-card .rk-card__title {
	font-size: var(--rk-text-xl);
	margin: 0;
}

.rk-card p { margin: 0; }
.rk-card p + p { margin-top: var(--rk-space-2); }

.rk-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: var(--rk-radius);
	background: var(--rk-tint);
	color: var(--rk-teal);
	margin-bottom: var(--rk-space-2);
}
.rk-card__icon svg, .rk-card__icon i { width: 24px; height: 24px; font-size: 24px; }

.rk-card__link {
	margin-top: auto;
	padding-top: var(--rk-space-3);
	font-weight: 600;
	font-size: var(--rk-text-sm);
	text-decoration: none;
}
.rk-card__link::after { content: " \2192"; }

.rk-card .rk-badge { position: absolute; top: var(--rk-space-4); right: var(--rk-space-4); }

.rk-card a.rk-card__cover {
	position: absolute;
	inset: 0;
	border-radius: inherit;
	z-index: 1;
}
.rk-card a.rk-card__cover span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* Elementor container used as a card */
.elementor-element.rk-card { display: flex; }
.elementor-element.rk-card > .e-con-inner { padding: 0; }

.elementor .rk-card .elementor-widget-heading .elementor-heading-title { font-size: var(--rk-text-xl); color: var(--rk-ink); }
.elementor .rk-card .elementor-widget-text-editor { color: var(--rk-slate); }
.elementor .rk-card .elementor-widget-icon .elementor-icon { color: var(--rk-teal); }

/* ------------------------------------------------------------------
   10. Steps
   ------------------------------------------------------------------ */
.rk-steps {
	counter-reset: rk-step;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--rk-space-6);
	list-style: none;
	margin: 0;
	padding: 0;
}

.rk-steps > li, .rk-steps > .rk-step, .rk-steps > .e-con, .rk-steps > .elementor-element {
	position: relative;
	padding-top: 64px;
	counter-increment: rk-step;
}

.rk-steps > li::before, .rk-steps > .rk-step::before, .rk-steps > .e-con::before, .rk-steps > .elementor-element::before {
	content: counter(rk-step);
	position: absolute;
	top: 0;
	left: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: var(--rk-teal);
	color: var(--rk-white);
	font-weight: 700;
	font-size: var(--rk-text-lg);
	letter-spacing: -0.02em;
	box-shadow: 0 0 0 6px var(--rk-tint);
}

.rk-steps > li:not(:last-child)::after, .rk-steps > .rk-step:not(:last-child)::after, .rk-steps > .e-con:not(:last-child)::after, .rk-steps > .elementor-element:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 24px;
	left: 60px;
	right: -12px;
	height: 2px;
	background: linear-gradient(90deg, var(--rk-teal-bright), var(--rk-line));
	opacity: 0.6;
}

.rk-steps h3, .rk-steps h4 { font-size: var(--rk-text-xl); margin-bottom: var(--rk-space-2); }
.rk-steps p { margin: 0; }

/* ------------------------------------------------------------------
   11. CTA band
   ------------------------------------------------------------------ */
.rk-cta-band {
	position: relative;
	padding-block: clamp(3rem, 5vw + 1rem, 5rem);
	background: radial-gradient(900px 400px at 85% 0%, rgba(42, 179, 191, 0.45), transparent 60%), linear-gradient(135deg, var(--rk-teal-dark), var(--rk-teal));
	color: var(--rk-white);
	text-align: center;
	overflow: hidden;
}

.rk-cta-band--ink {
	background: radial-gradient(900px 400px at 85% 0%, rgba(42, 179, 191, 0.3), transparent 60%), var(--rk-ink);
}

.rk-cta-band h2, .rk-cta-band h3, .rk-cta-band .elementor-heading-title { color: var(--rk-white); }
.rk-cta-band p, .rk-cta-band .rk-lead { color: rgba(255, 255, 255, 0.86); }
.rk-cta-band .rk-lead { max-width: 600px; margin-inline: auto; }
.rk-cta-band .rk-btn-group, .rk-cta-band .rk-actions { justify-content: center; margin-top: var(--rk-space-5); }
.rk-cta-band a:not(.rk-btn) { color: var(--rk-white); }

.rk-cta-band__inner {
	max-width: 760px;
	margin-inline: auto;
}

.rk-cta-band--card {
	border-radius: var(--rk-radius-lg);
	padding: clamp(2.5rem, 4vw, 4rem) var(--rk-space-6);
}

/* ------------------------------------------------------------------
   12. FAQ
   ------------------------------------------------------------------ */
.rk-faq {
	max-width: 820px;
	margin-inline: auto;
}

.rk-faq details, .rk-faq .rk-faq__item {
	border-top: 1px solid var(--rk-line);
}
.rk-faq details:last-of-type, .rk-faq .rk-faq__item:last-child { border-bottom: 1px solid var(--rk-line); }

.rk-faq summary, .rk-faq .rk-faq__q {
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--rk-space-4);
	padding: 1.1rem 0;
	cursor: pointer;
	font-weight: 600;
	font-size: var(--rk-text-lg);
	color: var(--rk-ink);
}
.rk-faq summary::-webkit-details-marker { display: none; }
.rk-faq summary::after {
	content: "";
	flex: 0 0 auto;
	width: 12px;
	height: 12px;
	border-right: 2px solid var(--rk-teal);
	border-bottom: 2px solid var(--rk-teal);
	transform: rotate(45deg);
	margin-right: 4px;
	transition: transform var(--rk-transition);
}
.rk-faq details[open] summary::after { transform: rotate(-135deg); }
.rk-faq summary:hover { color: var(--rk-teal); }

.rk-faq details > div, .rk-faq details > p, .rk-faq .rk-faq__a {
	padding: 0 0 1.25rem;
	color: var(--rk-slate);
	max-width: 720px;
}
.rk-faq details > div p:last-child { margin-bottom: 0; }

/* Elementor Accordion / Toggle widget inside .rk-faq */
.rk-faq .elementor-accordion .elementor-accordion-item,
.rk-faq .elementor-toggle .elementor-toggle-item { border: 0; border-top: 1px solid var(--rk-line); }
.rk-faq .elementor-accordion .elementor-accordion-item:last-child { border-bottom: 1px solid var(--rk-line); }
.rk-faq .elementor-accordion .elementor-tab-title,
.rk-faq .elementor-toggle .elementor-tab-title { padding: 1.1rem 0; font-weight: 600; font-size: var(--rk-text-lg); color: var(--rk-ink); border: 0; }
.rk-faq .elementor-accordion .elementor-tab-title.elementor-active { color: var(--rk-teal); }
.rk-faq .elementor-accordion .elementor-tab-content,
.rk-faq .elementor-toggle .elementor-tab-content { padding: 0 0 1.25rem; border: 0; color: var(--rk-slate); }
.rk-faq .elementor-accordion .elementor-accordion-icon { color: var(--rk-teal); }

/* ------------------------------------------------------------------
   13. Example cards (sample reports)
   ------------------------------------------------------------------ */
.rk-example-card {
	display: flex;
	flex-direction: column;
	background: var(--rk-white);
	border: 1px solid var(--rk-line);
	border-radius: var(--rk-radius-lg);
	overflow: hidden;
	box-shadow: var(--rk-shadow-sm);
	transition: box-shadow var(--rk-transition), transform var(--rk-transition);
	height: 100%;
	box-sizing: border-box;
}
.rk-example-card:hover { box-shadow: var(--rk-shadow); transform: translateY(-2px); }

.rk-example-card__thumb {
	position: relative;
	aspect-ratio: 4 / 3;
	background: var(--rk-paper);
	border-bottom: 1px solid var(--rk-line);
	overflow: hidden;
}
.rk-example-card__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top;
	transition: transform 300ms ease;
}
.rk-example-card:hover .rk-example-card__thumb img { transform: scale(1.02); }
.rk-example-card__thumb .rk-badge { position: absolute; top: var(--rk-space-3); left: var(--rk-space-3); box-shadow: var(--rk-shadow-sm); }

.rk-example-card__body {
	display: flex;
	flex-direction: column;
	gap: var(--rk-space-2);
	padding: var(--rk-space-5);
	flex: 1 1 auto;
}

.rk-example-card__industry {
	font-size: var(--rk-text-xs);
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--rk-teal);
}

.rk-example-card h3, .rk-example-card .rk-example-card__title {
	font-size: var(--rk-text-lg);
	margin: 0;
}
.rk-example-card p { margin: 0; font-size: var(--rk-text-sm); }

.rk-example-card__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--rk-space-2);
	margin-top: auto;
	padding-top: var(--rk-space-3);
}
.rk-example-card__actions .rk-btn { min-height: 38px; padding: 0.45rem 0.9rem; font-size: var(--rk-text-xs); }

/* Elementor container variant: the first image widget is the thumb */
.elementor-element.rk-example-card > .e-con-inner,
.elementor-element.rk-example-card { padding: 0; }
.elementor-element.rk-example-card .elementor-widget-image img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: top; }

/* ------------------------------------------------------------------
   14. Pricing (Report Kit 360 Connect shortcode scaffold + generic)
   ------------------------------------------------------------------ */
.rk-pricing, .rs-pricing {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--rk-space-6);
	max-width: 960px;
	margin-inline: auto;
}
.rk-plan, .rs-pricing .rs-plan {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: var(--rk-space-4);
	padding: var(--rk-space-6);
	border: 1px solid var(--rk-line);
	border-radius: var(--rk-radius-lg);
	background: var(--rk-white);
	box-shadow: var(--rk-shadow-sm);
}
.rk-plan--featured, .rs-pricing .rs-plan--pro, .rs-pricing .rs-plan.is-featured { border-color: var(--rk-teal); box-shadow: 0 0 0 1px var(--rk-teal), var(--rk-shadow); }
.rk-plan__name { font-size: var(--rk-text-xl); font-weight: 700; color: var(--rk-ink); margin: 0; }
.rk-plan__price { font-size: 2.5rem; font-weight: 700; letter-spacing: -0.03em; color: var(--rk-ink); line-height: 1; }
.rk-plan__price small { font-size: var(--rk-text-sm); font-weight: 500; letter-spacing: 0; color: var(--rk-slate-light); }
.rk-plan ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.6rem; }
.rk-plan ul li { position: relative; padding-left: 1.75rem; font-size: var(--rk-text-sm); }
.rk-plan ul li::before {
	content: "";
	position: absolute; left: 0; top: 0.3em;
	width: 16px; height: 16px; border-radius: 50%;
	background: var(--rk-tint);
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='none' stroke='%230E7C86' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M4 8.5l2.5 2.5L12 5.5'/></svg>");
	background-size: 12px; background-repeat: no-repeat; background-position: center;
}

.rk-compare { width: 100%; border-collapse: collapse; font-size: var(--rk-text-sm); }
.rk-compare th, .rk-compare td { padding: 0.9rem 1rem; text-align: left; border-bottom: 1px solid var(--rk-line); vertical-align: top; }
.rk-compare thead th { font-weight: 700; color: var(--rk-ink); background: var(--rk-paper); border-bottom: 2px solid var(--rk-line-strong); }
.rk-compare tbody th { font-weight: 600; color: var(--rk-ink); width: 30%; }

/* ------------------------------------------------------------------
   15. Prose (blog posts, legal pages, Gutenberg content)
   ------------------------------------------------------------------ */
.rk-prose {
	font-size: var(--rk-text-base);
	line-height: 1.7;
	color: var(--rk-slate);
}
.rk-prose > * { margin-top: 0; margin-bottom: 1.25em; }
.rk-prose h2 { font-size: var(--rk-text-2xl); margin-top: 2.5em; margin-bottom: 0.75em; }
.rk-prose h3 { font-size: var(--rk-text-xl); margin-top: 2em; margin-bottom: 0.6em; }
.rk-prose h4 { font-size: var(--rk-text-lg); margin-top: 1.75em; margin-bottom: 0.5em; }
.rk-prose h2:first-child, .rk-prose h3:first-child { margin-top: 0; }
.rk-prose ul, .rk-prose ol { padding-left: 1.5rem; }
.rk-prose li { margin-bottom: 0.5em; }
.rk-prose li > ul, .rk-prose li > ol { margin-top: 0.5em; }
.rk-prose blockquote {
	margin: 1.5em 0;
	padding: 0.5rem 0 0.5rem 1.25rem;
	border-left: 3px solid var(--rk-teal-bright);
	color: var(--rk-ink);
	font-size: var(--rk-text-lg);
}
.rk-prose img { border-radius: var(--rk-radius); }
.rk-prose figure { margin: 2em 0; }
.rk-prose figcaption { font-size: var(--rk-text-sm); color: var(--rk-slate-light); margin-top: 0.5rem; }
.rk-prose table { width: 100%; border-collapse: collapse; font-size: var(--rk-text-sm); display: block; overflow-x: auto; }
.rk-prose th, .rk-prose td { padding: 0.65rem 0.8rem; border: 1px solid var(--rk-line); text-align: left; vertical-align: top; }
.rk-prose th { background: var(--rk-paper); color: var(--rk-ink); font-weight: 600; }
.rk-prose code { background: var(--rk-paper); padding: 0.1em 0.35em; border-radius: 4px; }
.rk-prose pre { background: var(--rk-ink); color: #E2E8F0; padding: 1rem 1.25rem; border-radius: var(--rk-radius); overflow-x: auto; }
.rk-prose hr { margin: 2.5em 0; }
.rk-prose a { font-weight: 500; }
.rk-prose .wp-block-table table { display: table; }
.rk-prose .wp-block-table { overflow-x: auto; }

.rk-prose--credits table { font-size: var(--rk-text-xs); }
.rk-prose--credits td:nth-child(2) { word-break: break-word; }

/* ------------------------------------------------------------------
   16. Page and post templates
   ------------------------------------------------------------------ */
.rk-page-hero {
	padding-block: clamp(2.5rem, 4vw + 1rem, 4.5rem) clamp(2rem, 3vw + 1rem, 3rem);
	background: linear-gradient(180deg, var(--rk-tint) 0%, var(--rk-white) 100%);
}
.rk-page-hero h1 { margin-bottom: var(--rk-space-3); }
.rk-page-hero .rk-lead { margin-bottom: 0; }
.rk-page-hero__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1rem;
	align-items: center;
	font-size: var(--rk-text-sm);
	color: var(--rk-slate-light);
	margin-top: var(--rk-space-4);
}
.rk-page-hero__meta a { text-decoration: none; font-weight: 600; }

.rk-crumbs, .rank-math-breadcrumb {
	font-size: var(--rk-text-xs);
	color: var(--rk-slate-light);
	margin-bottom: var(--rk-space-4);
}
.rk-crumbs a, .rank-math-breadcrumb a { color: var(--rk-slate); text-decoration: none; }
.rk-crumbs a:hover, .rank-math-breadcrumb a:hover { color: var(--rk-teal); }
.rank-math-breadcrumb .separator { margin: 0 0.4em; opacity: 0.6; }
.rank-math-breadcrumb p { margin: 0; }

.rk-cat-pill {
	display: inline-block;
	padding: 0.2em 0.7em;
	border-radius: var(--rk-radius-pill);
	background: var(--rk-tint);
	color: var(--rk-teal-dark);
	font-size: var(--rk-text-xs);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	text-decoration: none;
}
.rk-cat-pill:hover { background: var(--rk-teal); color: var(--rk-white); }

.rk-article__figure {
	margin: calc(-1 * var(--rk-space-5)) auto var(--rk-space-7);
	max-width: 960px;
	padding-inline: var(--rk-gutter);
}
.rk-article__figure img {
	width: 100%;
	border-radius: var(--rk-radius-lg);
	border: 1px solid var(--rk-line);
	box-shadow: var(--rk-shadow);
}
.rk-article__figure figcaption { text-align: center; font-size: var(--rk-text-xs); color: var(--rk-slate-light); margin-top: 0.6rem; }

.rk-article__body { padding-bottom: var(--rk-space-7); }

.rk-tags { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: var(--rk-space-6); }
.rk-tags a {
	display: inline-block;
	padding: 0.25em 0.7em;
	border: 1px solid var(--rk-line);
	border-radius: var(--rk-radius-pill);
	font-size: var(--rk-text-xs);
	color: var(--rk-slate);
	text-decoration: none;
}
.rk-tags a:hover { border-color: var(--rk-teal); color: var(--rk-teal); }

.rk-author-note {
	display: flex;
	gap: var(--rk-space-4);
	align-items: center;
	margin-top: var(--rk-space-7);
	padding: var(--rk-space-5);
	border: 1px solid var(--rk-line);
	border-radius: var(--rk-radius-lg);
	background: var(--rk-paper);
	font-size: var(--rk-text-sm);
}
.rk-author-note svg { width: 40px; height: 40px; flex: 0 0 auto; }
.rk-author-note p { margin: 0; }

/* Post cards (blog archive, related posts) */
.rk-post-card {
	display: flex;
	flex-direction: column;
	background: var(--rk-white);
	border: 1px solid var(--rk-line);
	border-radius: var(--rk-radius-lg);
	overflow: hidden;
	box-shadow: var(--rk-shadow-sm);
	transition: box-shadow var(--rk-transition), transform var(--rk-transition);
	height: 100%;
}
.rk-post-card:hover { box-shadow: var(--rk-shadow); transform: translateY(-2px); }
.rk-post-card__thumb { aspect-ratio: 16 / 9; background: var(--rk-paper); overflow: hidden; border-bottom: 1px solid var(--rk-line); }
.rk-post-card__thumb img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.rk-post-card__thumb a { display: block; height: 100%; }
.rk-post-card__body { display: flex; flex-direction: column; gap: var(--rk-space-3); padding: var(--rk-space-5); flex: 1 1 auto; }
.rk-post-card__meta { display: flex; flex-wrap: wrap; gap: 0.5rem 0.75rem; align-items: center; font-size: var(--rk-text-xs); color: var(--rk-slate-light); }
.rk-post-card h2, .rk-post-card h3 { font-size: var(--rk-text-xl); margin: 0; }
.rk-post-card h2 a, .rk-post-card h3 a { color: var(--rk-ink); text-decoration: none; }
.rk-post-card h2 a:hover, .rk-post-card h3 a:hover { color: var(--rk-teal); }
.rk-post-card p { margin: 0; font-size: var(--rk-text-sm); }
.rk-post-card .rk-card__link { margin-top: auto; }

.rk-pagination {
	display: flex;
	justify-content: center;
	gap: 0.5rem;
	margin-top: var(--rk-space-8);
}
.rk-pagination .page-numbers {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 40px; height: 40px; padding: 0 0.75rem;
	border: 1px solid var(--rk-line); border-radius: var(--rk-radius-sm);
	color: var(--rk-ink); text-decoration: none; font-weight: 600; font-size: var(--rk-text-sm);
}
.rk-pagination .page-numbers.current { background: var(--rk-teal); border-color: var(--rk-teal); color: var(--rk-white); }
.rk-pagination a.page-numbers:hover { border-color: var(--rk-teal); color: var(--rk-teal); }

.rk-404 { text-align: center; padding-block: var(--rk-space-9); }
.rk-404 .rk-404__code { font-size: 5rem; font-weight: 800; letter-spacing: -0.04em; color: var(--rk-teal); line-height: 1; margin-bottom: var(--rk-space-4); }

/* Default WordPress content (Gutenberg, Hello page-content) inherits prose look. */
.site-main .page-content > p, .site-main .page-content > h2, .site-main .page-content > h3, .site-main .page-content > ul, .site-main .page-content > ol { max-width: var(--rk-measure); }

/* ------------------------------------------------------------------
   17. Forms (Fluent Forms)
   ------------------------------------------------------------------ */
.rk-form-card {
	padding: var(--rk-space-6);
	background: var(--rk-white);
	border: 1px solid var(--rk-line);
	border-radius: var(--rk-radius-lg);
	box-shadow: var(--rk-shadow);
}

.fluentform .ff-el-group { margin-bottom: 1.25rem; }
.fluentform .ff-el-input--label label { font-weight: 600; color: var(--rk-ink); font-size: var(--rk-text-sm); margin-bottom: 0.35rem; }
.fluentform .ff-el-input--label.ff-el-is-required.asterisk-right label::after { color: var(--rk-teal); }
.fluentform .ff-el-form-control {
	width: 100%;
	min-height: 46px;
	padding: 0.6rem 0.85rem;
	border: 1.5px solid var(--rk-line-strong);
	border-radius: var(--rk-radius-sm);
	background: var(--rk-white);
	color: var(--rk-ink);
	font-family: var(--rk-font);
	font-size: var(--rk-text-base);
	line-height: 1.4;
	box-shadow: none;
	transition: border-color var(--rk-transition), box-shadow var(--rk-transition);
}
.fluentform .ff-el-form-control:focus { border-color: var(--rk-teal); box-shadow: 0 0 0 3px var(--rk-tint); outline: none; }
.fluentform textarea.ff-el-form-control { min-height: 150px; resize: vertical; }
.fluentform .ff-btn-submit,
.fluentform .ff-btn-submit:not(.ff_btn_no_style) {
	background: var(--rk-teal) !important;
	color: var(--rk-white) !important;
	border: 0;
	border-radius: var(--rk-radius-sm);
	min-height: 48px;
	padding: 0.75rem 1.5rem;
	font-family: var(--rk-font);
	font-weight: 600;
	font-size: var(--rk-text-sm);
	cursor: pointer;
	transition: background-color var(--rk-transition);
}
.fluentform .ff-btn-submit:hover { background: var(--rk-teal-dark) !important; }
.fluentform .ff-message-success {
	background: var(--rk-tint);
	border: 1px solid var(--rk-teal-bright);
	border-radius: var(--rk-radius);
	color: var(--rk-ink);
	padding: 1rem 1.25rem;
}
.fluentform .error, .fluentform .ff-el-is-error .text-danger { color: #B42318; font-size: var(--rk-text-xs); }
.fluentform .ff-el-help-message { color: var(--rk-slate-light); font-size: var(--rk-text-xs); }

.rk-contact-grid {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: var(--rk-space-8);
	align-items: start;
}
.rk-contact-aside h2 { font-size: var(--rk-text-2xl); }
.rk-contact-aside p { color: var(--rk-slate); }
.rk-contact-aside .rk-contact-item { display: flex; gap: var(--rk-space-3); align-items: flex-start; padding: var(--rk-space-4) 0; border-top: 1px solid var(--rk-line); }
.rk-contact-aside .rk-contact-item:last-child { border-bottom: 1px solid var(--rk-line); }
.rk-contact-aside .rk-contact-item svg { width: 22px; height: 22px; color: var(--rk-teal); flex: 0 0 auto; margin-top: 2px; }
.rk-contact-aside .rk-contact-item strong { display: block; margin-bottom: 0.15rem; }
.rk-contact-aside .rk-contact-item p { margin: 0; font-size: var(--rk-text-sm); }

/* ------------------------------------------------------------------
   18. Footer
   ------------------------------------------------------------------ */
.rk-footer {
	background: var(--rk-ink);
	color: #94A3B8;
	padding-top: var(--rk-space-8);
	font-size: var(--rk-text-sm);
}

.rk-footer a { color: #CBD5E1; text-decoration: none; transition: color var(--rk-transition); }
.rk-footer a:hover { color: var(--rk-white); }

.rk-footer__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.6fr) repeat(4, minmax(0, 1fr));
	gap: var(--rk-space-6) var(--rk-space-5);
	padding-bottom: var(--rk-space-8);
}

.rk-footer__brand { display: flex; flex-direction: column; gap: var(--rk-space-4); padding-right: var(--rk-space-5); }
.rk-footer__brand .rk-footer__logo { display: inline-flex; align-items: center; gap: 0.6rem; color: var(--rk-white); font-weight: 700; font-size: var(--rk-text-lg); letter-spacing: -0.01em; text-decoration: none; }
.rk-footer__brand .rk-footer__logo svg { width: 36px; height: 36px; flex: 0 0 auto; }
.rk-footer__brand p { margin: 0; color: #94A3B8; max-width: 300px; }

.rk-footer__tagline { color: #CBD5E1 !important; font-weight: 500; }

.rk-footer__heading {
	margin: 0 0 var(--rk-space-4);
	font-size: var(--rk-text-xs);
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--rk-white);
}

.rk-footer__menu, .rk-footer__menu ul { list-style: none; margin: 0; padding: 0; }
.rk-footer__menu li { margin: 0 0 0.55rem; line-height: 1.4; }
.rk-footer__menu a { color: #CBD5E1; }
.rk-footer__menu a:hover { color: var(--rk-teal-bright); }
.rk-footer__menu .rk-badge { margin-left: 0.4rem; font-size: 0.5625rem; padding: 0.1em 0.5em; background: rgba(42, 179, 191, 0.18); color: var(--rk-teal-bright); }

.rk-footer__social {
	display: flex;
	gap: 0.5rem;
	list-style: none;
	margin: 0;
	padding: 0;
}
.rk-footer__social a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: var(--rk-radius-sm);
	border: 1px solid rgba(255, 255, 255, 0.14);
	color: #CBD5E1;
	transition: border-color var(--rk-transition), color var(--rk-transition), background-color var(--rk-transition);
}
.rk-footer__social a:hover { border-color: var(--rk-teal-bright); color: var(--rk-white); background: rgba(42, 179, 191, 0.12); }
.rk-footer__social svg { width: 18px; height: 18px; }
.rk-footer__social a.is-placeholder { opacity: 0.55; cursor: default; }

.rk-footer__bottom {
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	padding-block: var(--rk-space-5);
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: var(--rk-space-3) var(--rk-space-6);
	font-size: var(--rk-text-xs);
	color: #64748B;
}
.rk-footer__bottom p { margin: 0; max-width: 820px; line-height: 1.6; }
.rk-footer__bottom a { color: #94A3B8; }
.rk-footer__bottom-links { display: flex; flex-wrap: wrap; gap: 0.25rem 1.1rem; list-style: none; margin: 0; padding: 0; }

/* ------------------------------------------------------------------
   19. Elementor glue
   ------------------------------------------------------------------ */
.elementor-widget-heading .elementor-heading-title { font-family: var(--rk-font); color: var(--rk-ink); letter-spacing: -0.015em; }
.elementor-widget-text-editor { font-family: var(--rk-font); color: var(--rk-slate); }
.elementor-widget-text-editor a { color: var(--rk-teal); }
.elementor-element.e-con.rk-section, .elementor-element.e-con.rk-hero, .elementor-element.e-con.rk-cta-band { --padding-top: var(--rk-section-y); --padding-bottom: var(--rk-section-y); }
.elementor-element.e-con.rk-container { --content-width: var(--rk-container); }
.elementor-location-header, .elementor-location-footer { display: block; }
.elementor-kit-5 { --e-global-typography-primary-font-family: "Inter"; }

/* Rank Math breadcrumb inside Elementor pages */
.rk-hero .rank-math-breadcrumb { margin-bottom: var(--rk-space-3); }

/* ------------------------------------------------------------------
   20. Responsive
   ------------------------------------------------------------------ */
@media (max-width: 1024px) {
	:root { --rk-header-h: 64px; }
	.rk-header__logo svg, .rk-header__logo img { height: 38px; }
	.rk-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.rk-steps { grid-template-columns: 1fr; gap: var(--rk-space-5); }
	.rk-steps > li, .rk-steps > .rk-step, .rk-steps > .e-con, .rk-steps > .elementor-element { padding-top: 0; padding-left: 68px; }
	.rk-steps > li::after, .rk-steps > .rk-step::after, .rk-steps > .e-con::after, .rk-steps > .elementor-element::after { display: none; }
	.rk-footer__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.rk-footer__brand { grid-column: 1 / -1; padding-right: 0; }
	.rk-hero__grid { grid-template-columns: 1fr; gap: var(--rk-space-6); }
	.rk-contact-grid { grid-template-columns: 1fr; gap: var(--rk-space-6); }

	/* Navigation collapses to the drawer */
	.rk-burger, .elementor-kit-5 .rk-burger, body .rk-header .rk-burger { display: inline-flex; margin-left: auto; }
	.rk-header__actions { display: none; }
	/* The header's backdrop-filter makes it the containing block for fixed children,
	   so the drawer is positioned absolutely under the sticky header instead. */
	.rk-nav {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		height: calc(100vh - var(--rk-header-h));
		height: calc(100dvh - var(--rk-header-h));
		display: block;
		box-sizing: border-box;
		background: var(--rk-white);
		border-top: 1px solid var(--rk-line);
		padding: var(--rk-space-4) var(--rk-gutter) var(--rk-space-8);
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		transform: translateX(100%);
		visibility: hidden;
		transition: transform 220ms ease, visibility 220ms;
		z-index: 999;
	}
	.admin-bar .rk-nav { height: calc(100vh - var(--rk-header-h) - 32px); }
	.rk-nav.is-open { transform: translateX(0); visibility: visible; }
	/* The hidden drawer sits off-canvas at translateX(100%); clip the root so it
	   never widens the page (clip keeps sticky positioning working, hidden would not). */
	html, body { overflow-x: clip; }
	.rk-menu { display: block; }
	.rk-menu > li { border-bottom: 1px solid var(--rk-line); }
	.rk-menu > li > a, .rk-menu > li > .rk-menu__parent { display: flex; width: 100%; justify-content: space-between; padding: 0.9rem 0.25rem; font-size: var(--rk-text-base); border-radius: 0; box-sizing: border-box; }
	.rk-menu > li > .rk-menu__parent > a { flex: 1 1 auto; padding: 0; color: inherit; text-decoration: none; }
	.rk-menu > li > a:hover, .rk-menu > li:hover > a { background: transparent; }
	.rk-sub-toggle, body .rk-header .rk-sub-toggle { width: 40px; height: 40px; margin: 0; }
	.rk-sub-toggle svg { width: 16px; height: 16px; }
	li:hover > .rk-menu__parent .rk-sub-toggle svg { transform: none; }
	li.is-open > .rk-menu__parent .rk-sub-toggle svg { transform: rotate(180deg); }
	.rk-menu .sub-menu, .rk-menu > li.rk-has-cols .sub-menu {
		position: static;
		display: none;
		min-width: 0;
		padding: 0 0 0.75rem;
		border: 0;
		box-shadow: none;
		background: transparent;
		opacity: 1;
		visibility: visible;
		transform: none;
		grid-template-columns: 1fr;
	}
	.rk-menu > li:hover > .sub-menu, .rk-menu > li:focus-within > .sub-menu { display: none; }
	.rk-menu > li.is-open > .sub-menu { display: block; }
	.rk-menu .sub-menu a { padding: 0.6rem 0.75rem; }
	.rk-nav__actions { display: grid; gap: var(--rk-space-3); margin-top: var(--rk-space-5); }
	.rk-nav__actions .rk-btn { width: 100%; min-height: 48px; }
}

@media (max-width: 768px) {
	:root { --rk-gutter: 20px; --rk-section-y: clamp(3rem, 8vw, 4rem); }
	.rk-grid-3, .rk-grid-2 { grid-template-columns: 1fr; }
	.rk-grid-4 { grid-template-columns: 1fr; }
	.rk-pricing, .rs-pricing { grid-template-columns: 1fr; }
	.rk-card { padding: var(--rk-space-5); }
	.rk-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.rk-footer__bottom { flex-direction: column; }
	.rk-article__figure { margin-top: 0; }
	.rk-section__head { margin-bottom: var(--rk-space-6); }
	.rk-compare thead { display: none; }
	.rk-compare tr { display: block; border-bottom: 2px solid var(--rk-line); padding: 0.5rem 0; }
	.rk-compare th, .rk-compare td { display: block; border: 0; padding: 0.35rem 0; width: auto; }
	.rk-compare td::before { content: attr(data-plan); display: block; font-size: var(--rk-text-xs); font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--rk-teal); }
}

@media (max-width: 480px) {
	:root { --rk-gutter: 16px; --rk-header-h: 60px; }
	body { font-size: 1rem; }
	.rk-header__logo svg, .rk-header__logo img { height: 34px; }
	.rk-hero { padding-block: var(--rk-space-7) var(--rk-space-7); }
	.rk-btn-group .rk-btn, .rk-actions .rk-btn { width: 100%; }
	.rk-footer__grid { grid-template-columns: 1fr; }
	.rk-plan__price { font-size: 2rem; }
	.rk-card .rk-badge { position: static; align-self: flex-start; }
	.rk-example-card__actions .rk-btn { flex: 1 1 auto; }
	.rk-steps > li, .rk-steps > .rk-step, .rk-steps > .e-con, .rk-steps > .elementor-element { padding-left: 60px; }
	.rk-steps > li::before, .rk-steps > .rk-step::before, .rk-steps > .e-con::before, .rk-steps > .elementor-element::before { width: 40px; height: 40px; font-size: var(--rk-text-base); }
	.rk-404 .rk-404__code { font-size: 3.5rem; }
}

@media print {
	.rk-header, .rk-footer, .rk-cta-band, .rk-burger { display: none !important; }
	body { color: #000; }
	a { color: #000; text-decoration: underline; }
}
