/*
 * Infinite Marketing redesign v3 (2026-11). Loaded last; every rule is scoped to body.im-v3 so it wins over the
 * component sheets regardless of print order. Rollback: option im_design = legacy (includes/redesign.php).
 *
 * Direction: a calm, light, left-aligned studio site. Real client websites carry the visual weight; the interface
 * itself stays quiet: one typeface, one action colour, flat panels with hairline borders, no glows or gradient text,
 * no all-caps labels, no scroll-reveal animation.
 *
 * 2026-11-07 (owner mockup): accent is purple #6d28d9, ink #121016, type Plus Jakarta Sans.
 * Tokens
 *   paper  #ffffff  page          mist   #f1f2f6  alternate sections, panels
 *   ink    #121016  text          slate  #4d4b64  secondary text (8:1 on white)
 *   line   #dcdce6  borders       blue   #6d28d9  actions + links (brand blue from the logo; 5.7:1 on white)
 * Type: Instrument Sans (OFL, variable wdth/wght). Scale 15 / 17 / 20 / 24 / 30 / 38 / 48 / 58.
 */

@font-face {
	font-family: "Instrument Sans";
	src: url("fonts/instrument-sans-var.woff2") format("woff2-variations"), url("fonts/instrument-sans-var.woff2") format("woff2");
	font-weight: 400 700;
	font-stretch: 75% 100%;
	font-style: normal;
	font-display: swap;
}
/* Metric-matched fallback so the swap does not shift layout. */
@font-face {
	font-family: "Instrument Sans Fallback";
	src: local("Arial");
	size-adjust: 97%;
	ascent-override: 98%;
	descent-override: 25%;
	line-gap-override: 0%;
}

:root:has(body.im-v3) {
	--v3-paper: #ffffff;
	--v3-mist: #f1f2f6;
	--v3-mist-2: #e8e9f0;
	--v3-ink: #121016;
	--v3-slate: #4d4b64;
	--v3-line: #dcdce6;
	--v3-line-strong: #b9b8c9;
	--v3-blue: #6d28d9;
	--v3-blue-dark: #5b21b6;
	--v3-blue-tint: #f3edff;
	--v3-error: #b42318;
	--v3-ok: #146c43;
	--v3-font: "Plus Jakarta Sans", "Plus Jakarta Sans Fallback", "Segoe UI", system-ui, sans-serif;
	--v3-radius: 10px;
	--v3-radius-sm: 6px;
	--v3-wrap: 1180px;
	--v3-gutter: clamp(20px, 4.5vw, 32px);
	--v3-section: clamp(56px, 8vw, 104px);

	/* Theme (ai-globe) tokens: the theme paints body, links and borders from these. */
	--wdtBodyBGColor: #ffffff;
	--wdtBodyBGColorRgb: 255, 255, 255;
	--wdtBodyTxtColor: #4d4b64;
	--wdtBodyTxtColorRgb: 77, 75, 100;
	--wdtHeadAltColor: #121016;
	--wdtHeadAltColorRgb: 18, 16, 22;
	--wdtLinkColor: #6d28d9;
	--wdtLinkColorRgb: 109, 40, 217;
	--wdtLinkHoverColor: #5b21b6;
	--wdtLinkHoverColorRgb: 91, 33, 182;
	--wdtBorderColor: #dcdce6;
	--wdtBorderColorRgb: 220, 220, 230;
	--wdtPrimaryColor: #6d28d9;
	--wdtPrimaryColorRgb: 109, 40, 217;
	--wdtSecondaryColor: #5b21b6;
	--wdtSecondaryColorRgb: 91, 33, 182;
	--wdtAccentTxtColor: #ffffff;
	--wdtFontTypo_Base: var(--v3-font);
	--wdtFontTypo_Alt: var(--v3-font);

	/* Header tokens (header.css). */
	--im-navy-950: #ffffff;
	--im-navy-900: #ffffff;
	--im-navy-800: #ffffff;
	--im-blue: #6d28d9;
	--im-blue-400: #6d28d9;
	--im-cyan: #6d28d9;
	--im-violet: #6d28d9;
	--im-ink: #121016;
	--im-muted: #4d4b64;
	--im-line: #dcdce6;
	--im-font-head: var(--v3-font);
	--im-font-body: var(--v3-font);

	/* Pricing tokens (pricing.css :root). */
	--imp-navy: #ffffff;
	--imp-panel: #ffffff;
	--imp-panel-2: #ffffff;
	--imp-blue: #6d28d9;
	--imp-violet: #6d28d9;
	--imp-cyan: #6d28d9;
	--imp-ink: #121016;
	--imp-muted: #4d4b64;
	--imp-line: #dcdce6;
}

/* Component-scoped token sets re-pointed in one place. */
body.im-v3 .im-content,
body.im-v3.im-home-v2, body.im-v3 .imh-embed,
body.im-v3 .im-ph,
body.im-v3 .im-contact,
body.im-v3 .imp, body.im-v3 .imp-preview, body.im-v3 .imp-dialog,
body.im-v3 .im-pf,
body.im-v3 .im-pop,
body.im-v3.im-blog-view #primary,
body.im-v3 .im-legal {
	--im-accent: #6d28d9; --im-accent-rgb: 109, 40, 217; --im-text: #4d4b64; --im-head: #121016; --im-border: #dcdce6; --im-surface: #f1f2f6; --im-link: #6d28d9;
	--imh-navy: #ffffff; --imh-navy-2: #f1f2f6; --imh-panel: #ffffff; --imh-panel-2: #ffffff; --imh-blue: #6d28d9; --imh-violet: #6d28d9; --imh-cyan: #6d28d9; --imh-ink: #121016; --imh-muted: #4d4b64; --imh-line: #dcdce6; --imh-font: var(--v3-font); --imh-body: var(--v3-font);
	--ph-navy: #f1f2f6; --ph-navy-2: #f1f2f6; --ph-blue: #6d28d9; --ph-violet: #6d28d9; --ph-cyan: #6d28d9; --ph-ink: #121016; --ph-muted: #4d4b64; --ph-line: #dcdce6;
	--ic-panel: #ffffff; --ic-panel-2: #ffffff; --ic-blue: #6d28d9; --ic-violet: #6d28d9; --ic-cyan: #6d28d9; --ic-ink: #121016; --ic-muted: #4d4b64; --ic-line: #dcdce6;
	--imp-panel: #ffffff; --imp-panel-2: #ffffff; --imp-blue: #6d28d9; --imp-violet: #6d28d9; --imp-cyan: #6d28d9; --imp-ink: #121016; --imp-muted: #4d4b64; --imp-line: #dcdce6;
	--pf-panel: #ffffff; --pf-panel-2: #ffffff; --pf-cyan: #6d28d9; --pf-blue: #6d28d9; --pf-violet: #6d28d9; --pf-muted: #4d4b64; --pf-line: #b9b8c9; --pf-error: #b42318;
	--pop-panel: #ffffff; --pop-panel-2: #ffffff; --pop-blue: #6d28d9; --pop-violet: #6d28d9; --pop-cyan: #6d28d9; --pop-ink: #121016; --pop-muted: #4d4b64; --pop-line: #b9b8c9; --pop-error: #b42318;
	--imb-panel: #ffffff; --imb-panel-2: #ffffff; --imb-line: #dcdce6; --imb-ink: #121016; --imb-muted: #4d4b64; --imb-cyan: #6d28d9;
	--iml-panel: #ffffff; --iml-panel-2: #ffffff; --iml-line: #dcdce6; --iml-ink: #121016; --iml-muted: #4d4b64; --iml-cyan: #6d28d9;
}

/* =========================================================================
 * Base
 * ====================================================================== */
html:has(body.im-v3) { background: var(--v3-paper); }
body.im-v3 {
	background: var(--v3-paper) !important;
	color: var(--v3-slate);
	font-family: var(--v3-font);
	font-size: 17px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	overflow-x: clip;
}
body.im-v3 #main, body.im-v3 #primary, body.im-v3 .wrapper, body.im-v3 .inner-wrapper, body.im-v3 #main-content,
body.im-v3 .elementor-section, body.im-v3 .e-con { background-color: transparent; }
body.im-v3 :is(h1, h2, h3, h4, h5, h6, .im-brand__name, .imw__title) {
	font-family: var(--v3-font);
	font-stretch: 92% !important;
	color: var(--v3-ink);
	letter-spacing: -0.012em;
	text-transform: none;
}
body.im-v3 h1 { font-weight: 650; }
body.im-v3 :is(h2, h3) { font-weight: 620; }
body.im-v3 :is(p, li, dd, label, input, select, textarea, button, a) { font-family: var(--v3-font); }
body.im-v3 :is(p, li) { overflow-wrap: break-word; }
body.im-v3 a { text-underline-offset: 3px; }
body.im-v3 ::selection { background: #e4d8ff; color: var(--v3-ink); }
body.im-v3 :focus-visible { outline: 3px solid var(--v3-blue) !important; outline-offset: 2px !important; box-shadow: none; }
body.im-v3 img { max-width: 100%; height: auto; }
/* No page loader overlay, no back-to-top flourish. */
body.im-v3 #pageloader, body.im-v3 .pageloader, body.im-v3 .loader-inner { display: none !important; }

/* =========================================================================
 * Header
 * ====================================================================== */
body.im-v3 .im-header,
body.im-v3 .im-header.is-scrolled {
	background: rgba(255, 255, 255, .97) !important;
	border-bottom: 1px solid var(--v3-line) !important;
	box-shadow: none !important;
	color: var(--v3-ink);
	-webkit-backdrop-filter: saturate(1.2) blur(8px);
	backdrop-filter: saturate(1.2) blur(8px);
}
body.im-v3 .im-header__brand { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; flex: 0 0 auto; min-width: 0; }
body.im-v3 .im-brand__mark { width: 44px; height: auto; display: block; flex: 0 0 auto; }
body.im-v3 .im-brand__name {
	font-family: var(--v3-font);
	font-stretch: 85%;
	font-weight: 680;
	font-size: 21px;
	line-height: 1;
	letter-spacing: -0.02em;
	color: var(--v3-ink);
	white-space: nowrap;
}
body.im-v3 .im-header.is-scrolled .im-header__logo { transform: none; }
body.im-v3 .imh .imh-hero__title, body.im-v3 .im-ph__title { font-stretch: 84% !important; }
body.im-v3 .im-brand__name { font-stretch: 82% !important; }
/* Desktop nav fits beside the wider wordmark: tighter items between 1181px and 1480px. */
@media (min-width: 1181px) and (max-width: 1480px) {
	body.im-v3 .im-header__inner { gap: 12px; }
	body.im-v3 .im-header .im-nav__top { padding-left: 8px !important; padding-right: 8px !important; font-size: 15px !important; }
	body.im-v3 .im-nav__list { gap: 0 !important; }
	body.im-v3 .im-header__cta { padding-left: 16px !important; padding-right: 16px !important; font-size: 15px !important; }
	body.im-v3 .im-header__actions { gap: 4px; }
}
body.im-v3 .im-header .im-nav__top,
body.im-v3 .im-header .im-header__icon-btn { color: var(--v3-ink) !important; font-weight: 550; }
body.im-v3 .im-header .im-nav__top:hover,
body.im-v3 .im-header .im-nav__top:focus-visible,
body.im-v3 .im-header .im-nav__toggle[aria-expanded="true"],
body.im-v3 .im-header .im-header__icon-btn:hover,
body.im-v3 .im-header .im-header__icon-btn[aria-expanded="true"] { background: var(--v3-mist) !important; color: var(--v3-ink) !important; }
body.im-v3 .im-nav__item.is-current > .im-nav__top { box-shadow: inset 0 -2px 0 var(--v3-blue) !important; color: var(--v3-ink) !important; }
body.im-v3 .im-nav__panel {
	background: #fff !important;
	border: 1px solid var(--v3-line) !important;
	box-shadow: 0 18px 40px -18px rgba(18, 16, 22, .28) !important;
}
body.im-v3 .im-nav__col-title { color: var(--v3-slate) !important; text-transform: none !important; letter-spacing: 0 !important; font-size: 14px !important; font-weight: 600; }
body.im-v3 .im-nav__link { color: var(--v3-ink) !important; }
body.im-v3 .im-nav__link .im-nav__link-desc { color: var(--v3-slate) !important; }
body.im-v3 .im-nav__link:hover, body.im-v3 .im-nav__link:focus-visible { background: var(--v3-mist) !important; color: var(--v3-ink) !important; }
body.im-v3 .im-nav__link.is-current { background: var(--v3-blue-tint) !important; }
body.im-v3 .im-nav__panel-footer { border-top-color: var(--v3-line) !important; }
body.im-v3 .im-nav__footer-link { color: var(--v3-blue) !important; }
body.im-v3 .im-btn-cta {
	background: var(--v3-blue) !important;
	color: #fff !important;
	box-shadow: none !important;
	border-radius: var(--v3-radius-sm) !important;
	font-weight: 600;
	transform: none !important;
}
body.im-v3 .im-btn-cta:hover, body.im-v3 .im-btn-cta:focus-visible { background: var(--v3-blue-dark) !important; }
body.im-v3 .im-search { background: #fff !important; border-bottom-color: var(--v3-line) !important; }
body.im-v3 .im-search__form input { background: #fff !important; color: var(--v3-ink) !important; border-color: var(--v3-line-strong) !important; }
body.im-v3 .im-search__form button { background: var(--v3-blue) !important; border-radius: var(--v3-radius-sm) !important; }
body.im-v3 .im-nav-backdrop { background: rgba(18, 16, 22, .45) !important; }
body.im-v3 .im-header .im-header__burger { background: #fff !important; border: 1px solid var(--v3-line-strong) !important; border-radius: var(--v3-radius-sm) !important; }
body.im-v3 .im-header__burger-lines span { background: var(--v3-ink) !important; }

@media (max-width: 1180px) {
	body.im-v3 .im-nav { background: #fff !important; color: var(--v3-ink); }
	body.im-v3 .im-nav__drawer-head { border-bottom-color: var(--v3-line) !important; }
	body.im-v3 .im-nav__drawer-title { color: var(--v3-slate) !important; text-transform: none !important; letter-spacing: 0 !important; }
	body.im-v3 .im-header .im-nav__close { color: var(--v3-ink) !important; border-color: var(--v3-line-strong) !important; }
	body.im-v3 .im-nav__item { border-bottom-color: var(--v3-line) !important; }
	body.im-v3 .im-nav__item.is-current > .im-nav__top { box-shadow: none !important; color: var(--v3-blue) !important; }
	body.im-v3 .im-nav__panel, body.im-v3 .im-nav__item--mega > .im-nav__panel { background: none !important; border: 0 !important; box-shadow: none !important; }
	body.im-v3 .im-nav__phone { color: var(--v3-ink) !important; border-color: var(--v3-line-strong) !important; border-radius: var(--v3-radius-sm) !important; }
}
@media (max-width: 420px) {
	body.im-v3 .im-brand__mark { width: 38px; }
	body.im-v3 .im-brand__name { font-size: 19px; }
	body.im-v3 .im-header__actions { gap: 2px; }
}
@media (max-width: 359px) {
	body.im-v3 .im-header__phone { display: none !important; }
}

/* =========================================================================
 * Shared buttons (homepage, page hero, components)
 * ====================================================================== */
body.im-v3 :is(.imh .imh-btn--primary, .imh .imh-btn--small, .im-ph__btn--primary, .im-plan__btn--primary, .im-contact .im-contact__btn--primary, .imp-btn--primary, .im-ic__submit, .im-pf .im-pf__submit, .im-pop .im-pop__submit, .im-btn--primary, .im-cta .im-btn) {
	background: var(--v3-blue) !important;
	color: #fff !important;
	border: 0 !important;
	box-shadow: none !important;
	border-radius: var(--v3-radius-sm) !important;
	transform: none !important;
	font-weight: 600 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
}
body.im-v3 :is(.imh .imh-btn--primary, .imh .imh-btn--small, .im-ph__btn--primary, .im-plan__btn--primary, .im-contact .im-contact__btn--primary, .imp-btn--primary, .im-ic__submit, .im-pf .im-pf__submit, .im-pop .im-pop__submit, .im-btn--primary, .im-cta .im-btn):is(:hover, :focus-visible) {
	background: var(--v3-blue-dark) !important;
	color: #fff !important;
}
body.im-v3 :is(.imh .imh-btn--ghost, .im-ph__btn--ghost, .im-plan__btn--ghost, .im-contact .im-contact__btn--ghost, .imp-btn--ghost, .im-btn--ghost) {
	background: #fff !important;
	color: var(--v3-ink) !important;
	border: 1px solid var(--v3-line-strong) !important;
	box-shadow: none !important;
	border-radius: var(--v3-radius-sm) !important;
	transform: none !important;
	font-weight: 600 !important;
}
body.im-v3 :is(.imh .imh-btn--ghost, .im-ph__btn--ghost, .im-plan__btn--ghost, .im-contact .im-contact__btn--ghost, .imp-btn--ghost, .im-btn--ghost):is(:hover, :focus-visible) {
	background: var(--v3-mist) !important;
	border-color: var(--v3-ink) !important;
	color: var(--v3-ink) !important;
}
body.im-v3 :is(.imh .imh-btn--link, .imh .imh-more) { color: var(--v3-blue) !important; font-weight: 600; }
body.im-v3 :is(.imh .imh-btn--link, .imh .imh-more):hover { color: var(--v3-blue-dark) !important; text-decoration: underline; }
body.im-v3 .imh .imh-btn--link svg, body.im-v3 .imh-more svg { display: none; }
/* Long labels (an email address) wrap instead of running past the edge on narrow phones. */
body.im-v3 :is(.imh-btn, .im-ph__btn, .im-contact__btn, .imp-btn, .im-plan__btn) { white-space: normal !important; overflow-wrap: anywhere; text-align: center; min-height: 48px; height: auto; line-height: 1.25; }

/* =========================================================================
 * Template chrome removed: all-caps eyebrows, gradient words, glows, reveals
 * ====================================================================== */
body.im-v3 :is(.imh-eyebrow, .im-pop__eyebrow, .im-pf__eyebrow, .imp-dialog__eyebrow, .im-contact__eyebrow) { display: none !important; }
body.im-v3 .im-ph:not(.im-ph--article) .im-ph__label { display: none !important; }
/* Article heroes keep their category link as plain text. */
body.im-v3 .im-ph--article .im-ph__label { background: none !important; border: 0 !important; padding: 0 !important; text-transform: none !important; letter-spacing: 0 !important; font-size: 15px !important; font-weight: 600; color: var(--v3-slate) !important; box-shadow: none !important; }
body.im-v3 .im-ph--article .im-ph__label::before { display: none !important; }
body.im-v3 .im-ph--article .im-ph__label a { color: var(--v3-blue) !important; }
body.im-v3 .imh-grad {
	background: none !important;
	-webkit-background-clip: border-box !important;
	background-clip: border-box !important;
	-webkit-text-fill-color: currentColor !important;
	color: inherit !important;
}
body.im-v3 .imh-hero__glow, body.im-v3 .imh-outcome__ring { display: none !important; }
body.im-v3 .imh-hero::before, body.im-v3 .imh-hero::after { display: none !important; background: none !important; }
body.im-v3 .imh-reveal,
body.im-v3.imh-js .imh-reveal,
html.imh-js body.im-v3 .imh-reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
body.im-v3 :is(.imh-hero__visual img, .imh-demo__orb) { animation: none !important; }
body.im-v3 :is(.imh-outcome, .imh-sol, .imh-ind, .imh-path, .imp-card, .im-cat, .im-card):hover { transform: none !important; box-shadow: none !important; }
body.im-v3 :is(.imh-sol:hover .imh-sol__media img, .imh-ind:hover img) { transform: none !important; }

/* =========================================================================
 * Homepage
 * ====================================================================== */
body.im-v3.im-home-v2 { background: var(--v3-paper) !important; }
body.im-v3 .imh { color: var(--v3-slate); font-family: var(--v3-font); }
body.im-v3 .imh-wrap { max-width: var(--v3-wrap); padding-left: var(--v3-gutter); padding-right: var(--v3-gutter); }
body.im-v3 .imh:not(.imh-hero):not(.imh-areas) { padding-top: var(--v3-section); padding-bottom: var(--v3-section); }
body.im-v3 :is(.imh-outcomes, .imh-solutions, .imh-showcase, .imh-webseo, .imh-pricing, .imh-nyp, .imh-industries, .imh-process, .imh-blog, .imh-cta) { background: var(--v3-paper) !important; }
body.im-v3 :is(.imh-solutions, .imh-webseo, .imh-industries, .imh-blog) { background: var(--v3-mist) !important; }

/* Headings: left aligned, sentence weight, measured line length. */
body.im-v3 .imh-head, body.im-v3 .imh-head--center { text-align: left !important; margin-left: 0 !important; margin-right: auto !important; max-width: 760px; }
body.im-v3 .imh-center { text-align: left !important; }
body.im-v3 .imh .imh-h2 { color: var(--v3-ink) !important; font-size: clamp(30px, 3.6vw, 44px) !important; line-height: 1.12 !important; letter-spacing: -0.02em !important; font-weight: 640 !important; font-stretch: 90%; }
body.im-v3 .imh .imh-h3 { color: var(--v3-ink) !important; font-size: 20px !important; line-height: 1.3 !important; font-weight: 620 !important; }
body.im-v3 .imh .imh-h3 a { color: var(--v3-ink) !important; text-decoration: none; }
body.im-v3 .imh .imh-h3 a:hover { color: var(--v3-blue) !important; text-decoration: underline; }
body.im-v3 :is(.imh-lead, .imh-note, .imh figcaption) { color: var(--v3-slate) !important; }
body.im-v3 .imh-lead { font-size: 19px; line-height: 1.6; max-width: 62ch; }

/* Hero */
body.im-v3 .imh-hero {
	background: var(--v3-paper) !important;
	padding: clamp(36px, 6vw, 88px) 0 clamp(40px, 5vw, 72px) !important;
	min-height: 0 !important;
	border-bottom: 1px solid var(--v3-line);
}
body.im-v3 .imh-hero__inner { align-items: center; gap: clamp(28px, 5vw, 64px); }
body.im-v3 .imh .imh-hero__title {
	color: var(--v3-ink) !important;
	font-size: clamp(40px, 5.6vw, 66px) !important;
	line-height: 1.04 !important;
	letter-spacing: -0.03em !important;
	font-weight: 680 !important;
	font-stretch: 84%;
	margin: 0 0 22px !important;
}
body.im-v3 .imh-hero__title .imh-line { display: block; padding-bottom: 0.04em; }
body.im-v3 .imh-hero__lead { color: var(--v3-slate) !important; font-size: clamp(17px, 1.5vw, 19px); line-height: 1.6; max-width: 56ch; }
body.im-v3 .imh-hero__trust { border-top: 1px solid var(--v3-line); padding-top: 18px; margin-top: 26px; }
body.im-v3 .imh-hero__trust li { color: var(--v3-ink) !important; font-weight: 500; }
body.im-v3 .imh-hero__trust svg { color: var(--v3-ok) !important; }
body.im-v3 .imh-hero__visual { margin: 0; }
body.im-v3 .imh-hero__visual a { display: block; border-radius: var(--v3-radius); overflow: hidden; border: 1px solid var(--v3-line-strong); background: var(--v3-mist); }
body.im-v3 .imh-hero__visual img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; box-shadow: none !important; border-radius: 0 !important; }
body.im-v3 .imh-hero__visual figcaption { margin-top: 10px; font-size: 15px; color: var(--v3-slate) !important; text-align: left; }

/* Outcome cards and service cards: flat panels. */
body.im-v3 :is(.imh-outcome, .imh-sol, .imh-demo, .imh .imh-path, .imh-flow__step) {
	background: #fff !important;
	border: 1px solid var(--v3-line) !important;
	border-radius: var(--v3-radius) !important;
	box-shadow: none !important;
}
body.im-v3 .imh-outcome p, body.im-v3 .imh-sol__body p, body.im-v3 .imh-demo p, body.im-v3 .imh-flow__text { color: var(--v3-slate) !important; }
body.im-v3 .imh-outcome__art {
	background: var(--v3-blue-tint) !important; color: var(--v3-blue) !important; box-shadow: none !important;
	width: 48px !important; height: 48px !important; border-radius: var(--v3-radius-sm) !important;
}
body.im-v3 .imh-outcome__art svg { width: 24px; height: 24px; }
body.im-v3 .imh-sol__media { background: var(--v3-mist) !important; border-bottom-color: var(--v3-line) !important; }
body.im-v3 .imh-sol__price { color: var(--v3-ink) !important; font-weight: 600; }
body.im-v3 :is(.imh-flow__icon, .imh-path__icon, .imh-areas__icon, .imh-cta__contact a > span:first-child, .imh-step__icon) {
	background: var(--v3-blue-tint) !important; color: var(--v3-blue) !important; border: 0 !important; box-shadow: none !important;
}
body.im-v3 .imh-flow__step:not(:last-child)::after, body.im-v3 .imh-steps::before { background: var(--v3-line-strong) !important; opacity: 1 !important; }
body.im-v3 :is(.imh-flow__title, .imh-path strong, .imh-nyp__steps li strong, .imh-ind__title) { color: var(--v3-ink) !important; }
body.im-v3 .imh-path small { color: var(--v3-slate) !important; }
body.im-v3 .imh .imh-path:hover { background: var(--v3-mist) !important; border-color: var(--v3-line-strong) !important; }

/* Showcase mock screens: quiet, light, clearly illustrations. */
body.im-v3 .imh-showcase { background: var(--v3-paper) !important; }
body.im-v3 .imh-demo__screen, body.im-v3 .imh-demo__screen--avatar { background: var(--v3-mist) !important; border: 1px solid var(--v3-line) !important; }
body.im-v3 .imh-demo__bar { background: var(--v3-ink) !important; color: #fff !important; }
body.im-v3 .imh .imh-bubble { background: #fff !important; border: 1px solid var(--v3-line) !important; color: var(--v3-ink) !important; }
body.im-v3 .imh .imh-bubble--me { background: var(--v3-blue) !important; color: #fff !important; border: 0 !important; }
body.im-v3 .imh-chip { background: #fff !important; color: var(--v3-slate) !important; border: 1px solid var(--v3-line-strong) !important; text-transform: none !important; letter-spacing: 0 !important; }
body.im-v3 .imh-chip--ok { color: var(--v3-ok) !important; border-color: #9fd3b8 !important; background: #effaf4 !important; }
body.im-v3 .imh-demo__orb { background: var(--v3-blue) !important; box-shadow: 0 0 0 10px var(--v3-blue-tint) !important; }
body.im-v3 .imh .imh-demo__call, body.im-v3 .imh-demo__timeline li { color: var(--v3-ink) !important; }
body.im-v3 .imh-demo__timeline li::before { background: var(--v3-blue) !important; }

/* Split section, checks */
body.im-v3 .imh-split__visual img, body.im-v3 .imh-nyp__visual img { box-shadow: none !important; border: 1px solid var(--v3-line) !important; border-radius: var(--v3-radius) !important; }
body.im-v3 .imh-checks svg { color: var(--v3-ok) !important; background: #effaf4 !important; }
body.im-v3 .imh-checks li { color: var(--v3-ink); }

/* Name your price band and closing CTA panel */
body.im-v3 :is(.imh-nyp__panel, .imh-cta__panel) {
	background: var(--v3-mist) !important;
	border: 1px solid var(--v3-line) !important;
	box-shadow: none !important;
	border-radius: 14px !important;
}
body.im-v3 .imh-nyp__steps li { color: var(--v3-slate) !important; }
body.im-v3 .imh-nyp__steps li::before { background: var(--v3-ink) !important; color: #fff !important; box-shadow: none !important; }
body.im-v3 .imh .imh-cta__contact a { background: #fff !important; border: 1px solid var(--v3-line) !important; color: var(--v3-ink) !important; }
body.im-v3 .imh .imh-cta__contact a:hover { border-color: var(--v3-ink) !important; }
body.im-v3 .imh-cta__contact small { color: var(--v3-slate) !important; }

/* Industries: photo tiles keep a dark scrim for legibility, but flatter. */
body.im-v3 .imh .imh-ind { border: 1px solid var(--v3-line) !important; border-radius: var(--v3-radius) !important; background: var(--v3-ink) !important; }
body.im-v3 .imh-ind::after { background: linear-gradient(180deg, rgba(18, 16, 22, 0) 30%, rgba(18, 16, 22, .86) 100%) !important; }
body.im-v3 .imh .imh-ind__title { color: #fff !important; }
body.im-v3 .imh-ind__desc { color: #e9e8f2 !important; }

/* Service area strip */
body.im-v3 .imh-areas { background: var(--v3-paper) !important; border-top: 1px solid var(--v3-line) !important; border-bottom: 1px solid var(--v3-line) !important; padding: 36px 0 !important; }
body.im-v3 .imh-areas__copy p { color: var(--v3-slate) !important; }
body.im-v3 .imh .imh-areas__links a { border: 1px solid var(--v3-line-strong) !important; color: var(--v3-ink) !important; background: #fff !important; border-radius: var(--v3-radius-sm) !important; }
body.im-v3 .imh .imh-areas__links a:hover { background: var(--v3-mist) !important; border-color: var(--v3-ink) !important; }
body.im-v3 .imh .imh-areas__links .imh-areas__all { background: var(--v3-ink) !important; color: #fff !important; border-color: var(--v3-ink) !important; }

/* Process: real sequence, so numbers stay. */
body.im-v3 .imh-step p { color: var(--v3-slate) !important; }
body.im-v3 .imh-step__icon { box-shadow: 0 0 0 8px var(--v3-paper) !important; }
body.im-v3 .imh-step__num { background: var(--v3-ink) !important; color: #fff !important; }

/* =========================================================================
 * Inner-page hero (.im-ph)
 * ====================================================================== */
body.im-v3 .im-ph {
	background: var(--v3-mist) !important;
	color: var(--v3-ink) !important;
	border-bottom: 1px solid var(--v3-line) !important;
	font-family: var(--v3-font);
}
body.im-v3 .im-ph::before, body.im-v3 .im-ph::after { display: none !important; }
body.im-v3 .im-ph__inner { padding-left: var(--v3-gutter); padding-right: var(--v3-gutter); }
body.im-v3 .im-ph__crumbs, body.im-v3 .im-ph__crumbs a { color: var(--v3-slate) !important; }
body.im-v3 .im-ph__crumbs a:hover { color: var(--v3-blue) !important; }
body.im-v3 :is(.im-ph__crumbs .last, .im-ph__crumbs > span:last-child) { color: var(--v3-ink) !important; }
body.im-v3 .im-ph__crumbs { display: flex; flex-wrap: wrap; gap: 2px 6px; line-height: 1.5; }
body.im-v3 .im-ph__title {
	color: var(--v3-ink) !important;
	font-size: clamp(34px, 4.6vw, 56px) !important;
	line-height: 1.06 !important;
	letter-spacing: -0.025em !important;
	font-weight: 670 !important;
	font-stretch: 86%;
}
body.im-v3 .im-ph__lead, body.im-v3 .im-ph__byline { color: var(--v3-slate) !important; }
body.im-v3 .im-ph__points li { background: #fff !important; border: 1px solid var(--v3-line) !important; color: var(--v3-ink) !important; border-radius: var(--v3-radius-sm) !important; }
body.im-v3 .im-ph__points li::before, body.im-v3 .im-ph__points svg { color: var(--v3-ok) !important; }
body.im-v3 .im-ph__media { box-shadow: none !important; border: 1px solid var(--v3-line) !important; border-radius: var(--v3-radius) !important; background: #fff !important; }

/* =========================================================================
 * Content components (im.css)
 * ====================================================================== */
body.im-v3 .im-content { color: var(--v3-slate); font-size: 17px; line-height: 1.65; padding-left: var(--v3-gutter); padding-right: var(--v3-gutter); box-sizing: border-box; }
body.im-v3 .im-content :is(h2, h3) { color: var(--v3-ink) !important; }
body.im-v3 .im-content h2 { font-size: clamp(28px, 3vw, 38px); line-height: 1.15; letter-spacing: -0.02em; }
body.im-v3 .im-content :is(p, li) { max-width: 72ch; }
body.im-v3 .im-content :is(.im-grid, .im-plans, .im-cats, .im-packages) :is(p, li) { max-width: none; }
body.im-v3 .im-content a { color: var(--v3-blue); }
body.im-v3 .im-content a:hover { color: var(--v3-blue-dark); }
body.im-v3 .im-lead { color: var(--v3-ink); }
body.im-v3 :is(.im-card, .im-cta, .im-note, .im-intro .im-card, .im-related, .im-managed, .im-platform) {
	background: #fff !important;
	border: 1px solid var(--v3-line) !important;
	border-radius: var(--v3-radius) !important;
	box-shadow: none !important;
	color: var(--v3-slate);
}
body.im-v3 .im-cta { background: var(--v3-mist) !important; }
body.im-v3 .im-cta :is(h2, h3, p) { color: var(--v3-ink) !important; }
body.im-v3 .im-steps > li::before { background: var(--v3-ink) !important; color: #fff !important; box-shadow: none !important; }
body.im-v3 .im-checklist li::before { background: #effaf4 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23146c43' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center / 11px no-repeat !important; border-color: #9fd3b8 !important; }
body.im-v3 .im-figure img, body.im-v3 .im-figure--support img { border: 1px solid var(--v3-line) !important; border-radius: var(--v3-radius) !important; }

/* FAQ sections (FAQPage schema reads the markup; only the look changes). */
body.im-v3 .im-faq details { background: #fff !important; border: 1px solid var(--v3-line) !important; border-radius: var(--v3-radius-sm) !important; box-shadow: none !important; }
body.im-v3 .im-faq summary { color: var(--v3-ink) !important; font-weight: 600; }
body.im-v3 .im-faq summary::after { color: var(--v3-blue) !important; }
body.im-v3 .im-faq details[open] { border-color: var(--v3-line-strong) !important; }
body.im-v3 .im-faq details > :not(summary) { color: var(--v3-slate); }

/* Topic cluster box, service areas list */
body.im-v3 .im-topic { background: var(--v3-mist) !important; border: 1px solid var(--v3-line) !important; border-radius: var(--v3-radius) !important; }
body.im-v3 .im-topic .im-topic__title { color: var(--v3-ink) !important; }
body.im-v3 .im-topic .im-topic__list a { background: #fff !important; color: var(--v3-ink) !important; border: 1px solid var(--v3-line) !important; }
/* The strip follows the floated #main: clear it, or its background paints behind the whole page. */
body.im-v3 .im-areas { clear: both; background: var(--v3-paper) !important; border-top: 1px solid var(--v3-line) !important; color: var(--v3-slate); }
body.im-v3 .im-areas__inner { padding-left: var(--v3-gutter) !important; padding-right: var(--v3-gutter) !important; max-width: var(--v3-wrap) !important; }
body.im-v3 .im-areas__title { font-family: var(--v3-font) !important; }
body.im-v3 .im-areas__cities a { border-radius: var(--v3-radius-sm) !important; }
body.im-v3 .im-areas :is(h2, h3, .im-areas__title) { color: var(--v3-ink) !important; }
body.im-v3 .im-areas a { color: var(--v3-ink) !important; background: #fff !important; border-color: var(--v3-line-strong) !important; }
body.im-v3 .im-areas a:hover { background: var(--v3-mist) !important; }
body.im-v3 .im-areas .im-areas__regions a { background: none !important; color: var(--v3-blue) !important; }

/* =========================================================================
 * Pricing (pricing.css)
 * ====================================================================== */
body.im-v3 :is(.im-plan, .im-plan.is-featured, .im-cat, .im-content a.im-cat, .im-nyp, .im-product__box) {
	background: #fff !important;
	border: 1px solid var(--v3-line) !important;
	border-radius: var(--v3-radius) !important;
	box-shadow: none !important;
	color: var(--v3-slate) !important;
}
body.im-v3 .im-plan.is-featured { border: 2px solid var(--v3-ink) !important; }
body.im-v3 :is(.im-content .im-plan__name, .im-plan__name, .im-plan__name a, .im-content .im-plan__name a, .im-plan__amount, .im-cat__name, .im-plan-compare thead th, .im-plan-compare__price td, .im-nyp-band__title, .im-cartbar__title, .im-cartbar__totals dd, .im-product__box-title, .im-nyp__step legend, .im-nyp__legend, .im-nyp label, .im-nyp__guidance-title, .im-nyp__summary dd, .im-nyp__offer-price dd, .im-nyp__progress li[aria-current="step"]) { color: var(--v3-ink) !important; }
body.im-v3 :is(.im-plan__prefix, .im-plan__term, .im-plan__subhead, .im-plan__soon, .im-cat__desc, .im-plan-compare caption, .im-plan-compare tbody th, .im-cartbar__items, .im-cartbar__totals dt, .im-nyp__progress li, .im-nyp__req, .im-nyp__per, .im-nyp__hint, .im-nyp__note, .im-nyp__summary dt, .im-nyp__offer-price dt, .im-product__limits, .im-product__notes, .im-nyp-band__copy p.im-nyp-band__contact) { color: var(--v3-slate) !important; }
body.im-v3 :is(.im-plan__features li, .im-plan__limits summary, .im-plan-compare, .im-plan-compare td, .im-nyp-band__copy p, .im-nyp__progress li.is-done) { color: var(--v3-ink) !important; }
body.im-v3 .im-plan__badge, body.im-v3 .im-plan .im-plan__flag, body.im-v3 .im-plan [class*="badge"] { background: var(--v3-ink) !important; color: #fff !important; text-transform: none !important; letter-spacing: 0 !important; box-shadow: none !important; }
body.im-v3 .im-plan__features li::before, body.im-v3 .im-plan__features svg { color: var(--v3-ok) !important; }
body.im-v3 .im-plan__monthly { color: var(--v3-ink) !important; }
body.im-v3 .im-plan-compare-wrap { background: #fff !important; border: 1px solid var(--v3-line) !important; }
body.im-v3 .im-plan-compare :is(th, td) { border-color: var(--v3-line) !important; }
body.im-v3 .im-plan__media { background: var(--v3-mist) !important; }
body.im-v3 .im-nyp-band { background: var(--v3-mist) !important; border: 1px solid var(--v3-line) !important; box-shadow: none !important; border-radius: var(--v3-radius) !important; }
body.im-v3 .im-cartbar { background: #fff !important; color: var(--v3-ink) !important; border: 1px solid var(--v3-line-strong) !important; box-shadow: 0 -8px 30px -18px rgba(18, 16, 22, .35) !important; }
body.im-v3 .im-plan-toast { background: var(--v3-ink) !important; color: #fff !important; box-shadow: none !important; }
body.im-v3 .im-nyp__choice, body.im-v3 .im-nyp__offer-scope { background: var(--v3-mist) !important; border-color: var(--v3-line) !important; }
body.im-v3 .im-plan__remove, body.im-v3 .im-content a.im-plan__remove { color: var(--v3-slate) !important; }
body.im-v3 .im-plan__btn--buy[aria-disabled="true"] { background: var(--v3-mist) !important; color: var(--v3-slate) !important; }

/* =========================================================================
 * Forms: contact form, page form, popup, name-your-price
 * ====================================================================== */
body.im-v3 :is(.im-ic, .im-pf, .im-pop, .im-contact__card, .im-contact__benefit) {
	background: #fff !important;
	border: 1px solid var(--v3-line) !important;
	border-radius: 14px !important;
	box-shadow: none !important;
	color: var(--v3-slate) !important;
}
body.im-v3 .im-pf { background: var(--v3-mist) !important; }
body.im-v3 .im-pop { box-shadow: 0 30px 80px -30px rgba(18, 16, 22, .45) !important; }
body.im-v3 :is(.im-contact h2, .im-contact__icon, .im-contact__card .im-contact__value, .im-contact__card .im-contact__value a, .im-contact__next li::before, .im-contact__next strong, .im-ic__title, .im-ic label, .im-ic legend, .im-ic--sent h3, .im-contact__benefit h3, .im-pf__title, .im-pf__field label, .im-pf__done h3, .im-pop__title, .im-pop__field label) { color: var(--v3-ink) !important; }
body.im-v3 :is(.im-contact .im-contact__sub, .im-contact__card h3, .im-contact__card p:last-child, .im-contact__aside > p, .im-contact__next li, .im-contact__links, .im-ic__intro, .im-ic__req, .im-ic__hint, .im-ic__consent, .im-ic__note, .im-ic--sent p, .im-contact__benefit p, .im-pf__intro p, .im-pf__hint, .im-pf__consent, .im-pf__note, .im-pf__done p, .im-pop__intro, .im-pop__consent, .im-pop__note) { color: var(--v3-slate) !important; }
body.im-v3 .im-contact__card h3 { text-transform: none !important; letter-spacing: 0 !important; font-size: 15px !important; }
body.im-v3 .im-contact__icon { background: var(--v3-blue-tint) !important; color: var(--v3-blue) !important; box-shadow: none !important; border: 0 !important; }
body.im-v3 .im-contact__next li::before { background: var(--v3-ink) !important; color: #fff !important; box-shadow: none !important; }
body.im-v3 .im-contact__band { background: var(--v3-mist) !important; border: 1px solid var(--v3-line) !important; box-shadow: none !important; }
body.im-v3 .im-contact__band :is(h2, h3, p, li) { color: var(--v3-ink) !important; }
body.im-v3 :is(.im-ic, .im-pf, .im-pop, .im-nyp) :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], select, textarea),
body.im-v3 :is(.im-pf__field input, .im-pf__field textarea, .im-pop__field input) {
	background: #fff !important;
	color: var(--v3-ink) !important;
	border: 1px solid var(--v3-line-strong) !important;
	border-radius: var(--v3-radius-sm) !important;
	box-shadow: none !important;
	font-size: 17px !important;
}
body.im-v3 :is(.im-ic, .im-pf, .im-pop, .im-nyp) :is(input, select, textarea):focus { border-color: var(--v3-blue) !important; outline: 3px solid #d6c6ff !important; outline-offset: 0 !important; }
body.im-v3 :is(.im-ic, .im-pf, .im-pop, .im-nyp) ::placeholder { color: #77758c !important; opacity: 1; }
body.im-v3 .im-ic select, body.im-v3 .im-nyp select { background-color: #fff !important; }
body.im-v3 .im-ic__radio { background: #fff !important; border: 1px solid var(--v3-line-strong) !important; color: var(--v3-ink) !important; }
body.im-v3 :is(.im-ic__alert, .im-pf__alert, .im-pop__alert, .im-nyp__alert) { background: #fef3f2 !important; border: 1px solid #f3b8b3 !important; color: var(--v3-error) !important; }
body.im-v3 :is(.im-pf__error, .im-pop__error, .im-ic__error) { color: var(--v3-error) !important; }
body.im-v3 .im-pop .im-pop__close { background: var(--v3-mist) !important; color: var(--v3-ink) !important; }

/* =========================================================================
 * Portfolio gallery, blog, legal
 * ====================================================================== */
body.im-v3 :is(.imp-card, .imp-dialog, .imb-card, .im-legal__toc) { background: #fff !important; border: 1px solid var(--v3-line) !important; border-radius: var(--v3-radius) !important; box-shadow: none !important; color: var(--v3-slate) !important; }
body.im-v3 :is(.imp-card__media, .imp-shot, .imb-card__media, .imb-article__image) { background: var(--v3-mist) !important; }
body.im-v3 :is(.imp-card__title, .imp-card__title a, .imp-card__title button, .imp-dialog__title, .imp-dialog__facts dd, .imp-preview__head h2, .imb-card__title a, .imb-related__title, .imb-intro h2, .im-legal__toc summary, .im-legal__doc h2, .im-legal__doc h3, .im-legal__doc strong) { color: var(--v3-ink) !important; }
body.im-v3 :is(.imp-card__type, .imp-dialog__summary, .imp-dialog__facts dt, .imp-empty, .imb-card__excerpt, .imb-card__meta, .imb-postnav span, .imb-empty, .imb-intro p, .im-legal__toc a) { color: var(--v3-slate) !important; }
body.im-v3 .imp-card__cta { color: var(--v3-blue) !important; }
body.im-v3 .imp-tag { background: var(--v3-mist) !important; color: var(--v3-slate) !important; border: 1px solid var(--v3-line) !important; text-transform: none !important; letter-spacing: 0 !important; }
body.im-v3 .imp-card__count { background: rgba(18, 16, 22, .82) !important; }
body.im-v3 .imp-filters button { background: #fff !important; color: var(--v3-ink) !important; border: 1px solid var(--v3-line-strong) !important; box-shadow: none !important; border-radius: var(--v3-radius-sm) !important; }
body.im-v3 .imp-filters button[aria-pressed="true"] { background: var(--v3-ink) !important; color: #fff !important; border-color: var(--v3-ink) !important; }
body.im-v3 .imp-filters button span { color: inherit !important; opacity: .75; }
body.im-v3 .imp-dialog__close { background: var(--v3-mist) !important; color: var(--v3-ink) !important; }
body.im-v3 .imp-dialog__facts { background: var(--v3-mist) !important; }
body.im-v3 .imp-dialog::backdrop { background: rgba(18, 16, 22, .6); }
body.im-v3 :is(.imb-postnav a, .imb-chips a) { background: #fff !important; color: var(--v3-ink) !important; border: 1px solid var(--v3-line-strong) !important; }
body.im-v3 .imb-chips a[aria-current="page"] { background: var(--v3-ink) !important; color: #fff !important; }
body.im-v3 .imb-pages .page-numbers { color: var(--v3-ink) !important; }
body.im-v3 .imb-pages .page-numbers.current { background: var(--v3-ink) !important; color: #fff !important; }
body.im-v3 .im-legal__doc { background: #fff !important; border: 1px solid var(--v3-line) !important; color: var(--v3-slate) !important; }
body.im-v3 :is(.im-legal__doc p, .im-legal__doc li) { color: var(--v3-slate) !important; }
body.im-v3 .im-legal__toc a:hover { color: var(--v3-blue) !important; }
body.im-v3.im-blog-view .entry-content, body.im-v3 .imb-article { color: var(--v3-slate); }
body.im-v3.im-blog-view .entry-content :is(h2, h3, h4) { color: var(--v3-ink) !important; }

/* WooCommerce notices on cart/checkout (keep commerce flows readable). */
body.im-v3 :is(.woocommerce-cart, .woocommerce-checkout) :is(.woocommerce-info, .cart-empty, .woocommerce-message) { background: var(--v3-mist) !important; color: var(--v3-ink) !important; border-color: var(--v3-line) !important; }
body.im-v3.woocommerce-page :is(table.shop_table, .cart_totals, #order_review) { color: var(--v3-ink); }

/* =========================================================================
 * Footer (Elementor template 450, ai-globe theme)
 * ====================================================================== */
body.im-v3 #footer, body.im-v3 #footer .elementor-section, body.im-v3 #footer .elementor-element.elementor-section { background: var(--v3-mist) !important; background-image: none !important; }
body.im-v3 #footer { border-top: 1px solid var(--v3-line); color: var(--v3-slate); }
body.im-v3 #footer :is(p, li, span, strong, a) { color: var(--v3-slate) !important; font-family: var(--v3-font) !important; }
body.im-v3 #footer :is(h1, h2, h3, h4, h5, h6, .wdt-heading-title) { color: var(--v3-ink) !important; font-family: var(--v3-font) !important; font-size: 18px !important; font-weight: 620 !important; text-transform: none !important; letter-spacing: 0 !important; }
body.im-v3 #footer strong { color: var(--v3-ink) !important; }
body.im-v3 #footer a:hover { color: var(--v3-blue) !important; }
body.im-v3 #footer .wdt-logo-container img { width: 168px !important; max-width: 168px !important; height: auto !important; }
body.im-v3 #footer .wdt-heading-deco-wrapper::before, body.im-v3 #footer .wdt-heading-deco-wrapper::after { display: none !important; }
/* Mobile accordion header ("Quick Links"): plain heading row instead of a purple bar. */
body.im-v3 #footer .wdt-accordion-toggle-title-holder,
body.im-v3 #footer .wdt-accordion-toggle-holder { background: transparent !important; border: 0 !important; border-top: 1px solid var(--v3-line) !important; box-shadow: none !important; padding-left: 0 !important; padding-right: 0 !important; }
body.im-v3 #footer .wdt-accordion-toggle-title-holder :is(*, *::before, *::after) { color: var(--v3-ink) !important; background: transparent !important; }
body.im-v3 #footer .wdt-accordion-toggle-title { font-size: 18px !important; font-weight: 620 !important; }
/* Copyright row */
body.im-v3 #footer [class*="copyright"], body.im-v3 #footer .elementor-element:last-child > .elementor-container { background: transparent !important; }
body.im-v3 #footer .elementor-widget-container { background-color: transparent !important; }
body.im-v3 .wdt-cst-footer-addr p, body.im-v3 .wdt-cst-footer-cnt p { overflow-wrap: anywhere; }
body.im-v3 #toTop, body.im-v3 .back-to-top { background: var(--v3-ink) !important; color: #fff !important; box-shadow: none !important; }

/* =========================================================================
 * Small screens: spacing, line-height and overflow fixes found in the 375px audit
 * ====================================================================== */
@media (max-width: 767px) {
	body.im-v3 { font-size: 17px; }
	/* Hero headline lines were touching (line-height < 1 on stacked spans). */
	body.im-v3 .imh .imh-hero__title { font-size: clamp(36px, 10.6vw, 46px) !important; line-height: 1.06 !important; }
	body.im-v3 .imh-hero__inner { display: flex !important; flex-direction: column; align-items: stretch; }
	body.im-v3 .imh-hero__copy, body.im-v3 .imh-hero__visual { width: 100%; max-width: none; }
	body.im-v3 .imh-actions { display: flex; flex-direction: column; align-items: stretch; gap: 10px; }
	body.im-v3 .imh-actions .imh-btn { width: 100%; justify-content: center; }
	body.im-v3 .imh-actions .imh-btn--link { width: auto; align-self: flex-start; min-height: 44px; }
	body.im-v3 .imh .imh-h2, body.im-v3 .imw__title { font-size: clamp(28px, 8vw, 34px) !important; }
	body.im-v3 .imh:not(.imh-hero):not(.imh-areas) { padding-top: 56px; padding-bottom: 56px; }
	/* Page hero: consistent 16px gutter, title scale, breadcrumbs wrap cleanly. */
	body.im-v3 .im-ph__title { font-size: clamp(32px, 9vw, 40px) !important; }
	body.im-v3 .im-ph__actions { display: flex; flex-direction: column; align-items: stretch; gap: 10px; }
	body.im-v3 .im-ph__btn { width: 100%; justify-content: center; }
	body.im-v3 .im-ph__points { gap: 8px; }
	/* Body content kept on the same gutter as the hero above it. */
	body.im-v3 .im-content { padding-left: 0; padding-right: 0; } /* the theme .container already gives 20px */
	body.im-v3 #main > .container, body.im-v3 #primary > .container, body.im-v3 .elementor-section .elementor-container { max-width: 100%; }
	body.im-v3 .im-content h2 { font-size: clamp(26px, 7.4vw, 32px); }
	/* Inline link lists inside paragraphs wrap normally. */
	body.im-v3 .im-content p a, body.im-v3 .im-faq a { overflow-wrap: anywhere; }
	/* Forms: two-column rows stack, full-width inputs. */
	body.im-v3 .im-pf { grid-template-columns: minmax(0, 1fr) !important; padding: 20px 16px !important; }
	body.im-v3 :is(.im-ic, .im-pf, .im-pop) :is(.im-ic__row, .im-pf__row) { grid-template-columns: minmax(0, 1fr) !important; }
	body.im-v3 .im-contact__card .im-contact__value { overflow-wrap: anywhere; }
	/* Footer columns stack with breathing room. */
	body.im-v3 #footer .elementor-column { width: 100% !important; }
	body.im-v3 #footer .elementor-widget-wrap { padding-left: 16px !important; padding-right: 16px !important; }
}

/* Reduced motion: nothing animates, smooth scrolling off. */
@media (prefers-reduced-motion: reduce) {
	html:has(body.im-v3) { scroll-behavior: auto !important; }
	body.im-v3 *, body.im-v3 *::before, body.im-v3 *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
}

/* =========================================================================
 * Pass 2 refinements
 * ====================================================================== */
/* Homepage service cards: drop the decorative mock-screen art (aria-hidden); the cards read as a clean list. */
body.im-v3 .imh-solutions .imh-sol__media { display: none !important; }
body.im-v3 .imh-solutions .imh-sol { display: flex; flex-direction: column; }
body.im-v3 .imh-solutions .imh-sol__body { padding: 24px !important; display: flex; flex-direction: column; flex: 1; }
body.im-v3 .imh-solutions .imh-sol__actions { margin-top: auto; }

/* Footer brand: the stacked logo image is replaced (visually) by the same mark + name used in the header. */
body.im-v3 #footer .wdt-logo-container a { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; }
body.im-v3 #footer .wdt-logo-container img { display: none !important; }
body.im-v3 #footer .wdt-logo-container a::before { content: ""; width: 44px; height: 33px; background: url("brand-mark-96.png") center / contain no-repeat; }
@media (min-resolution: 1.5dppx) { body.im-v3 #footer .wdt-logo-container a::before { background-image: url("brand-mark-192.png"); } }
body.im-v3 #footer .wdt-logo-container a::after { content: "Infinite Marketing"; font-family: var(--v3-font); font-stretch: 82%; font-weight: 680; font-size: 21px; letter-spacing: -0.02em; color: var(--v3-ink); }
/* Footer headings all one size; the accordion rule shows only where it is an accordion (phones). */
body.im-v3 #footer .wdt-accordion-toggle-title-holder, body.im-v3 #footer .wdt-accordion-toggle-holder { border-top: 0 !important; }
body.im-v3 #footer .wdt-accordion-toggle-title, body.im-v3 #footer .wdt-accordion-toggle-title * { font-size: 18px !important; font-weight: 620 !important; line-height: 1.3 !important; }
body.im-v3 #footer .wdt-accordion-toggle-title-holder { padding-top: 0 !important; padding-bottom: 0 !important; min-height: 0 !important; }
body.im-v3 #footer :is([class*="copyright"], .elementor-widget-wdt-copyright, .elementor-widget-text-editor):last-child { background: transparent !important; }
body.im-v3 #footer .elementor-section .elementor-section:last-child .elementor-widget-wrap { background: transparent !important; }
@media (max-width: 767px) {
	body.im-v3 #footer .wdt-accordion-toggle-title-holder { border-top: 1px solid var(--v3-line) !important; padding-top: 14px !important; padding-bottom: 14px !important; }
}
/* Page form keeps clear of the footer. */
body.im-v3 .im-pf { margin-bottom: clamp(48px, 7vw, 88px) !important; }
/* Pass 3 */
body.im-v3 .imp-preview__all, body.im-v3 .imp-preview__head a { color: var(--v3-blue) !important; opacity: 1 !important; font-weight: 600; }
body.im-v3 .imp-preview__head h2 { color: var(--v3-ink) !important; }
@media (max-width: 480px) {
	/* A long email address fits on one line instead of breaking mid-word. */
	body.im-v3 .im-contact__card .im-contact__value { font-size: clamp(15px, 4.6vw, 19px) !important; overflow-wrap: normal; word-break: normal; }
}
/* Pass 4: items from the 114-page phone sweep */
/* Topic-cluster "Overview" tag: plain small text, not an all-caps chip. */
body.im-v3 .im-topic li.is-hub > span, body.im-v3 .im-topic .is-hub span { background: none !important; border: 0 !important; color: var(--v3-slate) !important; text-transform: none !important; letter-spacing: 0 !important; font-size: 13px !important; font-weight: 500; padding: 0 0 0 6px !important; }
/* Latest-posts cards ([im_latest_posts], homepage and blog). */
body.im-v3 .im-latest__card { background: #fff !important; border: 1px solid var(--v3-line) !important; border-radius: var(--v3-radius) !important; box-shadow: none !important; transform: none !important; }
body.im-v3 .im-latest__meta { color: var(--v3-slate) !important; letter-spacing: 0 !important; }
body.im-v3 .im-latest__title a { color: var(--v3-ink) !important; }
body.im-v3 .im-latest__title a:hover { color: var(--v3-blue) !important; }
body.im-v3 .im-latest__title { font-family: var(--v3-font) !important; font-weight: 620 !important; }
body.im-v3 .im-latest__excerpt { color: var(--v3-slate) !important; }
/* Blog cards: category in sentence case, readable colour. */
body.im-v3 .imb-card__cat, body.im-v3 .imb-card__cat a { color: var(--v3-slate) !important; text-transform: none !important; letter-spacing: 0 !important; font-weight: 600; }
/* Pricing "Starting at" and plan subheads in sentence case. */
body.im-v3 :is(.im-plan__prefix, .im-plan__subhead) { text-transform: none !important; letter-spacing: 0 !important; }
/* Legal pages: links in the action colour; "On this page" in sentence case. */
body.im-v3 .im-legal__doc a { color: var(--v3-blue) !important; }
body.im-v3 .im-legal__toc summary { text-transform: none !important; letter-spacing: 0 !important; }
body.im-v3 .im-legal__toc a:hover { background: var(--v3-mist) !important; }body.im-v3 .imb-postnav span { text-transform: none !important; letter-spacing: 0 !important; }
/* Portfolio page: the real client sites follow the hero directly, so the mock-interface hero image is dropped there. */
body.im-v3.im-portfolio-page .im-ph__media { display: none !important; }
body.im-v3.im-portfolio-page .im-ph.has-media .im-ph__inner { grid-template-columns: minmax(0, 1fr) !important; }

/* =========================================================================
 * Homepage and /portfolio/ (owner-approved concept, 2026-11-07)
 * ====================================================================== */
/* Header: phone number as text where the bar has room (measured: fits from 1600px). */
@media (min-width: 1600px) {
	body.im-v3 .im-header .im-header__phone { display: inline-flex !important; align-items: center; gap: 8px; width: auto !important; padding: 0 14px !important; border: 1px solid var(--v3-line-strong) !important; border-radius: var(--v3-radius-sm) !important; }
	body.im-v3 .im-header .im-header__phone-text { display: inline !important; font-weight: 600; font-size: 15px; white-space: nowrap; }
}


/* ---- Shared pieces ---- */
body.im-v3 .imc { font-family: var(--v3-font); color: var(--v3-ink); }
body.im-v3 .imc-wrap { max-width: 1360px; margin: 0 auto; padding-left: var(--v3-gutter); padding-right: var(--v3-gutter); }
body.im-v3 .imc ul, body.im-v3 .imc ol, body.im-v3 .imv ul { list-style: none; margin: 0; padding: 0; }
body.im-v3 .imc li, body.im-v3 .imv li { margin: 0; }
body.im-v3 .imc li::before, body.im-v3 .imv li::before { content: none; }
body.im-v3 .imc .imc-h2 { margin: 0; font-size: clamp(38px, 4.6vw, 64px) !important; line-height: 1 !important; font-weight: 660 !important; font-stretch: 78% !important; letter-spacing: -0.025em !important; color: var(--v3-ink) !important; }
body.im-v3 .imc .imc-display { margin: 0; font-size: clamp(44px, 6.4vw, 96px) !important; line-height: 0.92 !important; font-weight: 680 !important; font-stretch: 75% !important; letter-spacing: -0.03em !important; }
body.im-v3 .imc .imc-h3 { margin: 14px 0 8px; font-size: 21px !important; font-weight: 640 !important; line-height: 1.3 !important; color: var(--v3-ink) !important; }
body.im-v3 .imc-lead { margin: 18px 0 0; font-size: 18px; line-height: 1.6; color: var(--v3-slate); max-width: 62ch; }
body.im-v3 .imc-link { color: var(--v3-blue) !important; font-weight: 600; font-size: 17px; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
body.im-v3 .imc-link:hover { color: var(--v3-blue-dark) !important; text-decoration-thickness: 2px; }
body.im-v3 .imc-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 26px; border-radius: var(--v3-radius-sm); font-size: 17px; font-weight: 600; line-height: 1.2; text-decoration: none !important; border: 1px solid transparent; white-space: normal; text-align: center; }
body.im-v3 .imc-btn--primary { background: var(--v3-blue); color: #fff !important; }
body.im-v3 .imc-btn--primary:hover, body.im-v3 .imc-btn--primary:focus-visible { background: var(--v3-blue-dark); }
body.im-v3 .imc-btn--outline { border-color: var(--v3-ink); color: var(--v3-ink) !important; background: #fff; }
body.im-v3 .imc-btn--outline:hover, body.im-v3 .imc-btn--outline:focus-visible { background: var(--v3-ink); color: #fff !important; }
body.im-v3 .imc-btn--light { background: #fff; color: var(--v3-ink) !important; }
body.im-v3 .imc-btn--light:hover, body.im-v3 .imc-btn--light:focus-visible { background: #e6e6ef; }
body.im-v3 .imc-browser { display: block; border-radius: var(--v3-radius); overflow: hidden; border: 1px solid var(--v3-line-strong); background: var(--v3-mist); line-height: 0; }
body.im-v3 .imc-browser__bar { display: flex; align-items: center; gap: 8px; height: 30px; padding: 0 12px; background: var(--v3-mist); border-bottom: 1px solid var(--v3-line); font-size: 12px; line-height: 1; color: var(--v3-slate); }
body.im-v3 .imc-browser img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; object-position: top center; margin: 0 !important; border-radius: 0 !important; }

/* ---- Homepage: hero and the work wall ---- */
body.im-v3.im-home-v2 .im-home-con { background: var(--v3-paper); }
body.im-v3 .imc-hero { padding: clamp(40px, 7vw, 104px) 0 0; }
body.im-v3 .imc .imc-hero__title { margin: 0; font-size: clamp(52px, 10.4vw, 158px) !important; line-height: 0.9 !important; font-weight: 680 !important; font-stretch: 75% !important; letter-spacing: -0.035em !important; color: var(--v3-ink) !important; }
body.im-v3 .imc-hero__title span { display: block; }
body.im-v3 .imc-hero__row { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 28px 48px; margin-top: clamp(28px, 3.6vw, 48px); }
body.im-v3 .imc-hero__lead { margin: 0; flex: 1 1 420px; max-width: 600px; font-size: clamp(18px, 1.5vw, 21px); line-height: 1.55; color: var(--v3-slate); }
body.im-v3 .imc-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; }
body.im-v3 .imc-hero__call { color: var(--v3-ink) !important; font-weight: 600; font-size: 16px; text-decoration: underline; text-underline-offset: 3px; }
body.im-v3 .imc-wall { display: flex; gap: 20px; overflow-x: auto; margin-top: clamp(40px, 5vw, 72px) !important; padding: 0 var(--v3-gutter) 12px !important; scroll-snap-type: x mandatory; scroll-padding: 0 var(--v3-gutter); scrollbar-width: none; }
body.im-v3 .imc-wall::-webkit-scrollbar { display: none; }
body.im-v3 .imc-wall__item { flex: 0 0 clamp(280px, 30vw, 460px); scroll-snap-align: start; }
body.im-v3 .imc-wall__item:nth-child(even) { margin-top: 28px; }
body.im-v3 .imc-wall a { display: block; color: var(--v3-ink); text-decoration: none; }
body.im-v3 .imc-wall__name { display: block; margin-top: 10px; font-size: 15px; font-weight: 600; }
body.im-v3 .imc-wall__place { display: block; font-size: 14px; color: var(--v3-slate); }
body.im-v3 .imc-wall a:hover .imc-wall__name { text-decoration: underline; text-underline-offset: 3px; }

/* ---- Plain facts ---- */
body.im-v3 .imc-facts { margin-top: clamp(48px, 6vw, 88px); border-top: 1px solid var(--v3-line); border-bottom: 1px solid var(--v3-line); }
body.im-v3 .imc-facts__list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
body.im-v3 .imc-facts__list li { padding: 28px 24px; border-right: 1px solid var(--v3-line); }
body.im-v3 .imc-facts__list li:first-child { padding-left: 0; }
body.im-v3 .imc-facts__list li:last-child { border-right: 0; }
body.im-v3 .imc-facts__big { display: block; font-size: 44px; line-height: 1; font-weight: 680; font-stretch: 75%; color: var(--v3-ink); }
body.im-v3 .imc-facts__text { display: block; margin-top: 8px; font-size: 15px; line-height: 1.45; color: var(--v3-slate); }
@media (max-width: 899px) {
	body.im-v3 .imc-facts__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	body.im-v3 .imc-facts__list li { padding: 22px 16px 22px 0; }
	body.im-v3 .imc-facts__list li:nth-child(2n) { border-right: 0; padding-left: 16px; }
	body.im-v3 .imc-facts__list li:nth-child(-n+2) { border-bottom: 1px solid var(--v3-line); }
}

/* ---- What we do ---- */
body.im-v3 .imc-services { padding: clamp(64px, 8vw, 120px) 0; }
body.im-v3 .imc-split { display: flex; flex-wrap: wrap; gap: 40px 64px; }
body.im-v3 .imc-split__side { flex: 1 1 300px; max-width: 420px; }
body.im-v3 .imc-split__side p { margin: 18px 0 0; }
body.im-v3 .imc-svc-list { flex: 999 1 560px; min-width: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); column-gap: 32px; border-top: 1px solid var(--v3-ink); }
body.im-v3 .imc-svc { display: flex; gap: 16px; height: 100%; padding: 24px 0; border-bottom: 1px solid var(--v3-line); color: var(--v3-ink) !important; text-decoration: none !important; }
body.im-v3 .imc-svc__icon { flex: 0 0 auto; display: inline-flex; width: 44px; height: 44px; align-items: center; justify-content: center; border-radius: 8px; background: var(--v3-blue-tint); color: var(--v3-blue); }
body.im-v3 .imc-svc__icon svg { width: 22px !important; height: 22px !important; }
body.im-v3 .imc-svc__body { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
body.im-v3 .imc-svc__name { font-size: 20px; font-weight: 640; line-height: 1.25; }
body.im-v3 .imc-svc__text { font-size: 15px; line-height: 1.5; color: var(--v3-slate); }
body.im-v3 .imc-svc__price { font-size: 15px; font-weight: 600; }
body.im-v3 .imc-svc:hover .imc-svc__name { text-decoration: underline; text-underline-offset: 3px; }

/* ---- Selected work (dark) ---- */
body.im-v3 .imc-work { background: var(--v3-ink); color: #fff; padding: clamp(64px, 8vw, 120px) 0; }
body.im-v3 .imc-work .imc-display { color: #fff !important; }
body.im-v3 .imc-work .imc-lead { color: #c9c8d9; font-size: 19px; }
body.im-v3 .imc-work__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 20px 48px; }
body.im-v3 .imc-work__head > div:first-child { max-width: 760px; }
body.im-v3 .imc-chips { display: flex; flex-wrap: wrap; gap: 8px; }
body.im-v3 .imc-chips[hidden] { display: none; }
body.im-v3 .imc .imc-chip { min-height: 44px !important; padding: 0 16px !important; border-radius: var(--v3-radius-sm) !important; border: 1px solid rgba(255, 255, 255, 0.24) !important; background: transparent !important; color: #fff !important; font-family: var(--v3-font) !important; font-size: 15px !important; font-weight: 600 !important; text-transform: none !important; letter-spacing: 0 !important; box-shadow: none !important; cursor: pointer; }
body.im-v3 .imc .imc-chip span { opacity: 0.7; font-weight: 500; }
body.im-v3 .imc .imc-chip[aria-pressed="true"] { background: #fff !important; color: var(--v3-ink) !important; border-color: #fff !important; }
body.im-v3 .imc .imc-chip:hover { border-color: #fff !important; }
body.im-v3 .imc-cards { margin-top: clamp(32px, 4vw, 56px) !important; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr)); gap: clamp(28px, 3vw, 44px) clamp(20px, 2.6vw, 36px); }
body.im-v3 .imc-card { min-width: 0; }
body.im-v3 .imc-card[hidden] { display: none; }
body.im-v3 .imc-card.is-feature { grid-column: 1 / -1; }
body.im-v3 .imc-card.is-feature .imc-browser img { aspect-ratio: 21 / 9; }
body.im-v3 .imc-card a { display: block; color: #fff !important; text-decoration: none !important; }
body.im-v3 .imc-work .imc-browser { border-color: rgba(255, 255, 255, 0.22); background: #26233f; }
body.im-v3 .imc-card__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 16px; margin-top: 16px; }
body.im-v3 .imc-card__name { font-size: clamp(20px, 1.9vw, 26px); font-weight: 650; letter-spacing: -0.01em; }
body.im-v3 .imc-card__meta { font-size: 14px; color: #c9c8d9; }
body.im-v3 .imc-card__what { display: block; margin-top: 6px; font-size: 16px; line-height: 1.5; color: #c9c8d9; max-width: 62ch; }
body.im-v3 .imc-card__visit { display: inline-block; margin-top: 10px; font-size: 15px; font-weight: 600; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
body.im-v3 .imc-card a:hover .imc-card__visit { text-decoration-thickness: 2px; }
body.im-v3 .imc-work__more { margin: clamp(32px, 4vw, 48px) 0 0; }
body.im-v3 .imc-work a:focus-visible, body.im-v3 .imc-work button:focus-visible, body.im-v3 .imc-contact a:focus-visible, body.im-v3 .imv a:focus-visible, body.im-v3 .imv button:focus-visible { outline-color: #c4b5fd !important; }

/* ---- How a project runs ---- */
body.im-v3 .imc-process { padding: clamp(64px, 8vw, 120px) 0; }
body.im-v3 .imc-steps { margin-top: clamp(32px, 4vw, 52px) !important; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); border-top: 1px solid var(--v3-ink); }
body.im-v3 .imc-steps li { padding: 24px 24px 24px 0; border-bottom: 1px solid var(--v3-line); }
body.im-v3 .imc-step__num { display: block; font-size: 64px; line-height: 1; font-weight: 680; font-stretch: 75%; color: var(--v3-blue); }
body.im-v3 .imc-steps p { margin: 0; font-size: 16px; line-height: 1.55; color: var(--v3-slate); }

/* ---- Website packages (existing pricing section, on mist) ---- */
body.im-v3.im-home-v2 .imh-pricing { background: var(--v3-mist) !important; border-top: 1px solid var(--v3-line); }
body.im-v3.im-home-v2 .imh-pricing .imh-wrap { max-width: 1360px; }

/* ---- About ---- */
body.im-v3 .imc-about { padding: clamp(64px, 8vw, 120px) 0; }
body.im-v3 .imc-about__inner { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 24px clamp(32px, 6vw, 88px); align-items: start; }
body.im-v3 .imc-about__inner .imc-h2 { grid-column: 1; }
body.im-v3 .imc-about__copy { grid-column: 1; }
body.im-v3 .imc-about__copy p { margin: 0 0 14px; font-size: 19px; line-height: 1.6; color: var(--v3-slate); max-width: 62ch; }
body.im-v3 .imc-promises { grid-column: 2; grid-row: 1 / span 2; margin: 0; border-top: 1px solid var(--v3-line); }
body.im-v3 .imc-promises div { padding: 18px 0; border-bottom: 1px solid var(--v3-line); }
body.im-v3 .imc-promises dt { font-size: 17px; font-weight: 650; color: var(--v3-ink); }
body.im-v3 .imc-promises dd { margin: 6px 0 0; font-size: 15px; line-height: 1.5; color: var(--v3-slate); }
@media (max-width: 899px) {
	body.im-v3 .imc-about__inner { grid-template-columns: minmax(0, 1fr); }
	body.im-v3 .imc-promises { grid-column: 1; grid-row: auto; }
}

/* ---- Contact (dark); the site's inquiry form follows it ---- */
body.im-v3 .imc-contact { background: var(--v3-ink); color: #fff; padding: clamp(64px, 8vw, 112px) 0; }
body.im-v3 .imc-contact .imc-display { color: #fff !important; }
body.im-v3 .imc-contact__inner { display: flex; flex-wrap: wrap; gap: 32px clamp(32px, 6vw, 88px); align-items: flex-end; }
body.im-v3 .imc-contact__inner > .imc-display { flex: 1 1 480px; }
body.im-v3 .imc-contact__inner > div { flex: 1 1 360px; }
body.im-v3 .imc-contact .imc-lead { margin-top: 0; color: #c9c8d9; font-size: 19px; }
body.im-v3 .imc-contact__list { margin-top: 24px !important; display: flex; flex-direction: column; gap: 10px; font-size: 18px; color: #c9c8d9; }
body.im-v3 .imc-contact__list a { color: #fff !important; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
body.im-v3 .imc-contact__more { margin: 20px 0 0; display: flex; flex-wrap: wrap; gap: 8px 24px; }
body.im-v3 .imc-contact__more a { color: #c4b5fd !important; font-weight: 600; }
body.im-v3.im-home-v2 .im-pf { margin-top: clamp(48px, 6vw, 80px) !important; }

/* ---- /portfolio/: one project per screen (dark, full width) ---- */
body.im-v3 .imv { width: 100vw; margin: 0 0 clamp(48px, 6vw, 80px) calc(50% - 50vw); background: #100e22; color: #fff; padding: clamp(40px, 5vw, 72px) 0 28px; font-family: var(--v3-font); }
body.im-v3 .imv-inner { max-width: 1360px; margin: 0 auto; padding: 0 var(--v3-gutter); }
body.im-v3 .imv-slide { display: flex; flex-wrap: wrap; align-items: center; gap: 36px clamp(32px, 5vw, 80px); padding: 0 0 40px; }
body.im-v3 .imv:not(.imv--js) .imv-slide + .imv-slide { padding-top: 40px; border-top: 1px solid rgba(255, 255, 255, 0.14); }
body.im-v3 .imv--js .imv-slide[hidden] { display: none; }
body.im-v3 .imv--js .imv-slide:not([hidden]) { animation: imv-in 0.45s ease-out both; }
@keyframes imv-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
body.im-v3 .imv-copy { flex: 1 1 360px; max-width: 520px; min-width: 0; }
body.im-v3 .imv-count { margin: 0; font-size: 15px; font-weight: 600; color: #c9c8d9; }
body.im-v3 .imv .imv-name { margin: 12px 0 0; font-size: clamp(44px, 5.6vw, 88px) !important; line-height: 0.92 !important; font-weight: 680 !important; font-stretch: 75% !important; letter-spacing: -0.03em !important; color: #fff !important; }
body.im-v3 .imv-meta { margin: 14px 0 0; font-size: 15px; font-weight: 600; color: #c4b5fd; }
body.im-v3 .imv-story { margin: 22px 0 0; font-size: clamp(18px, 1.5vw, 21px); line-height: 1.55; color: #dedcee; }
body.im-v3 .imv-lists { margin-top: 28px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr)); gap: 0 32px; border-top: 1px solid rgba(255, 255, 255, 0.16); }
body.im-v3 .imv .imv-lists h3 { margin: 16px 0 10px; font-size: 14px !important; font-weight: 600 !important; color: #c9c8d9 !important; letter-spacing: 0 !important; }
body.im-v3 .imv-lists ul { display: flex; flex-direction: column; gap: 8px; }
body.im-v3 .imv-lists li { position: relative; padding-left: 16px; font-size: 16px; line-height: 1.4; color: #fff; }
body.im-v3 .imv .imv-lists li::before { content: ""; position: absolute; left: 0; top: 0.55em; width: 6px; height: 6px; background: #c4b5fd; }
body.im-v3 .imv-actions { margin: 32px 0 0; }
body.im-v3 .imv-stage { flex: 999 1 520px; min-width: 0; margin: 0; position: relative; padding: 24px 0 56px; }
body.im-v3 .imv-stage::before { content: ""; position: absolute; left: 6%; right: 6%; bottom: 18px; height: 70px; border-radius: 50%; background: radial-gradient(closest-side, rgba(143, 176, 255, 0.28), rgba(143, 176, 255, 0)); }
body.im-v3 .imv-stage::after { content: ""; position: absolute; left: 0; right: 0; bottom: 52px; height: 1px; background: rgba(255, 255, 255, 0.1); }
body.im-v3 .imv-laptop { position: relative; z-index: 1; display: block; width: 90%; margin: 0 auto; text-decoration: none; }
body.im-v3 .imv-laptop__screen { display: block; padding: 2.4% 2.4% 3%; background: #1c1a2c; border-radius: 14px 14px 0 0; box-shadow: inset 0 0 0 1px #34314c, 0 40px 80px -40px rgba(0, 0, 0, 0.8); line-height: 0; }
body.im-v3 .imv-laptop__screen img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; object-position: top center; border-radius: 3px; margin: 0 !important; }
body.im-v3 .imv-laptop__base { display: block; position: relative; width: 112%; left: -6%; height: 0; padding-bottom: 3.6%; background: linear-gradient(180deg, #d9dae3, #a9aab9); border-radius: 0 0 16px 16px / 0 0 70% 70%; }
body.im-v3 .imv-stage figcaption { position: relative; z-index: 1; margin-top: 22px; text-align: center; font-size: 14px; color: #c9c8d9; }
body.im-v3 .imv-nav { display: flex; gap: 12px; margin: 0 0 20px; }
body.im-v3 .imv-nav[hidden], body.im-v3 .imv-strip[hidden] { display: none; }
body.im-v3 .imv .imv-arrow { width: 50px !important; height: 50px !important; min-height: 0 !important; padding: 0 !important; display: inline-flex; align-items: center; justify-content: center; border: 1px solid rgba(255, 255, 255, 0.3) !important; border-radius: var(--v3-radius-sm) !important; background: transparent !important; color: #fff !important; box-shadow: none !important; cursor: pointer; }
body.im-v3 .imv .imv-arrow:hover { border-color: #fff !important; }
body.im-v3 .imv-strip ul { display: flex; gap: 12px; overflow-x: auto; padding: 4px 2px 12px; scrollbar-width: thin; scrollbar-color: #4a4766 transparent; }
body.im-v3 .imv-strip li { flex: 0 0 168px; }
body.im-v3 .imv .imv-thumb { display: block; width: 100%; padding: 6px 6px 10px !important; border: 1px solid rgba(255, 255, 255, 0.16) !important; border-radius: 8px !important; background: #121016 !important; color: #c9c8d9 !important; font-family: var(--v3-font) !important; text-align: left; text-transform: none !important; letter-spacing: 0 !important; box-shadow: none !important; cursor: pointer; }
body.im-v3 .imv-thumb img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; object-position: top center; border-radius: 4px; margin: 0 !important; }
body.im-v3 .imv-thumb span { display: block; margin-top: 8px; font-size: 13px; font-weight: 600; line-height: 1.3; }
body.im-v3 .imv .imv-thumb[aria-current="true"] { border-color: #fff !important; color: #fff !important; }
@media (prefers-reduced-motion: reduce) { body.im-v3 .imv--js .imv-slide:not([hidden]) { animation: none; } }body.im-v3 .imc ul.imc-wrap, body.im-v3 .imc ol.imc-wrap { padding-left: var(--v3-gutter) !important; padding-right: var(--v3-gutter) !important; }
body.im-v3.im-portfolio-page .im-content:has(> .imv:first-child) { padding-top: 0; }

/* ---- Hero with the motion graphic (2026-11-07) ---- */
body.im-v3 .imc-hero__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 40px clamp(32px, 5vw, 80px); align-items: center; }
body.im-v3 .imc .imc-hero__title { font-size: clamp(48px, 5.8vw, 104px) !important; }
body.im-v3 .imc-hero__copy .imc-hero__lead { margin: clamp(22px, 2.4vw, 32px) 0 0; max-width: 560px; }
body.im-v3 .imc-hero__copy .imc-hero__actions { margin-top: 28px; }
body.im-v3 .imc-hero__motion { min-width: 0; }
@media (max-width: 1099px) {
	body.im-v3 .imc-hero__grid { grid-template-columns: minmax(0, 1fr); }
	body.im-v3 .imc .imc-hero__title { font-size: clamp(48px, 10.4vw, 104px) !important; }
	body.im-v3 .imc-hero__motion { max-width: 680px; }
}
/* =========================================================================
 * Owner's mockup (2026-11-07): header, homepage (.im4-*), footer
 * ====================================================================== */
@font-face { font-family: "Literata IM"; src: url("fonts/literata-semibold.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }
:root:has(body.im-v3) { --v3-mist: #f6f4fa; --v3-line: #e4e1ea; --v3-line-strong: #c9c4d4; --v3-slate: #4a4657; --im4-purple: #6d28d9; --im4-purple-light: #b794f6; --im4-lavender: #efe7ff; --im4-night: #121016; }

/* Header: two-line wordmark, phone number, dark "Let's Talk" */
body.im-v3 .im-brand__name { display: flex; flex-direction: column; line-height: 1; white-space: nowrap; }
body.im-v3 .im-brand__l1 { font-size: 21px; font-weight: 800; letter-spacing: 0.03em; text-transform: uppercase; color: var(--v3-ink); }
body.im-v3 .im-brand__l2 { margin-top: 3px; font-size: 10.5px; font-weight: 600; letter-spacing: 0.36em; text-transform: uppercase; color: var(--v3-ink); }
body.im-v3 .im-brand__mark--logo { width: auto !important; height: 40px; }
body.im-v3 .im-header .im-header__cta { align-items: center; gap: 8px; background: var(--v3-ink) !important; border-radius: 8px !important; padding: 0 20px !important; }
@media (min-width: 1181px) { body.im-v3 .im-header .im-header__cta { display: inline-flex !important; } }
body.im-v3 .im-header .im-header__cta:hover, body.im-v3 .im-header .im-header__cta:focus-visible { background: var(--im4-purple) !important; }
@media (min-width: 1181px) {
	body.im-v3 .im-header .im-header__phone { display: inline-flex !important; align-items: center; gap: 8px; width: auto !important; padding: 0 12px !important; }
	body.im-v3 .im-header .im-header__phone-text { display: inline !important; font-weight: 600; font-size: 15px; white-space: nowrap; }
	body.im-v3 .im-nav__list { gap: 6px !important; }
	body.im-v3 .im-header .im-nav__top { font-size: 16px !important; padding-left: 12px !important; padding-right: 12px !important; }
}
@media (max-width: 420px) { body.im-v3 .im-brand__l1 { font-size: 18px; } body.im-v3 .im-brand__l2 { font-size: 9px; } }

/* Shared */
body.im-v3 .im4 { font-family: var(--v3-font); color: var(--v3-ink); }
body.im-v3 .im4-wrap { max-width: 1240px; margin: 0 auto; padding-left: var(--v3-gutter); padding-right: var(--v3-gutter); }
body.im-v3 .im4 ul, body.im-v3 .im4 ol { list-style: none; margin: 0; padding: 0; }
body.im-v3 .im4 li { margin: 0; }
body.im-v3 .im4 li::before { content: none; }
body.im-v3 .im4 .im4-h2 { margin: 0; font-size: clamp(34px, 4.4vw, 58px) !important; line-height: 1.02 !important; font-weight: 800 !important; letter-spacing: -0.035em !important; color: var(--v3-ink) !important; }
body.im-v3 .im4 .im4-h2--sm { font-size: clamp(30px, 3.4vw, 44px) !important; }
body.im-v3 .im4 .im4-h3 { margin: 0; font-size: clamp(24px, 2.4vw, 32px) !important; font-weight: 800 !important; letter-spacing: -0.02em !important; color: var(--v3-ink) !important; }
body.im-v3 .im4-label { margin: 0 0 14px; font-size: 13px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--v3-ink); }
body.im-v3 .im4-label__num { font-size: 19px; letter-spacing: 0; color: var(--im4-purple); }
body.im-v3 .im4-lead { margin: 18px 0 0; font-size: 18px; line-height: 1.55; color: var(--v3-slate); max-width: 40ch; }
body.im-v3 .im4-accent { color: var(--im4-purple); }
body.im-v3 .im4-btn { display: inline-flex; align-items: center; gap: 10px; min-height: 52px; padding: 0 24px; border-radius: 6px; font-size: 17px; font-weight: 650; line-height: 1.2; text-decoration: none !important; }
body.im-v3 .im4-btn--primary { background: var(--im4-purple); color: #fff !important; }
body.im-v3 .im4-btn--primary:hover, body.im-v3 .im4-btn--primary:focus-visible { background: #5b21b6; }
body.im-v3 .im4-textlink { display: inline-flex; align-items: center; gap: 8px; padding-bottom: 4px; border-bottom: 2px solid var(--v3-ink); color: var(--v3-ink) !important; font-size: 16px; font-weight: 650; text-decoration: none !important; white-space: nowrap; }
body.im-v3 .im4-textlink:hover { color: var(--im4-purple) !important; border-color: var(--im4-purple); }
body.im-v3 .im4-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px 40px; }

/* Hero */
body.im-v3 .im4-hero { padding: clamp(32px, 5vw, 64px) 0 0; }
body.im-v3 .im4-hero__grid { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, 0.88fr); align-items: center; gap: 24px clamp(24px, 4vw, 56px); }
body.im-v3 .im4-kicker { margin: 0 0 18px; font-size: 13px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--v3-ink); }
body.im-v3 .im4 .im4-hero__title { margin: 0; font-size: clamp(44px, 6.1vw, 90px) !important; line-height: 0.95 !important; font-weight: 800 !important; letter-spacing: -0.04em !important; text-transform: uppercase; color: var(--v3-ink) !important; }
body.im-v3 .im4-hero__title > span { display: block; }
body.im-v3 .im4-hero__sub { margin: 22px 0 0; max-width: 31ch; font-size: clamp(18px, 1.6vw, 21px); line-height: 1.45; color: #2a2731; }
body.im-v3 .im4-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 32px; margin-top: 30px; }
body.im-v3 .im4-hero__art { justify-self: end; width: 100%; max-width: 620px; }
body.im-v3 .im4-hero__art img { display: block; width: 100%; height: auto; }
body.im-v3 .im4-strip { display: flex; align-items: center; gap: 24px; margin: clamp(28px, 4vw, 48px) 0 0; font-size: 14px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--v3-ink); text-align: center; }
body.im-v3 .im4-strip::before, body.im-v3 .im4-strip::after { content: ""; flex: 1 1 40px; height: 1px; background: var(--v3-line-strong); }

/* 01 Selected work */
body.im-v3 .im4-work { padding: clamp(48px, 6vw, 80px) 0 clamp(40px, 5vw, 64px); }
body.im-v3 .im4-cards { margin-top: clamp(24px, 3vw, 36px) !important; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 20px; }
body.im-v3 .im4-card { grid-column: span 6; }
body.im-v3 .im4-card--1, body.im-v3 .im4-card--4 { grid-column: span 7; }
body.im-v3 .im4-card--2, body.im-v3 .im4-card--3 { grid-column: span 5; }
body.im-v3 .im4-card a { position: relative; display: block; height: clamp(260px, 25vw, 340px); border-radius: 6px; overflow: hidden; background: var(--im4-night); color: #fff !important; text-decoration: none !important; }
body.im-v3 .im4-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: top center; margin: 0 !important; transition: transform 0.5s ease; }
body.im-v3 .im4-card a::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10, 8, 16, 0.15) 0%, rgba(10, 8, 16, 0.35) 40%, rgba(10, 8, 16, 0.9) 100%); }
body.im-v3 .im4-card a:hover img { transform: scale(1.03); }
body.im-v3 .im4-card__corner { position: absolute; z-index: 1; top: 16px; right: 16px; color: #fff; }
body.im-v3 .im4-card__body { position: absolute; z-index: 1; left: 26px; right: 26px; bottom: 24px; display: flex; flex-direction: column; align-items: flex-start; }
body.im-v3 .im4-card__name { font-family: "Literata IM", Georgia, serif; font-weight: 600; font-size: clamp(26px, 2.6vw, 40px); line-height: 1.05; letter-spacing: -0.01em; }
body.im-v3 .im4-card__cat { margin-top: 8px; font-size: 15px; color: #ece9f2; }
body.im-v3 .im4-card__pill { display: inline-flex; align-items: center; gap: 6px; margin-top: 14px; padding: 6px 12px; border: 1px solid rgba(255, 255, 255, 0.75); border-radius: 4px; background: rgba(255, 255, 255, 0.08); font-size: 14px; font-weight: 600; }
body.im-v3 .im4-card a:hover .im4-card__pill { background: #fff; color: var(--im4-night); }

/* Google reviews (only rendered when real reviews exist) */
body.im-v3 .im4-reviews { padding: 0 0 clamp(40px, 5vw, 64px); }
body.im-v3 .im4-review-list { margin-top: 24px !important; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 16px; }
body.im-v3 .im4-review { padding: 24px; border: 1px solid var(--v3-line); border-radius: 8px; }
body.im-v3 .im4-review__stars { margin: 0; display: flex; gap: 2px; color: #f5a400; }
body.im-v3 .im4-review__stars svg { fill: currentColor; }
body.im-v3 .im4-review blockquote { margin: 12px 0 0; padding: 0; border: 0; font-size: 16px; line-height: 1.55; color: var(--v3-ink); font-style: normal; }
body.im-v3 .im4-review__by { margin: 14px 0 0; font-size: 15px; font-weight: 650; }
body.im-v3 .im4-review__by span { margin-left: 8px; font-weight: 500; color: var(--v3-slate); }

/* 02 What we do */
body.im-v3 .im4-services { padding: clamp(40px, 5vw, 64px) 0; border-top: 1px solid var(--v3-line); }
body.im-v3 .im4-services__grid { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 32px 0; }
body.im-v3 .im4-services__list { padding-left: clamp(24px, 4vw, 56px); border-left: 1px solid var(--v3-line-strong); }
body.im-v3 .im4-svc a { display: flex; align-items: center; gap: 24px; padding: 12px 0; border-bottom: 1px solid var(--v3-line-strong); color: var(--v3-ink) !important; text-decoration: none !important; }
body.im-v3 .im4-svc__num { flex: 0 0 34px; font-size: 18px; font-weight: 600; color: var(--im4-purple); }
body.im-v3 .im4-svc__name { flex: 1 1 auto; font-size: clamp(19px, 1.8vw, 25px); font-weight: 650; letter-spacing: -0.01em; }
body.im-v3 .im4-svc a:hover .im4-svc__name { color: var(--im4-purple); }
body.im-v3 .im4-svc__more { margin: 14px 0 0; font-size: 15px; color: var(--v3-ink); }
body.im-v3 .im4-svc__more a { color: var(--v3-ink) !important; text-decoration: none; }
body.im-v3 .im4-svc__more a:hover { color: var(--im4-purple) !important; text-decoration: underline; }
body.im-v3 .im4-svc__more span { margin: 0 8px; color: var(--v3-slate); }
body.im-v3 .im4-prices { margin: 18px 0 0; padding: 12px 16px; border-radius: 6px; background: var(--im4-lavender); font-size: 15px; font-weight: 650; line-height: 1.5; color: var(--v3-ink); }
body.im-v3 .im4-prices span { margin: 0 6px; color: var(--im4-purple); }
body.im-v3 .im4-prices a { margin-left: 6px; color: var(--im4-purple) !important; font-weight: 700; }

/* Dark band */
body.im-v3 .im4-band { background: var(--im4-night); color: #fff; padding: clamp(40px, 5vw, 60px) 0; }
body.im-v3 .im4-band__grid { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); align-items: center; gap: 32px 0; }
body.im-v3 .im4-band__copy { padding-right: clamp(24px, 4vw, 48px); border-right: 1px solid rgba(255, 255, 255, 0.2); }
body.im-v3 .im4 .im4-band__title { margin: 0; font-size: clamp(28px, 3.2vw, 44px) !important; line-height: 1.02 !important; font-weight: 800 !important; letter-spacing: -0.03em !important; text-transform: uppercase; color: #fff !important; }
body.im-v3 .im4-band__title > span { display: block; }
body.im-v3 .im4-band .im4-accent { color: var(--im4-purple-light); }
body.im-v3 .im4-band__copy p { margin: 12px 0 22px; font-size: 18px; color: #d9d5e3; }
body.im-v3 .im4-flow { margin: 0; padding-left: clamp(24px, 4vw, 48px); }
body.im-v3 .im4-flow__list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px; }
body.im-v3 .im4-flow__step { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; min-height: 120px; padding: 16px 8px; border: 1px solid var(--im4-purple-light); border-radius: 8px; text-align: center; color: #fff; }
body.im-v3 .im4-flow__step svg { color: #d6c6ff; }
body.im-v3 .im4-flow__step > span { font-size: 15px; font-weight: 600; line-height: 1.25; }
body.im-v3 .im4-flow__step:not(:last-child)::after { content: "" / ""; position: absolute; right: -22px; top: 50%; width: 16px; height: 2px; background: #d6c6ff; }
body.im-v3 .im4-wave { position: absolute; left: 10%; right: 10%; bottom: -26px; height: 18px; background: repeating-linear-gradient(90deg, var(--im4-purple-light) 0 2px, transparent 2px 5px); -webkit-mask-image: linear-gradient(90deg, transparent, #000 15%, #000 85%, transparent); mask-image: linear-gradient(90deg, transparent, #000 15%, #000 85%, transparent); opacity: 0.8; }
body.im-v3 .im4-flow figcaption { margin-top: 18px; text-align: right; font-size: 14px; font-style: italic; color: #bdb7c9; }

/* 03 How we work */
body.im-v3 .im4-how { padding: clamp(40px, 5vw, 64px) 0; }
body.im-v3 .im4-how__grid { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 2fr); gap: 28px 40px; align-items: start; }
body.im-v3 .im4-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
body.im-v3 .im4-steps li { padding: 4px 24px; border-left: 1px solid var(--v3-line-strong); }
body.im-v3 .im4 .im4-steps h3 { margin: 0 0 8px; font-size: 19px !important; font-weight: 700 !important; color: var(--v3-ink) !important; }
body.im-v3 .im4-step__num { margin-right: 6px; color: var(--im4-purple); }
body.im-v3 .im4-steps p { margin: 0; font-size: 15.5px; line-height: 1.5; color: var(--v3-slate); }
body.im-v3 .im4-how__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; margin-top: 28px; padding-top: 18px; border-top: 1px solid var(--v3-line-strong); }
body.im-v3 .im4-how__foot p { margin: 0; font-size: 16px; }

/* Let's build what's next */
body.im-v3 .im4-cta { background: var(--im4-lavender); padding: clamp(32px, 4.5vw, 56px) 0; }
body.im-v3 .im4-cta__grid { display: flex; flex-wrap: wrap; align-items: center; gap: 20px clamp(20px, 3vw, 40px); }
body.im-v3 .im4 .im4-cta__title { margin: 0; flex: 0 1 auto; max-width: 10ch; font-size: clamp(38px, 4.8vw, 66px) !important; line-height: 0.95 !important; font-weight: 800 !important; letter-spacing: -0.035em !important; text-transform: uppercase; color: var(--v3-ink) !important; }
body.im-v3 .im4-cta__text { margin: 0; flex: 1 1 220px; max-width: 26ch; padding-left: clamp(20px, 3vw, 36px); border-left: 1px solid #c3aef0; font-size: 19px; line-height: 1.45; }
body.im-v3 .im4-cta__circle { display: inline-flex; align-items: center; justify-content: center; width: 84px; height: 84px; margin-left: auto; border-radius: 50%; background: var(--im4-night); color: #fff !important; }
body.im-v3 .im4-cta__circle:hover { background: var(--im4-purple); }
body.im-v3 .im4-owner { margin: 0; display: flex; align-items: center; gap: 14px; }
body.im-v3 .im4-owner img { width: 96px; height: 96px; border-radius: 50%; object-fit: cover; }
body.im-v3 .im4-owner figcaption { display: flex; flex-direction: column; font-size: 14px; color: var(--v3-slate); }
body.im-v3 .im4-owner strong { font-size: 16px; color: var(--v3-ink); }
body.im-v3.im-home-v2 .im-pf { margin-top: clamp(48px, 6vw, 72px) !important; }

/* Footer */
body.im-v3 #footer.im4-footer { background: #fff !important; border-top: 1px solid var(--v3-line); font-family: var(--v3-font); color: var(--v3-ink); }
body.im-v3 #footer.im4-footer .im4-footer__grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1.3fr) minmax(0, 0.8fr) minmax(0, 1.5fr); gap: 32px 0; padding-top: 44px; padding-bottom: 32px; }
body.im-v3 #footer.im4-footer .im4-footer__grid > * { padding: 0 28px; border-left: 1px solid var(--v3-line-strong); }
body.im-v3 #footer.im4-footer .im4-footer__grid > :first-child { padding-left: 0; border-left: 0; }
body.im-v3 #footer.im4-footer .im-header__brand { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; }
body.im-v3 #footer.im4-footer .im-brand__name span { color: var(--v3-ink) !important; font-family: var(--v3-font) !important; }
body.im-v3 #footer.im4-footer .im-brand__mark { width: 44px; height: auto; }
body.im-v3 #footer.im4-footer .im-brand__mark--logo { width: auto; height: 40px; }
body.im-v3 #footer.im4-footer p { margin: 14px 0 0; font-size: 14.5px; line-height: 1.55; color: var(--v3-slate) !important; }
body.im-v3 #footer.im4-footer ul { list-style: none; margin: 0; padding: 0; }
body.im-v3 #footer.im4-footer li { margin: 0 0 8px; font-size: 15px; }
body.im-v3 #footer.im4-footer li::before { content: none; }
body.im-v3 #footer.im4-footer a, body.im-v3 #footer.im4-footer li span { color: var(--v3-ink) !important; text-decoration: none; overflow-wrap: anywhere; }
body.im-v3 #footer.im4-footer a:hover { color: var(--im4-purple) !important; text-decoration: underline; }
body.im-v3 #footer.im4-footer .im4-footer__contact li { display: flex; align-items: center; gap: 10px; }
body.im-v3 #footer.im4-footer .im4-footer__contact svg { flex: 0 0 auto; color: var(--v3-ink); }
body.im-v3 #footer.im4-footer .im4-footer__nav--ind > p { margin: 0 0 10px; font-size: 15px; font-weight: 700; color: var(--v3-ink) !important; }
body.im-v3 #footer.im4-footer .im4-footer__nav--ind ul { columns: 2; column-gap: 24px; }
body.im-v3 #footer.im4-footer .im4-footer__nav--ind li { break-inside: avoid; font-size: 14px; }
body.im-v3 #footer.im4-footer .im4-footer__bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 24px; padding-top: 18px; padding-bottom: 28px; border-top: 1px solid var(--v3-line); }
body.im-v3 #footer.im4-footer .im4-footer__bottom p { margin: 0; font-size: 13.5px; }
body.im-v3 #footer.im4-footer .im4-footer__legal { display: flex; flex-wrap: wrap; gap: 6px 20px; }
body.im-v3 #footer.im4-footer .im4-footer__legal li { margin: 0; font-size: 13.5px; }

/* Smaller screens */
@media (max-width: 1023px) {
	body.im-v3 .im4-hero__grid, body.im-v3 .im4-services__grid, body.im-v3 .im4-band__grid, body.im-v3 .im4-how__grid { grid-template-columns: minmax(0, 1fr); }
	body.im-v3 .im4-hero__art { justify-self: center; max-width: 520px; }
	body.im-v3 .im4-services__list { padding-left: 0; border-left: 0; }
	body.im-v3 .im4-band__copy { padding-right: 0; border-right: 0; }
	body.im-v3 .im4-flow { padding-left: 0; }
	body.im-v3 #footer.im4-footer .im4-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	body.im-v3 #footer.im4-footer .im4-footer__grid > * { padding: 0 0 0 20px; }
	body.im-v3 #footer.im4-footer .im4-footer__grid > :nth-child(odd) { padding-left: 0; border-left: 0; }
}
@media (max-width: 767px) {
	body.im-v3 .im4-card, body.im-v3 .im4-card--1, body.im-v3 .im4-card--2, body.im-v3 .im4-card--3, body.im-v3 .im4-card--4 { grid-column: 1 / -1; }
	body.im-v3 .im4-card a { height: 240px; }
	body.im-v3 .im4-flow__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
	body.im-v3 .im4-flow__step::after { display: none; }
	body.im-v3 .im4-wave { display: none; }
	body.im-v3 .im4-steps { grid-template-columns: minmax(0, 1fr); gap: 16px; }
	body.im-v3 .im4-steps li { padding: 0 0 0 16px; }
	body.im-v3 .im4-cta__circle { display: none; }
	body.im-v3 .im4-cta__text { padding-left: 0; border-left: 0; }
	body.im-v3 .im4-strip { gap: 12px; font-size: 12px; letter-spacing: 0.12em; }
	body.im-v3 #footer.im4-footer .im4-footer__grid { grid-template-columns: minmax(0, 1fr); }
	body.im-v3 #footer.im4-footer .im4-footer__grid > * { padding: 0; border-left: 0; }
}
/* Mockup pass 2: three-line headline, stronger card scrim, arrowheads in the workflow */
@media (min-width: 1024px) { body.im-v3 .im4-hero__grid { grid-template-columns: minmax(0, 1.3fr) minmax(0, 0.7fr); } }
body.im-v3 .im4 .im4-hero__title { font-size: clamp(40px, 4.15vw, 62px) !important; }
@media (min-width: 1024px) { body.im-v3 .im4-hero__title > span { white-space: nowrap; } }
body.im-v3 .im4-card a::after { background: linear-gradient(180deg, rgba(10, 8, 16, 0.05) 0%, rgba(10, 8, 16, 0.25) 30%, rgba(10, 8, 16, 0.82) 58%, rgba(10, 8, 16, 0.96) 100%); }
body.im-v3 .im4-card__name, body.im-v3 .im4-card__cat { text-shadow: 0 1px 12px rgba(0, 0, 0, 0.45); }
body.im-v3 .im4-flow__step:not(:last-child)::after { content: "\2192" / ""; width: auto; height: auto; right: -24px; top: 50%; transform: translateY(-50%); background: none; font-size: 22px; line-height: 1; color: #d6c6ff; }
@media (max-width: 1023px) { body.im-v3 .im4 .im4-hero__title { font-size: clamp(34px, 9.4vw, 64px) !important; } body.im-v3 .im4-card__name { font-size: clamp(24px, 6.4vw, 34px); } }
/* Mockup pass 3 (owner: "infinity bigger, writing bolder and bigger, exactly like the mockup") */
body.im-v3 .im4 .im4-hero__title { font-weight: 800 !important; letter-spacing: -0.045em !important; }
body.im-v3 .im4-hero__sub { font-size: clamp(19px, 1.7vw, 23px); font-weight: 500; color: var(--v3-ink); }
body.im-v3 .im4-kicker { font-size: 14px; font-weight: 800; }
@media (min-width: 1024px) {
	body.im-v3 .im4-hero { position: relative; overflow: hidden; }
	body.im-v3 .im4-hero__grid { display: block; }
	body.im-v3 .im4-hero__copy { position: relative; z-index: 1; max-width: 660px; }
	body.im-v3 .im4 .im4-hero__title { font-size: clamp(52px, 4.8vw, 74px) !important; line-height: 0.93 !important; }
	body.im-v3 .im4-hero__title > span { white-space: normal; }
	body.im-v3 .im4-hero__art { position: absolute; top: clamp(20px, 3vw, 48px); right: 2vw; width: min(48vw, 720px); max-width: none; }
}
@media (min-width: 1181px) { body.im-v3 .im-header .im-header__icon-btn[data-im-search-toggle] { display: none !important; } }
body.im-v3 .im4 .im4-h2 { font-size: clamp(36px, 4.6vw, 64px) !important; }
/* Real images (data/real-images.json): desktop mockups of live sites keep the screen in view when a 16:9 or 16:10
   frame crops them, on the same light grey as the mockup backdrop. */
body.im-v3 .im-ph__media img.im-mock, body.im-v3 .im-figure--support img.im-mock { object-position: 50% 28%; background: #eceef2; }
/* =========================================================================
 * Forms, Webtonic-style card (2026-11-07). body.im-forms-v4 comes from includes/redesign.php
 * (off: option im_form_style = off). Page form = dark band with a white card; contact form and popup = white card.
 * Fields are filled (no outline), 14px corners; required fields get "*"; the send button is a full-width pill.
 * ====================================================================== */
body.im-forms-v4 {
	--fv-fill: #f4f3f8;
	--fv-fill-hover: #ecebf3;
	--fv-radius: 14px;
	--fv-card: 28px;
}
/* Page form: dark band, intro left, card right. */
body.im-forms-v4 .im-pf {
	background: var(--v3-ink) !important;
	border: 0 !important;
	border-radius: 32px !important;
	padding: clamp(28px, 4.5vw, 64px) !important;
	grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr) !important;
	gap: clamp(28px, 5vw, 72px) !important;
	align-items: start !important;
}
body.im-forms-v4 .im-pf__intro { position: sticky; top: 110px; padding-top: 8px; }
body.im-forms-v4 .im-pf #im-pf-title.im-pf__title { color: #fff !important; font-size: clamp(30px, 3.6vw, 46px) !important; line-height: 1.08 !important; font-weight: 800 !important; letter-spacing: -.02em !important; margin: 0 0 18px !important; }
body.im-forms-v4 .im-pf .im-pf__intro p { color: #cfcdda !important; font-size: 17px !important; line-height: 1.6 !important; }
body.im-forms-v4 .im-pf .im-pf__intro a { color: #fff !important; font-weight: 700; text-decoration: underline; text-decoration-color: #a78bfa; text-underline-offset: 3px; }
body.im-forms-v4 .im-pf .im-pf__form,
body.im-forms-v4 .im-ic,
body.im-forms-v4 .im-ic--sent,
body.im-forms-v4 .im-pf__done {
	background: #fff !important;
	border: 0 !important;
	border-radius: var(--fv-card) !important;
	box-shadow: 0 10px 22px rgba(18, 16, 22, .1) !important;
	padding: clamp(24px, 3vw, 36px) clamp(20px, 2.6vw, 32px) !important;
}
body.im-forms-v4 .im-ic { box-shadow: 0 18px 50px -18px rgba(18, 16, 22, .28), 0 0 0 1px rgba(18, 16, 22, .04) !important; }
body.im-forms-v4 .im-pf__done :is(h3, p) { color: var(--v3-ink) !important; }

/* Card heading + chips */
body.im-forms-v4 .im-fcard__head { text-align: center; margin: 0 0 22px; }
body.im-forms-v4 .im-fcard__title,
body.im-forms-v4 .im-ic .im-ic__title { color: var(--v3-ink) !important; font-size: clamp(24px, 2.4vw, 30px) !important; line-height: 1.15 !important; font-weight: 800 !important; letter-spacing: -.015em !important; margin: 0 0 8px !important; }
body.im-forms-v4 .im-fcard__sub,
body.im-forms-v4 .im-ic .im-ic__intro { color: var(--v3-slate) !important; font-size: 15px !important; line-height: 1.5 !important; margin: 0 auto 16px !important; max-width: 46ch; }
body.im-forms-v4 .im-ic__head { text-align: center; margin-bottom: 22px !important; }
body.im-forms-v4 .im-fchips { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
body.im-forms-v4 .im-fchip { margin: 0 !important; padding: 0 !important; }
body.im-forms-v4 .im-fchip, body.im-forms-v4 .im-fchip a { display: flex; align-items: center; justify-content: center; gap: 6px; min-height: 34px; border-radius: 999px; font-size: 13px; font-weight: 600; line-height: 1.2; text-align: center; }
body.im-forms-v4 .im-fchip:not(.im-fchip--d) { padding: 7px 12px !important; }
body.im-forms-v4 .im-fchip svg { flex: none; }
body.im-forms-v4 .im-fchip--a { background: var(--v3-blue); color: #fff; }
body.im-forms-v4 .im-fchip--b { background: #4d4b64; color: #fff; }
body.im-forms-v4 .im-fchip--c { background: var(--fv-fill); color: var(--v3-ink); }
body.im-forms-v4 .im-fchip--d a { background: var(--v3-ink); color: #fff !important; text-decoration: none !important; padding: 7px 12px; width: 100%; }
body.im-forms-v4 .im-fchip--d a:hover { background: var(--v3-blue-dark); }

/* Layout of fields: name full width, then two columns. */
body.im-forms-v4 .im-pf .im-pf__row { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 16px !important; }
body.im-forms-v4 .im-pf .im-pf__row > :first-child { grid-column: 1 / -1; }
body.im-forms-v4 :is(.im-pf__field, .im-ic__field, .im-pop__field) { margin-bottom: 16px !important; }
body.im-forms-v4 .im-ic__row { gap: 16px !important; margin-bottom: 16px !important; }
body.im-forms-v4 .im-pf .im-pf__row { margin-bottom: 16px !important; }
body.im-forms-v4 :is(.im-pf__row, .im-ic__row) > :is(.im-pf__field, .im-ic__field) { margin-bottom: 0 !important; }

/* Labels and required star. */
body.im-forms-v4 :is(.im-pf__field > label, .im-ic__field > label, .im-ic legend, .im-pop__field > label) {
	color: var(--v3-ink) !important; font-size: 14px !important; font-weight: 600 !important; letter-spacing: 0 !important; text-transform: none !important; margin-bottom: 7px !important; display: block;
}
body.im-forms-v4 :is(.im-pf__field, .im-pop__field):has(:required) > label::after { content: "*"; color: var(--v3-blue); margin-left: 2px; }
body.im-forms-v4 .im-pf__field label[for="im-pf-phone"] { font-size: 14px !important; }
body.im-forms-v4 .im-ic .im-ic__req { font-size: 0 !important; color: var(--v3-blue) !important; }
body.im-forms-v4 .im-ic .im-ic__req::after { content: "*"; font-size: 14px; }

/* Filled fields. */
body.im-forms-v4 :is(.im-ic, .im-pf, .im-pop, .im-nyp) :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], select, textarea) {
	background-color: var(--fv-fill) !important;
	border: 1px solid transparent !important;
	border-radius: var(--fv-radius) !important;
	padding: 14px 17px !important;
	min-height: 50px;
	font-size: 16px !important;
	line-height: 1.4 !important;
	color: var(--v3-ink) !important;
	box-shadow: none !important;
	transition: background-color .15s ease, border-color .15s ease;
}
body.im-forms-v4 :is(.im-ic, .im-pf, .im-pop, .im-nyp) textarea { min-height: 128px; resize: vertical; }
body.im-forms-v4 :is(.im-ic, .im-pf, .im-pop, .im-nyp) :is(input, select, textarea):hover { background-color: var(--fv-fill-hover) !important; }
body.im-forms-v4 :is(.im-ic, .im-pf, .im-pop, .im-nyp) :is(input, select, textarea):focus { background-color: #fff !important; border-color: var(--v3-blue) !important; outline: 3px solid #e4d8ff !important; outline-offset: 0 !important; }
body.im-forms-v4 :is(.im-ic, .im-pf, .im-pop, .im-nyp) [aria-invalid="true"] { border-color: var(--v3-error) !important; background-color: #fff6f5 !important; }
body.im-forms-v4 :is(.im-ic, .im-pf, .im-pop, .im-nyp) ::placeholder { color: #8a889c !important; }
body.im-forms-v4 :is(.im-ic, .im-nyp) select { appearance: none; -webkit-appearance: none; padding-right: 44px !important; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4' fill='none' stroke='%23121016' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important; background-repeat: no-repeat !important; background-position: right 16px center !important; background-size: 16px !important; }

/* Contact-method radios as pills. */
body.im-forms-v4 .im-ic .im-ic__radio { background: var(--fv-fill) !important; border: 1px solid transparent !important; border-radius: 999px !important; padding: 10px 16px !important; font-weight: 600; font-size: 14px; cursor: pointer; }
body.im-forms-v4 .im-ic .im-ic__radio:has(input:checked) { background: var(--v3-ink) !important; color: #fff !important; }
body.im-forms-v4 .im-ic .im-ic__radio:has(input:focus-visible) { outline: 3px solid #c4b5fd; outline-offset: 2px; }
body.im-forms-v4 .im-ic .im-ic__radio input { accent-color: var(--v3-blue); }

/* Hints, consent, notes. */
body.im-forms-v4 :is(.im-pf__hint, .im-ic__hint) { font-size: 13px !important; color: var(--v3-slate) !important; margin: 6px 0 0 !important; }
body.im-forms-v4 .im-ic__hint { margin: 0 0 8px !important; }
body.im-forms-v4 :is(.im-pf__consent, .im-ic__consent, .im-pop__consent) { font-size: 13px !important; line-height: 1.5 !important; color: var(--v3-slate) !important; align-items: flex-start; }
body.im-forms-v4 :is(.im-pf__consent, .im-ic__consent, .im-pop__consent) input { accent-color: var(--v3-blue); width: 18px; height: 18px; margin-top: 1px; }

/* Send: full-width dark pill. */
body.im-forms-v4 :is(.im-pf__actions, .im-ic__actions) { display: block !important; margin-top: 18px !important; }
body.im-forms-v4 :is(.im-pf .im-pf__submit, .im-ic__submit, .im-pop .im-pop__submit) {
	width: 100% !important;
	min-height: 54px !important;
	justify-content: center !important;
	border-radius: 999px !important;
	background: var(--v3-ink) !important;
	color: #fff !important;
	border: 0 !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	letter-spacing: 0 !important;
	box-shadow: none !important;
}
body.im-forms-v4 :is(.im-pf .im-pf__submit, .im-ic__submit, .im-pop .im-pop__submit):is(:hover, :focus-visible) { background: var(--v3-blue) !important; color: #fff !important; }
body.im-forms-v4 :is(.im-pf__note, .im-ic__note, .im-pop__note) { text-align: center !important; font-size: 13px !important; margin: 12px 0 0 !important; max-width: none !important; }

/* Popup */
body.im-forms-v4 .im-pop { border: 0 !important; border-radius: var(--fv-card) !important; }
body.im-forms-v4 .im-pop .im-pop__title { font-weight: 800 !important; letter-spacing: -.015em !important; }

@media (max-width: 900px) {
	body.im-forms-v4 .im-pf { grid-template-columns: minmax(0, 1fr) !important; border-radius: 24px !important; padding: 28px 16px 16px !important; }
	body.im-forms-v4 .im-pf__intro { position: static; padding: 0 8px; }
	body.im-forms-v4 .im-pf .im-pf__form, body.im-forms-v4 .im-ic { border-radius: 22px !important; }
}
@media (max-width: 520px) {
	body.im-forms-v4 .im-fchips { grid-template-columns: minmax(0, 1fr); }
	body.im-forms-v4 .im-pf .im-pf__row { grid-template-columns: minmax(0, 1fr) !important; }
	body.im-forms-v4 .im-ic .im-ic__radio-row { flex-wrap: wrap; }
}
/* Every form on a black panel inside the content (owner 2026-11-07). */
body.im-forms-v4 .im-fband { background: var(--v3-ink); border-radius: 32px; padding: clamp(16px, 3.5vw, 48px); }
body.im-forms-v4 .im-fband .im-ic { box-shadow: none !important; }
body.im-forms-v4 .im-fband .im-ic--sent { margin: 0 !important; }
@media (max-width: 900px) { body.im-forms-v4 .im-fband { border-radius: 24px; padding: 16px; } }
body.im-forms-v4 .im-ic .im-ic__row:has(.im-ic__radios) { grid-template-columns: minmax(0, 1fr) !important; }
body.im-forms-v4 .im-ic .im-ic__radio-row { display: flex !important; flex-wrap: wrap; gap: 8px !important; }
body.im-forms-v4 .im-fband > :is(form.im-nyp, form.im-gf) { margin: 0 !important; border: 0 !important; border-radius: var(--fv-card) !important; box-shadow: none !important; }
body.im-forms-v4 .im-fband + .im-fband, body.im-forms-v4 .im-content > .im-fband { margin-block: clamp(24px, 4vw, 48px); }

/* =========================================================================
 * Pricing packages, HGD-style (2026-11-07). Markup: im_v4_pricing_packages() in includes/redesign.php.
 * Cards carry price, monthly line, cart buttons, key-number tiles, then the shared base list and the feature list
 * where missing items are greyed and items new to this package are marked "+".
 * ====================================================================== */
body.im-v3 .im-pk { margin: 28px 0 0; }
body.im-v3 .im-pk__legend { list-style: none; margin: 0 0 20px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 22px; font-size: 14px; color: var(--v3-slate); }
body.im-v3 .im-pk__legend li { display: inline-flex; align-items: center; gap: 8px; margin: 0; padding: 0; }
body.im-v3 .im-pk__legend li::before, body.im-v3 .im-pk__list li::before { content: none !important; }
body.im-v3 .im-pk__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 330px), 1fr)); gap: 20px; align-items: start; }
body.im-v3 .im-pk__card {
	position: relative; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--v3-line); border-radius: 22px;
	padding: 26px 24px 22px; color: var(--v3-slate);
}
body.im-v3 .im-pk__card.is-featured { border: 2px solid var(--v3-ink); padding: 25px 23px 21px; }
body.im-v3 .im-pk__top { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
body.im-v3 .im-content .im-pk__name { margin: 0 !important; font-size: 24px !important; line-height: 1.2 !important; font-weight: 800 !important; letter-spacing: -.015em; }
body.im-v3 .im-content .im-pk__name a { color: var(--v3-ink) !important; text-decoration: none !important; }
body.im-v3 .im-content .im-pk__name a:hover { color: var(--v3-blue) !important; }
body.im-v3 .im-pk__level { display: inline-flex; align-items: flex-end; gap: 3px; height: 20px; flex: none; margin-top: 4px; }
body.im-v3 .im-pk__level i { display: block; width: 5px; height: var(--h); border-radius: 2px; background: var(--v3-mist-2); }
body.im-v3 .im-pk__level i.is-on { background: var(--v3-blue); }
body.im-v3 .im-pk__badge { position: absolute; top: -13px; left: 22px; margin: 0 !important; background: var(--v3-ink); color: #fff !important; font-size: 12.5px; font-weight: 700; line-height: 1; padding: 7px 12px; border-radius: 999px; }
body.im-v3 .im-content .im-pk__summary { margin: 8px 0 18px !important; font-size: 15px !important; line-height: 1.5 !important; color: var(--v3-slate) !important; min-height: 3em; }
body.im-v3 .im-content .im-pk__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; margin: 0 !important; color: var(--v3-ink); }
body.im-v3 .im-pk__prefix { font-size: 14px; color: var(--v3-slate); width: 100%; }
body.im-v3 .im-pk__amount { font-size: clamp(36px, 3.4vw, 44px); font-weight: 800; letter-spacing: -.03em; line-height: 1; font-variant-numeric: tabular-nums; }
body.im-v3 .im-pk__term { font-size: 15px; color: var(--v3-slate); }
body.im-v3 .im-content .im-pk__monthly { margin: 8px 0 0 !important; font-size: 14px !important; color: var(--v3-slate) !important; }
body.im-v3 .im-content .im-pk__monthly.has-fee { color: var(--v3-blue-dark) !important; font-weight: 700; }
body.im-v3 .im-pk__cta { display: grid !important; grid-template-columns: 1fr 1fr; gap: 8px; margin: 18px 0 0 !important; }
body.im-v3 .im-pk__cta > :only-child, body.im-v3 .im-pk__cta .im-plan__soon, body.im-v3 .im-pk__cta .im-plan__state { grid-column: 1 / -1; }
body.im-v3 .im-pk :is(.im-pk__cta, .im-pk-addon__cta) .im-plan__btn { display: flex !important; align-items: center; justify-content: center; min-height: 46px; border-radius: 999px !important; font-size: 15px !important; font-weight: 700 !important; text-align: center; padding: 10px 14px !important; margin: 0 !important; width: auto !important; }
body.im-v3 .im-pk-addons .im-pk-addon__cta .im-plan__btn { display: inline-flex !important; align-items: center; justify-content: center; min-height: 42px; border-radius: 999px !important; font-size: 14px !important; font-weight: 700 !important; padding: 8px 16px !important; margin: 0 !important; }
body.im-v3 .im-pk__tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 18px 0 4px; padding: 0; }
body.im-v3 .im-pk__tiles > div { background: var(--v3-mist); border-radius: 14px; padding: 12px 8px; text-align: center; display: flex; flex-direction: column-reverse; gap: 2px; }
body.im-v3 .im-pk__tiles dd { margin: 0; color: var(--v3-ink); font-size: 20px; font-weight: 800; line-height: 1.1; }
body.im-v3 .im-pk__tiles dt { margin: 0; color: var(--v3-slate); font-size: 12px; line-height: 1.3; font-weight: 500; }
body.im-v3 .im-content .im-pk__group { margin: 18px 0 8px !important; font-size: 14px !important; font-weight: 700; color: var(--v3-ink) !important; padding-top: 14px; border-top: 1px solid var(--v3-line); }
body.im-v3 .im-content .im-pk__list { list-style: none !important; margin: 0 !important; padding: 0 !important; }
body.im-v3 .im-content .im-pk__list li { display: flex; align-items: flex-start; gap: 10px; margin: 0 !important; padding: 5px 0 !important; font-size: 15px !important; line-height: 1.4 !important; color: var(--v3-ink) !important; }
body.im-v3 .im-content .im-pk__list li.is-no { color: #6e6c82 !important; text-decoration: line-through; text-decoration-color: #c9c7d6; }
body.im-v3 .im-content .im-pk__list li.is-new { font-weight: 700; }
body.im-v3 .im-pk__ic { flex: none; display: inline-grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; margin-top: 0; }
body.im-v3 .im-pk__ic--yes { background: #e3f4ea; color: var(--v3-ok); }
body.im-v3 .im-pk__ic--new { background: var(--v3-blue); color: #fff; }
body.im-v3 .im-pk__ic--no { background: var(--v3-mist); color: #9a98ab; }
body.im-v3 .im-pk__limits { margin-top: 14px; font-size: 14px; }
body.im-v3 .im-pk__limits summary { cursor: pointer; color: var(--v3-slate); font-weight: 600; }
body.im-v3 .im-content .im-pk__limits li { font-size: 14px !important; color: var(--v3-slate) !important; }

/* Add-ons */
body.im-v3 .im-pk-addons { margin: clamp(40px, 6vw, 64px) 0 0; }
body.im-v3 .im-content .im-pk-addons__title { margin: 0 0 6px !important; font-size: clamp(24px, 2.6vw, 30px) !important; font-weight: 800 !important; color: var(--v3-ink) !important; }
body.im-v3 .im-content .im-pk-addons__intro { margin: 0 0 20px !important; color: var(--v3-slate) !important; }
body.im-v3 .im-pk-addons__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); gap: 14px; }
body.im-v3 .im-pk-addon { display: flex; flex-direction: column; background: var(--v3-mist); border-radius: 18px; padding: 20px; }
body.im-v3 .im-content .im-pk-addon__name { margin: 0 0 6px !important; font-size: 17px !important; font-weight: 800 !important; line-height: 1.3 !important; }
body.im-v3 .im-content .im-pk-addon__name a { color: var(--v3-ink) !important; text-decoration: none !important; }
body.im-v3 .im-content .im-pk-addon__summary { margin: 0 0 14px !important; font-size: 14px !important; line-height: 1.5 !important; color: var(--v3-slate) !important; flex: 1; }
body.im-v3 .im-content .im-pk-addon__price { margin: 0 !important; color: var(--v3-slate) !important; font-size: 14px !important; }
body.im-v3 .im-pk-addon__price strong { color: var(--v3-ink); font-size: 22px; font-weight: 800; }
body.im-v3 .im-content .im-pk-addon__monthly { margin: 2px 0 0 !important; font-size: 13px !important; color: var(--v3-blue-dark) !important; font-weight: 700; }
body.im-v3 .im-pk-addon__cta { display: flex !important; flex-wrap: wrap; gap: 8px; margin-top: 14px !important; }
@media (max-width: 520px) {
	body.im-v3 .im-pk__card { padding: 22px 18px 18px; }
	body.im-v3 .im-pk__cta { grid-template-columns: 1fr; }
}
/* Page form: website mockup + short FAQ under the intro (desktop), below the form (phones). */
body.im-forms-v4 .im-pf { grid-template-areas: "intro form" "aside form"; grid-template-rows: auto 1fr; row-gap: 28px !important; }
body.im-forms-v4 .im-pf__intro { grid-area: intro; position: static; }
body.im-forms-v4 .im-pf__form, body.im-forms-v4 .im-pf__done { grid-area: form; }
body.im-forms-v4 .im-pf__aside { grid-area: aside; display: grid; gap: 26px; align-content: start; }
body.im-forms-v4 .im-pf__mock { margin: 0; }
body.im-forms-v4 .im-pf__mock img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; object-position: 50% 28%; border-radius: 18px; background: #24212d; }
body.im-forms-v4 .im-pf .im-pf__mock figcaption { margin-top: 10px; font-size: 14px; line-height: 1.5; color: #cfcdda; }
body.im-forms-v4 .im-pf .im-pf__mock figcaption a,
body.im-forms-v4 .im-pf .im-pf__faq a { color: #fff !important; font-weight: 700; text-decoration: underline; text-decoration-color: #a78bfa; text-underline-offset: 3px; }
body.im-forms-v4 .im-pf .im-pf__faq-title { margin: 0 0 6px; color: #fff; font-size: 18px; font-weight: 800; }
body.im-forms-v4 .im-pf__faq details { border-top: 1px solid rgba(255, 255, 255, .14); }
body.im-forms-v4 .im-pf__faq details:last-child { border-bottom: 1px solid rgba(255, 255, 255, .14); }
body.im-forms-v4 .im-pf__faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 14px 2px; color: #fff; font-size: 16px; font-weight: 600; }
body.im-forms-v4 .im-pf__faq summary::-webkit-details-marker { display: none; }
body.im-forms-v4 .im-pf__faq summary::after { content: "+"; flex: none; width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; background: rgba(255, 255, 255, .1); font-size: 18px; font-weight: 500; line-height: 1; }
body.im-forms-v4 .im-pf__faq details[open] summary::after { content: "\2212"; background: var(--v3-blue); }
body.im-forms-v4 .im-pf__faq summary:focus-visible { outline: 3px solid #c4b5fd; outline-offset: 2px; border-radius: 6px; }
body.im-forms-v4 .im-pf .im-pf__faq details p { margin: 0 0 16px !important; color: #cfcdda !important; font-size: 15px !important; line-height: 1.6 !important; }
@media (max-width: 900px) {
	body.im-forms-v4 .im-pf { grid-template-areas: "intro" "form" "aside"; grid-template-rows: none; }
	body.im-forms-v4 .im-pf__aside { padding: 0 8px 12px; }
}

/* =========================================================================
 * /portfolio/ card grid, Webtonic-style (2026-11-07). Markup: im_v4_portfolio_grid() in includes/redesign.php.
 * Off (back to the one-project viewer): option im_portfolio_style = viewer.
 * ====================================================================== */
body.im-v3 .imw { margin: 0 0 clamp(48px, 7vw, 88px); }
body.im-v3 .imw-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 24px; margin-bottom: 18px; }
body.im-v3 .imw .imw-title { margin: 0 !important; font-size: clamp(28px, 3.4vw, 42px) !important; line-height: 1.1 !important; font-weight: 800 !important; letter-spacing: -.02em; color: var(--v3-ink) !important; }
body.im-v3 .imw .imw-intro { margin: 0 !important; color: var(--v3-slate) !important; font-size: 16px !important; }
body.im-v3 .imw-filters { list-style: none; margin: 0 0 24px !important; padding: 0 !important; display: flex; flex-wrap: wrap; gap: 8px; }
body.im-v3 .imw-filters li { margin: 0 !important; padding: 0 !important; }
body.im-v3 .imw-filters li::before, body.im-v3 .imw-grid > li::before, body.im-v3 .imw-pills li::before { content: none !important; }
body.im-v3 .imw-filter { display: inline-flex; align-items: center; gap: 8px; min-height: 42px; padding: 8px 16px; border-radius: 999px; border: 1px solid var(--v3-line-strong); background: #fff; color: var(--v3-ink); font: 600 15px/1.2 var(--v3-font); text-transform: none !important; letter-spacing: 0 !important; cursor: pointer; }
body.im-v3 .imw-filter span { font-size: 13px; color: var(--v3-slate); font-variant-numeric: tabular-nums; }
body.im-v3 .imw-filter:hover { background: var(--v3-mist); }
body.im-v3 .imw-filter[aria-pressed="true"] { background: var(--v3-ink); border-color: var(--v3-ink); color: #fff; }
body.im-v3 .imw-filter[aria-pressed="true"] span { color: #cfcdda; }
body.im-v3 .imw-filter:focus-visible { outline: 3px solid #c4b5fd; outline-offset: 2px; }

body.im-v3 .imw-grid { list-style: none; margin: 0 !important; padding: 0 !important; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
body.im-v3 .imw-card { margin: 0 !important; padding: 0 !important; }
body.im-v3 .imw-card[hidden] { display: none !important; }
body.im-v3 .imw-card article { position: relative; isolation: isolate; overflow: hidden; border-radius: 24px; aspect-ratio: 1.45; background: #1c1a22; color: #fff; }
body.im-v3 .imw-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 0; z-index: -2; transition: transform .5s ease; }
body.im-v3 .imw-card article::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(18, 16, 22, .05) 0%, rgba(18, 16, 22, .15) 28%, rgba(18, 16, 22, .78) 56%, rgba(18, 16, 22, .95) 100%); transition: background .3s ease; }
body.im-v3 .imw .imw-industry { position: absolute; top: 16px; right: 16px; margin: 0 !important; display: inline-flex; align-items: center; gap: 6px; padding: 6px 13px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .7); background: rgba(18, 16, 22, .55); backdrop-filter: blur(6px); color: #fff !important; font-size: 14px !important; font-weight: 500; line-height: 1.2 !important; }
body.im-v3 .imw-body { position: absolute; left: 0; right: 0; bottom: 0; padding: clamp(18px, 2.4vw, 28px); }
body.im-v3 .imw .imw-name { margin: 0 0 12px !important; font-size: clamp(24px, 2.4vw, 32px) !important; line-height: 1.1 !important; font-weight: 800 !important; letter-spacing: -.015em; }
body.im-v3 .imw .imw-name a { color: #fff !important; text-decoration: none !important; }
body.im-v3 .imw-name a::after { content: ""; position: absolute; inset: 0; border-radius: 24px; }
body.im-v3 .imw-name a:focus-visible { outline: none; }
body.im-v3 .imw-name a:focus-visible::after { outline: 3px solid #c4b5fd; outline-offset: -3px; }
body.im-v3 .imw-pills { list-style: none; margin: 0 !important; padding: 0 !important; display: flex; flex-wrap: wrap; gap: 6px; }
body.im-v3 .imw .imw-pills li { margin: 0 !important; padding: 5px 13px !important; border: 1px solid rgba(255, 255, 255, .75); border-radius: 999px; color: #fff !important; font-size: 14px !important; line-height: 1.3 !important; }
body.im-v3 .imw-more { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .3s ease; }
body.im-v3 .imw-more > * { overflow: hidden; min-height: 0; }
body.im-v3 .imw .imw-more p { margin: 0 !important; padding-top: 12px; color: #e6e4ee !important; font-size: 15px !important; line-height: 1.5 !important; max-width: 60ch; }
body.im-v3 .imw-more > div > * { display: block; }
body.im-v3 .imw-visit { display: inline-flex !important; align-items: center; gap: 6px; padding-top: 10px; font-size: 15px; font-weight: 700; color: #fff; text-decoration: underline; text-decoration-color: #a78bfa; text-underline-offset: 4px; }
@media (hover: hover) {
	body.im-v3 .imw-card article:is(:hover, :focus-within) img { transform: scale(1.03); }
	body.im-v3 .imw-card article:is(:hover, :focus-within)::before { background: linear-gradient(180deg, rgba(18, 16, 22, .2) 0%, rgba(18, 16, 22, .82) 40%, rgba(18, 16, 22, .96) 100%); }
	body.im-v3 .imw-card article:is(:hover, :focus-within) .imw-more { grid-template-rows: 1fr; }
}
@media (hover: none) {
	body.im-v3 .imw-card article { aspect-ratio: auto; display: flex; flex-direction: column; }
	body.im-v3 .imw-card img { position: relative; inset: auto; height: auto; aspect-ratio: 16 / 10; }
	body.im-v3 .imw-card article::before { content: none; }
	body.im-v3 .imw-body { position: relative; background: #1c1a22; }
	body.im-v3 .imw-more { grid-template-rows: 1fr; }
}
@media (max-width: 767px) {
	body.im-v3 .imw-grid { grid-template-columns: minmax(0, 1fr); }
	body.im-v3 .imw-card article { border-radius: 20px; }
}
@media (prefers-reduced-motion: reduce) {
	body.im-v3 .imw-card img, body.im-v3 .imw-more, body.im-v3 .imw-card article::before { transition: none; }
}
@media (max-width: 767px) {
	body.im-v3 .imw .imw-filters { flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(-1 * var(--v3-gutter)) !important; padding: 2px var(--v3-gutter) 6px !important; scrollbar-width: none; }
	body.im-v3 .imw .imw-filters::-webkit-scrollbar { display: none; }
	body.im-v3 .imw-filter { white-space: nowrap; min-height: 40px; padding: 7px 14px; }
}

/* Service-page previews: three client-site cards (same card as /portfolio/). */
body.im-v3 .imw--preview { margin: clamp(40px, 6vw, 72px) 0; }
body.im-v3 .imw .imw--preview .imw-title, body.im-v3 .imw--preview .imw-title { font-size: clamp(24px, 2.6vw, 32px) !important; }
body.im-v3 .imw-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
body.im-v3 .imw-grid--3 .imw-card article { aspect-ratio: 1.15; border-radius: 20px; }
body.im-v3 .imw .imw-grid--3 .imw-name { font-size: clamp(20px, 1.8vw, 24px) !important; }
body.im-v3 .imw .imw-grid--3 .imw-pills li { font-size: 13px !important; padding: 4px 11px !important; }
body.im-v3 .imw-all { font-weight: 700; color: var(--v3-blue); text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 1023px) { body.im-v3 .imw-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { body.im-v3 .imw-grid--3 { grid-template-columns: minmax(0, 1fr); } }
body.im-v3 .imw-grid--3.imw-grid--n2 { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 820px; }
body.im-v3 .imw-grid--3.imw-grid--n1 { grid-template-columns: minmax(0, 1fr); max-width: 580px; }
@media (max-width: 767px) { body.im-v3 .imw-grid--3.imw-grid--n2 { grid-template-columns: minmax(0, 1fr); } }

/* Client logos on the cards (bottom right, like the reference). White logos sit on a dark badge. */
body.im-v3 .imw-body { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 16px; align-items: end; }
body.im-v3 .imw-id { min-width: 0; }
body.im-v3 .imw-more { grid-column: 1 / -1; }
body.im-v3 .imw-logo { display: grid; place-items: center; height: 66px; min-width: 66px; max-width: 156px; padding: 8px 10px; border-radius: 14px; background: #fff; box-shadow: 0 4px 14px rgba(0, 0, 0, .25); }
body.im-v3 .imw-logo--dark { background: #121016; border: 1px solid rgba(255, 255, 255, .22); }
body.im-v3 .imw-card .imw-logo img { position: static; inset: auto; z-index: auto; width: auto; height: auto; max-width: 136px; max-height: 50px; object-fit: contain; aspect-ratio: auto; transform: none !important; transition: none; }
body.im-v3 .imw-grid--3 .imw-logo { height: 48px; min-width: 48px; max-width: 108px; padding: 6px 8px; border-radius: 12px; }
body.im-v3 .imw-grid--3 .imw-card .imw-logo img { max-width: 92px; max-height: 34px; }
@media (max-width: 520px) {
	body.im-v3 .imw-logo { height: 46px; min-width: 46px; max-width: 104px; padding: 6px 8px; }
	body.im-v3 .imw-card .imw-logo img { max-width: 88px; max-height: 32px; }
}

/* =========================================================================
 * Homepage "Our platforms" (2026-11-07): the owner's products, data/products.json. 3-column grid; every 1st and 4th card of
 * each group of four spans two columns, so rows alternate 2+1 and 1+2.
 * ====================================================================== */
body.im-v3 .im4-products { padding: clamp(56px, 7vw, 96px) 0; background: var(--v3-mist); }
body.im-v3 .im4-products__head { max-width: 760px; margin-bottom: clamp(28px, 4vw, 44px); }
body.im-v3 .im4-products__head .im4-lead { max-width: 52ch; }
body.im-v3 .im4-prods { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; grid-auto-flow: row dense; }
body.im-v3 .im4-prods > li { margin: 0; padding: 0; }
body.im-v3 .im4-prods > li::before { content: none !important; }
body.im-v3 .im4-prod { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--v3-line); border-radius: 22px; overflow: hidden; }
body.im-v3 .im4-prod--wide { grid-column: span 2; }
body.im-v3 .im4-prod__shot { display: block; background: #232325; }
body.im-v3 .im4-prod__shot img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; object-position: 50% 45%; transition: transform .4s ease; }
body.im-v3 .im4-prod--wide .im4-prod__shot img { aspect-ratio: 16 / 9; object-position: 50% 42%; }
body.im-v3 .im4-prod:hover .im4-prod__shot img { transform: scale(1.02); }
body.im-v3 .im4-prod__body { display: flex; flex-direction: column; flex: 1; padding: 22px 22px 20px; }
body.im-v3 .im4 .im4-prod__kind { margin: 0 0 6px; font-size: 14px; font-weight: 600; color: var(--v3-blue); }
body.im-v3 .im4 .im4-prod__name { margin: 0 0 8px; font-size: clamp(22px, 2vw, 26px); line-height: 1.15; font-weight: 800; letter-spacing: -.015em; color: var(--v3-ink); }
body.im-v3 .im4 .im4-prod__what { margin: 0 0 18px; font-size: 16px; line-height: 1.55; color: var(--v3-slate); flex: 1; max-width: 60ch; }
body.im-v3 .im4 .im4-prod__links { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; }
body.im-v3 .im4 .im4-prod__more { display: inline-flex; align-items: center; min-height: 44px; padding: 10px 18px; border-radius: 999px; background: var(--v3-ink); color: #fff !important; font-weight: 700; font-size: 15px; text-decoration: none !important; }
body.im-v3 .im4 .im4-prod__more:hover { background: var(--v3-blue); }
body.im-v3 .im4 .im4-prod__site { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; font-size: 15px; color: var(--v3-ink) !important; text-decoration: underline; text-decoration-color: var(--v3-blue); text-underline-offset: 4px; }
body.im-v3 .im4 .im4-prod__site:hover { color: var(--v3-blue) !important; }
body.im-v3 .im4 :is(.im4-prod__more, .im4-prod__site):focus-visible { outline: 3px solid #c4b5fd; outline-offset: 2px; }
@media (max-width: 1023px) {
	body.im-v3 .im4-prods { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	body.im-v3 .im4-prod--wide { grid-column: span 2; }
}
@media (max-width: 767px) {
	body.im-v3 .im4-prods { grid-template-columns: minmax(0, 1fr); }
	body.im-v3 .im4-prod--wide { grid-column: auto; }
	body.im-v3 .im4-prod--wide .im4-prod__shot img { aspect-ratio: 4 / 3; object-position: 50% 45%; }
}
@media (prefers-reduced-motion: reduce) { body.im-v3 .im4-prod__shot img { transition: none; } }

/* Sitewide parallax sign-up band (MachForm iframe). Full-bleed, photo fixed behind on desktop. */
body.im-v3 .im-signup { position: relative; isolation: isolate; margin: clamp(48px, 7vw, 96px) calc(50% - 50vw) 0; width: 100vw; padding: clamp(56px, 8vw, 120px) var(--v3-gutter); background: #121016 var(--im-signup-bg, none) center / cover no-repeat; color: #fff; }
body.im-v3 .im-signup::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(100deg, rgba(18, 16, 22, .92) 0%, rgba(18, 16, 22, .78) 45%, rgba(46, 16, 101, .55) 100%); }
@media (hover: hover) and (min-width: 900px) and (prefers-reduced-motion: no-preference) { body.im-v3 .im-signup { background-attachment: fixed; } }
body.im-v3 .im-signup__inner { max-width: 1180px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(28px, 5vw, 72px); align-items: center; }
body.im-v3 .im-signup .im-signup__title { margin: 0 0 16px !important; color: #fff !important; font-size: clamp(32px, 4vw, 52px) !important; line-height: 1.05 !important; font-weight: 800 !important; letter-spacing: -.025em; }
body.im-v3 .im-signup__copy p { margin: 0 0 12px !important; color: #e4e2ee !important; font-size: 18px !important; line-height: 1.6 !important; max-width: 44ch; }
body.im-v3 .im-signup__copy a { color: #fff !important; font-weight: 700; text-decoration: underline; text-decoration-color: #a78bfa; text-underline-offset: 3px; }
body.im-v3 .im-signup .im-fchips { max-width: 460px; margin: 22px 0 0; }
body.im-v3 .im-signup .im-fchip--c { background: rgba(255, 255, 255, .14); color: #fff; }
body.im-v3 .im-signup .im-fchip--d a { background: #fff; color: var(--v3-ink) !important; }
body.im-v3 .im-signup .im-fchip--d a:hover { background: #ece9f7; }
body.im-v3 .im-signup__form { background: #fff; border-radius: 28px; padding: 10px; box-shadow: 0 24px 60px -24px rgba(0, 0, 0, .6); }
body.im-v3 .im-signup__form iframe { display: block; width: 100%; height: 760px; border: 0; border-radius: 20px; background: #fff; }
body.im-v3 .im-signup__form .im-signup__alt { margin: 8px 12px 6px !important; text-align: center; font-size: 14px !important; }
body.im-v3 .im-signup__form .im-signup__alt a { color: var(--v3-blue) !important; font-weight: 600; }
@media (max-width: 899px) {
	body.im-v3 .im-signup__inner { grid-template-columns: minmax(0, 1fr); }
	body.im-v3 .im-signup__form iframe { height: 820px; }
}

/* Desk-scene mockups (owner 2026-11-07): dark wall and wooden desk, monitor centred; keep the screen in view when
 * a header or panel crops them. */
body.im-v3 :is(.im-ph__media, .im-figure--support, .im-pf__mock) img.im-mock--desk { object-position: 50% 40%; background: #232325; }
body.im-forms-v4 .im-pf__mock img.im-mock--desk { aspect-ratio: 4 / 3; object-position: 50% 50%; }

/* Section 01 cards with the desk-scene mockups: keep the monitor in the upper part, above the card text. */
body.im-v3 .im4-card img.im4-card__desk { object-position: 50% 78%; }
body.im-v3 .im4-card a:has(.im4-card__desk)::after { background: linear-gradient(180deg, rgba(10, 8, 16, 0) 0%, rgba(10, 8, 16, 0) 42%, rgba(10, 8, 16, .72) 70%, rgba(10, 8, 16, .94) 100%); }
body.im-v3 .im4-card a:has(.im4-card__desk) { background: #232325; }

/* =========================================================================
 * Section 04 "How we work", richer (owner 2026-11-07: "Section 04.. make it more appealing"): dark panel, real
 * planning photo, three connected step cards with an icon and one fact from the packages.
 * ====================================================================== */
body.im-v3 .im4-how { padding: clamp(28px, 4vw, 48px) var(--v3-gutter); }
body.im-v3 .im4-how > .im4-wrap { position: relative; overflow: hidden; background: #121016; color: #fff; border-radius: 32px; padding: clamp(32px, 5vw, 72px) clamp(22px, 4.5vw, 64px); max-width: 1240px; }
body.im-v3 .im4-how > .im4-wrap::before { content: ""; position: absolute; width: 620px; height: 620px; right: -220px; top: -260px; border-radius: 50%; background: radial-gradient(circle, rgba(109, 40, 217, .45), rgba(109, 40, 217, 0) 65%); pointer-events: none; }
body.im-v3 .im4-how .im4-how__grid { position: relative; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(24px, 4vw, 56px); align-items: center; }
body.im-v3 .im4-how .im4-label { color: #cfcdda; }
body.im-v3 .im4-how .im4-label__num { color: #b39bff; }
body.im-v3 .im4.im4-how .im4-h2 { color: #fff !important; }
body.im-v3 .im4-how .im4-how__lead { margin: 18px 0 0; color: #cfcdda; font-size: 18px; line-height: 1.55; max-width: 42ch; }
body.im-v3 .im4-how__photo { margin: 0; }
body.im-v3 .im4-how__img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 22px; box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .7); }
body.im-v3 .im4-how .im4-steps { position: relative; list-style: none; margin: clamp(32px, 4vw, 52px) 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; counter-reset: none; }
body.im-v3 .im4-how .im4-steps::before { content: ""; position: absolute; left: 8%; right: 8%; top: 46px; height: 2px; background: linear-gradient(90deg, rgba(179, 155, 255, .15), rgba(179, 155, 255, .7), rgba(179, 155, 255, .15)); }
body.im-v3 .im4-how .im4-step { position: relative; margin: 0; padding: 24px 22px 22px !important; border: 1px solid rgba(255, 255, 255, .12) !important; border-radius: 22px; background: rgba(255, 255, 255, .05); backdrop-filter: blur(4px); transition: transform .25s ease, border-color .25s ease, background .25s ease; }
body.im-v3 .im4-how .im4-step::before { content: none !important; }
body.im-v3 .im4-how .im4-step:hover { transform: translateY(-4px); border-color: rgba(179, 155, 255, .55) !important; background: rgba(255, 255, 255, .08); }
body.im-v3 .im4-step__top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; }
body.im-v3 .im4-step__n { font-size: 44px; font-weight: 800; line-height: 1; letter-spacing: -.03em; color: transparent; -webkit-text-stroke: 1.5px rgba(179, 155, 255, .9); }
body.im-v3 .im4-step__icon { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 16px; background: var(--v3-blue); color: #fff; box-shadow: 0 10px 24px -10px rgba(109, 40, 217, .9); }
body.im-v3 .im4.im4-how .im4-steps h3 { margin: 0 0 8px; color: #fff !important; font-size: 22px !important; font-weight: 800 !important; letter-spacing: -.01em; }
body.im-v3 .im4-how .im4-steps p { margin: 0; color: #cfcdda; font-size: 16px; line-height: 1.55; }
body.im-v3 .im4-how .im4-steps .im4-step__fact { display: inline-flex; align-items: center; gap: 8px; margin-top: 16px; padding: 8px 12px; border-radius: 12px; background: rgba(109, 40, 217, .22); color: #e9e2ff; font-size: 14px; font-weight: 600; line-height: 1.35; }
body.im-v3 .im4-step__fact svg { flex: none; color: #b39bff; }
body.im-v3 .im4-how .im4-how__foot { position: relative; margin-top: clamp(28px, 4vw, 40px); padding-top: 22px; border-top: 1px solid rgba(255, 255, 255, .14); }
body.im-v3 .im4-how .im4-how__foot p { color: #fff; font-size: 18px; font-weight: 600; font-style: normal; }
@media (max-width: 899px) {
	body.im-v3 .im4-how .im4-how__grid { grid-template-columns: minmax(0, 1fr); }
	body.im-v3 .im4-how .im4-steps { grid-template-columns: minmax(0, 1fr); }
	body.im-v3 .im4-how .im4-steps::before { left: 46px; right: auto; top: 30px; bottom: 30px; width: 2px; height: auto; background: linear-gradient(180deg, rgba(179, 155, 255, .15), rgba(179, 155, 255, .7), rgba(179, 155, 255, .15)); }
	body.im-v3 .im4-how > .im4-wrap { border-radius: 24px; }
}
@media (prefers-reduced-motion: reduce) { body.im-v3 .im4-how .im4-step { transition: none; } body.im-v3 .im4-how .im4-step:hover { transform: none; } }
body.im-v3 .im4-how .im4-step__icon svg { width: 26px !important; height: 26px !important; }

/* Homepage client reviews (owner-supplied, 2026-11-07): up to 9 cards, name, role/company, link to the client's site. */
body.im-v3 .im4-reviews { padding: clamp(40px, 6vw, 80px) 0; }
body.im-v3 .im4-review-list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
body.im-v3 .im4-review { display: flex; flex-direction: column; padding: 26px 24px 22px; border-radius: 20px; background: #fff; border: 1px solid var(--v3-line); }
body.im-v3 .im4-review blockquote { flex: 1; font-size: 16.5px; line-height: 1.6; }
body.im-v3 .im4-review__by { display: flex; flex-direction: column; gap: 2px; padding-top: 14px; border-top: 1px solid var(--v3-line); }
body.im-v3 .im4-review__by strong { font-weight: 750; color: var(--v3-ink); }
body.im-v3 .im4-review__by span { margin-left: 0; font-size: 14px; }
body.im-v3 .im4-review__by a { font-size: 14px; font-weight: 600; color: var(--v3-blue); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 1023px) { body.im-v3 .im4-review-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { body.im-v3 .im4-review-list { grid-template-columns: minmax(0, 1fr); } }

/* Blog finder on the light design (2026-11-07) */
body.im-v3 .imb-search input[type="search"] { background: #fff !important; color: var(--v3-ink) !important; border: 1px solid var(--v3-line-strong) !important; }
body.im-v3 .imb-search button { background: var(--v3-ink) !important; color: #fff !important; }
body.im-v3 .imb-finder__status { color: var(--v3-slate) !important; }
body.im-v3 .imb-finder__status a { color: var(--v3-blue) !important; }