/*
Theme Name: Impreza Child
Template: Impreza
Version: 1.0
Author:	UpSolution
Theme URI: http://impreza.us-themes.com/
Author URI: http://us-themes.com/
*/

/* Add your own styles here. */

/*
 * Reusable Solutions circle carousel.
 *
 * The semantic classes are assigned in the Impreza Grid Layout named
 * "Lösungen Circle". Keeping every selector below that root prevents these
 * rules from affecting other Post Lists and Post Carousels.
 */
.co-solution-circles {
	--co-solution-item-padding: 0.6rem;
	--gap: var(--co-solution-item-padding) !important;
}

.co-solution-circles .w-grid-list {
	width: 100%;
	max-width: 63.6rem !important;
	margin-inline: auto;
}

.co-solution-circles .w-grid-item.loesungen .w-grid-item-h {
	height: auto !important;
	min-height: 0;
	aspect-ratio: 1;
}

.co-solution-circles .co-solution-card__content {
	position: absolute;
	inset: 0;
	display: grid;
	grid-template-rows: 7rem 5.25rem minmax(0, 1fr);
	align-content: start;
	align-items: start;
	justify-content: stretch;
	width: 100%;
	height: 100%;
	min-width: 0;
	padding: 1.375rem 3.125rem 1.5rem;
	gap: 0;
	text-align: center;
}

.co-solution-circles .co-solution-card__image {
	display: flex;
	align-items: center;
	justify-content: center;
	align-self: stretch;
	width: 100%;
	height: 7rem;
	margin: 0;
	overflow: hidden;
}

.co-solution-circles .co-solution-card__image > a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
}

.co-solution-circles .co-solution-card__image img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: 100%;
	object-fit: contain;
}

.co-solution-circles .co-solution-card__title {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	align-self: stretch;
	width: 100%;
	height: 5.25rem;
	min-width: 0;
	margin: 0;
	padding: 0;
	font-size: 2.25rem;
	line-height: 1.1;
	text-align: center;
}

.co-solution-circles .co-solution-card__title > a {
	display: -webkit-box;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.co-solution-circles .co-solution-card__text {
	align-self: stretch;
	min-width: 0;
	margin: 0;
	overflow: hidden;
	font-size: 1rem;
	line-height: 1.4;
	text-align: center;
}

.co-solution-circles .co-solution-card__text > :first-child {
	margin-top: 0;
}

.co-solution-circles .co-solution-card__text > :last-child {
	margin-bottom: 0;
}

.co-solution-circles .co-solution-card__text > p {
	display: -webkit-box;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}

@media (max-width: 64rem) {
	.co-solution-circles .w-grid-list {
		max-width: 42.4rem !important;
	}
}

@media (max-width: 37.5rem) {
	.co-solution-circles .w-grid-list {
		max-width: 21.2rem !important;
	}
}

/* ==========================================================================
   Step-by-Step Cards

   cq-step-cards = aeussere Row des wiederverwendbaren Abschnitts
   cq-step-card = einzelne Card-Spalte
   cq-step-number / cq-step-icon = optionale Marker

   Marker werden entweder ueber die vorhandenen cq-step-*-Klassen oder ueber
   das erste direkte Element erkannt:
   div.w-text = Zahl, leere w-iconbox = Icon, h4.w-text = kein Marker.
   ========================================================================== */

.cq-step-cards {
	--cq-step-card-background: #D9E0FD;
	--cq-step-card-foreground: var(--color-content-heading);
	--cq-step-marker-background: var(--color-content-bg);
	--cq-step-card-gap: 1.5rem;
}

.cq-step-cards .cq-step-cards__row.g-cols {
	gap: var(--cq-step-card-gap);
}

.cq-step-cards .cq-step-card > .vc_column-inner {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	min-height: 25rem;
	padding: 2.5rem 2rem;
	border-radius: 0.625rem;
	background-color: var(--cq-step-card-background);
	color: var(--cq-step-card-foreground);
}

.cq-step-cards .cq-step-card:not(:last-child) > .vc_column-inner::after {
	position: absolute;
	display: block;
	top: 50%;
	right: -1.125rem;
	z-index: 2;
	width: 0;
	height: 0;
	border-top: 0.75rem solid transparent;
	border-bottom: 0.75rem solid transparent;
	border-left: 0.75rem solid var(--cq-step-card-foreground);
	content: "";
	transform: translateY(-50%);
}

.cq-step-cards .cq-step-marker,
.cq-step-cards .cq-step-card > .vc_column-inner > div.w-text:first-child,
.cq-step-cards .cq-step-card > .vc_column-inner > .w-iconbox.no_title.no_text:first-child {
	flex: 0 0 auto;
	width: 6.5rem;
	height: 6.5rem;
	margin: 0 0 2rem;
}

.cq-step-cards .cq-step-number,
.cq-step-cards .cq-step-card > .vc_column-inner > div.w-text:first-child {
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background-color: var(--cq-step-marker-background);
	font-size: 3.5rem;
	font-weight: 400;
	line-height: 1;
}

.cq-step-cards .cq-step-number .w-text-h,
.cq-step-cards .cq-step-card > .vc_column-inner > div.w-text:first-child .w-text-h {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
}

.cq-step-cards .cq-step-icon,
.cq-step-cards .cq-step-card > .vc_column-inner > .w-iconbox.no_title.no_text:first-child,
.cq-step-cards .cq-step-card .cq-step-icon .w-iconbox-icon,
.cq-step-cards .cq-step-card > .vc_column-inner > .w-iconbox.no_title.no_text:first-child .w-iconbox-icon {
	display: flex;
	align-items: center;
	justify-content: center;
}

.cq-step-cards .cq-step-card .cq-step-marker.cq-step-icon .w-iconbox-icon,
.cq-step-cards .cq-step-card > .vc_column-inner > .w-iconbox.no_title.no_text:first-child .w-iconbox-icon {
	width: 6.5rem;
	height: 6.5rem;
	margin: 0;
	border-radius: 50%;
	background-color: var(--cq-step-marker-background) !important;
	color: var(--cq-step-card-foreground) !important;
	font-size: 2rem;
}

.cq-step-cards .cq-step-card .cq-step-marker.cq-step-icon .w-iconbox-icon > i,
.cq-step-cards .cq-step-card > .vc_column-inner > .w-iconbox.no_title.no_text:first-child .w-iconbox-icon > i {
	color: inherit;
}

.cq-step-cards .cq-step-icon .w-iconbox-meta,
.cq-step-cards .cq-step-card > .vc_column-inner > .w-iconbox.no_title.no_text:first-child .w-iconbox-meta {
	display: none;
}

.cq-step-cards .cq-step-card__title {
	margin: 0 0 0.75rem;
}

.cq-step-cards .cq-step-card__title .w-text-h {
	margin: 0;
}

.cq-step-cards .cq-step-card__text {
	margin: 0;
}

.cq-step-cards .cq-step-card__text > :first-child {
	margin-top: 0;
}

.cq-step-cards .cq-step-card__text > :last-child {
	margin-bottom: 0;
}

.cq-step-cards .cq-step-card__link {
	margin-top: auto;
	padding-top: 1.5rem;
}

.cq-step-cards .cq-step-card__link a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

@media (max-width: 64rem) {
	.cq-step-cards .cq-step-card:not(:last-child) > .vc_column-inner::after {
		display: none;
	}
}

@media (max-width: 37.5rem) {
	.cq-step-cards .cq-step-card > .vc_column-inner {
		min-height: 0;
		padding: 2rem 1.5rem;
	}

	.cq-step-cards .cq-step-card:not(:last-child) > .vc_column-inner::after {
		display: block;
		top: auto;
		right: auto;
		bottom: -1.125rem;
		left: 50%;
		border-top: 0.75rem solid var(--cq-step-card-foreground);
		border-right: 0.75rem solid transparent;
		border-bottom: 0;
		border-left: 0.75rem solid transparent;
		transform: translateX(-50%);
	}
}

@media (max-width: 22rem) {
	.co-solution-circles .co-solution-card__content {
		grid-template-rows: 6.25rem 4.5rem minmax(0, 1fr);
		padding: 1.125rem 2.5rem 1.25rem;
	}

	.co-solution-circles .co-solution-card__image {
		height: 6.25rem;
	}

	.co-solution-circles .co-solution-card__title {
		height: 4.5rem;
		font-size: 1.875rem;
	}

	.co-solution-circles .co-solution-card__text {
		font-size: 0.9375rem;
	}
}
/* reusable block newsletter */

.cq-newsletter-block {
	--hwrapper-gap: 5rem !important;
	align-items: flex-start;
}


.cq-newsletter-block > *:nth-child(1) {
  flex: 1 1 25%;
}
.cq-newsletter-block > *:nth-child(2) {
  flex: 1 1 30%;
}
.cq-newsletter-block > *:nth-child(3) {
  flex: 1 1 45%;
}
/* ==========================================================================
   Wissen: Highlight-Badge auf der Karte
   cq-card-media und cq-card-badge werden im Grid Layout "Posts Grid 2" als
   "Extra class name" gesetzt.
   ========================================================================== */

.cq-card-media {
	position: relative;
}

.cq-card-badge {
	position: absolute;
	top: 1.5rem;
	right: 0;
	z-index: 2;
	/* Wie in der Designvorlage: buendig am rechten Bildrand, eckig, als Flaeche
	   statt als Etikett - deshalb Mindestbreite und linksbuendiger Text. */
	min-width: 6.5em;
	padding: 0.85em 1em;
	border-radius: 0;
	background-color: #FF7E70;
	color: #091647;
	font-size: 0.9375rem;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.06em;
	text-align: left;
	text-transform: uppercase;
	white-space: nowrap;
	pointer-events: none;
}

/* ==========================================================================
   Wissen: Filter- und Sortierzeile

   cq-wissen-filterbar  = Row mit Filter und Sortierung
   cq-wissen-resetbar   = Row mit dem Reset-Element
   cq-wissen-listbar    = Row mit der Post List
   cq-wissen-filter     = das List-Filter-Element
   cq-wissen-order      = das List-Order-Element
   cq-wissen-filter-reset = das List-Filter-Reset-Element

   Alles haengt an diesen projekteigenen Klassen, damit Filter in anderen
   Seitenbereichen unberuehrt bleiben.
   ========================================================================== */

.cq-wissen-filterbar,
.cq-wissen-resetbar,
.cq-wissen-listbar,
.cq-wissen-filter,
.cq-wissen-order,
.cq-wissen-filter-reset {
	--cq-band-bg: #F5F8FF;
	--cq-field-bg: #ffffff;
	--cq-field-border: #e3e7f0;
	--cq-field-text: #091647;
	--cq-field-accent: #4166F5;
	--cq-field-radius: 0.625rem;
	--cq-field-height: 3.25rem;
}

/* --- Layout der Filterzeile ----------------------------------------------
   Die Klassen cq-wissen-filterbar / -resetbar / -listbar gehoeren an die drei
   Rows (Row -> Design Options -> Extra class name). us-core setzt die
   Row-Klasse auf das aeussere .l-section-Element.
   -------------------------------------------------------------------------- */

/* Sektionsabstaende: oben normal, unten knapp, damit die Liste naeher rueckt */
.cq-wissen-filterbar.l-section {
	padding-top: 3rem;
	padding-bottom: 0;
}

/* Das Band, auf dem die Felder stehen - inhaltsbreit, nicht ueber die
   ganze Fensterbreite */
.cq-wissen-filterbar.l-section .g-cols.via_grid {
	align-items: center;
	grid-template-columns: 3fr 1fr;
	gap: 1.5rem;
	padding: 1.25rem 1.5rem;
	border-radius: var(--cq-field-radius);
	background-color: var(--cq-band-bg);
}

/* Sortierung rechts, auf einer Linie mit den Filterfeldern */
.cq-wissen-filterbar .cq-wissen-order {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 0.75rem;
	margin-left: auto;
}

.cq-wissen-order .w-order-label {
	margin: 0;
	color: var(--cq-field-text);
	font-weight: 600;
	white-space: nowrap;
}

/* Reset-Zeile: solange kein Filter aktiv ist, ist das Element leer und die
   Sektion soll keinen Platz beanspruchen. */
.cq-wissen-resetbar.l-section {
	padding-top: 0;
	padding-bottom: 0;
}

.cq-wissen-resetbar .w-filter-reset:not(.hidden) {
	padding-top: 1.25rem;
	padding-bottom: 0.25rem;
}

/* Listen-Zeile: oben knapp halten und den Separator vor der Liste entfernen */
.cq-wissen-listbar.l-section {
	padding-top: 2rem;
}

.cq-wissen-listbar .vc_column-inner > .w-separator:first-child {
	display: none;
}

/* --- Die drei Filterfelder fuellen die Zeile ------------------------------ */

.cq-wissen-filter.w-filter .w-filter-list > .w-filter-item {
	flex: 1 1 0;
	min-width: 0;
}

/* --- Geschlossenes Feld --------------------------------------------------- */

.cq-wissen-filter.w-filter.mod_dropdown .w-filter-item-title,
.cq-wissen-order.w-order .w-order-select select {
	width: 100%;
	min-height: var(--cq-field-height);
	border: 1px solid var(--cq-field-border);
	border-radius: var(--cq-field-radius);
	background-color: var(--cq-field-bg);
	box-shadow: 0 0.0625rem 0.125rem rgba(9, 22, 71, 0.05);
	color: var(--cq-field-text);
	font-size: 1rem;
	font-weight: 500;
	line-height: 1.4;
	text-align: left;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.cq-wissen-order.w-order .w-order-select select {
	min-width: 11rem;
}

.cq-wissen-filter.w-filter.mod_dropdown .w-filter-item-title:hover,
.cq-wissen-order.w-order .w-order-select select:hover {
	border-color: var(--cq-field-accent);
}

.cq-wissen-filter.w-filter.mod_dropdown .w-filter-item-title:focus-visible,
.cq-wissen-order.w-order .w-order-select select:focus-visible {
	outline: 2px solid var(--cq-field-accent);
	outline-offset: 2px;
}

/* Feld mit Auswahl */
.cq-wissen-filter.w-filter.mod_dropdown .w-filter-item.has_value .w-filter-item-title {
	border-color: var(--cq-field-accent);
	box-shadow: inset 0 0 0 1px var(--cq-field-accent);
	color: var(--cq-field-accent);
	font-weight: 600;
}

/* Impreza fuellt dieses span per JS mit der Anzahl der gewaehlten Werte */
.cq-wissen-filter.w-filter.mod_dropdown .w-filter-item-title > span:not(:empty) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 1.375rem;
	height: 1.375rem;
	margin-left: 0.5rem;
	padding: 0 0.375rem;
	border-radius: 999px;
	background-color: var(--cq-field-accent);
	color: #ffffff;
	font-size: 0.8125rem;
	font-weight: 700;
	line-height: 1;
}

/* --- Geoeffnete Werteliste ------------------------------------------------ */

.cq-wissen-filter.w-filter.mod_dropdown .w-filter-item-content {
	min-width: 16rem;
	border: 0;
	border-radius: var(--cq-field-radius);
	background-color: var(--cq-field-bg);
	/* Traegt allein die Abgrenzung zur Seite - bewusst ohne Rahmenlinie */
	box-shadow: 0 0.75rem 2rem rgba(9, 22, 71, 0.16);
	overflow: hidden;
}

.cq-wissen-filter.w-filter .w-filter-item-search {
	position: sticky;
	top: 0;
	z-index: 1;
	border-bottom: 1px solid var(--cq-field-border);
	background-color: var(--cq-field-bg);
}

.cq-wissen-filter.w-filter .w-filter-item-values {
	max-height: 20rem;
	overflow-y: auto;
	/* Ohne das setzt der Browser overflow-x automatisch auf auto und zeigt
	   eine waagerechte Scrollleiste, sobald ein Label knapp zu breit ist. */
	overflow-x: hidden;
	overscroll-behavior: contain;
}

/* Lange Begriffe umbrechen statt seitlich herausragen */
.cq-wissen-filter.w-filter .w-filter-item-value-label {
	color: var(--cq-field-text);
	overflow-wrap: anywhere;
}

.cq-wissen-filter.w-filter .w-filter-item-value input {
	accent-color: var(--cq-field-accent);
}

.cq-wissen-filter.w-filter .w-filter-item-value input:checked + .w-filter-item-value-label {
	color: var(--cq-field-accent);
	font-weight: 600;
}

.cq-wissen-filter.w-filter .w-filter-item-value label:focus-within {
	outline: 2px solid var(--cq-field-accent);
	outline-offset: -2px;
}

/* --- Chips der ausgewaehlten Werte ---------------------------------------- */

.cq-wissen-filter-reset .w-filter-reset-single {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	padding: 0.3125rem 0.75rem;
	border: 1px solid var(--cq-field-border);
	border-radius: 999px;
	background-color: var(--cq-field-bg);
	color: var(--cq-field-text);
	font-size: 0.9375rem;
	line-height: 1.4;
}

.cq-wissen-filter-reset .w-filter-reset-single:hover,
.cq-wissen-filter-reset .w-filter-reset-single:focus-visible {
	border-color: var(--cq-field-accent);
	color: var(--cq-field-accent);
}

/* Ausgeblendete Reset-Zeile soll keinen Platz beanspruchen */
.cq-wissen-filter-reset.w-filter-reset.hidden {
	display: none;
}

/* --- Mobil ---------------------------------------------------------------- */

@media (max-width: 37.5rem) {

	.cq-wissen-filterbar.l-section .g-cols.via_grid {
		grid-template-columns: 1fr;
		padding: 1rem;
	}

	.cq-wissen-filterbar.l-section {
		padding-top: 2rem;
	}

	.cq-wissen-listbar.l-section {
		padding-top: 1.5rem;
	}

	.cq-wissen-filter.w-filter.state_mobile .w-filter-opener {
		display: inline-flex;
		align-items: center;
		gap: 0.75rem;
		width: 100%;
		min-height: var(--cq-field-height);
		padding: 0.75rem 1rem;
		border: 1px solid var(--cq-field-accent);
		border-radius: var(--cq-field-radius);
		background-color: var(--cq-field-accent);
		color: var(--cq-field-bg);
		font-size: 1rem;
		font-weight: 600;
		justify-content: center;
	}

	/* Decorative filter symbol; the existing button keeps its accessible name. */
	.cq-wissen-filter.w-filter .w-filter-opener::before {
		content: "";
		width: 1.25rem;
		height: 1.25rem;
		background-color: currentColor;
		clip-path: polygon(0 10%, 100% 10%, 60% 55%, 60% 90%, 40% 100%, 40% 55%);
	}

	.cq-wissen-filter.w-filter .w-filter-opener:focus-visible {
		outline: 2px solid var(--cq-field-text);
		outline-offset: 2px;
	}

	.cq-wissen-filter.w-filter.state_mobile .w-filter-item-title {
		padding: 0.75rem 1rem;
	}

	.cq-wissen-filter.w-filter.state_mobile .w-filter-item-content {
		min-width: 0;
		box-shadow: none;
		border: 1px solid var(--cq-field-border);
	}

	.cq-wissen-filter.w-filter.state_mobile .w-filter-item-search {
		padding: 0.75rem 1rem;
	}

	.cq-wissen-filter.w-filter.state_mobile .w-filter-item-search > i {
		inset-inline-end: 1.5rem;
	}

	.cq-wissen-filter.w-filter.state_mobile .w-filter-item-values {
		padding: 0.5rem 1rem;
		margin: 0;
	}

	.cq-wissen-filter.w-filter.state_mobile .w-filter-item-value label {
		align-items: center;
		min-height: 2.75rem;
		padding-block: 0.5rem;
	}

	.cq-wissen-filter.w-filter.state_mobile .w-filter-item-value input {
		flex-shrink: 0;
	}

	.cq-wissen-filterbar .cq-wissen-order {
		justify-content: space-between;
		width: 100%;
		margin-top: 0.75rem;
	}

	.cq-wissen-order.w-order .w-order-select,
	.cq-wissen-order.w-order .w-order-select select {
		width: 100%;
		min-width: 0;
	}

	.cq-wissen-filter.w-filter .w-filter-item-values {
		max-height: none;
	}
}

/* ==========================================================================
   Mobile layout corrections

   The cq-* hooks below live in the WPBakery/Impreza shortcodes. Generated
   us_custom_* class names are deliberately not used as CSS selectors.
   ========================================================================== */

.cq-mobile-card-grid .w-post-elm.post_taxonomy a,
.cq-mobile-feature-card .w-post-elm.post_taxonomy a {
	color: var(--color-content-link-hover);
}

@media (max-width: 64rem) {
	.home .cq-mobile-hero-frame {
		width: 100% !important;
		max-width: 62.5rem;
	}

	.w-hwrapper.cq-mobile-icon-row {
		--hwrapper-gap: 1rem !important;
	}

	.w-hwrapper.cq-mobile-icon-row > .w-iconbox {
		flex: 0 1 auto;
		width: calc((100% - 3rem) / 3) !important;
		max-width: calc((100% - 3rem) / 3) !important;
	}

	.w-grid.cq-mobile-event-list .usg_hwrapper_1,
	.w-grid.cq-mobile-event-list .usg_hwrapper_2 {
		align-items: stretch;
		height: auto !important;
		min-height: 0;
	}

	.w-grid.cq-mobile-event-list .usg_vwrapper_1,
	.w-grid.cq-mobile-event-list .usg_vwrapper_2 {
		width: 30% !important;
		height: auto !important;
		min-height: 0 !important;
	}

	.w-grid.cq-mobile-event-list .usg_vwrapper_3,
	.w-grid.cq-mobile-event-list .usg_vwrapper_6 {
		width: 40% !important;
		height: auto !important;
		min-height: 0 !important;
	}

	.w-grid.cq-mobile-event-list .usg_vwrapper_4,
	.w-grid.cq-mobile-event-list .usg_vwrapper_7 {
		width: 30% !important;
		height: auto !important;
		min-height: 0 !important;
	}

	/* Two CTA buttons also need to stack in narrow tablet columns. */
	.w-hwrapper.cq-contact-card__actions,
	.cq-contact-card__content > .vc_column-inner > .w-hwrapper {
		--hwrapper-gap: 0.75rem !important;
		align-items: stretch;
		flex-direction: column;
		padding-top: 2rem !important;
	}

	.w-hwrapper.cq-contact-card__actions > .w-btn-wrapper,
	.w-hwrapper.cq-contact-card__actions > .w-btn-wrapper .w-btn,
	.cq-contact-card__content > .vc_column-inner > .w-hwrapper > .w-btn-wrapper,
	.cq-contact-card__content > .vc_column-inner > .w-hwrapper > .w-btn-wrapper .w-btn {
		width: 100% !important;
		min-width: 0;
		margin-right: 0 !important;
	}
}

@media (max-width: 37.5rem) {
	/* Shared text and content widths. */
	.l-main .cq-mobile-fluid-copy {
		width: 100% !important;
		max-width: 100%;
	}

	.l-main .cq-mobile-content-pad:not(.cq-brand-caroussel), .cq-cases-review {
		padding-right: 1.5rem;
		padding-left: 1.5rem;
	}

	.l-main h1,
	.l-main h2,
	.l-main h3,
	.l-main h4,
	.l-main p,
	.l-main li {
		hyphens: auto;
		overflow-wrap: anywhere;
	}

	/* Word-pasted inline runs can contain long chains of non-breaking spaces. */
	.l-main .TextRun {
		hyphens: auto;
		overflow-wrap: anywhere;
	}

	.home .cq-mobile-hero-frame h1 {
		font-size: clamp(2.25rem, 10vw, 2.5rem) !important;
		line-height: 1.15;
	}

	/* Article and knowledge card grids. */
	.cq-mobile-card-grid {
		--columns: 1 !important;
	}

	/* Compact home-page event tiles need room for date, place and title. */
	#page-content .w-grid.cq-mobile-event-tiles {
		--columns: 1 !important;
	}

	#page-content .cq-mobile-event-tiles .w-grid-item-h {
		height: auto !important;
		aspect-ratio: auto !important;
	}

	#page-content .cq-mobile-event-tiles .usg_vwrapper_1,
	#page-content .cq-mobile-event-tiles .usg_vwrapper_3 {
		position: relative !important;
		height: auto !important;
		min-height: 0 !important;
		aspect-ratio: 1 !important;
	}

	#page-content .cq-mobile-event-tiles .usg_vwrapper_2,
	#page-content .cq-mobile-event-tiles .usg_vwrapper_4,
	#page-content .cq-mobile-event-tiles .usg_vwrapper_5 {
		height: auto !important;
		min-height: 0 !important;
	}

	#page-content .cq-mobile-event-tiles .usg_post_title_1,
	#page-content .cq-mobile-event-tiles .usg_post_title_2 {
		padding: 1.25rem !important;
		font-size: 1.5rem !important;
		line-height: 1.2 !important;
	}

	/* Event cards: date, copy and image become full-width rows. */
	.w-grid.cq-mobile-event-list .usg_hwrapper_1,
	.w-grid.cq-mobile-event-list .usg_hwrapper_2 {
		flex-direction: column;
		height: auto !important;
		min-height: 0;
	}

	.w-grid.cq-mobile-event-list .usg_vwrapper_1,
	.w-grid.cq-mobile-event-list .usg_vwrapper_2,
	.w-grid.cq-mobile-event-list .usg_vwrapper_3,
	.w-grid.cq-mobile-event-list .usg_vwrapper_4,
	.w-grid.cq-mobile-event-list .usg_vwrapper_6,
	.w-grid.cq-mobile-event-list .usg_vwrapper_7 {
		width: 100% !important;
		height: auto !important;
		min-height: 0 !important;
	}

	.w-grid.cq-mobile-event-list .usg_vwrapper_4,
	.w-grid.cq-mobile-event-list .usg_vwrapper_7 {
		aspect-ratio: 3 / 2;
	}

	/* Reusable newsletter block. */
	.w-hwrapper.cq-newsletter-block {
		--hwrapper-gap: 1.5rem !important;
		align-items: stretch;
		flex-direction: column;
		padding: 1.5rem !important;
	}

	.w-hwrapper.cq-newsletter-block > * {
		flex: 1 1 auto !important;
		width: 100% !important;
		max-width: 100%;
		margin-right: 0 !important;
	}

	/* Circular icon rows used by the solutions page block. */
	.cq-mobile-icon-row {
		--hwrapper-gap: 1.5rem !important;
		align-items: center;
		flex-direction: column;
	}

	.w-hwrapper.cq-mobile-icon-row > .w-iconbox {
		flex: 0 1 auto;
		width: 100% !important;
		max-width: 21.2rem !important;
		margin-inline: 0 !important;
		aspect-ratio: 1;
	}

	/* Three-column CTA rows and the shared contact card. */
	.w-hwrapper.cq-mobile-cta-row {
		--hwrapper-gap: 1.5rem !important;
		align-items: stretch;
		flex-direction: column;
		padding: 1.5rem !important;
	}

	.w-hwrapper.cq-mobile-cta-row > * {
		width: 100% !important;
		max-width: 100%;
		margin-right: 0 !important;
	}

	.w-hwrapper.cq-mobile-cta-row > .w-btn,
	.w-hwrapper.cq-mobile-cta-row > .w-btn-wrapper .w-btn {
		align-self: flex-start;
		width: auto !important;
	}

	.wpb_column.cq-contact-card__content {
		padding: 1.5rem !important;
	}

	.wpb_column.cq-contact-card__content h2 {
		font-size: clamp(2rem, 9vw, 2.5rem) !important;
		line-height: 1.15;
	}

	/* The adjoining media column has desktop-only padding on three sides. */
	.cq-contact-card__content + .wpb_column {
		padding: 0 !important;
	}

	/* Featured post: only the outer image/text wrapper changes direction. */
	.cq-mobile-feature-card .w-grid-item-h > .w-hwrapper {
		--hwrapper-gap: 0 !important;
		flex-direction: column;
		align-items: stretch;
	}

	.cq-mobile-feature-card .w-grid-item-h > .w-hwrapper > .post_image,
	.cq-mobile-feature-card .w-grid-item-h > .w-hwrapper > .w-vwrapper {
		width: 100%;
		min-width: 0;
		margin: 0 !important;
	}

	/* Image-only carousel slides: six logos become three shared swipe rows.
	   Mixed content slides keep their existing layout. */
	.w-content-carousel .owl-item > .w-hwrapper:has(> .w-image):not(:has(> :not(.w-image))) {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1.5rem;
		align-items: center;
	}

	.w-content-carousel .owl-item > .w-hwrapper:has(> .w-image):not(:has(> :not(.w-image))) > .w-image {
		display: flex;
		align-items: center;
		justify-content: center;
		min-width: 0;
		min-height: 4rem;
		margin: 0;
	}

	/* Keep table headers and cells together; scroll the table, not the page. */
	.w-html:has(> .tablepress) {
		max-width: 100%;
		overflow-x: auto;
		overscroll-behavior-x: contain;
	}

	.w-html > .tablepress {
		min-width: 36rem;
	}

	/* Knowledge-page media cards keep their ratio without forcing width. */
	.cq-mobile-feature-media {
		width: 100% !important;
		max-width: 100%;
		padding-top: 0 !important;
		padding-bottom: 0 !important;
		border-radius: 0 0 0.625rem 0.625rem !important;
	}

	/* The transparent home header needs an opaque opened navigation layer. */
	.home .l-header .w-nav.type_mobile .w-nav-list.level_1 {
		background-color: var(--color-header-middle-bg) !important;
	}

		/* video as last element get round corners on mobile */
	.g-cols > .wpb_column:last-child .w-video iframe {
		border-radius: 10px;
	}
		.g-cols > .wpb_column:last-child  .w-video:not(.confirm_load) {
				background: none;
		}
}
