/**
 * ABConsult responsive design system.
 *
 * This stylesheet intentionally sits outside Blocksy, Elementor, and WPForms so
 * vendor updates and regenerated builder CSS cannot overwrite the approved
 * site-specific design decisions.
 */

:root {
	--ab-color-burgundy: #7a1f2b;
	--ab-color-burgundy-dark: #720e0e;
	--ab-color-text: #1f2124;
	--ab-font-body: Calibri, "Segoe UI", Arial, sans-serif;
	--ab-content-max: 70rem;
	--ab-readable-max: 47.5rem;
	--ab-gutter: clamp(1.25rem, 3vw, 2.5rem);
	--ab-section-space: clamp(2.5rem, 4vw, 4.5rem);
	--ab-component-gap: clamp(1rem, 2vw, 1.5rem);
	--ab-header-logo-height: clamp(5rem, 4.35rem + 1.3vw, 5.5rem);
	--ab-header-row-height: clamp(6.25rem, 5.6rem + 1.3vw, 6.75rem);
	--ab-header-sticky-logo-height: 4rem;
	--ab-header-sticky-row-height: 5.25rem;

	/* Blocksy and its Elementor bridge consume these variables. */
	--theme-palette-color-1: var(--ab-color-burgundy);
	--theme-font-family: var(--ab-font-body);
	--theme-font-size: clamp(1rem, 0.93rem + 0.3vw, 1.125rem);
	--theme-line-height: 1.65;
	--theme-text-color: var(--ab-color-text);
	--theme-headings-color: var(--ab-color-burgundy);
	--theme-link-initial-color: var(--ab-color-burgundy);
	--theme-selection-background-color: var(--ab-color-burgundy);
	--theme-button-background-initial-color: var(--ab-color-burgundy);
	--theme-button-background-hover-color: var(--ab-color-burgundy-dark);
	--theme-normal-container-max-width: var(--ab-content-max);
	--theme-narrow-container-max-width: var(--ab-readable-max);
	--theme-container-edge-spacing: calc(100vw - var(--ab-gutter) - var(--ab-gutter));
	--theme-content-vertical-spacing: var(--ab-section-space);
	--e-global-color-blocksy_palette_1: var(--ab-color-burgundy);
}

body,
button,
input,
select,
textarea {
	font-family: var(--ab-font-body);
}

body {
	font-size: var(--theme-font-size);
	line-height: var(--theme-line-height);
}

/* Keep the existing heading family while replacing its fixed size ladder. */
h1,
h2,
h3,
h4,
h5,
h6 {
	--theme-font-family: var(--theme-font-stack-default);
	overflow-wrap: break-word;
}

h1 {
	--theme-font-size: clamp(2.25rem, 1.85rem + 1.8vw, 3.25rem);
	--theme-line-height: 1.15;
}

h2 {
	--theme-font-size: clamp(1.875rem, 1.55rem + 1.4vw, 2.625rem);
	--theme-line-height: 1.2;
}

h3 {
	--theme-font-size: clamp(1.5rem, 1.3rem + 0.9vw, 2rem);
	--theme-line-height: 1.25;
}

h4 {
	--theme-font-size: clamp(1.25rem, 1.15rem + 0.45vw, 1.5rem);
	--theme-line-height: 1.3;
}

h5 {
	--theme-font-size: clamp(1.125rem, 1.08rem + 0.2vw, 1.25rem);
	--theme-line-height: 1.35;
}

h6 {
	--theme-font-size: clamp(1rem, 0.95rem + 0.2vw, 1.125rem);
	--theme-line-height: 1.4;
}

.elementor-widget-heading h1.elementor-heading-title {
	font-size: clamp(2.25rem, 1.85rem + 1.8vw, 3.25rem);
	line-height: 1.15;
}

.elementor-widget-heading h2.elementor-heading-title {
	font-size: clamp(1.875rem, 1.55rem + 1.4vw, 2.625rem);
	line-height: 1.2;
}

.elementor-widget-heading h3.elementor-heading-title {
	font-size: clamp(1.5rem, 1.3rem + 0.9vw, 2rem);
	line-height: 1.25;
}

.elementor-widget-heading h4.elementor-heading-title {
	font-size: clamp(1.25rem, 1.15rem + 0.45vw, 1.5rem);
	line-height: 1.3;
}

.elementor-widget-heading h5.elementor-heading-title {
	font-size: clamp(1.125rem, 1.08rem + 0.2vw, 1.25rem);
	line-height: 1.35;
}

.elementor-widget-heading h6.elementor-heading-title {
	font-size: clamp(1rem, 0.95rem + 0.2vw, 1.125rem);
	line-height: 1.4;
}

/* Elementor global roles mirror the Blocksy design tokens. */
.elementor-kit-153 {
	--e-global-color-primary: var(--ab-color-burgundy);
	--e-global-color-secondary: var(--ab-color-burgundy-dark);
	--e-global-color-text: var(--ab-color-text);
	--e-global-color-accent: var(--ab-color-burgundy);
	--e-global-typography-text-font-family: var(--ab-font-body);
	--e-global-typography-accent-font-family: var(--ab-font-body);
	color: var(--ab-color-text);
}

.elementor-kit-153 .e-con {
	--container-max-width: var(--ab-content-max);
	--container-default-padding-top: var(--ab-section-space);
	--container-default-padding-right: var(--ab-gutter);
	--container-default-padding-bottom: var(--ab-section-space);
	--container-default-padding-left: var(--ab-gutter);
}

.elementor-kit-153 .elementor-widget:not(:last-child) {
	--kit-widget-spacing: var(--ab-component-gap);
}

.elementor-kit-153 .elementor-element {
	--widgets-spacing: var(--ab-component-gap) var(--ab-component-gap);
	--widgets-spacing-row: var(--ab-component-gap);
	--widgets-spacing-column: var(--ab-component-gap);
}

/* Top-level page sections share one predictable horizontal gutter. */
body.elementor-kit-153 .elementor > .e-con {
	--padding-left: var(--ab-gutter);
	--padding-right: var(--ab-gutter);
}

.elementor,
.e-con,
.e-con-inner,
.elementor-widget,
.elementor-widget-container,
.elementor-widget-wrap {
	min-width: 0;
	max-width: 100%;
}

.elementor-widget-text-editor,
.elementor-heading-title,
.elementor-button-text,
.wpforms-container label,
.wpforms-container input,
.wpforms-container select,
.wpforms-container textarea {
	overflow-wrap: break-word;
}

img,
video,
iframe,
embed,
object {
	max-width: 100%;
}

/* Replace the remaining header dropdown orange without editing Blocksy. */
[data-header*="type-1"] .ct-header [data-id="menu"] > ul > li > a {
	--theme-link-initial-color: var(--ab-color-burgundy);
}

[data-header*="type-1"] .ct-header [data-id="menu"] .sub-menu {
	--dropdown-background-color: var(--ab-color-burgundy);
}

/* English | Français language switcher link states. */
.abconsult-language-selector a:link    { color: #ffffff; }
.abconsult-language-selector a:visited { color: #ffff00; }
.abconsult-language-selector a:hover   { color: #ffa500; }
.abconsult-language-selector a:active  { color: #ffff00; }

/*
 * Enlarge the existing full-resolution logo proportionally. Blocksy's saved
 * 140px maximum was constrained by a 70px row; coordinating both dimensions
 * makes the visual change effective without stretching or replacing the PNG.
 */
[data-header*="type-1"] [data-row*="middle"] {
	--height: var(--ab-header-row-height);
}

[data-header*="type-1"] [data-id="logo"] .site-logo-container {
	--logo-max-height: var(--ab-header-logo-height);
}

[data-header*="type-1"] [data-id="logo"] .site-logo-container img {
	width: auto;
	height: 100%;
	max-width: 100%;
	object-fit: contain;
}

[data-header*="type-1"] [data-sticky*="yes"] [data-row*="middle"] > div {
	--shrink-height: var(--ab-header-sticky-row-height);
}

[data-header*="type-1"] [data-sticky*="yes"] [data-id="logo"] .site-logo-container {
	--logo-max-height: var(--ab-header-sticky-logo-height);
}

/*
 * Header controls are native buttons, not placeholder links. Share is placed
 * beside the desktop logo and exposes only the approved WhatsApp and Facebook
 * destinations. Exit opens a truthful browser-limitation dialog.
 */
.abconsult-share-control,
.abconsult-exit-control {
	position: relative;
	display: flex;
	align-items: center;
}

.abconsult-share-trigger,
.abconsult-exit-trigger {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.75rem;
	min-height: 2.75rem;
	padding: 0.625rem;
	border: 0;
	border-radius: 0.25rem;
	background: transparent;
	color: var(--ab-color-burgundy);
	font: inherit;
	font-weight: 600;
	line-height: 1;
	cursor: pointer;
}

.abconsult-share-trigger:hover,
.abconsult-share-trigger:focus-visible,
.abconsult-exit-trigger:hover,
.abconsult-exit-trigger:focus-visible {
	background: rgb(122 31 43 / 9%);
	color: var(--ab-color-burgundy-dark);
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

.abconsult-share-icon {
	width: 1.35rem;
	height: 1.35rem;
}

.abconsult-share-options {
	position: absolute;
	top: calc(100% + 0.35rem);
	left: 0;
	z-index: 10000;
	min-width: 10rem;
	margin: 0;
	padding: 0.4rem;
	list-style: none;
	border-radius: 0.35rem;
	background: var(--ab-color-burgundy);
	box-shadow: 0 0.6rem 1.4rem rgb(31 33 36 / 22%);
}

.abconsult-share-options[hidden],
.abconsult-exit-dialog[hidden] {
	display: none !important;
}

.abconsult-share-options li {
	margin: 0;
	padding: 0;
}

.abconsult-share-options a {
	display: block;
	padding: 0.65rem 0.8rem;
	border-radius: 0.2rem;
	color: #fff;
	font-size: 0.95rem;
	line-height: 1.25;
	text-decoration: none;
}

.abconsult-share-options a:hover,
.abconsult-share-options a:focus-visible {
	background: rgb(255 255 255 / 14%);
	color: #fff;
	outline: 2px solid #fff;
	outline-offset: -2px;
}

.abconsult-dialog-open {
	overflow: hidden;
}

.abconsult-exit-dialog {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: grid;
	place-items: center;
	padding: 1.25rem;
	background: rgb(31 33 36 / 62%);
}

.abconsult-exit-dialog__panel {
	width: min(100%, 31rem);
	padding: clamp(1.5rem, 4vw, 2.25rem);
	border-radius: 0.45rem;
	background: #fff;
	box-shadow: 0 1rem 3rem rgb(0 0 0 / 30%);
}

.abconsult-exit-dialog__panel h2 {
	margin: 0 0 0.75rem;
	font-size: clamp(1.5rem, 1.25rem + 1vw, 2rem);
	line-height: 1.2;
}

.abconsult-exit-dialog__panel p {
	margin: 0 0 1.25rem;
}

.abconsult-exit-dialog__close {
	min-height: 2.75rem;
	padding: 0.7rem 1rem;
	border: 2px solid var(--ab-color-burgundy);
	border-radius: 0.25rem;
	background: var(--ab-color-burgundy);
	color: #fff;
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}

.abconsult-exit-dialog__close:hover,
.abconsult-exit-dialog__close:focus-visible {
	background: var(--ab-color-burgundy-dark);
	outline: 3px solid rgb(122 31 43 / 30%);
	outline-offset: 2px;
}

[data-id="mobile-menu"] .abconsult-share-control,
[data-id="mobile-menu"] .abconsult-exit-control {
	display: block;
}

[data-id="mobile-menu"] .abconsult-share-trigger,
[data-id="mobile-menu"] .abconsult-exit-trigger {
	width: 100%;
	justify-content: flex-start;
	padding-inline: var(--menu-items-spacing, 1rem);
}

[data-id="mobile-menu"] .abconsult-share-options {
	position: static;
	width: 100%;
	box-shadow: none;
}

/* TASK-12: identify Audit as an external service without replacing its approved label. */
.abconsult-external-service-indicator {
	display: inline-flex;
	align-items: center;
	gap: 0.25em;
	margin-inline-start: 0.5em;
	padding: 0.12em 0.38em;
	border: 1px solid currentColor;
	border-radius: 0.25rem;
	font-size: 0.625em;
	font-weight: 700;
	letter-spacing: 0.04em;
	line-height: 1.2;
	text-transform: uppercase;
	vertical-align: middle;
	white-space: nowrap;
}

.abconsult-external-service-indicator__arrow {
	font-size: 1.2em;
	line-height: 1;
}

/*
 * TASK-04: keep the Home hero image intact while giving both text widgets a
 * dependable high-contrast surface. The generated Elementor overlay remains
 * responsible for presentation; this custom layer only strengthens its token.
 */
.elementor-134 .elementor-element.elementor-element-58a22fc6 {
	--overlay-opacity: 0.6;
}

.elementor-134 .elementor-element.elementor-element-55e74ffd .elementor-heading-title {
	color: #fff;
}

/* Home metrics contain hard-coded historical burgundy values. */
.elementor-134 .elementor-element:is(
	.elementor-element-247fb1d,
	.elementor-element-6ae57db,
	.elementor-element-da65f74
) .elementor-counter-number-wrapper,
.elementor-134 .elementor-element:is(
	.elementor-element-11542c97,
	.elementor-element-104bbccc,
	.elementor-element-69605f1b
) .elementor-heading-title {
	color: var(--ab-color-burgundy);
}

/* TASK-05: reduce all three figures once, without duplicating widget settings. */
.elementor-134 .elementor-element:is(
	.elementor-element-247fb1d,
	.elementor-element-6ae57db,
	.elementor-element-da65f74
) {
	margin-block-start: 0;
}

/* Keep the three figures on one baseline even when their label copy wraps differently. */
.elementor-134 .elementor-element:is(
	.elementor-element-3bae5ff9,
	.elementor-element-30f74cb2,
	.elementor-element-60fcf521
) {
	justify-content: flex-start;
}

.elementor-134 .elementor-element:is(
	.elementor-element-247fb1d,
	.elementor-element-6ae57db,
	.elementor-element-da65f74
) .elementor-counter-number-wrapper {
	font-size: clamp(3.5rem, 5vw, 4rem);
	line-height: 1;
}

/*
 * TASK-06 follow-up: pair About Us with the retained money image and Why Us
 * with its own business-meeting image. The content remains in one managed
 * Elementor text widget so both rows stay synchronized and responsive.
 */
.elementor-134 .elementor-element.elementor-element-86182ac {
	--padding-top: 0;
	--width: 100%;
	width: 100%;
}

.elementor-134 .elementor-element.elementor-element-ac5515b {
	margin-top: 0;
}

.elementor-134 .abconsult-about-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: center;
	gap: clamp(2rem, 4vw, 3.5rem);
	min-width: 0;
}

.elementor-134 .abconsult-about-grid__copy,
.elementor-134 .abconsult-about-grid__media {
	min-width: 0;
}

.elementor-134 .abconsult-about-grid__copy > :first-child {
	margin-top: 0;
}

.elementor-134 .abconsult-about-grid__copy > :last-child,
.elementor-134 .abconsult-about-grid__media {
	margin-bottom: 0;
}

.elementor-134 .abconsult-about-grid__media img {
	display: block;
	width: 100%;
	height: clamp(21rem, 30vw, 25.625rem);
	object-fit: cover;
	object-position: center;
	border-radius: 0.5rem;
}

.elementor-134 .abconsult-about-grid__media--why {
	grid-column: 1;
	grid-row: 2;
}

.elementor-134 .abconsult-about-grid__copy--why {
	grid-column: 2;
	grid-row: 2;
}

@media (max-width: 1024px) {
	.elementor-134 .elementor-element.elementor-element-95bf866 {
		--display: block;
	}

	.elementor-134 .abconsult-about-grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 1.5rem;
	}

	.elementor-134 .abconsult-about-grid__media--why,
	.elementor-134 .abconsult-about-grid__copy--why {
		grid-column: auto;
		grid-row: auto;
	}

	.elementor-134 .abconsult-about-grid__copy--why {
		order: 3;
	}

	.elementor-134 .abconsult-about-grid__media--why {
		order: 4;
	}

	.elementor-134 .abconsult-about-grid__media img {
		height: clamp(17rem, 48vw, 25rem);
	}
}

@media (max-width: 689.98px) {
	.elementor-134 .abconsult-about-grid__media img {
		height: 15.625rem;
	}
}

/*
 * TASK-07: provide one reusable Clients-page pattern. Elementor owns the page
 * and translated content; these stable classes keep the category navigation
 * usable and confine the seven-column SME table's overflow to its component.
 */
.abconsult-clients {
	min-width: 0;
}

.abconsult-clients__intro,
.abconsult-clients__section > :not(.abconsult-table-scroll) {
	width: min(100%, 72ch);
	margin-inline: auto;
}

.abconsult-clients__nav-list {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.75rem;
	margin: clamp(1.5rem, 3vw, 2.5rem) 0;
	padding: 0;
	list-style: none;
}

.abconsult-clients__nav-list a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.75rem;
	padding: 0.65rem 1rem;
	border: 1px solid var(--ab-color-burgundy);
	border-radius: 0.25rem;
	color: var(--ab-color-burgundy);
	font-weight: 600;
	line-height: 1.25;
	text-align: center;
	text-decoration: none;
}

.abconsult-clients__nav-list a:hover,
.abconsult-clients__nav-list a:focus-visible {
	background: var(--ab-color-burgundy);
	color: #fff;
	outline: 3px solid rgb(122 31 43 / 25%);
	outline-offset: 2px;
}

.abconsult-clients__section {
	scroll-margin-top: calc(var(--ab-header-row-height, 6rem) + 2rem);
	padding-block: clamp(1.75rem, 4vw, 3rem);
}

.abconsult-clients__section + .abconsult-clients__section {
	border-top: 1px solid rgb(122 31 43 / 20%);
}

.abconsult-table-instructions {
	font-size: 0.9375rem;
}

.abconsult-table-scroll {
	max-width: 100%;
	margin-block: 1rem;
	overflow-x: auto;
	overscroll-behavior-inline: contain;
	-webkit-overflow-scrolling: touch;
	font-size: 0.875rem;
}

.abconsult-table-scroll:focus-visible {
	outline: 3px solid var(--ab-color-burgundy);
	outline-offset: 3px;
}

.abconsult-table-scroll table {
	min-width: 38rem;
	margin-bottom: 0;
}

.abconsult-table-scroll caption {
	padding-bottom: 0.75rem;
	color: var(--ab-color-text);
	font-weight: 700;
	text-align: left;
}

.abconsult-table-scroll :is(th, td) {
	padding: 0.5rem 0.65rem;
	vertical-align: middle;
}

.abconsult-table-scroll thead th {
	background: var(--ab-color-burgundy);
	color: #fff;
	text-align: center;
}

.abconsult-table-scroll tbody th {
	background: rgb(122 31 43 / 8%);
	color: var(--ab-color-text);
	text-align: left;
}

.abconsult-table-scroll tbody td {
	text-align: center;
}

@media (max-width: 689.98px) {
	.abconsult-clients__nav-list {
		align-items: stretch;
		flex-direction: column;
	}

	.abconsult-clients__nav-list a {
		width: 100%;
	}
}

/* Preserve the original full-bleed Home video while keeping focus visible. */
.elementor-134 .elementor-element-276284e .cta-overlay:focus-visible {
	outline: 3px solid #fff;
	outline-offset: 3px;
	box-shadow: 0 0 0 6px var(--ab-color-burgundy);
}

/* Replace page-level orange service icons; semantic green icons are retained. */
.elementor-172 .elementor-element:is(
	.elementor-element-cd57a35,
	.elementor-element-3e973aa7,
	.elementor-element-5d719bd4,
	.elementor-element-531532e1,
	.elementor-element-b97f68e,
	.elementor-element-342e7679
).elementor-view-stacked .elementor-icon {
	background-color: var(--ab-color-burgundy);
}

.elementor-172 .elementor-element:is(
	.elementor-element-cd57a35,
	.elementor-element-3e973aa7,
	.elementor-element-5d719bd4,
	.elementor-element-531532e1,
	.elementor-element-b97f68e,
	.elementor-element-342e7679
):is(.elementor-view-framed, .elementor-view-default) .elementor-icon {
	color: var(--ab-color-burgundy);
	border-color: var(--ab-color-burgundy);
}

.elementor-172 .elementor-element:is(
	.elementor-element-cd57a35,
	.elementor-element-3e973aa7,
	.elementor-element-5d719bd4,
	.elementor-element-531532e1,
	.elementor-element-b97f68e,
	.elementor-element-342e7679
) .elementor-icon svg {
	fill: var(--ab-color-burgundy);
}

/* Remove fragile Contact-page negative offsets. */
.elementor-148 .elementor-element:is(
	.elementor-element-3f210a97,
	.elementor-element-570a17d4,
	.elementor-element-ec5bd74,
	.elementor-element-5a52f5ea
) {
	margin-top: 0;
}

.elementor-148 .elementor-element.elementor-element-3ab67a0d > .elementor-widget-container {
	margin-top: 0;
}


/* ── TASK-18 — Contact page layout and readability ────────────────────────── */

/* The contact-details column has an Elementor-managed min-height that
   inflates it to 4 700+ px. Reset to content height. */
.elementor-148 .elementor-element-238549c2 {
	--min-height: 0;
	min-height: 0;
}

/* A 53 px top gap from Elementor settings sits on the column's inner wrapper.
   Zero it so the first contact-detail widget sits flush at the column top. */
.elementor-148 .elementor-element-238549c2 > .e-con-inner {
	--padding-top: 0;
	padding-top: 0;
}

/* Icon-list widgets (phone / email / address) stretch via flex-grow to fill
   the full column height. Prevent stretching so each renders at content size. */
.elementor-148 .elementor-element-238549c2 > .e-con-inner > .elementor-widget {
	flex: 0 0 auto;
	height: auto;
	min-height: 0;
}

/* ── TASK-20 — Location/map page responsive embed ─────────────────────────── */

/* Wrapper div used in the Elementor HTML widget on the location page.
   Place the iframe inside a <div class="abconsult-map-embed">...</div>. */
.abconsult-map-embed {
	position: relative;
	width: 100%;
	overflow: hidden;
}

.abconsult-map-embed iframe {
	display: block;
	width: 100%;
	height: 450px;
	border: 0;
	max-width: 100%;
}

@media (max-width: 480px) {
	.abconsult-map-embed iframe {
		height: 300px;
	}
}

/* Avoid an 88vh portrait-tablet hero while keeping mobile content-driven. */
@media (min-width: 768px) and (max-width: 999.98px) {
	.elementor-134 .elementor-element.elementor-element-58a22fc6 {
		--min-height: min(42rem, 75vh);
	}
}

@media (max-width: 999.98px) {
	:root {
		--ab-header-logo-height: 4.5rem;
		--ab-header-row-height: 5.75rem;
		--ab-header-sticky-logo-height: 3.75rem;
		--ab-header-sticky-row-height: 5rem;
	}

	/* Stack text/image rows at Blocksy's existing tablet breakpoint. */
	.elementor-134 .elementor-element.elementor-element-95bf866,
	.elementor-142 .elementor-element.elementor-element-6438e096,
	.elementor-148 .elementor-element.elementor-element-29cf025c,
	.elementor-172 .elementor-element:is(
		.elementor-element-19ec293,
		.elementor-element-b07cc21,
		.elementor-element-4a288570,
		.elementor-element-5ebf82a6,
		.elementor-element-4eb392ed,
		.elementor-element-293c5b92,
		.elementor-element-a4a2587,
		.elementor-element-2fd2f2ec,
		.elementor-element-d4e2bc2,
		.elementor-element-6fd391e7
	) {
		--flex-direction: column;
	}

	.elementor-134 .elementor-element.elementor-element-95bf866 > .e-con,
	.elementor-142 .elementor-element.elementor-element-6438e096 > .e-con,
	.elementor-148 .elementor-element.elementor-element-29cf025c > .e-con,
	.elementor-172 .elementor-element:is(
		.elementor-element-19ec293,
		.elementor-element-b07cc21,
		.elementor-element-4a288570,
		.elementor-element-5ebf82a6,
		.elementor-element-4eb392ed,
		.elementor-element-293c5b92,
		.elementor-element-a4a2587,
		.elementor-element-2fd2f2ec,
		.elementor-element-d4e2bc2,
		.elementor-element-6fd391e7
	) > .e-con {
		--width: 100%;
		width: 100%;
		max-width: 100%;
	}

	/* Service-card offsets overlap content when the rows stack. */
	.elementor-172 .elementor-element:is(
		.elementor-element-1ce90385,
		.elementor-element-2e7ff832,
		.elementor-element-3b832d2b,
		.elementor-element-3cf22225,
		.elementor-element-4a65102f,
		.elementor-element-61c9c8dc,
		.elementor-element-62eeeb6,
		.elementor-element-6bc555fa,
		.elementor-element-7eed5962,
		.elementor-element-91b4a89,
		.elementor-element-fb7e497
	) {
		--margin-top: 0;
	}
}

@media (max-width: 767px) {
	/* The paired phone fields are too narrow at the Elementor mobile width. */
	#wpforms-124-field_15-container,
	#wpforms-124-field_16-container {
		display: block !important;
		width: 100% !important;
		margin-right: 0 !important;
	}
}

@media (max-width: 689.98px) {
	:root {
		--ab-header-logo-height: 3.625rem;
		--ab-header-row-height: 4.875rem;
		--ab-header-sticky-logo-height: 3.25rem;
		--ab-header-sticky-row-height: 4.5rem;
	}

	[data-header*="type-1"] [data-id="mobile-menu"] {
		--theme-font-size: 16px;
	}
}

/*
 * Reusable service-page pattern (TASK-09).
 *
 * Elementor owns the page content and image selection; these stable classes
 * keep the presentation consistent across every English and French service
 * page without duplicating page-level CSS or editing generated assets.
 */
.abconsult-service-page {
	box-sizing: border-box;
	width: min(100%, var(--ab-content-max));
	margin-inline: auto;
	padding: var(--ab-section-space) var(--ab-gutter);
	overflow-wrap: anywhere;
}

.abconsult-service-page *,
.abconsult-service-page *::before,
.abconsult-service-page *::after {
	box-sizing: border-box;
}

.abconsult-service-page__hero {
	display: grid;
	grid-template-columns: minmax(0, 0.92fr) minmax(20rem, 1.08fr);
	align-items: center;
	gap: clamp(1.5rem, 4vw, 4rem);
	margin-bottom: clamp(2.5rem, 5vw, 4.5rem);
}

.abconsult-service-page__hero-copy {
	max-width: 39rem;
}

.abconsult-service-page__eyebrow {
	margin: 0 0 0.75rem;
	color: var(--ab-color-burgundy);
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1.4;
	text-transform: uppercase;
}

.abconsult-service-page__title {
	margin: 0;
	color: var(--ab-color-burgundy);
	font-size: clamp(2.25rem, 1.75rem + 2.2vw, 3.75rem);
	line-height: 1.08;
}

.abconsult-service-page__lede {
	max-width: 42rem;
	margin: 1.25rem 0 0;
	font-size: clamp(1.0625rem, 1rem + 0.25vw, 1.25rem);
	line-height: 1.65;
}

.abconsult-service-page__media {
	min-width: 0;
	margin: 0;
	overflow: hidden;
	border-radius: 0.75rem;
	background: rgb(122 31 43 / 8%);
	box-shadow: 0 1rem 2.5rem rgb(31 33 36 / 14%);
}

.abconsult-service-page__media :is(img, .elementor-widget-image img) {
	display: block;
	width: 100%;
	height: clamp(20rem, 34vw, 31rem);
	object-fit: cover;
}

.abconsult-service-page__body {
	max-width: 66rem;
	margin-inline: auto;
}

.abconsult-service-page__intro {
	max-width: var(--ab-readable-max);
	margin: 0 auto clamp(2rem, 4vw, 3.25rem);
	font-size: clamp(1.0625rem, 1rem + 0.2vw, 1.1875rem);
}

.abconsult-service-page__sections {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(1.5rem, 3vw, 2.75rem);
}

.abconsult-service-page__section {
	min-width: 0;
	padding: clamp(1.25rem, 2.5vw, 2rem);
	border: 1px solid rgb(122 31 43 / 18%);
	border-radius: 0.5rem;
	background: #fff;
	box-shadow: 0 0.5rem 1.5rem rgb(31 33 36 / 7%);
}

.abconsult-service-page__section--wide {
	grid-column: 1 / -1;
}

.abconsult-service-page__section > :first-child {
	margin-top: 0;
}

.abconsult-service-page__section > :last-child {
	margin-bottom: 0;
}

.abconsult-service-page__section h2 {
	color: var(--ab-color-burgundy);
	font-size: clamp(1.375rem, 1.2rem + 0.6vw, 1.75rem);
	line-height: 1.25;
}

.abconsult-service-page__section h3 {
	font-size: clamp(1.125rem, 1.05rem + 0.3vw, 1.3125rem);
	line-height: 1.35;
}

.abconsult-service-page__section :is(ul, ol) {
	padding-inline-start: 1.25rem;
}

.abconsult-service-page__section li + li {
	margin-top: 0.5rem;
}

.abconsult-service-page__formula {
	max-width: 100%;
	padding: 0.875rem 1rem;
	overflow-x: auto;
	border-inline-start: 0.25rem solid var(--ab-color-burgundy);
	background: rgb(122 31 43 / 7%);
	font-weight: 700;
	white-space: nowrap;
}

.abconsult-service-page__next-step {
	max-width: var(--ab-readable-max);
	margin: clamp(2.5rem, 5vw, 4rem) auto 0;
	padding-top: 1.5rem;
	border-top: 1px solid rgb(122 31 43 / 25%);
	text-align: center;
}

.abconsult-service-page__next-step a {
	font-weight: 700;
}

@media (max-width: 999.98px) {
	.abconsult-service-page__hero {
		grid-template-columns: minmax(0, 1fr);
	}

	.abconsult-service-page__hero-copy {
		max-width: var(--ab-readable-max);
	}

	.abconsult-service-page__media :is(img, .elementor-widget-image img) {
		height: clamp(18rem, 58vw, 30rem);
	}
}

@media (max-width: 767.98px) {
	.abconsult-service-page {
		padding-inline: var(--ab-gutter);
	}

	.abconsult-service-page__sections {
		grid-template-columns: minmax(0, 1fr);
	}

	.abconsult-service-page__section--wide {
		grid-column: auto;
	}

	.abconsult-service-page__media :is(img, .elementor-widget-image img) {
		height: clamp(16rem, 70vw, 24rem);
	}
}

@media (max-width: 389.98px) {
	.abconsult-service-page__title {
		font-size: clamp(2rem, 10vw, 2.5rem);
	}

	.abconsult-service-page__section {
		padding: 1.125rem;
	}
}

/*
 * TASK-17: partner/founder profile page component.
 *
 * Renders the Senior Partner bio with a photo-hero, career timeline, education,
 * and credentials. Responsive at all six validation viewports.
 */
.abconsult-partner-page {
	box-sizing: border-box;
	width: min(100%, var(--ab-content-max));
	margin-inline: auto;
	padding: var(--ab-section-space) var(--ab-gutter);
	overflow-wrap: anywhere;
}

.abconsult-partner-page *,
.abconsult-partner-page *::before,
.abconsult-partner-page *::after {
	box-sizing: border-box;
}

.abconsult-partner-page__hero {
	display: grid;
	grid-template-columns: 1fr min(17rem, 34%);
	align-items: start;
	gap: clamp(1.5rem, 4vw, 3.5rem);
	margin-bottom: clamp(2.5rem, 5vw, 4.5rem);
}

.abconsult-partner-page__hero-copy {
	min-width: 0;
}

.abconsult-partner-page__eyebrow {
	margin: 0 0 0.625rem;
	color: var(--ab-color-burgundy);
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1.4;
	text-transform: uppercase;
}

.abconsult-partner-page__title {
	margin: 0 0 0.5rem;
	color: var(--ab-color-burgundy);
	font-size: clamp(1.875rem, 1.5rem + 1.6vw, 3rem);
	line-height: 1.1;
}

.abconsult-partner-page__role {
	margin: 0 0 1.25rem;
	font-size: clamp(1rem, 0.95rem + 0.2vw, 1.125rem);
	font-weight: 600;
}

.abconsult-partner-page__contact {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	font-style: normal;
	font-size: 0.9375rem;
	line-height: 1.55;
}

.abconsult-partner-page__contact a {
	color: var(--ab-color-burgundy);
	font-weight: 600;
}

.abconsult-partner-page__contact a:hover,
.abconsult-partner-page__contact a:focus-visible {
	color: var(--ab-color-burgundy-dark);
}

.abconsult-partner-page__photo-wrap {
	min-width: 0;
	overflow: hidden;
	border-radius: 0.75rem;
	background: rgb(122 31 43 / 8%);
	box-shadow: 0 1rem 2.5rem rgb(31 33 36 / 14%);
}

.abconsult-partner-page__photo {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
	object-position: top center;
}

.abconsult-partner-page__sections {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(1.5rem, 3vw, 2.75rem);
}

.abconsult-partner-page__section {
	min-width: 0;
	padding: clamp(1.25rem, 2.5vw, 2rem);
	border: 1px solid rgb(122 31 43 / 18%);
	border-radius: 0.5rem;
	background: #fff;
	box-shadow: 0 0.5rem 1.5rem rgb(31 33 36 / 7%);
}

.abconsult-partner-page__section--wide {
	grid-column: 1 / -1;
}

.abconsult-partner-page__section > :first-child {
	margin-top: 0;
}

.abconsult-partner-page__section > :last-child {
	margin-bottom: 0;
}

.abconsult-partner-page__section h2 {
	color: var(--ab-color-burgundy);
	font-size: clamp(1.375rem, 1.2rem + 0.6vw, 1.75rem);
	line-height: 1.25;
}

.abconsult-partner-page__section :is(ul, ol) {
	padding-inline-start: 1.25rem;
}

.abconsult-partner-page__section li + li {
	margin-top: 0.5rem;
}

.abconsult-partner-page__section a {
	color: var(--ab-color-burgundy);
	font-weight: 600;
}

.abconsult-partner-page__section a:hover,
.abconsult-partner-page__section a:focus-visible {
	color: var(--ab-color-burgundy-dark);
}

@media (max-width: 767.98px) {
	.abconsult-partner-page__hero {
		grid-template-columns: 1fr;
	}

	.abconsult-partner-page__photo-wrap {
		max-width: 14rem;
		margin-inline: auto;
	}

	.abconsult-partner-page__sections {
		grid-template-columns: minmax(0, 1fr);
	}

	.abconsult-partner-page__section--wide {
		grid-column: auto;
	}
}

@media (max-width: 389.98px) {
	.abconsult-partner-page__title {
		font-size: clamp(1.625rem, 8vw, 1.875rem);
	}

	.abconsult-partner-page__section {
		padding: 1.125rem;
	}
}


/* -- FR Homepage (ID 822) - mirror EN homepage (ID 134) layout rules ------- */

.elementor-822 .elementor-element.elementor-element-58a22fc6 {
      --overlay-opacity: 0.6;
}

.elementor-822 .elementor-element.elementor-element-55e74ffd .elementor-heading-title {
      color: #fff;
}

.elementor-822 .elementor-element:is(
      .elementor-element-247fb1d,
      .elementor-element-6ae57db,
      .elementor-element-da65f74
) .elementor-counter-number-wrapper,
.elementor-822 .elementor-element:is(
      .elementor-element-11542c97,
      .elementor-element-104bbccc,
      .elementor-element-69605f1b
) .elementor-heading-title {
      color: var(--ab-color-burgundy);
}

.elementor-822 .elementor-element:is(
      .elementor-element-247fb1d,
      .elementor-element-6ae57db,
      .elementor-element-da65f74
) {
      margin-block-start: 0;
}

.elementor-822 .elementor-element:is(
      .elementor-element-3bae5ff9,
      .elementor-element-30f74cb2,
      .elementor-element-60fcf521
) {
      justify-content: flex-start;
}

.elementor-822 .elementor-element:is(
      .elementor-element-247fb1d,
      .elementor-element-6ae57db,
      .elementor-element-da65f74
) .elementor-counter-number-wrapper {
      font-size: clamp(3.5rem, 5vw, 4rem);
      line-height: 1;
}

.elementor-822 .elementor-element.elementor-element-86182ac {
      --padding-top: 0;
      --width: 100%;
      width: 100%;
}

.elementor-822 .elementor-element.elementor-element-ac5515b {
      margin-top: 0;
}

.elementor-822 .abconsult-about-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      align-items: center;
      gap: clamp(2rem, 4vw, 3.5rem);
      min-width: 0;
}

.elementor-822 .abconsult-about-grid__copy,
.elementor-822 .abconsult-about-grid__media {
      min-width: 0;
}

.elementor-822 .abconsult-about-grid__copy > :first-child {
      margin-top: 0;
}

.elementor-822 .abconsult-about-grid__copy > :last-child,
.elementor-822 .abconsult-about-grid__media {
      margin-bottom: 0;
}

.elementor-822 .abconsult-about-grid__media img {
      display: block;
      width: 100%;
      height: clamp(21rem, 30vw, 25.625rem);
      object-fit: cover;
      object-position: center;
      border-radius: 0.5rem;
}

.elementor-822 .abconsult-about-grid__media--why {
      grid-column: 1;
      grid-row: 2;
}

.elementor-822 .abconsult-about-grid__copy--why {
      grid-column: 2;
      grid-row: 2;
}

.elementor-822 .elementor-element-276284e .cta-overlay:focus-visible {
      outline: 3px solid #fff;
      outline-offset: 3px;
      box-shadow: 0 0 0 6px var(--ab-color-burgundy);
}

@media (max-width: 1024px) {
      .elementor-822 .elementor-element.elementor-element-95bf866 {
              --display: block;
      }
      .elementor-822 .abconsult-about-grid {
              grid-template-columns: minmax(0, 1fr);
              gap: 1.5rem;
      }
      .elementor-822 .abconsult-about-grid__media--why,
      .elementor-822 .abconsult-about-grid__copy--why {
              grid-column: auto;
              grid-row: auto;
      }
      .elementor-822 .abconsult-about-grid__copy--why { order: 3; }
      .elementor-822 .abconsult-about-grid__media--why { order: 4; }
      .elementor-822 .abconsult-about-grid__media img { height: clamp(17rem, 48vw, 25rem); }
}

@media (max-width: 689.98px) {
      .elementor-822 .abconsult-about-grid__media img { height: 15.625rem; }
}

@media (min-width: 768px) and (max-width: 999.98px) {
      .elementor-822 .elementor-element.elementor-element-58a22fc6 {
              --min-height: min(42rem, 75vh);
      }
}

@media (max-width: 999.98px) {
      .elementor-822 .elementor-element.elementor-element-95bf866 { --flex-direction: column; }
      .elementor-822 .elementor-element.elementor-element-95bf866 > .e-con {
              --width: 100%;
              width: 100%;
              max-width: 100%;
      }
}

/* CONTACT-GAP: reduce label-to-value spacing in contact details */
.elementor-148 .elementor-element.elementor-element-2d366bf9,
.elementor-148 .elementor-element.elementor-element-2568ef52 {
  margin-bottom: 0;
}

/* CONTACT-LOC-BTN: Location button color matches Contact CTA burgundy */
.elementor-148 .elementor-element-w20loc01 .elementor-button {
  background-color: #7a1f2b;
}

/* LOCATION-CONTACT-BTN: Contact Us button color on Location page */
.elementor-907 .elementor-element-w001a2b4 .elementor-button {
  background-color: #7a1f2b;
}
