/*
Theme Name: Hello Elementor Child
Template: hello-elementor
Version: 1.0.0
Text Domain: hello-elementor-child
*/

/* Text links */
main a:not(.elementor-button):not(.rank-math-breadcrumb *),
.hentry a:not(.elementor-button):not(.rank-math-breadcrumb *),
.elementor-widget-text-editor a:not(.elementor-button):not(.rank-math-breadcrumb *) {
  text-decoration: 2px underline #0094d1 !important;
}

main a:not(.elementor-button):not(.rank-math-breadcrumb *):hover,
.hentry a:not(.elementor-button):not(.rank-math-breadcrumb *):hover,
.elementor-widget-text-editor a:not(.elementor-button):not(.rank-math-breadcrumb *):hover {
  text-decoration-color: #063370 !important;
}

/* Text links on blue backgrounds (Elementor CSS class: text-links-on-blue) */
.elementor .text-links-on-blue a:not(.elementor-button) {
  text-decoration: 2px underline #3f3f3f !important;
}

/* Loop post titles */
.e-loop-item .elementor-widget-theme-post-title h3.elementor-heading-title,
.e-loop-item .elementor-widget-theme-post-title h3.elementor-heading-title > a {
  color: #3f3f3f !important;
  font-weight: 700 !important;
}

.e-loop-item .elementor-widget-theme-post-title h3.elementor-heading-title > a {
  text-decoration: none !important;
}

.e-loop-item .elementor-widget-theme-post-title h3.elementor-heading-title > a:hover {
  text-decoration: 2px underline #3f3f3f !important;
}

/* Hide placeholder images in member section */
.single-mitglied img.e-image-base[src*="/elementor/assets/images/placeholder-v4.svg"],
.single-mitglieder img.e-image-base[src*="/elementor/assets/images/placeholder-v4.svg"] {
  display: none !important;
}

/* Optional external member link */
.oegv-member-link {
  display: flex;
  flex-direction: row;
  justify-content: flex-start;
  align-items: center;
  width: 100%;
  max-width: 100%;
  column-gap: 0;
  padding: 0;
}

.oegv-member-link:not(:has(a[href]:not([href=""], [href="#"]))) {
  display: none !important;
}

.oegv-member-link a {
  width: auto;
  font-family: "Inter", sans-serif !important;
  font-size: 18px !important;
  font-weight: 400 !important;
  font-style: normal !important;
  line-height: 1.56em !important;
  letter-spacing: 0 !important;
  color: #3f3f3f !important;
  text-decoration: 2px underline #0094d1 !important;
  text-transform: none !important;
  overflow-wrap: anywhere;
}

/* Unified external text links */
:is([data-elementor-type="page"], [data-elementor-type="wp-post"])
  a[href^="http"]:not([href*="oegv.dmcgroup.eu"]):not([href*="genossenschaftsverband.at"]):not(.elementor-button):not(.elementor-icon):not(
    .elementor-social-icon
  ):not(:has(img, svg)),
.oegv-member-link a:not(:has(a)):last-of-type {
  display: inline-flex;
  align-items: center;
  column-gap: 2px;
  max-width: 100%;
}

:is([data-elementor-type="page"], [data-elementor-type="wp-post"])
  a[href^="http"]:not([href*="oegv.dmcgroup.eu"]):not([href*="genossenschaftsverband.at"]):not(.elementor-button):not(.elementor-icon):not(
    .elementor-social-icon
  ):not(:has(img, svg))::after,
.oegv-member-link a:not(:has(a)):last-of-type::after {
  content: "";
  display: inline-block;
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  background: url("/wp-content/uploads/external-link-icon.png") center / contain no-repeat;
}

/* Replace older standalone Elementor icon widgets with the unified icon. */
:is([data-elementor-type="page"], [data-elementor-type="wp-post"])
  .e-heading-base:has(> a[href^="http"]:not([href*="oegv.dmcgroup.eu"]):not([href*="genossenschaftsverband.at"]))
  + img.e-image-base,
.single-news
  [data-elementor-post-type="news"]
  .elementor-widget-text-editor:has(a[href^="http"]:not([href*="oegv.dmcgroup.eu"]):not([href*="genossenschaftsverband.at"]))
  + .elementor-widget-icon {
  display: none !important;
}

@media (max-width: 1024px) {
  .oegv-member-link a {
    font-size: 16px !important;
    line-height: 1.48em !important;
  }
}

@media (max-width: 767px) {
  .oegv-member-link a {
    font-size: 17px !important;
    line-height: 1.37em !important;
  }
}

/* Hide auto post title */
h1.entry-title {
  display: none !important;
}

a:not(header a):not(:where(.cky-consent-container *, .cky-modal *, .cky-btn-revisit-wrapper *)):hover {
  text-decoration: 2px underline !important;
}

.rank-math-breadcrumb a {
  text-decoration: none !important;
}

.rank-math-breadcrumb p {
  flex-wrap: wrap !important;
}

footer a {
  color: #fff !important;
}

/* Keep translated page sections behind the footer during entrance reveals. */
.elementor-location-footer {
  position: relative;
  z-index: 3;
}

/* Mobile dropdown menu height */
nav.elementor-nav-menu--dropdown.elementor-nav-menu__container {
  height: 100vh !important;
  max-height: 100vh !important;
  overflow-y: auto !important;
}

nav.elementor-nav-menu--dropdown .sub-menu > li,
nav.elementor-nav-menu--dropdown .sub-menu > li > a {
  text-align: center;
}

nav.elementor-nav-menu--dropdown > .elementor-nav-menu > li > a {
  font-weight: 600 !important;
}

.elementor-button {
  fill: currentColor;
}

.elementor-button,
.elementor-button:hover,
.elementor-button:focus,
.elementor-button .elementor-button-text {
  text-decoration: none !important;
  text-align: center;
}

/* Desktop menu */
.elementor-nav-menu a,
.elementor-nav-menu li {
  text-decoration: none;
}

@media (min-width: 1025px) {
  .elementor-nav-menu li:hover {
    box-shadow: 0 3px 0 0 #0094d1;
  }
}

.elementor-nav-menu .elementor-item {
  text-transform: none !important;
}

.current_page_item,
.current-page-ancestor {
  /*text-decoration: 3px underline #0bbbef !important;*/
  box-shadow: 0 3px 0 0 #063370;
}

/* Header layout: keep menu and search together */
.elementor-location-header .e-con-inner {
  display: flex !important;
  align-items: center !important;
}

/* Logo stays left */
.elementor-location-header .elementor-widget-theme-site-logo {
  margin-right: auto !important;
}

/* Desktop nav should not stretch */
.elementor-location-header .elementor-element-6f99a71c {
  width: auto !important;
  flex: 0 0 auto !important;
}

/* Search widget sits directly after menu */
.elementor-location-header .elementor-element-bdb3fc0 {
  width: 44px !important;
  flex: 0 0 44px !important;
  margin-left: 28px !important;
  position: relative !important;
  z-index: 20;
}

/* Header search variables */
.elementor-location-header .e-search {
  --search-size: 40px;
  --search-open-width: 240px;
  width: var(--search-size) !important;
  height: var(--search-size) !important;
  display: block !important;
  position: relative !important;
}

/* Collapsed search form */
.elementor-location-header .e-search .e-search-form {
  position: absolute !important;
  top: 50% !important;
  right: 0 !important;
  transform: translateY(-50%) !important;

  width: var(--search-size) !important;
  height: var(--search-size) !important;
  min-width: var(--search-size) !important;
  max-width: var(--search-open-width) !important;

  overflow: hidden !important;
  transition: width 0.25s ease !important;
  box-sizing: border-box !important;
  cursor: pointer !important;
}

/* Open search form - expands left, icon stays fixed */
.elementor-location-header .e-search .e-search-form:focus-within {
  width: var(--search-open-width) !important;
}

/* Keyboard focus — visible on links, buttons and form controls */
a:focus-visible:not(:where(.cky-consent-container *, .cky-modal *, .cky-btn-revisit-wrapper *)),
button:focus-visible:not(:where(.cky-consent-container *, .cky-modal *, .cky-btn-revisit-wrapper *)),
input:focus-visible:not(:where(.cky-consent-container *, .cky-modal *, .cky-btn-revisit-wrapper *)),
select:focus-visible:not(:where(.cky-consent-container *, .cky-modal *, .cky-btn-revisit-wrapper *)),
textarea:focus-visible:not(:where(.cky-consent-container *, .cky-modal *, .cky-btn-revisit-wrapper *)),
.elementor-button:focus-visible {
  outline: 2px solid #063370;
  outline-offset: 3px;
  box-shadow: 0 0 0 4px #fff;
  position: relative;
  z-index: 9999;
}

/* Input wrapper */
.elementor-location-header .e-search .e-search-input-wrapper {
  width: 100% !important;
  height: var(--search-size) !important;
}

/* Search input */
.elementor-location-header .e-search .e-search-input {
  width: 100% !important;
  height: var(--search-size) !important;
  min-height: var(--search-size) !important;
  line-height: var(--search-size) !important;

  padding: 0 calc(var(--search-size) + 8px) 0 16px !important;

  border: 1px solid #3f3f3f !important;
  border-radius: 20px !important;
  background: #fff !important;
  box-shadow: none !important;

  opacity: 0;
  box-sizing: border-box !important;
  transition: opacity 0.2s ease !important;
  cursor: pointer !important;
}

/* Show input when active */
.elementor-location-header .e-search .e-search-form:focus-within .e-search-input {
  opacity: 1;
  cursor: text !important;
}

/* Search submit button */
.elementor-location-header .e-search .e-search-submit {
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;

  width: var(--search-size) !important;
  height: var(--search-size) !important;
  min-width: var(--search-size) !important;
  min-height: var(--search-size) !important;

  padding: 0 !important;
  margin: 0 !important;

  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
  outline: none !important;

  display: flex !important;
  align-items: center !important;
  justify-content: center !important;

  cursor: pointer !important;
  z-index: 5;
}

/* First click focuses/opens instead of submitting empty search */
.elementor-location-header .e-search .e-search-form:not(:focus-within) .e-search-submit {
  pointer-events: none;
}

/* Search icon */
.elementor-location-header .e-search .e-search-submit svg {
  width: 22px !important;
  height: 22px !important;
  fill: #000 !important;
  color: #000 !important;
  pointer-events: none;
}

/* No hover/focus background */
.elementor-location-header .e-search .e-search-submit:hover,
.elementor-location-header .e-search .e-search-submit:focus {
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
}

/* Hide reset X while collapsed */
.elementor-location-header .e-search .e-search-form:not(:focus-within) .e-fas-times {
  display: none !important;
}

/* Hide results while collapsed */
.elementor-location-header .e-search .e-search-form:not(:focus-within) .e-search-results-container {
  display: none !important;
}

/* Optional: reduce gap on smaller desktop widths */
@media (max-width: 1200px) {
  .elementor-location-header .elementor-element-bdb3fc0 {
    margin-left: 4px !important;
  }

  .elementor-location-header .e-search {
    --search-open-width: 240px;
  }
}

/* Prevent header items from reflowing when search opens */
.elementor-location-header .elementor-element-6f99a71c,
.elementor-location-header .elementor-element-bdb3fc0 {
  transition:
    opacity 0.2s ease,
    visibility 0.2s ease !important;
}

/* Keep search widget fixed in the layout */
.elementor-location-header .elementor-element-bdb3fc0 {
  width: 44px !important;
  flex: 0 0 44px !important;
  overflow: visible !important;
  position: relative !important;
  z-index: 50 !important;
}

/* Keep search wrapper fixed too */
.elementor-location-header .elementor-element-bdb3fc0 .e-search {
  width: 44px !important;
  height: 44px !important;
  overflow: visible !important;
  position: relative !important;
}

/* Search form expands left without pushing anything */
.elementor-location-header .elementor-element-bdb3fc0 .e-search-form {
  position: absolute !important;
  top: 50% !important;
  right: 0 !important;
  transform: translateY(-50%) !important;
  width: 44px !important;
  height: 44px !important;
  overflow: hidden !important;
  transition: width 0.25s ease !important;
}

/* Open search */
.elementor-location-header .elementor-element-bdb3fc0 .e-search-form:focus-within {
  width: 240px !important;
}

/* Hide primary desktop menu when search is open, without changing layout */
.elementor-location-header .e-con-inner:has(.elementor-element-bdb3fc0 .e-search-form:focus-within) .elementor-element-6f99a71c {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* Show primary menu normally when search is closed */
.elementor-location-header .elementor-element-6f99a71c {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}

/* Keep Elementor's sticky spacer invisible while preserving its layout height */
.elementor-location-header .elementor-sticky__spacer,
.elementor-location-header .elementor-sticky__spacer * {
  visibility: hidden !important;
  pointer-events: none !important;
}

.elementor-location-header .elementor-sticky,
.elementor-location-header .elementor-sticky--active,
.elementor-location-header .elementor-sticky__spacer {
  transition: none !important;
  animation: none !important;
}

/* Make sure search field appears above the hidden menu */
.elementor-location-header .e-con-inner:has(.elementor-element-bdb3fc0 .e-search-form:focus-within) .elementor-element-bdb3fc0 {
  z-index: 100 !important;
}

/* Breadcrumb */
.rank-math-breadcrumb {
  width: 100%;
  display: flex;
  justify-content: flex-end;
}

.rank-math-breadcrumb p {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  color: #3f3f3f;
  font-size: 0.9em;
}

.rank-math-breadcrumb a {
  display: inline-flex;
  align-items: center;
  color: #3f3f3f;
  text-decoration: none;
  font-weight: 400;
}

/* No arrow on breadcrumb links by default */
.rank-math-breadcrumb a::before {
  content: none;
}

/* Arrow only on the first item */
.rank-math-breadcrumb p > a:first-child::before {
  content: "";
  display: inline-block;
  width: 12px;
  height: 10px;
  margin-right: 14px;
  background-color: currentColor;
  flex-shrink: 0;

  -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='12' height='10' viewBox='0 0 12 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.333 5H0.999675M4.99967 9L0.999675 5L4.99967 1' stroke='%233F3F3F' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: contain;

  mask-image: url("data:image/svg+xml,%3Csvg width='12' height='10' viewBox='0 0 12 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.333 5H0.999675M4.99967 9L0.999675 5L4.99967 1' stroke='%233F3F3F' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
}

/* First separator: vertical divider */
.rank-math-breadcrumb .separator:first-of-type {
  display: inline-block;
  width: 1px;
  height: 24px;
  background: #d3d3d3;
  color: transparent;
  overflow: hidden;
  flex-shrink: 0;
}

/* All later separators: > */
.rank-math-breadcrumb .separator:not(:first-of-type) {
  display: inline-flex;
  width: auto;
  height: auto;
  background: none;
  color: transparent;
  overflow: visible;
  flex-shrink: 0;
}

.rank-math-breadcrumb .separator:not(:first-of-type)::before {
  content: ">";
  color: #3f3f3f;
  font-size: 1em;
  line-height: 1;
}

.rank-math-breadcrumb .last {
  color: #3f3f3f;
  font-weight: 400;
}

.rank-math-breadcrumb .last {
  color: #3f3f3f;
  font-weight: 400;
}

/* Atomic vCard button */
.elementor a.button-vcf.e-button-base {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;

  padding: 10px 16px;
  border: 2px solid #0094d1;
  border-radius: 50px;
  background: transparent;

  color: #063370;
  font-family: "Inter", sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.5;
  text-decoration: none !important;
}

/* Download icon — atomic markup currently has none */
.elementor a.button-vcf.e-button-base::before {
  content: "";
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  background-color: currentColor;

  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24z'/%3E%3C/svg%3E")
    center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24z'/%3E%3C/svg%3E")
    center / contain no-repeat;
}

.elementor a.button-vcf.e-button-base:hover,
.elementor a.button-vcf.e-button-base:focus {
  border-color: #063370;
  background: #063370;
  color: #fff;
  text-decoration: none;
}

/* Loop element adjustments (Initiativbewerbung */
.elementor-loop-container.elementor-grid .post-7045 a {
  border: 2px solid #0bbbef;
}

#gewerbe-grid .e-loop-item > a,
#jobs-grid .e-loop-item > a,
#search-grid .e-child {
  text-decoration: none !important;
}

/* Gravity Forms: use theme typography */
.gform_wrapper {
  font-family: inherit !important;
  font-size: inherit !important;
}

.gform_wrapper input:not([type="checkbox"]):not(.gfield-choice-input),
.gform_wrapper select,
.gform_wrapper textarea {
  font-family: inherit;
  font-size: inherit;
  padding-block: 22px !important;
  border-color: #3f3f3f !important;
  border-radius: 20px !important;
}

.gform_wrapper .gform-phone__country-selector {
  padding: 12px !important;
  outline: none !important;
  border-radius: 20px !important;
  margin-right: 8px !important;
}

.gform_wrapper .gform_drop_area {
  border-radius: 20px !important;
}

/* Avoid a duplicate red ring when Gravity Forms focuses the error summary. */
.gform_wrapper .gform_validation_errors:focus,
.gform_wrapper .gform_validation_errors:focus-visible {
  outline: none !important;
}

.gform_wrapper input:focus,
.gform_wrapper select:focus,
.gform_wrapper textarea:focus {
  color: #063370 !important;
  background-color: #fff;
  border: 1px solid #0094d1 !important;
  border-color: #0094d1 !important;
  box-shadow: #0094d1 0 0 0 2px !important;
  outline: none !important;
}

.gform-theme--framework input[type="radio"]::before,
.gform-theme--framework input[type="checkbox"]::before {
  background-color: #0094d1 !important;
}

.gform_wrapper button.gform_button,
.gform_wrapper button.gform_button_select_files,
.gform_wrapper button.gform_next_button {
  font-family: inherit;
  font-size: inherit !important;
  line-height: 1.56em !important;
  color: #063370 !important;
  background-color: #0bbbef !important;
  border-color: #0094d1 !important;
  border-style: solid;
  border-width: 2px;
  border-radius: 50px !important;
  padding: 16px 22px !important;
}

.gform_wrapper .gform-page-footer {
  display: flex;
  align-items: center;
  width: 100%;
}

.gform_wrapper .gform_next_button {
  margin-left: auto !important;
}

.gform_wrapper button.gform_button:hover,
.gform_wrapper button.gform_button_select_files:hover,
.gform_wrapper button.gform_next_button:hover {
  color: #fff !important;
  background-color: #063370 !important;
  border-color: #063370 !important;
}

.gform_wrapper .gform_previous_button {
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  text-decoration: underline !important;
  text-decoration-color: #0bbbef !important;
  text-decoration-thickness: 2px !important;
}

.gform_wrapper .gform_previous_button:hover {
  text-decoration-color: #3f3f3f !important;
}

.gform-theme--framework .gf_progressbar .percentbar_blue {
  background-color: #0bbbef !important;
}

.gform_wrapper .gfield_label,
.gform_wrapper .gform-field-label {
  font-family: inherit;
  font-size: inherit;
}

.gform_wrapper .label_heading .gfield_label {
  font-size: clamp(22px, 3vw, 36px) !important;
  text-align: center !important;
  width: 100%;
  margin: 36px 0;
}

.gform_wrapper .gfield--input-type-html {
  border-radius: 20px;
  padding: 24px;
  text-align: center;
}

.gform_wrapper .gfield--input-type-html.fail {
  background: #fff;
  color: #3f3f3f;
}

.gform_wrapper .gfield--input-type-html.success,
.gform_wrapper .gform_confirmation_message {
  background: #fff;
  color: #3f3f3f;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 32px;
  padding: 24px 24px;
  border-radius: 32px;
  text-align: center;
}

.gform_wrapper .gform_confirmation_message {
  background: #f9f9fb;
}

.gform_wrapper .gfield--input-type-html.success::before,
.gform_wrapper .gform_confirmation_message::before {
  content: "";
  width: 64px;
  height: 64px;
  flex-shrink: 0;
  border: 1.5px solid #058c30;
  border-radius: 50%;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40' fill='none'%3E%3Cpath d='M31.4707 10.3538C31.9297 9.89518 32.67 9.89506 33.1289 10.3538C33.5878 10.8127 33.5876 11.553 33.1289 12.012L15.4951 29.6458C15.0361 30.1047 14.2958 30.1048 13.8369 29.6458L6.87012 22.679C6.41142 22.2201 6.41137 21.4798 6.87012 21.0208C7.32902 20.5619 8.06932 20.5621 8.52832 21.0208L14.3125 26.804L14.6582 27.1497L15.0039 26.804L31.4707 10.3548V10.3538Z' fill='%23058C30' stroke='%23058C30' stroke-width='0.978261'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 40px 40px;
  box-sizing: border-box;
}

.gform_heading {
  margin-bottom: 48px;
  text-align: center;
}

.gform_heading h2 {
  margin-bottom: 48px;
  padding-top: 32px;
}

.gfield_required {
  display: none;
}

/*
 * Loop Grid round arrow buttons: Elementor's generated per-widget CSS sizes
 * these from padding + content (e.g. 38.25px x 40px), so the box is not a
 * true circle and the icon isn't centered inside it.
 */
.elementor-widget-icon:has(> .elementor-icon-wrapper .e-fas-arrow-right) {
  display: inline-flex !important;
  /* Elementor's row layout otherwise shrinks the button below its own size. */
  flex: 0 0 40px !important;
  width: 40px !important;
  height: 40px !important;
  padding: 0 !important;
  align-items: center;
  justify-content: center;
}

.elementor-widget-icon:has(> .elementor-icon-wrapper .e-fas-arrow-right) .elementor-icon-wrapper {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
}

/* Search bar filter */
.grid-search {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  height: 60px;
  padding: 8px 12px;
  box-sizing: border-box;
  border: 1px solid #3f3f3f;
  border-radius: 20px;
  background: #f9f9fb;
}

.grid-search:focus-within {
  border: 2px solid #0094d1;
}

.grid-search svg {
  width: 24px;
  flex-shrink: 0;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.75;
  stroke-linecap: round;
}

.grid-search input {
  all: unset;
  flex: 1;
  min-width: 0;
  font: inherit;
}

#gewerbe-grid .e-loop-item[hidden],
#team-grid .e-loop-item[hidden] {
  display: none;
}

#search-grid .type-mitglied .e-child {
  border: 1px solid #0094d1;
}

#search-grid .type-mitarbeiter .e-child {
  border: 1px solid #063370;
}

#search-grid .type-page .e-child {
  background-color: #ffb613;
}

#search-grid .type-news .e-child {
  background-color: #d6d6d6;
}

#search-grid :is(.type-job, .type-jobs) .e-child {
  border: 1px solid #ffb613;
}

/* Align imported custom-post content with the single-post template */
[data-elementor-type="wp-post"][data-elementor-post-type="news"] > .e-con.boxed-width,
[data-elementor-type="wp-post"][data-elementor-post-type="mitglied"] > .e-con.boxed-width,
[data-elementor-type="wp-post"][data-elementor-post-type="mitglieder"] > .e-con.boxed-width,
[data-elementor-type="wp-post"][data-elementor-post-type="mitarbeiter"] > .e-con.e-flexbox-base {
  padding: 0 !important;
}

.single-mitarbeiter .elementor-widget-theme-post-content {
  width: 100%;
  align-self: stretch;
}

/* Global Elementor-style section reveal */
@keyframes oegv-elementor-fade-in-up {
  from {
    opacity: 0;
    transform: translate3d(0, 100px, 0);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

.oegv-section-reveal {
  opacity: 0;
  transform: translate3d(0, 100px, 0);
}

.oegv-section-reveal.oegv-section-reveal--visible {
  animation: oegv-elementor-fade-in-up 1.25s ease both;
}

@media (prefers-reduced-motion: reduce) {
  .oegv-section-reveal,
  .oegv-section-reveal.oegv-section-reveal--visible {
    opacity: 1;
    transform: none;
    animation: none;
  }
}

/*
 * Mobile viewport adjustments
 */

@media (max-width: 1024px) {
  .elementor-location-header .elementor-nav-menu--toggle nav.elementor-nav-menu--dropdown.elementor-nav-menu__container {
    opacity: 0;
    visibility: hidden;
    transform: none !important;
    transition:
      opacity 0.24s ease,
      visibility 0s linear 0.24s !important;
    pointer-events: none;
  }

  .elementor-location-header
    .elementor-nav-menu--toggle
    .elementor-menu-toggle:not(.elementor-active)
    + nav.elementor-nav-menu--dropdown.elementor-nav-menu__container {
    max-height: 100vh !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    transform: none !important;
  }

  .elementor-location-header
    .elementor-nav-menu--toggle
    .elementor-menu-toggle.elementor-active
    + nav.elementor-nav-menu--dropdown.elementor-nav-menu__container {
    opacity: 1;
    visibility: visible;
    max-height: 100vh !important;
    transform: none !important;
    transition:
      opacity 0.24s ease,
      visibility 0s linear 0s !important;
    pointer-events: auto;
    animation: none !important;
  }

  .elementor-location-header .elementor-element-3bddae9 nav.elementor-nav-menu--dropdown[style] {
    top: 36px !important;
  }

  .e-con {
    --container-max-width: 100% !important;
  }
}

@media (max-width: 767px) {
  /* Breadcrumb */
  .rank-math-breadcrumb {
    justify-content: flex-start;
  }

  .rank-math-breadcrumb p {
    gap: 12px;
  }
}

@media (min-width: 1100px) {
  /* Offset cards except in #search-grid */
  .elementor-widget-loop-grid:not(#search-grid, #feature-news-loop-grid)
    > .elementor-widget-container
    > .elementor-loop-container.elementor-grid
    > .e-loop-item:nth-child(1 of .e-loop-item)
    .news-container-loop-builder,
  .elementor-widget-loop-grid:not(#search-grid, #feature-news-loop-grid)
    > .elementor-widget-container
    > .elementor-loop-container.elementor-grid
    > .e-loop-item:nth-child(3 of .e-loop-item)
    .news-container-loop-builder {
    margin-top: 64px;
  }
}

.elementor-widget-text-editor {
  p:not(:last-child) {
    margin-bottom: 1rem;
  }

  ul {
    margin-bottom: 1rem;
    list-style: revert;
    margin: revert;
    padding: revert;
  }

  ol {
    margin-bottom: 1rem;
    list-style: revert;
    margin: revert;
    padding: revert;
  }
}

.elementor-widget-text-editor li:not(:last-child) {
  margin-bottom: 10px;
}

@media (max-width: 1024px) {
  .header-nav-mobile {
    padding: 20px !important;
  }
}

.button-link-external svg {
  transform: rotate(-45deg);
}

.elementor-counter-title {
  text-align: center;
}

/* Elementor gallery lightbox */
.elementor-lightbox .elementor-icon-share,
.elementor-lightbox .eicon-share-arrow,
.elementor-lightbox .e-eicon-share-arrow,
.elementor-lightbox .elementor-slideshow__share-menu,
.elementor-lightbox .elementor-slideshow__title {
  display: none !important;
}

@media (max-width: 767px) {
  .download-button-info-center .elementor-button-text {
    display: none;
  }
}

/* Elementor's global button styles outrank CookieYes's single-class rules. */
.cky-consent-container .cky-btn,
.cky-modal .cky-btn {
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 24px !important;
  padding: 8px !important;
  border-radius: 2px !important;
  text-decoration: none !important;
  text-transform: none !important;
  font-style: normal !important;
}

/* Match the site's rounded buttons in the consent banner and preferences. */
.cky-consent-container .cky-btn,
.cky-modal .cky-btn {
  border-radius: 50px !important;
}

/* Keep utility controls free of Elementor's button borders and hover fills. */
:is(.cky-consent-container, .cky-modal, .cky-btn-revisit-wrapper)
  :is(.cky-btn-close, .cky-banner-btn-close, .cky-btn-revisit, .cky-accordion-btn, .cky-show-desc-btn) {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
  box-shadow: none !important;
}

/* Keep CookieYes panels within the viewport, including their padded contents. */
.cky-consent-container,
.cky-modal,
.cky-preference-center {
  max-width: 100vw !important;
  box-sizing: border-box !important;
}

.cky-consent-container *,
.cky-modal * {
  box-sizing: border-box;
}

/* Allow the preference panel to shrink below CookieYes's desktop width. */
.cky-preference-center {
  min-width: 0 !important;
  width: min(845px, 100vw) !important;
}

/* Anchor mobile preferences to the viewport instead of translating the dialog. */
@media (max-width: 845px) {
  /* Prevent wide page content from shifting the mobile visual viewport. */
  html {
    overflow-x: clip;
  }

  .cky-modal {
    top: 8px !important;
    right: 8px !important;
    bottom: 8px !important;
    left: 8px !important;
    width: calc(100vw - 16px) !important;
    max-width: calc(100vw - 16px) !important;
    height: calc(100vh - 16px) !important;
    height: calc(100dvh - 16px) !important;
    max-height: calc(100vh - 16px) !important;
    max-height: calc(100dvh - 16px) !important;
    margin: 0 !important;
    -webkit-transform: none !important;
    transform: none !important;
    transition: none !important;
    overflow-y: auto;
  }

  .cky-modal .cky-preference-center {
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    max-height: 100% !important;
    min-height: 0;
  }

  .cky-modal .cky-preference-body-wrapper {
    min-height: 0;
    overflow-y: auto !important;
  }

  .cky-modal .cky-preference-header,
  .cky-modal .cky-footer-wrapper {
    flex-shrink: 0;
  }

  .cky-modal .cky-preference-title,
  .cky-modal .cky-accordion-header-wrapper {
    min-width: 0;
    overflow-wrap: anywhere;
  }

  .cky-modal .cky-btn-close,
  .cky-modal .cky-switch {
    flex-shrink: 0;
  }

  .cky-modal .cky-accordion-header {
    flex-wrap: wrap;
    gap: 8px;
  }

  .cky-modal .cky-prefrence-btn-wrapper .cky-btn {
    min-width: 0;
    white-space: normal;
    overflow-wrap: anywhere;
    font-size: 14px !important;
    padding: 10px 14px !important;
  }
}

/* Compact preferences on small phones; reserve space around the dialog. */
@media (max-width: 480px) {
  .cky-modal {
    top: 5vh !important;
    top: 5dvh !important;
    bottom: auto !important;
    height: auto !important;
    max-height: 90vh !important;
    max-height: 90dvh !important;
  }

  .cky-modal .cky-preference-center {
    height: auto !important;
    max-height: 90vh !important;
    max-height: 90dvh !important;
  }

  .cky-modal .cky-preference-header {
    padding: 12px 14px !important;
    gap: 8px;
  }

  .cky-modal .cky-preference-title {
    font-size: 16px !important;
    line-height: 1.35 !important;
  }

  .cky-modal .cky-preference-body-wrapper {
    padding: 0 14px !important;
  }

  .cky-modal .cky-preference-content-wrapper,
  .cky-modal .cky-accordion-header-des {
    font-size: 14px !important;
    line-height: 1.5 !important;
  }

  .cky-modal .cky-preference-content-wrapper p,
  .cky-modal .cky-accordion-header-des p {
    font-size: inherit !important;
    line-height: inherit !important;
  }

  .cky-modal .cky-accordion-btn {
    font-size: 14px !important;
    line-height: 1.5 !important;
  }

  .cky-modal .cky-prefrence-btn-wrapper {
    padding: 12px 14px !important;
    gap: 6px !important;
  }

  .cky-modal .cky-prefrence-btn-wrapper .cky-btn {
    min-height: 44px;
    padding: 8px 12px !important;
    line-height: 20px !important;
  }
}

/* Stack cookie policy table columns on small mobile screens. */
@media (max-width: 480px) {
  .cky-cookie-audit-table,
  .cky-cookie-audit-table tbody,
  .cky-cookie-audit-table tr,
  .cky-cookie-audit-table td {
    display: block;
    width: 100%;
    box-sizing: border-box;
  }

  .cky-cookie-audit-table thead {
    display: none;
  }

  .cky-cookie-audit-table td {
    overflow-wrap: anywhere;
  }

  .cky-cookie-audit-table td::before {
    display: block;
    font-weight: 700;
    margin-bottom: 4px;
  }

  .cky-cookie-audit-table td:nth-child(1)::before {
    content: "Cookie";
  }

  .cky-cookie-audit-table td:nth-child(2)::before {
    content: "Dauer";
  }

  .cky-cookie-audit-table td:nth-child(3)::before {
    content: "Beschreibung";
  }
}
