/*
Theme Name: GES Europastraße Child
Description: Projektspezifisches Child Theme für die Gesamtschule an der Europastraße.
Author: anner.ruhr
Template: hello-elementor
Version: 2.3.27
Text Domain: ges-europastrasse-child
*/

@font-face {
	font-family: "Inter";
	font-style: normal;
	font-weight: 400 700;
	font-display: swap;
	src: url("assets/fonts/inter-latin.woff2") format("woff2");
}

@font-face {
	font-family: "Space Grotesk";
	font-style: normal;
	font-weight: 500 700;
	font-display: swap;
	src: url("assets/fonts/space-grotesk-latin.woff2") format("woff2");
}

:root {
	--ges-ink: #14191a;
	--ges-text: #2b3334;
	--ges-gray-600: #5c6467;
	--ges-gray-400: #909799;
	--ges-gray-300: #d6dbdc;
	--ges-gray-150: #edf1f1;
	--ges-gray-100: #f6f8f8;
	--ges-white: #fff;
	--ges-teal-tint: #97c4cc;
	--ges-teal-icon: #eaf2f3;
	--ges-teal-deep: #4e7c85;
	--ges-teal-mid: #5b9aa6;
	--ges-teal-quote: #61a5b2;
	--ges-teal-feature: #2f6570;
	--ges-teal-dark: #2e4d53;
	--ges-teal-tag: #dcebec;
	--ges-quote-gradient: linear-gradient(135deg, #61a5b2 0%, #79b5c0 58%, #97c4cc 100%);
	--ges-accent-gradient: linear-gradient(90deg, hsl(17 80% 54%) 0%, hsl(190 29% 50%) 100%);
	--ges-orange: #e8622c;
	--ges-orange-deep: #cb4a16;
	--ges-orange-tint: #fbe4d8;
	--ges-radius-lg: 22px;
	--ges-radius-md: 16px;
	--ges-radius-sm: 12px;
	--ges-shadow-sm: 0 10px 35px rgb(20 25 26 / 8%);
	--ges-shadow-md: 0 20px 55px rgb(20 25 26 / 13%);
	--ges-width: 1440px;
	--ges-gutter: clamp(20px, 4vw, 40px);
	--ges-header-offset: 128px;
}

body {
	color: var(--ges-text);
	font-family: Inter, Arial, sans-serif;
}

body .elementor-button {
	padding-block: 14px;
}

/* Atomic context bridge: adjacent grey sections share one outer boundary. */
.elementor .section-default.section-grey:has(+ .section-default.section-grey) {
	margin-block-end: 0;
}

.elementor .section-default.section-grey + .section-default.section-grey {
	margin-block-start: 0;
	padding-block-start: 0;
}

/* A grey first section sits directly below the Theme Builder header. */
.elementor-location-single > .elementor[data-elementor-type="single-post"] > .section-default.section-grey:first-child,
.elementor[data-elementor-type="single-post"] > .section-default.section-grey:first-child {
	padding-block-start: 0;
}

.ges-single-post__category .elementor-heading-title {
	display: inline-flex;
	align-items: center;
	width: fit-content;
	padding: 5px 12px;
	border-radius: 999px;
	background: var(--ges-teal-tag);
	color: var(--ges-teal-feature);
	font: 600 12px/1.2 Inter, Arial, sans-serif;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.ges-single-post__meta .elementor-heading-title {
	color: var(--ges-gray-600);
	font: 400 14px/1.45 Inter, Arial, sans-serif;
}

:is(
	.elementor[data-elementor-type="wp-page"],
	.elementor[data-elementor-type="single-page"]
) > .section-default.section-grey:last-child {
	margin-block-end: 0;
}

.elementor.elementor-90 {
	--ges-copy-inset: clamp(28px, 3.5vw, 44px);
	--ges-intro-column-gap: clamp(28px, 4vw, 56px);
	--ges-sidebar-width: 300px;
	background: var(--gray-100);
}

/*
 * Reusable structural scope for a directly editable page that carries only
 * the standard intro. This deliberately does not opt the page into the other
 * template-90 rules.
 */
.elementor .standard-page-intro {
	--ges-copy-inset: clamp(28px, 3.5vw, 44px);
	--ges-intro-column-gap: clamp(28px, 4vw, 56px);
	--ges-sidebar-width: 300px;
	position: relative;
	width: min(calc(100% - (2 * var(--ges-gutter))), var(--content-width));
	margin-inline: auto;
	gap: var(--ges-intro-column-gap);
	align-items: flex-start;
	padding: var(--ges-copy-inset);
	border-radius: var(--radius-large);
	overflow: visible;
}

.elementor .standard-page-intro > .elementor-element-28da176 {
	min-width: 0;
	width: calc(100% - var(--ges-sidebar-width) - var(--ges-intro-column-gap));
	flex: 0 1 calc(100% - var(--ges-sidebar-width) - var(--ges-intro-column-gap));
	gap: 12px;
}

/* Standard page template 90: structural bridge for the Atomic layout. */
.elementor.elementor-90 .elementor-element.elementor-element-ed57cf3,
.elementor.elementor-90 .elementor-element.elementor-element-349d839 {
	width: min(calc(100% - (2 * var(--ges-gutter))), var(--content-width));
	margin-inline: auto;
}

.elementor.elementor-90 .elementor-element.elementor-element-ed57cf3 {
	position: relative;
	gap: var(--ges-intro-column-gap);
	align-items: flex-start;
	padding: var(--ges-copy-inset);
	border-radius: var(--radius-large);
	overflow: visible;
}

.elementor.elementor-90 .elementor-element.elementor-element-28da176,
.elementor.elementor-90 .elementor-element.elementor-element-8603252 {
	min-width: 0;
}

.elementor.elementor-90 .elementor-element.elementor-element-28da176 {
	width: calc(100% - var(--ges-sidebar-width) - var(--ges-intro-column-gap));
	flex: 0 1 calc(100% - var(--ges-sidebar-width) - var(--ges-intro-column-gap));
	gap: 12px;
}

.elementor.elementor-90 .elementor-element.elementor-element-8603252 {
	flex: 1 1 auto;
}

.elementor.elementor-90 .elementor-element.elementor-element-66c445e,
.elementor.elementor-90 .elementor-element.elementor-element-7dd9a20 {
	width: var(--ges-sidebar-width);
	flex: 0 0 var(--ges-sidebar-width);
}

.elementor.elementor-90 .elementor-element.elementor-element-66c445e {
	position: absolute;
	z-index: 2;
	top: var(--ges-copy-inset);
	right: var(--ges-copy-inset);
	display: flex !important;
	flex-direction: column;
	gap: 0;
	padding: 0;
}

.elementor.elementor-90 .elementor-element.elementor-element-66c445e > .elementor-element,
.elementor.elementor-90 .elementor-element.elementor-element-66c445e :where(.ges-downloads, .ges-contact) {
	width: 100%;
}

.elementor.elementor-90 .elementor-element.elementor-element-349d839 {
	gap: var(--content-gap);
	align-items: flex-start;
	padding-inline: var(--ges-copy-inset);
	padding-block: clamp(56px, 7vw, var(--section-spacing));
}

.elementor.elementor-90 .elementor-element.elementor-element-7dd9a20 {
	gap: 24px;
	margin-block-start: 0;
	border-radius: var(--radius-medium);
	overflow: hidden;
}

.elementor.elementor-90 .elementor-element.elementor-element-8c8bf6d:not(:has(.ges-downloads)) {
	display: none;
}

.elementor.elementor-90 .elementor-element.elementor-element-352d7d5 {
	margin-top: 24px;
}

/* Mobile contact follows the last actually rendered content block. */
.elementor.elementor-90 .elementor-element.elementor-element-f4c90c1 {
	margin-block-start: var(--spacing-flow, 24px);
}

/* WordPress block/editor HTML inside the standard page template. */
.elementor.elementor-90 .elementor-element-5425847 {
	--ges-flow-space: 24px;
	--ges-feature-space: 32px;
	--ges-heading-content-gap: 20px;
	--ges-section-space: clamp(40px, 5vw, 56px);
	--ges-subsection-space: clamp(28px, 3.5vw, 36px);
	color: var(--body-text);
	font-family: var(--font-inter), Inter, Arial, sans-serif;
	font-size: 16px;
	line-height: 1.75;
}

.elementor.elementor-90 .elementor-element-5425847 :where(h2, h3, h4, h5, h6) {
	margin: 0 0 16px;
	scroll-margin-block-start: calc(var(--ges-header-offset, 128px) + var(--spacing-flow, 24px));
	color: var(--ink);
	font-family: var(--font-space-grotesk), "Space Grotesk", Arial, sans-serif;
	line-height: 1.25;
}

body.admin-bar .elementor.elementor-90 .elementor-element-5425847 :where(h2, h3, h4, h5, h6) {
	scroll-margin-block-start: calc(var(--ges-header-offset, 128px) + var(--spacing-flow, 24px) + 32px);
}

@media (max-width: 782px) {
	body.admin-bar .elementor.elementor-90 .elementor-element-5425847 :where(h2, h3, h4, h5, h6) {
		scroll-margin-block-start: calc(var(--ges-header-offset, 128px) + var(--spacing-flow, 24px) + 46px);
	}
}

.elementor.elementor-90 .elementor-element-5425847 h2:not(:first-child) {
	margin-top: var(--ges-section-space);
}

.elementor.elementor-90 .elementor-element-5425847 :where(h3, h4, h5, h6):not(:first-child) {
	margin-top: var(--ges-subsection-space);
}

.elementor.elementor-90 .elementor-element-5425847 h2 {
	margin-bottom: var(--ges-heading-content-gap);
	font-size: clamp(24px, 2.4vw, 30px);
	font-weight: 600;
}

.elementor.elementor-90 .elementor-element-5425847 h3 {
	font-size: clamp(20px, 2vw, 24px);
	font-weight: 600;
}

.elementor.elementor-90 .elementor-element-5425847 h4 {
	font-size: 20px;
	font-weight: 600;
}

.elementor.elementor-90 .elementor-element-5425847 :where(h5, h6) {
	font-family: var(--font-inter), Inter, Arial, sans-serif;
	font-size: 16px;
	font-weight: 700;
}

.elementor.elementor-90 .elementor-element-5425847 :where(p, ul, ol, blockquote, figure, table, pre):not(:where(.elementor-editor-element-settings, .elementor-element-overlay *)) {
	margin-block: 0 var(--ges-flow-space);
}

/* Content lists must not style Elementor editor overlays or icon-list widgets. */
.elementor.elementor-90 .elementor-element-5425847 ol:not(:where(.elementor-editor-element-settings, .elementor-element-overlay *, .elementor-icon-list-items)) {
	padding-inline-start: 26px;
}

.elementor.elementor-90 .elementor-element-5425847 ul:not(:where(.elementor-editor-element-settings, .elementor-element-overlay *, .elementor-icon-list-items)) {
	padding: 0;
	list-style: none;
}

.elementor.elementor-90 .elementor-element-5425847 ul:not(:where(.elementor-editor-element-settings, .elementor-element-overlay *, .elementor-icon-list-items)) > li {
	position: relative;
	padding-inline-start: 30px;
}

.elementor.elementor-90 .elementor-element-5425847 ul:not(:where(.elementor-editor-element-settings, .elementor-element-overlay *, .elementor-icon-list-items)) > li::before {
	position: absolute;
	top: .62em;
	left: 2px;
	width: 9px;
	height: 8px;
	border-radius: 2px;
	background: var(--orange);
	content: "";
}

.elementor.elementor-90 .elementor-element-5425847 :where(ul, ol):not(:where(.elementor-editor-element-settings, .elementor-element-overlay *, .elementor-icon-list-items)) > li + li {
	margin-top: 8px;
}

.elementor.elementor-90 .elementor-element-5425847 ol:not(:where(.elementor-editor-element-settings, .elementor-element-overlay *, .elementor-icon-list-items)) > li::marker {
	color: var(--teal-deep);
	font-weight: 700;
}

.elementor.elementor-90 .elementor-element-5425847 a {
	color: var(--teal-feature);
	font-weight: 600;
	text-decoration-color: var(--teal-tint);
	text-decoration-thickness: 2px;
	text-underline-offset: 3px;
}

.elementor.elementor-90 .elementor-element-5425847 a:hover,
.elementor.elementor-90 .elementor-element-5425847 a:focus-visible {
	color: var(--orange-deep);
	text-decoration-color: currentcolor;
}

.elementor.elementor-90 .elementor-element-5425847 blockquote {
	margin: var(--ges-feature-space) 0;
	padding: clamp(24px, 4vw, 34px);
	border: 0;
	border-radius: var(--radius-medium);
	background: var(--ges-quote-gradient);
	color: var(--white);
}

.elementor.elementor-90 .elementor-element-5425847 blockquote p {
	margin: 0;
	color: inherit;
	font-family: var(--font-inter), Inter, Arial, sans-serif;
	font-size: 13px;
	font-weight: 400;
	line-height: 1.4;
}

.elementor.elementor-90 .elementor-element-5425847 blockquote p > strong:first-child {
	display: block;
	margin-bottom: 8px;
	color: inherit;
	font-family: var(--font-space-grotesk), "Space Grotesk", Arial, sans-serif;
	font-size: clamp(19px, 2.2vw, 23px);
	font-weight: 600;
	line-height: 1.45;
}

.elementor.elementor-90 .elementor-element-5425847 blockquote p > strong:first-child + br {
	display: none;
}

.elementor.elementor-90 .elementor-element-5425847 blockquote cite {
	display: block;
	margin-top: 8px;
	color: inherit;
	font-family: var(--font-inter), Inter, Arial, sans-serif;
	font-size: 13px;
	font-style: normal;
	font-weight: 400;
	line-height: 1.4;
	opacity: .9;
}

.elementor.elementor-90 .elementor-element-5425847 figure {
	overflow: hidden;
	border-radius: var(--radius-medium);
	background: var(--gray-100);
}

.elementor.elementor-90 .elementor-element-5425847 figure img {
	display: block;
	width: 100%;
	height: auto;
}

.elementor.elementor-90 .elementor-element-5425847 figcaption {
	margin: 0;
	padding: 12px 16px;
	border-radius: 0 0 var(--radius-medium) var(--radius-medium);
	background: var(--white);
	color: var(--gray-600);
	font-size: 13px;
	line-height: 1.5;
	text-align: left;
}

.elementor.elementor-90 .elementor-element-5425847 table {
	width: 100%;
	border-spacing: 0;
	border: 1px solid var(--gray-300);
	border-radius: var(--radius-small);
	overflow: hidden;
}

.elementor.elementor-90 .elementor-element-5425847 :where(th, td) {
	padding: 12px 14px;
	border: 0;
	border-bottom: 1px solid var(--gray-150);
	text-align: left;
}

.elementor.elementor-90 .elementor-element-5425847 th {
	background: var(--gray-100);
	color: var(--ink);
	font-weight: 700;
}

.elementor.elementor-90 .elementor-element-5425847 hr {
	margin-block: 40px;
	border: 0;
	border-top: 1px solid var(--gray-300);
}

/* Elementor table of contents in the standard-page sidebar. */
.elementor.elementor-90 .elementor-element.elementor-element-857dc8b {
	--item-text-hover-decoration: none;
	padding: 22px;
	border: 0;
	border-radius: var(--radius-medium);
	background: var(--gray-100);
	counter-reset: ges-toc-top;
}

/* Elementor builds the entries in the browser; an empty widget must not reserve sidebar space. */
.elementor.elementor-90 .elementor-element.elementor-element-857dc8b:not(:has(.elementor-toc__list-item)) {
	display: none;
}

.elementor.elementor-90 .elementor-element-857dc8b > .elementor-widget-container {
	border: 0;
	border-radius: inherit;
	background: transparent;
	overflow: visible;
}

.elementor.elementor-90 .elementor-element.elementor-element-857dc8b:has(+ .elementor-element-8c8bf6d .ges-downloads) {
	border-radius: var(--radius-medium) var(--radius-medium) 0 0;
}

.elementor.elementor-90 .elementor-element-857dc8b .elementor-toc__header {
	min-height: 0;
	padding: 0 0 14px;
	border: 0;
}

.elementor.elementor-90 :is(
	.elementor-element-857dc8b .elementor-toc__header-title,
	.ges-downloads h2,
	.ges-contact h2
) {
	font-family: var(--font-inter), Inter, Arial, sans-serif;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .06em;
	line-height: 1.3;
	text-transform: uppercase;
}

.elementor.elementor-90 .elementor-element-857dc8b .elementor-toc__header-title {
	color: var(--gray-600) !important;
}

.elementor.elementor-90 .elementor-element-857dc8b .elementor-toc__body {
	display: block !important;
	padding: 0;
}

.elementor.elementor-90 .elementor-element-857dc8b .elementor-toc__list-wrapper {
	margin: 0;
	padding: 0;
	list-style: none;
}

.elementor.elementor-90 .elementor-element-857dc8b .elementor-toc__body > .elementor-toc__list-wrapper > .elementor-toc__list-item {
	margin: 0;
	position: relative;
	padding: 8px 0 8px 32px;
	border-top: 1px solid var(--gray-150);
	counter-increment: ges-toc-top;
}

.elementor.elementor-90 .elementor-element-857dc8b .elementor-toc__body > .elementor-toc__list-wrapper > .elementor-toc__list-item::before {
	position: absolute;
	top: 7px;
	left: 0;
	display: grid;
	width: 20px;
	height: 20px;
	place-items: center;
	border-radius: 50%;
	background: var(--white);
	color: var(--teal-deep);
	content: counter(ges-toc-top);
	font-size: 10px;
	font-weight: 700;
	line-height: 1;
}

.elementor.elementor-90 .elementor-element-857dc8b .elementor-toc__list-item-text-wrapper::before {
	display: none !important;
	content: none !important;
}

.elementor.elementor-90 .elementor-element-857dc8b .elementor-toc__list-item .elementor-toc__list-wrapper {
	margin: 4px 0 0;
}

.elementor.elementor-90 .elementor-element-857dc8b .elementor-toc__list-item .elementor-toc__list-wrapper .elementor-toc__list-item {
	margin: 0;
	padding: 5px 0;
}

.elementor.elementor-90 .elementor-element-857dc8b .elementor-toc__list-item-text {
	color: var(--body-text);
	font-family: var(--font-inter), Inter, Arial, sans-serif;
	font-size: 13px;
	font-weight: 500;
	line-height: 1.4;
	text-decoration: none;
}

.elementor.elementor-90 .elementor-element-857dc8b .elementor-toc__list-item-text.elementor-item-active {
	color: var(--body-text);
}

.elementor.elementor-90 .elementor-element-857dc8b .elementor-toc__list-item-text:hover {
	color: var(--teal-deep);
}

.elementor.elementor-90 .elementor-element-857dc8b .elementor-toc__toggle-button {
	display: none !important;
}

.ges-site-width {
	width: calc(100% - (2 * var(--ges-gutter))) !important;
	max-width: var(--ges-width) !important;
	margin-inline: auto;
}

body .elementor-location-header .e-con.ges-site-width,
body .elementor.elementor-70 .e-con.ges-site-width {
	width: min(calc(100% - (2 * var(--ges-gutter))), 1440px) !important;
	max-width: 1440px !important;
	flex: 0 0 auto !important;
	margin-inline: auto !important;
}

.ges-alert {
	--min-height: 44px;
	position: relative;
	z-index: 21;
	min-height: 44px !important;
	padding: 0 !important;
	background: var(--ges-teal-tint);
	color: var(--ges-ink);
}

.ges-alert .e-con-inner,
.ges-alert.elementor-element {
	align-items: center;
}

.ges-alert p {
	margin: 0;
	font-size: 13px;
	line-height: 1.4;
	text-align: center;
}

.ges-alert__inner {
	--min-height: 44px;
	display: flex;
	min-height: 44px !important;
	align-items: center;
	justify-content: center;
	padding: 0 !important;
}

.elementor .ges-alert__text,
.elementor .ges-alert__text .elementor-heading-title {
	margin: 0;
	color: var(--ges-ink) !important;
	font-family: "Space Grotesk", Arial, sans-serif;
	font-size: clamp(16px, 1.5vw, 22px);
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.04em;
	text-align: center;
	text-transform: uppercase;
}

.elementor .ges-alert__text,
.elementor .ges-alert__text .elementor-widget-container {
	margin: 0 !important;
	padding: 0 !important;
}

.ges-header {
	--min-height: 0px;
	position: relative;
	z-index: 20;
	min-height: 0 !important;
	padding: 0 !important;
	background: rgb(255 255 255 / 96%);
	box-shadow: 0 1px 0 var(--ges-gray-150);
	backdrop-filter: blur(12px);
}

.ges-header__inner {
	--min-height: 104px;
	display: grid !important;
	min-height: 104px !important;
	grid-template-columns: 260px minmax(0, 1fr) auto;
	align-items: center;
	gap: clamp(28px, 3vw, 48px);
	margin-inline: auto;
	padding-block: 8px !important;
}

.ges-header__logo {
	width: 260px !important;
	max-width: 260px !important;
	justify-self: start;
}

.ges-header__logo img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 88px;
	object-fit: contain;
	object-position: left center;
}

.ges-header__nav {
	min-width: 0;
	width: 100% !important;
}

.ges-header__nav .elementor-nav-menu--main .elementor-nav-menu {
	display: flex;
	width: 100%;
	justify-content: center;
	gap: clamp(6px, 1.2vw, 22px);
}

.elementor .ges-header__nav .elementor-nav-menu--main .elementor-item {
	position: relative;
	padding: 10px 14px;
	border-radius: 999px;
	color: var(--ges-ink) !important;
	font-family: "Space Grotesk", Arial, sans-serif;
	font-size: clamp(14px, 1.15vw, 17px);
	font-weight: 600;
	white-space: nowrap;
	transition: color 180ms ease, background-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.ges-header__nav .elementor-nav-menu--main .elementor-item::after {
	display: none !important;
}

.ges-header__nav .elementor-nav-menu--main .elementor-item:hover,
.ges-header__nav .elementor-nav-menu--main .elementor-item:focus-visible {
	background: var(--ges-orange-tint);
	color: var(--ges-orange-deep) !important;
	box-shadow: inset 0 0 0 1px rgb(203 74 22 / 16%), 0 6px 16px rgb(203 74 22 / 10%);
	transform: translateY(-2px);
	outline: none;
}

.ges-header__nav .elementor-nav-menu--main .elementor-item.elementor-item-active {
	background: var(--ges-orange);
	color: var(--ges-ink) !important;
	box-shadow: 0 6px 16px rgb(203 74 22 / 16%);
}

.ges-header__cta {
	width: auto !important;
	justify-self: end;
}

.ges-header__cta .elementor-button,
.elementor-button.ges-header__cta {
	min-height: 52px;
	padding: 15px 26px;
	border-radius: var(--ges-radius-sm);
	background: var(--ges-orange) !important;
	color: var(--ges-ink) !important;
	box-shadow: 0 8px 20px rgb(232 98 44 / 22%);
	font-family: "Space Grotesk", Arial, sans-serif;
	font-size: 16px;
	font-weight: 700;
}

.ges-header__cta .elementor-button:hover,
.ges-header__cta .elementor-button:focus-visible,
.elementor-button.ges-header__cta:hover,
.elementor-button.ges-header__cta:focus-visible {
	background: var(--ges-orange-deep) !important;
	color: var(--ges-white) !important;
}

.ges-page-hero {
	height: clamp(300px, 34vw, 440px);
	overflow: hidden;
	background: var(--ges-gray-150);
}

.ges-page-hero .elementor-widget-theme-post-featured-image,
.ges-page-hero .elementor-widget-container,
.ges-page-hero img {
	width: 100%;
	height: 100%;
}

.ges-page-hero img {
	display: block;
	object-fit: cover;
}

.ges-page-layout {
	position: relative;
	z-index: 4;
	margin-top: -120px;
	margin-bottom: 96px;
}

.ges-intro {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 300px;
	gap: 40px;
	padding: 44px;
	border-radius: var(--ges-radius-lg);
	background: var(--ges-teal-icon);
	box-shadow: var(--ges-shadow-md);
}

.ges-intro__copy {
	max-width: 720px;
}

.ges-eyebrow {
	margin: 0 0 14px;
	color: var(--ges-teal-deep);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.ges-intro__title .elementor-heading-title {
	max-width: 920px;
	margin: 0 0 16px;
	color: var(--ges-ink);
	font-family: "Space Grotesk", Arial, sans-serif;
	font-size: 38px;
	font-weight: 700;
	letter-spacing: -.01em;
	line-height: 1.15;
}

.ges-intro__excerpt {
	max-width: 560px;
	color: var(--ges-text);
	font-size: 15.5px;
	line-height: 1.7;
}

.ges-intro__excerpt p {
	margin: 0;
}

.ges-toc {
	padding: 24px;
	border: 1px solid var(--ges-gray-150);
	border-radius: var(--ges-radius-md);
	background: var(--ges-gray-100);
}

.ges-toc .elementor-toc__header-title {
	color: var(--ges-ink);
	font-family: "Space Grotesk", Arial, sans-serif;
	font-size: 17px;
	font-weight: 700;
}

.ges-toc .elementor-toc__list-item-text {
	color: var(--ges-gray-600);
	font-size: 14px;
	line-height: 1.35;
}

.ges-toc .elementor-toc__list-item-text:hover,
.ges-toc .elementor-toc__list-item-text.elementor-item-active {
	color: var(--ges-orange-deep);
}

.ges-content-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 300px;
	gap: 56px;
	align-items: start;
	margin-top: 80px;
}

.ges-main-content {
	min-width: 0;
}

.ges-main-content :where(h2, h3, h4, h5, h6) {
	scroll-margin-top: 28px;
	color: var(--ges-ink);
	font-family: "Space Grotesk", Arial, sans-serif;
	font-weight: 650;
	line-height: 1.15;
}

.ges-main-content h2 {
	margin: 56px 0 16px;
	font-size: 24px;
	letter-spacing: -.01em;
	line-height: 1.35;
}

.ges-main-content h2:first-child {
	margin-top: 0;
}

.ges-main-content h3 {
	margin: 56px 0 16px;
	font-size: 18px;
	letter-spacing: -.01em;
}

.ges-main-content :where(p, li):not(:where(.elementor-editor-element-setting, .elementor-element-overlay *)) {
	font-size: 15.5px;
	line-height: 1.8;
}

.ges-main-content p {
	margin: 0 0 24px;
}

.ges-main-content ul:not(.elementor-icon-list-items):not(:where(.elementor-editor-element-settings, .elementor-element-overlay *)) {
	margin: 0 0 32px;
	padding: 0;
	list-style: none;
}

.ges-main-content ul:not(.elementor-icon-list-items):not(:where(.elementor-editor-element-settings, .elementor-element-overlay *)) > li {
	position: relative;
	padding-left: 28px;
}

.ges-main-content ul:not(.elementor-icon-list-items):not(:where(.elementor-editor-element-settings, .elementor-element-overlay *)) > li + li {
	margin-top: 10px;
}

.ges-main-content ul:not(.elementor-icon-list-items):not(:where(.elementor-editor-element-settings, .elementor-element-overlay *)) > li::before {
	position: absolute;
	top: .72em;
	left: 2px;
	width: 9px;
	height: 9px;
	border-radius: 2px;
	background: var(--ges-orange);
	content: "";
}

.ges-main-content blockquote,
.ges-quote {
	margin: 32px 0 0;
	padding: 32px 34px;
	border: 0;
	border-radius: var(--ges-radius-md);
	background: var(--ges-teal-quote);
	color: var(--ges-white);
}

.ges-main-content blockquote p,
.ges-quote p {
	margin: 0;
	color: var(--ges-white);
	font-family: "Space Grotesk", Arial, sans-serif;
	font-size: 21px;
	font-weight: 700;
	line-height: 1.4;
}

.ges-main-content blockquote cite,
.ges-quote cite {
	display: block;
	margin-top: 16px;
	color: var(--ges-white);
	font-size: 12.5px;
	font-style: normal;
	opacity: .9;
}

.ges-main-content figure,
.ges-figure {
	overflow: hidden;
	margin: 32px 0 0;
	border-radius: var(--ges-radius-md);
	box-shadow: var(--ges-shadow-sm);
}

.ges-main-content figure img,
.ges-figure img {
	display: block;
	width: 100%;
	min-height: 320px;
	object-fit: cover;
}

.ges-main-content figcaption,
.ges-figure .widget-image-caption {
	margin: 0;
	padding: 16px;
	background: var(--ges-gray-100);
	color: var(--ges-gray-600);
	font-size: 12.5px;
	line-height: 1.5;
}

.ges-sidebar {
	position: sticky;
	top: 24px;
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.ges-downloads {
	padding: 22px;
	border-radius: var(--ges-radius-md);
	background: var(--ges-gray-100);
}

.elementor.elementor-90 .elementor-element-8c8bf6d .ges-downloads {
	border-top: 1px solid var(--ges-gray-150);
	border-radius: 0 0 var(--ges-radius-md) var(--ges-radius-md);
	background: var(--gray-100);
}

.ges-downloads h2 {
	margin: 0 0 14px;
	color: var(--ges-gray-600);
}

.elementor.elementor-90 .elementor-element-8c8bf6d .ges-downloads h2 {
	color: var(--gray-600) !important;
}

.ges-downloads ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.ges-downloads li + li {
	border-top: 1px solid var(--ges-gray-150);
}

.ges-downloads a {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 8px 0;
	color: var(--ges-text);
	text-decoration: none;
}

.ges-downloads a:hover,
.ges-downloads a:focus-visible {
	color: var(--ges-teal-deep);
}

.ges-downloads__icon {
	display: grid;
	width: 22px;
	height: 22px;
	flex: 0 0 auto;
	place-items: center;
	border-radius: 50%;
	background: var(--ges-white);
	color: var(--ges-teal-deep);
}

.ges-downloads__icon svg {
	width: 13px;
	height: 13px;
	fill: none;
	stroke: currentcolor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.8;
}

.ges-downloads__title {
	font-size: 13px;
	font-weight: 500;
	line-height: 1.4;
}

.ges-contact {
	padding: 22px;
	border-radius: var(--ges-radius-md);
	background: var(--ges-teal-dark);
	color: var(--ges-white);
	box-shadow: var(--ges-shadow-sm);
}

.ges-contact :where(h2, h3, p, a) {
	color: inherit;
}

/* Component-level Atomic color bridge overrides Hello's generic link states. */
.ges-contact a:is(:hover, :focus-visible) {
	color: var(--orange, var(--ges-orange));
	text-decoration-color: currentColor;
}

.ges-contact h2 {
	margin: 0 0 14px;
	color: var(--ges-teal-icon);
}

.elementor.elementor-90 :is(
	.elementor-element-352d7d5,
	.elementor-element-f4c90c1
) .ges-contact h2 {
	color: var(--teal-icon-bg) !important;
}

.ges-contact__card-link {
	display: block;
	color: inherit;
	text-decoration: none;
}

.ges-contact__card-link:focus-visible {
	border-radius: var(--ges-radius-sm);
	outline: 2px solid var(--ges-teal-icon);
	outline-offset: 4px;
}

.ges-contact p {
	margin: 0;
	color: rgb(255 255 255 / 78%);
	font-size: 13px;
	line-height: 1.5;
}

.ges-contact__button {
	display: block;
	width: 100%;
	margin-top: 16px;
	padding: 14px;
	border-radius: var(--ges-radius-sm);
	background: var(--ges-white);
	color: var(--ges-teal-dark) !important;
	font-size: 12px;
	font-weight: 600;
	text-align: center;
	text-decoration: none;
}

.ges-contact__button:hover,
.ges-contact__button:focus-visible,
.ges-contact__card-link:hover .ges-contact__button,
.ges-contact__card-link:focus-visible .ges-contact__button {
	background: var(--ges-teal-icon);
}

.ges-contact__people {
	display: flex;
	flex-direction: column;
	gap: var(--ges-space-md, 16px);
	margin: 0;
	padding: 0;
	list-style: none;
}

.ges-contact__person {
	display: flex;
	align-items: flex-start;
	gap: var(--ges-space-sm, 12px);
	margin: 0;
}

.ges-contact__person + .ges-contact__person {
	padding-top: var(--ges-space-md, 16px);
	border-top: 1px solid rgb(255 255 255 / 18%);
}

.elementor .ges-contact__portrait {
	display: grid;
	width: 52px;
	height: 52px;
	flex: 0 0 52px;
	aspect-ratio: 1;
	place-items: center;
	border-radius: 50%;
	background: var(--ges-teal-icon);
	color: var(--ges-white);
	font-family: "Space Grotesk", Arial, sans-serif;
	font-size: var(--font-size-label, 12px);
	font-weight: 600;
	object-fit: cover;
}

.ges-contact__person-copy {
	min-width: 0;
}

.elementor .ges-contact__person h3 {
	margin: 0 0 3px;
	color: var(--ges-white);
	font-family: "Space Grotesk", Arial, sans-serif;
	font-size: var(--font-size-meta, 14px);
	font-weight: 600;
	line-height: 1.25;
}

.ges-contact__details {
	display: flex;
	flex-direction: column;
	gap: 3px;
	margin-top: var(--ges-space-xs, 8px);
}

.ges-contact__details a {
	font-size: 12px;
	line-height: 1.4;
	text-decoration-color: rgb(255 255 255 / 45%);
	text-underline-offset: 2px;
}

.ges-footer {
	position: relative;
	width: 100% !important;
	max-width: none !important;
	flex: 0 0 auto !important;
	margin: 0 !important;
	padding: clamp(44px, 4vw, 60px) 0 18px !important;
	border-width: 3px 0 0 !important;
	border-style: solid !important;
	border-image: var(--ges-accent-gradient) 1 !important;
	background: var(--ges-teal-dark);
	color: rgb(255 255 255 / 82%);
}

.ges-footer::before {
	display: none;
}

.ges-footer__inner {
	width: calc(100% - (2 * var(--ges-gutter))) !important;
	max-width: 1440px !important;
	inline-size: calc(100% - (2 * var(--ges-gutter))) !important;
	max-inline-size: 1440px !important;
	flex: 0 0 auto !important;
	margin-inline: auto !important;
	align-self: auto !important;
}

.ges-footer__grid {
	display: grid !important;
	grid-template-columns: minmax(280px, 1.3fr) repeat(2, minmax(180px, 0.7fr));
	gap: clamp(36px, 5vw, 72px);
}

.ges-footer__brand,
.ges-footer__column {
	min-width: 0;
}

.ges-footer__logo {
	width: 178px !important;
	max-width: 178px !important;
	margin-bottom: 18px;
	padding: 10px 14px;
	border-radius: var(--ges-radius-md);
	background: var(--ges-white);
}

.ges-footer__logo img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 68px;
	object-fit: contain;
	object-position: left center;
}

.ges-footer .elementor-heading-title,
.ges-footer :where(h2, h3, h4, h5, h6) {
	margin: 0;
	color: var(--ges-white) !important;
	font-family: "Space Grotesk", Arial, sans-serif;
}

.ges-footer__heading .elementor-heading-title {
	margin-bottom: 18px;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.25;
}

.ges-footer p,
.ges-footer a {
	color: rgb(255 255 255 / 82%);
}

.ges-footer p {
	margin: 0;
	line-height: 1.65;
}

.ges-footer__claim {
	max-width: 300px;
	margin-bottom: 18px !important;
	color: var(--ges-white) !important;
	font-family: "Space Grotesk", Arial, sans-serif;
	font-size: 17px;
	font-weight: 600;
}

.ges-footer__address {
	margin-bottom: 14px;
	color: rgb(255 255 255 / 78%);
	font-style: normal;
	line-height: 1.6;
}

.ges-footer ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.ges-footer li + li {
	margin-top: 12px;
}

.ges-footer__links a {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	text-decoration: none;
	transition: color 160ms ease, transform 160ms ease;
}

.ges-footer__links a::before {
	width: 7px;
	height: 7px;
	flex: 0 0 7px;
	border-radius: 50%;
	background: var(--ges-orange);
	content: "";
}

.ges-footer a:hover,
.ges-footer a:focus-visible {
	color: var(--ges-white) !important;
}

.ges-footer__links a:hover,
.ges-footer__links a:focus-visible {
	transform: translateX(4px);
	outline: none;
}

.ges-footer__bottom {
	display: flex !important;
	flex-direction: row !important;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	margin-top: clamp(30px, 3vw, 44px);
	padding-top: 16px;
	border-top: 1px solid rgb(255 255 255 / 18%);
}

.ges-footer__bottom p,
.ges-footer__bottom a {
	font-size: 13px;
}

/* Shared bridge for every native WordPress menu inside the Atomic footer. */
.elementor .section-footer {
	border-width: 3px 0 0 !important;
	border-style: solid !important;
	border-image: var(--ges-accent-gradient) 1 !important;
}

body .elementor .section-footer .elementor-widget-nav-menu .elementor-nav-menu--main { display: block !important; overflow: visible; }
body .elementor .section-footer .elementor-widget-nav-menu .elementor-menu-toggle,
body .elementor .section-footer .elementor-widget-nav-menu .elementor-nav-menu--dropdown { display: none !important; }
body .elementor .section-footer .elementor-widget-nav-menu .elementor-nav-menu--main > ul.elementor-nav-menu { display: flex !important; align-items: stretch !important; flex-direction: column !important; }
body .elementor .section-footer .elementor-widget-nav-menu .elementor-nav-menu--main > ul.elementor-nav-menu > li { position: relative !important; width: 100% !important; box-sizing: border-box; margin: 0 !important; padding-inline-start: 30px !important; }
body .elementor .section-footer .elementor-widget-nav-menu .elementor-nav-menu--main > ul.elementor-nav-menu > li + li { margin-top: 8px !important; }
body .elementor .section-footer .elementor-widget-nav-menu .elementor-nav-menu--main > ul.elementor-nav-menu > li::before { position: absolute; top: .62em; left: 2px; width: 9px; height: 8px; border-radius: 2px; background: var(--orange, var(--ges-orange)); content: ""; }
body .elementor .section-footer .elementor-widget-nav-menu .elementor-nav-menu--main > ul.elementor-nav-menu > li > a.elementor-item { min-height: 0 !important; padding: 0 !important; background: transparent !important; color: rgb(255 255 255 / 82%) !important; font-family: var(--font-inter), Inter, Arial, sans-serif; font-size: var(--font-size-meta, 14px) !important; font-weight: 400 !important; line-height: 1.5 !important; text-decoration: none !important; transition: color 160ms ease, transform 160ms ease; }
body .elementor .section-footer .elementor-widget-nav-menu .elementor-nav-menu--main > ul.elementor-nav-menu > li > a.elementor-item::after { display: none !important; }
body .elementor .section-footer .elementor-widget-nav-menu .elementor-nav-menu--main > ul.elementor-nav-menu > li > a.elementor-item:is(:hover, :focus-visible) { color: var(--white, var(--ges-white)) !important; transform: translateX(4px); outline: none; }

/* Empty editor placeholder converted to Elementor's Font Awesome Instagram icon. */
.elementor.elementor-71 .elementor-element-f47e44b { width: max-content; margin-top: var(--spacing-flow, 24px); }
.elementor.elementor-71 .elementor-element-f47e44b .elementor-icon { display: inline-grid; width: 36px; height: 36px; place-items: center; border: 1px solid rgb(255 255 255 / 24%); border-radius: var(--radius-small, var(--ges-radius-sm)); color: var(--teal-icon-bg, var(--ges-teal-icon)); font-size: var(--font-size-heading-small, 20px); transition: border-color 160ms ease, color 160ms ease, transform 160ms ease; }
.elementor.elementor-71 .elementor-element-f47e44b .elementor-icon:is(:hover, :focus-visible) { border-color: rgb(255 255 255 / 55%); color: var(--white, var(--ges-white)); transform: translateY(-2px); outline: none; }

/* Elementor Atomic post loop. Structural fallbacks complement the Kit classes. */
.elementor .g-0a72d38,
.elementor .loop-section {
	display: flex;
	width: 100% !important;
	flex-direction: column !important;
	align-items: stretch !important;
	border-radius: var(--ges-radius-lg);
}

.elementor .g-bd2deba,
.elementor .g-bd2deba .elementor-heading-title,
.elementor .loop-section__inner,
.elementor .loop-section__inner .elementor-heading-title {
	margin-inline: auto;
	text-align: left;
}

.elementor .g-bd2deba .elementor-heading-title,
.elementor .loop-section__inner .elementor-heading-title {
	margin-inline: 0;
}

.elementor .ges-post-loop-grid {
	width: 100%;
	margin-top: clamp(34px, 5vw, 64px);
}

.elementor .ges-post-loop-grid .elementor-loop-container {
	align-items: stretch;
}

.elementor .ges-post-loop-grid .e-loop-item {
	height: 100%;
}

.elementor .g-a41c9d2,
.elementor .loop-card {
	display: flex !important;
	width: 100% !important;
	height: 100%;
	flex-direction: column !important;
	padding: 0 !important;
	overflow: hidden;
	border-radius: var(--ges-radius-lg);
	background: var(--ges-white);
	box-shadow: var(--ges-shadow-sm);
	transition: box-shadow 180ms ease, transform 180ms ease;
	color: inherit;
	cursor: pointer;
	text-decoration: none;
}

.elementor .g-a41c9d2 > .elementor-element,
.elementor .g-a41c9d2 > .e-con-inner,
.elementor .loop-card > .elementor-element,
.elementor .loop-card > .e-con-inner {
	margin-inline: 0;
}

.elementor .g-a41c9d2:hover,
.elementor .loop-card:hover {
	box-shadow: var(--ges-shadow-md);
	transform: translateY(-4px);
}

.elementor .g-a41c9d2:focus-visible,
.elementor .loop-card:focus-visible {
	outline: 3px solid var(--teal-feature, var(--ges-teal-feature));
	outline-offset: 4px;
	box-shadow: var(--ges-shadow-md);
	transform: translateY(-4px);
}

.elementor .g-b52d8e3,
.elementor .g-b52d8e3 img,
.elementor .loop-media,
.elementor .loop-media img {
	display: block;
	width: 100%;
	height: 220px;
	object-fit: cover;
}

.elementor .g-b52d8e3,
.elementor .g-b52d8e3 > .elementor-widget-container,
.elementor .g-b52d8e3 a,
.elementor .g-b52d8e3 figure,
.elementor .loop-media,
.elementor .loop-media > .elementor-widget-container,
.elementor .loop-media a,
.elementor .loop-media figure {
	margin: 0;
	padding: 0;
}

.elementor .g-c63e9f4,
.elementor .loop-content {
	display: flex !important;
	width: 100% !important;
	flex: 1;
	flex-direction: column !important;
	align-items: flex-start !important;
	gap: 10px;
	padding: var(--spacing-flow, var(--ges-flow-space, 24px));
}

/* Elementor Theme Builder: single blog post. */
.elementor .elementor-element-5386f5f {
	width: min(100%, 920px);
	margin-inline: auto;
}

.elementor .g-cc68862,
.elementor .g-cc68862 > .elementor-widget-container,
.elementor .g-cc68862 img,
.elementor .single-post-media,
.elementor .single-post-media > .elementor-widget-container,
.elementor .single-post-media img {
	display: block;
	width: 100%;
	margin: 0;
	padding: 0;
	border-radius: var(--radius-large, var(--ges-radius-lg));
}

.elementor .g-cc68862 img,
.elementor .single-post-media img {
	aspect-ratio: 16 / 8;
	object-fit: cover;
}

.elementor .g-65be495,
.elementor .single-post-content,
.elementor .ges-single-post__content {
	font-family: var(--font-inter), Inter, Arial, sans-serif;
	font-size: var(--font-size-body, 16px);
	line-height: 1.75;
}

.elementor .g-65be495 > * + *,
.elementor .single-post-content > * + *,
.elementor .ges-single-post__content > * + * {
	margin-block-start: var(--spacing-flow, 24px);
}

.elementor .g-2a2c4c9,
.elementor .single-post-back {
	color: var(--teal-feature, var(--ges-teal-feature));
	font-family: var(--font-inter), Inter, Arial, sans-serif;
	font-weight: 600;
	text-decoration: none;
}

.elementor .g-d74fa05,
.elementor .loop-badge {
	display: inline-flex;
	width: fit-content;
	max-width: max-content;
	align-self: flex-start;
	align-items: center;
	flex: 0 0 auto;
	margin: 0 0 2px;
	min-height: var(--spacing-flow, 24px);
	padding: 0 12px;
	transform: translateX(calc(var(--spacing-compact, 16px) / -4));
	border-radius: var(--radius-small, var(--ges-radius-sm));
	background: var(--teal-tag-bg, var(--ges-teal-tag));
	color: var(--teal-feature, var(--ges-teal-feature));
	font-family: var(--font-inter), Inter, Arial, sans-serif;
	font-size: var(--font-size-label, 12px);
	font-weight: 600;
	letter-spacing: .06em;
	line-height: 1.2;
	text-transform: uppercase;
}

.elementor .g-d74fa05 > span,
.elementor .loop-badge > span {
	display: block;
	line-height: inherit;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.elementor .g-d74fa05 > .elementor-widget-container,
.elementor .loop-badge > .elementor-widget-container {
	display: inline-flex;
	width: fit-content;
}

.elementor .g-e850b16,
.elementor .g-e850b16 .elementor-heading-title,
.elementor .g-f961c27,
.elementor .loop-title,
.elementor .loop-title .elementor-heading-title,
.elementor .loop-meta {
	margin: 0;
}

.elementor .g-e850b16,
.elementor .g-e850b16 .elementor-heading-title,
.elementor .g-e850b16 a,
.elementor .loop-title,
.elementor .loop-title .elementor-heading-title,
.elementor .loop-title a {
	font-size: var(--font-size-body, 16px);
	line-height: 1.35;
}

.elementor .g-f961c27,
.elementor .loop-meta {
	color: var(--gray-400, var(--ges-gray-400));
	font-size: var(--font-size-meta, 14px);
	line-height: 1.5;
}

.elementor .g-e850b16 a {
	color: inherit;
	text-decoration: none;
}

.elementor .g-e850b16 a:hover,
.elementor .g-e850b16 a:focus-visible {
	color: var(--ges-orange-deep);
}

/* Reusable single CTA card. */
.elementor .g-1b83e49 {
	position: relative;
	min-height: 320px;
	overflow: hidden;
	box-shadow: var(--ges-shadow-sm);
	transition: background-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.elementor .g-1b83e49::after {
	position: absolute;
	right: 28px;
	bottom: 26px;
	color: var(--ges-orange);
	font-family: "Space Grotesk", Arial, sans-serif;
	font-size: 28px;
	font-weight: 700;
	content: "→";
	transition: transform 180ms ease;
}

.elementor .g-1b83e49:hover {
	background: var(--ges-teal-icon);
	box-shadow: var(--ges-shadow-md);
	transform: translateY(-4px);
}

.elementor .g-1b83e49:hover::after {
	transform: translateX(5px);
}

.ges-cta-card__icon {
	display: inline-flex;
	width: 62px !important;
	height: 62px;
	align-items: center;
	justify-content: center;
	border-radius: var(--ges-radius-md);
	background: var(--ges-teal-icon);
}

.ges-cta-card__icon .elementor-icon {
	color: var(--ges-teal-feature);
	font-size: 25px;
}

.elementor .g-2c94f50,
.elementor .g-2c94f50 .elementor-heading-title,
.elementor .g-3da5061 {
	margin: 0;
}

.elementor .g-2c94f50 a {
	color: inherit;
	text-decoration: none;
}

.elementor .g-2c94f50 a:hover,
.elementor .g-2c94f50 a:focus-visible {
	color: var(--ges-orange-deep);
}

/* Calendar loop card and metadata accents. */
.elementor .ges-calendar-loop-grid {
	width: 100%;
}

.elementor .ges-calendar-loop-grid .elementor-loop-container {
	align-items: stretch;
}

.elementor .ges-calendar-loop-grid .e-loop-item,
.elementor .g-4eb6172 {
	height: 100%;
}

.elementor .g-4eb6172 {
	min-height: 280px;
	gap: 16px;
	box-shadow: var(--ges-shadow-sm);
	transition: box-shadow 180ms ease, transform 180ms ease;
}

.elementor .g-4eb6172:hover {
	box-shadow: var(--ges-shadow-md);
	transform: translateY(-4px);
}

.elementor .g-4eb6172 > .e-flexbox:first-child {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 12px;
}

.elementor .g-4eb6172 > .e-flexbox:first-child > .e-flexbox {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.ges-calendar-card__icon {
	display: inline-flex;
	width: 52px !important;
	height: 52px;
	flex: 0 0 52px;
	align-items: center;
	justify-content: center;
	border-radius: var(--ges-radius-md);
	background: var(--ges-teal-feature);
}

.ges-calendar-card__icon .elementor-icon {
	color: var(--ges-white);
	font-size: 22px;
}

.ges-event-accent--orange .ges-calendar-card__icon {
	background: var(--ges-orange);
}

.ges-event-accent--aqua .ges-calendar-card__icon {
	background: var(--ges-teal-mid);
}

.elementor .g-5fc7283,
.elementor .g-60d8394,
.elementor .g-71e9405,
.elementor .g-71e9405 .elementor-heading-title,
.elementor .g-82fa516,
.elementor .g-930b627 {
	margin: 0;
}

.elementor .g-71e9405 a,
.elementor .g-930b627 a {
	color: inherit;
	text-decoration: none;
}

.elementor .g-930b627 {
	margin-top: auto;
}

.elementor .g-930b627 a:hover,
.elementor .g-930b627 a:focus-visible,
.elementor .g-71e9405 a:hover,
.elementor .g-71e9405 a:focus-visible {
	color: var(--ges-orange-deep);
}

@media (max-width: 1024px) {
	.elementor.elementor-90 {
		--ges-copy-inset: 32px;
		--ges-intro-column-gap: 32px;
		--ges-sidebar-width: 280px;
	}

	.elementor.elementor-90 .elementor-element.elementor-element-ed57cf3 {
		gap: 32px;
		padding: 32px;
	}

	.elementor .standard-page-intro {
		--ges-copy-inset: 32px;
		--ges-intro-column-gap: 32px;
		--ges-sidebar-width: 280px;
		gap: 32px;
		padding: 32px;
	}

	.elementor.elementor-90 .elementor-element.elementor-element-349d839 {
		gap: 36px;
	}

	.ges-header__inner {
		display: flex !important;
		flex-wrap: wrap;
		padding-block: 8px !important;
	}

	.ges-header__logo {
		min-width: 0;
		width: 200px !important;
		max-width: 200px !important;
		flex: 1;
	}

	.ges-header__nav {
		order: 3;
		width: 100%;
		flex-basis: 100%;
	}

	.ges-intro,
	.ges-content-grid {
		grid-template-columns: minmax(0, 1fr) 260px;
		gap: 32px;
	}

	.ges-footer__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	:root {
		--ges-gutter: 18px;
	}

	.elementor.elementor-90 {
		--ges-copy-inset: 22px;
		--ges-intro-column-gap: 22px;
		--ges-sidebar-width: 100%;
	}

	.elementor .standard-page-intro {
		--ges-copy-inset: 22px;
		--ges-intro-column-gap: 22px;
		--ges-sidebar-width: 100%;
		flex-direction: column;
		gap: 22px;
		margin-block-start: -56px;
		padding: 24px 22px;
		border-radius: var(--radius-medium);
		overflow: hidden;
	}

	.ges-alert {
		--min-height: 40px;
		min-height: 40px !important;
		padding: 0 14px !important;
	}

	.ges-alert__inner {
		--min-height: 40px;
		min-height: 40px !important;
	}

	.elementor .ges-alert__text,
	.elementor .ges-alert__text .elementor-heading-title {
		font-size: 15px;
	}

	.elementor.elementor-90 .elementor-element.elementor-element-ed57cf3 {
		flex-direction: column;
		gap: 22px;
		margin-block-start: -56px;
		padding: 24px 22px;
		border-radius: var(--radius-medium);
		overflow: hidden;
	}

	.elementor.elementor-90 .elementor-element.elementor-element-28da176 {
		width: 100%;
		flex-basis: auto;
	}

	.elementor .standard-page-intro > .elementor-element-28da176 {
		width: 100%;
		flex-basis: auto;
	}

	.elementor.elementor-90 .elementor-element.elementor-element-66c445e {
		position: static;
		width: 100%;
		flex-basis: auto;
	}

	.elementor.elementor-90 .elementor-element.elementor-element-349d839 {
		flex-direction: column;
		gap: 36px;
		padding-block: 48px 64px;
	}

	.elementor.elementor-90 .elementor-element.elementor-element-7dd9a20 {
		display: none;
	}

	.elementor.elementor-90 .elementor-element.elementor-element-857dc8b {
		padding: 20px;
	}

	/* The hidden mobile TOC no longer supplies the upper half of the joined card. */
	.elementor.elementor-90 .elementor-element-8c8bf6d .ges-downloads {
		border-top: 0;
		border-radius: var(--ges-radius-md);
	}

	.elementor.elementor-90 .elementor-element-5425847 {
		font-size: 17px;
		line-height: 1.7;
	}

	.ges-header__inner {
		--min-height: 72px;
		display: flex !important;
		min-height: 72px !important;
		flex-wrap: nowrap;
		padding-block: 6px !important;
	}

	.ges-header__logo {
		width: 150px !important;
		max-width: 150px !important;
		flex: 0 0 150px;
	}

	.ges-header__cta {
		display: none;
	}

	.ges-header__nav {
		order: initial;
		width: auto;
		flex: 0 0 auto;
	}

	.ges-page-hero {
		height: 300px;
	}

	.ges-page-layout {
		margin-top: -64px;
		margin-bottom: 64px;
	}

	.ges-intro {
		display: flex;
		flex-direction: column;
		gap: 30px;
		padding: 28px 22px;
	}

	.ges-intro__title .elementor-heading-title {
		font-size: clamp(36px, 12vw, 52px);
	}

	.ges-content-grid {
		display: flex;
		flex-direction: column;
		gap: 40px;
		margin-top: 40px;
	}

	.ges-footer__grid {
		display: grid !important;
		grid-template-columns: 1fr;
		gap: 36px;
	}

	.ges-footer {
		width: 100% !important;
	}

	.elementor .g-b52d8e3,
	.elementor .g-b52d8e3 img,
	.elementor .loop-media,
	.elementor .loop-media img {
		height: 210px;
	}

	.elementor .g-1b83e49 {
		min-height: 280px;
		padding: 24px;
	}

	.elementor .g-4eb6172 {
		min-height: 260px;
	}

	.ges-footer__bottom {
		flex-direction: column !important;
		align-items: flex-start;
		gap: 8px;
	}

	.ges-sidebar {
		position: static;
		width: 100%;
	}

	.ges-main-content :where(p, li):not(:where(.elementor-editor-element-setting, .elementor-element-overlay *)) {
		font-size: 17px;
	}

	.ges-main-content blockquote,
	.ges-quote {
		padding: 24px;
	}

	.ges-footer__grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}
}

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