/* Bridge between Elementor's markup and the original design (loads before site.css). */

/* Widget wrappers are transparent: the original element inside is laid out directly. */
.elementor-element.gx-w { display: contents; }

/* Containers keep the original element's default behaviour; the original classes do the rest.
   Values are set through Elementor's own variables, so edits made in Elementor still apply. */
.e-con.gx-c {
	--display: block;
	--flex-direction: row;
	--flex-wrap: nowrap;
	--justify-content: normal;
	--align-items: normal;
	--align-content: normal;
	--gap: 0px; --row-gap: 0px; --column-gap: 0px;
	--widgets-spacing: 0px; --widgets-spacing-row: 0px; --widgets-spacing-column: 0px;
	--padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px;
	--padding-block-start: 0px; --padding-block-end: 0px; --padding-inline-start: 0px; --padding-inline-end: 0px;
	--margin-top: 0px; --margin-right: 0px; --margin-bottom: 0px; --margin-left: 0px;
	--margin-block-start: 0px; --margin-block-end: 0px; --margin-inline-start: 0px; --margin-inline-end: 0px;
	--width: auto; --min-height: 0; --height: auto;
	--position: static; --z-index: auto; --overflow: visible; --border-radius: 0;
	--flex-basis: auto; --flex-grow: 0; --flex-shrink: 1;
	--container-widget-width: auto; --container-widget-height: auto;
	--container-widget-flex-grow: 0; --container-widget-align-self: auto;
	--content-width: 100%; --container-max-width: none; --text-align: inherit;
	min-width: auto;
	transition: none;
}
/* Elementor writes a per-element --display:flex default into each page's CSS; restore the
   original element's default display (the design's own classes set flex/grid where needed). */
body .elementor .e-con.gx-c { --display: block; }
body .elementor .e-con.gx-tag-span, body .elementor .e-con.gx-tag-b, body .elementor a.e-con.gx-c { --display: inline; }
body .elementor .e-con.gx-tag-li { --display: list-item; }

/* FAQ accordions (originally <details>). */
.gx-tag-details > .gx-w > summary { list-style: none; }
body:not(.elementor-editor-active) .gx-tag-details:not(.is-open) > :not(.gx-w:has(> summary)) { display: none !important; }

/* The design's "* { margin:0; padding:0 }" reset also covered <body>. */
body.geist { margin: 0; padding: 0; }

/* Plain WordPress content (non-Elementor pages / posts). */
.geist-entry > * + * { margin-top: 1rem; }

/* In the Elementor editor everything is shown immediately (no scroll-reveal). */
body.elementor-editor-active .reveal { opacity: 1 !important; transform: none !important; }

/* Uploaded logo (Appearance → Customize → Site Identity). */
body.geist .brand-logo-img { display: block; width: auto; max-width: 240px; object-fit: contain; }
@media (max-width: 767px) { body.geist header .brand-logo-img { max-width: 170px; max-height: 44px; } }

/* Client Experiences slider (cards keep their original design). */
body.geist .gx-slider {
	--gx-gap: 1.5rem;
	display: flex !important;
	gap: var(--gx-gap);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior-x: contain;
	outline: none;
}
body.geist .gx-slider::-webkit-scrollbar { display: none; }
body.geist .gx-slider > .gx-slide {
	flex: 0 0 calc((100% - (var(--gx-per-view, 2) - 1) * var(--gx-gap)) / var(--gx-per-view, 2));
	min-width: 0;
	height: auto;
	scroll-snap-align: start;
}
body.geist .gx-slider-nav { display: flex; align-items: center; justify-content: center; gap: 1rem; margin-top: 1.75rem; }
body.geist .gx-slider-nav[hidden] { display: none; }
body.geist .gx-slider-btn {
	display: inline-flex; align-items: center; justify-content: center;
	width: 2.5rem; height: 2.5rem; border-radius: 9999px;
	border: 1px solid #cbd5e1; background: #fff; color: var(--navy); cursor: pointer;
	transition: border-color .2s, background .2s, color .2s;
}
body.geist .gx-slider-btn:hover { border-color: var(--cta); color: var(--cta); }
body.geist .gx-slider-btn:focus-visible, body.geist .gx-slider-dot:focus-visible { outline: 2px solid var(--cta); outline-offset: 2px; }
body.geist .gx-slider-btn svg { width: 1.125rem; height: 1.125rem; stroke: currentColor; }
body.geist .gx-slider-dots { display: flex; gap: .5rem; }
body.geist .gx-slider-dot { width: .5rem; height: .5rem; padding: 0; border: 0; border-radius: 9999px; background: #cbd5e1; cursor: pointer; transition: width .25s, background .25s; }
body.geist .gx-slider-dot.is-active { width: 1.5rem; background: var(--cta); }
