@font-face {
  font-family: "Gabarito";
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
  src: url("../fonts/gabarito-variable.woff2") format("woff2");
}

:root {
  --fh-ink: #173b0a;
  --fh-green: #276706;
  --fh-leaf: #87b463;
  --fh-pale: #b8d29e;
  --fh-paper: #eef4e8;
  --fh-white: #fbfdf9;
  --fh-line: rgb(23 59 10 / 18%);
  --fh-hero-brightness: 60%;
}

body.fahringer-site {
  background: var(--fh-paper);
  color: var(--fh-ink);
}

.fahringer-site h1,
.fahringer-site h2,
.fahringer-site h3,
.fahringer-site h4 {
  color: inherit;
}

.fahringer-site #main-header {
  background: rgb(238 244 232 / 94%);
  border-bottom: 1px solid var(--fh-line);
  box-shadow: none;
  backdrop-filter: blur(14px);
}
.fahringer-site #main-header .container {
  width: 98%;
  max-width: 1800px;
}

.fahringer-site #top-menu a {
  color: var(--fh-ink);
  font-size: 15px;
  font-weight: 600;
}
.fahringer-site #top-menu > li.menu-item-has-children {
  padding-right: 24px;
}
.fahringer-site #top-menu > li.menu-item-has-children > a:first-child::after {
  top: 0;
  right: 4px;
  color: var(--fh-green);
}
/* Divi's classic header has no native dropdown-position control; anchor wide
   submenus to the parent's right edge so they stay inside the viewport. */
.fahringer-site #top-menu .sub-menu {
  right: 0;
  left: auto;
  width: min(360px, 88vw);
  box-sizing: border-box;
  padding: 12px;
  border: 1px solid var(--fh-line);
  border-top: 3px solid var(--fh-green);
  border-radius: 4px 4px 18px 4px;
  background: var(--fh-white);
  box-shadow: 0 20px 42px rgb(23 59 10 / 14%);
}
.fahringer-site #top-menu .sub-menu li {
  width: 100%;
  padding: 0;
}
.fahringer-site #top-menu .sub-menu a {
  width: 100%;
  box-sizing: border-box;
  padding: 10px 12px;
  border-radius: 4px 4px 12px 4px;
  line-height: 1.25;
  /* Divi's classic header has no native control for wrapping its generated
     submenu anchors; allow long German page titles to use the full dropdown. */
  white-space: normal;
  overflow-wrap: break-word;
}
.fahringer-site #top-menu .sub-menu a:hover,
.fahringer-site #top-menu .sub-menu a:focus-visible {
  background: var(--fh-paper);
  color: var(--fh-green);
  opacity: 1;
}
.fahringer-site #top-menu a:focus-visible {
  outline: 2px solid var(--fh-green);
  outline-offset: 4px;
}
.fahringer-site .mobile_nav .mobile_menu_bar::before {
  color: var(--fh-green);
}
.fahringer-site #mobile_menu {
  border-top-color: var(--fh-green);
  background: var(--fh-white);
}
.fahringer-site #mobile_menu .sub-menu {
  padding-left: 14px;
}
.fahringer-site #mobile_menu .sub-menu a {
  font-size: 14px;
  font-weight: 500;
}
.fahringer-site #logo {
  max-height: 72%;
}
.fahringer-site #main-content,
.fahringer-site .et_pb_section {
  background-color: transparent;
}
.fahringer-site .et_pb_module {
  margin-bottom: 0;
}
.fahringer-site .et_pb_row {
  padding-block: 0;
}

/* Keep only Theme Builder's transport row full width. */
body.fahringer-site
  .et-l--body
  > .et_builder_inner_content
  > .et_pb_section
  > .et_pb_row {
  width: 100% !important;
  max-width: none !important;
  margin-right: 0 !important;
  margin-left: 0 !important;
}
body.fahringer-site.et-tb-has-body
  .et-l--body
  > .et_builder_inner_content
  > .et_pb_section,
body.fahringer-site.et-tb-has-body
  .et-l--body
  > .et_builder_inner_content
  > .et_pb_section
  > .et_pb_row {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

.fh-section-title h2 {
  margin: 0 0 24px;
  padding: 0;
}
.fh-section-title p,
:is(
    .fh-hero-intro,
    .fh-catalog-intro-copy,
    .fh-contact-page-title,
    .fh-accept-item-copy,
    .fh-footer-summary,
    .fh-cycle-number,
    .fh-cycle-step-copy,
    .fh-soil-signal,
    .fh-soil-summary,
    .fh-soil-detail-label,
    .fh-soil-detail-value,
    .fh-tile-number,
    .fh-tile-copy,
    .fh-stage-display
  )
  p {
  margin: 0;
}
/* Divi accepts flexGrow on this Group module but omits the frontend rule;
   let captions fill their grid row without imposing a fixed card height. */
.fh-service-card-caption {
  flex-grow: 1;
}
:is(
    .fh-catalog-intro-title h1,
    .fh-cycle-step-heading h3,
    .fh-soil-product-heading h3,
    .fh-soil-signal p,
    .fh-soil-summary p,
    .fh-soil-detail-label p,
    .fh-soil-detail-value p
  ) {
  margin: 0;
  padding: 0;
}
:is(
    .fh-farm-image,
    .fh-stage-media-image,
    .fh-fleet-media-image,
    .fh-contact-page-image,
    .fh-footer-logo,
    .fh-directions-map
  )
  .et_pb_image_wrap {
  display: block;
}
:is(
    .fh-factbar,
    .fh-catalog-intro-row,
    .fh-farm > .et_pb_row,
    .fh-accept-card,
    .fh-contact-page-row,
    .fh-global-footer > .et_pb_row,
    .fh-tile-row,
    .fh-stage,
    .fh-tiles-row,
    .fh-cta-band-row
  )
  > .et_pb_column {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
}
:is(
    .fh-accept-card,
    .fh-tile-row,
    .fh-stage,
    .fh-tiles-row,
    .fh-cta-band-row
  )::after {
  display: none;
}
/* Hero CSS covers only the scrim, image crop and factbar grid. */
.fh-hero-stage::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  /* Light scrim kept only where the heading/intro text sits, so the photo
   * reads at roughly the 80% brightness filter the image module carries. */
  background: linear-gradient(
      90deg,
      rgb(13 38 5 / 44%),
      rgb(13 38 5 / 20%) 46%,
      rgb(13 38 5 / 0%) 78%
    ),
    linear-gradient(0deg, rgb(13 38 5 / 14%), transparent 50%);
  pointer-events: none;
}
.fh-hero-image,
.fh-hero-image .et_pb_image_wrap {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
}
/* Divi stores brightness but does not emit it on this image module. */
.fh-hero-image {
  filter: brightness(var(--fh-hero-brightness)) !important;
}
/* Stretch and center-crop the hero image. */
.fh-hero-image img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}
/* Row min-height and overflow currently fall back to CSS. */
.fh-hero-stage {
  overflow: hidden;
  min-height: min(780px, calc(100svh - 145px));
}
.fh-hero-stage > .et_pb_column {
  position: static;
  width: 100% !important;
  min-height: inherit;
}
.fh-hero-title h1 {
  max-width: 19ch;
  margin: 0;
  padding: 0;
}
/* Hero action visuals and icon behavior come from the native Divi preset. */
body.fahringer-site #page-container .fh-hero-action .et_pb_button,
body.fahringer-site #page-container .fh-hero-action.et_pb_button {
  transition:
    background-color 200ms ease,
    border-color 200ms ease,
    color 200ms ease,
    transform 200ms ease;
}
body.fahringer-site #page-container .fh-hero-action .et_pb_button:hover,
body.fahringer-site #page-container .fh-hero-action.et_pb_button:hover {
  background: var(--fh-white) !important;
  border-color: var(--fh-white) !important;
  color: var(--fh-ink) !important;
  transform: translateY(-2px);
}
body.fahringer-site #page-container .fh-hero-action .et_pb_button:focus-visible,
body.fahringer-site #page-container .fh-hero-action.et_pb_button:focus-visible {
  outline: 2px solid var(--fh-white);
  outline-offset: 5px;
}
body.fahringer-site .fh-factbar.et_pb_row {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.fh-factbar p {
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.fh-factbar span {
  color: rgb(23 59 10 / 58%);
  font-size: 12px;
}
.fh-factbar strong {
  color: var(--fh-ink);
  font-size: 14px;
  font-weight: 600;
}

.fh-heading-unified .fh-section-title {
  display: grid !important;
  grid-template-columns: minmax(0, 2fr) minmax(270px, 0.65fr);
  gap: clamp(45px, 6vw, 90px);
  align-items: end;
  margin: 0;
}
.fh-heading-unified .fh-section-title h2 {
  margin: 0;
  font-size: var(--gvid-fahringer-text-h2, 49px);
}
.fh-centered-heading .fh-section-title {
  display: block !important;
  text-align: center;
}
.fh-centered-heading .fh-section-title h2 {
  margin-right: auto;
  margin-bottom: 24px;
  margin-left: auto;
  text-align: center;
}
.fh-centered-heading .fh-section-title p {
  max-width: 64ch;
  margin-right: auto;
  margin-left: auto;
  text-align: center;
}

.fh-catalog-intro-row {
  display: grid !important;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: clamp(48px, 8vw, 120px);
  align-items: end;
  border-bottom: 1px solid var(--fh-line);
}

.fh-product-link span {
  transition: transform 240ms ease;
}
.fh-product-link a:hover span {
  transform: translateX(4px);
}
.fh-product-link a:focus-visible {
  outline: 2px solid var(--fh-pale);
  outline-offset: 5px;
}

.fh-insights .fh-section-title {
  display: flex;
  justify-content: space-between;
  gap: 40px;
  align-items: end;
  margin-bottom: 42px;
}
.fh-insights .fh-section-title p {
  max-width: 32ch;
}
.fh-insights .fh-centered-heading .fh-section-title p {
  max-width: 64ch;
  margin-right: auto;
  margin-left: auto;
}
.fh-native-slider .et_pb_slide {
  min-height: 590px;
  padding: 0;
  background: transparent !important;
}
.fh-native-slider .et_pb_container {
  width: 100%;
  max-width: none;
  min-height: 590px;
}
.fh-native-slider .et_pb_slide_image {
  top: 0;
  width: 68%;
  height: 100%;
  margin: 0 !important;
  overflow: hidden;
}
.fh-native-slider .et_pb_slide_image img {
  width: 100%;
  max-height: none !important;
  height: 100%;
  object-fit: cover;
  transition: transform 900ms cubic-bezier(0.2, 0.75, 0.2, 1);
}
.fh-native-slider:hover .et_pb_slide_image img {
  transform: scale(1.025);
}
.fh-native-slider .et_pb_slide_description {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 32%;
  min-height: 590px;
  margin-left: 68%;
  padding: 60px 45px 100px;
  text-align: left;
  text-shadow: none;
}
.fh-native-slider .et_pb_slide_title {
  margin-bottom: 22px;
}
.fh-native-slider .fh-slide-index {
  margin-bottom: 80px;
  color: var(--fh-pale);
  font-size: 13px;
  font-weight: 600;
}
/* Divi renders slider arrows as icon-font pseudo-elements whose glyph alignment
   cannot be controlled through native module attributes. */
.fh-native-slider .et-pb-arrow-prev,
.fh-native-slider .et-pb-arrow-next {
  display: grid;
  width: 50px;
  height: 50px;
  margin-top: -25px;
  border-radius: 50%;
  background: rgb(251 253 249 / 90%);
  color: var(--fh-ink);
  place-items: center;
}
.fh-native-slider .et-pb-arrow-prev::before,
.fh-native-slider .et-pb-arrow-next::before {
  display: block;
  width: 50px;
  height: 50px;
  font-size: 32px;
  line-height: 50px;
  text-align: center;
}
.fh-native-slider .et-pb-arrow-prev {
  left: 22px;
}
.fh-native-slider .et-pb-arrow-next {
  right: 22px;
}
.fh-native-slider .et-pb-controllers {
  right: 45px;
  bottom: 38px;
  left: auto;
  width: auto;
}
.fh-native-slider .et-pb-controllers a {
  width: 28px;
  height: 3px;
  margin-right: 5px;
  border-radius: 0;
  background: rgb(255 255 255 / 35%);
}
.fh-native-slider .et-pb-controllers .et-pb-active-control {
  background: var(--fh-pale);
}

.fh-farm > .et_pb_row {
  display: grid !important;
  grid-template-columns: minmax(280px, 0.76fr) minmax(0, 1.24fr);
  gap: clamp(40px, 6.5vw, 104px);
  align-items: center;
}
.fh-farm .fh-section-title h2 {
  max-width: 10ch;
  margin-bottom: 26px;
}
.fh-farm .fh-section-title p {
  max-width: 52ch;
}
.fh-farm-values ul {
  display: grid;
  gap: 12px;
  margin: 30px 0 0;
  padding: 0;
  list-style: none;
}
.fh-farm-values li {
  display: grid;
  grid-template-columns: 24px 1fr;
  gap: 9px;
  align-items: center;
  font-size: 14px;
  font-weight: 600;
}
.fh-farm-values li::before {
  width: 24px;
  height: 24px;
  background: var(--fh-green);
  content: "";
  -webkit-mask: var(--fh-benefit-icon) center / contain no-repeat;
  mask: var(--fh-benefit-icon) center / contain no-repeat;
}
.fh-benefit-certified {
  --fh-benefit-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3 19 6v5c0 5-3 8-7 10-4-2-7-5-7-10V6l7-3Z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E");
}
.fh-benefit-region {
  --fh-benefit-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 5-8 11-8 11S4 15 4 10a8 8 0 1 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E");
}
.fh-benefit-routes {
  --fh-benefit-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 6h9a3 3 0 0 1 0 6H9a3 3 0 0 0 0 6h10'/%3E%3Cpath d='m16 3 3 3-3 3M16 15l3 3-3 3'/%3E%3C/svg%3E");
}
.fh-farm-image {
  display: block;
}
.fh-farm-image .et_pb_image_wrap {
  width: 100%;
  height: 100%;
}
.fh-farm-image::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgb(9 35 3 / 34%), transparent 46%);
  content: "";
  pointer-events: none;
}
.fh-farm-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform 700ms cubic-bezier(0.2, 0.75, 0.2, 1);
}
.fh-farm-media:hover .fh-farm-image img {
  transform: scale(1.018);
}
.fh-farm-era {
  min-width: 218px;
  color: white;
}
.fh-farm-era p {
  display: grid;
  gap: 5px;
  margin: 0;
}
.fh-farm-era span {
  color: rgb(255 255 255 / 88%);
  font-size: 13px;
}
.fh-farm-era strong {
  color: white !important;
  font-size: 27px;
  font-weight: 600;
  line-height: 1;
}
.fh-farm-certificate .et_pb_image_wrap {
  display: block;
  overflow: hidden;
  border: 5px solid white;
  border-radius: 7px;
  background: white;
  box-shadow: 0 12px 35px rgb(13 38 5 / 24%);
}
.fh-farm-certificate img,
.fh-footer-logo img,
.fh-directions-map img {
  display: block;
  width: 100%;
  height: auto;
}
.fh-farm-certificate a:focus-visible {
  outline: 3px solid var(--fh-pale);
  outline-offset: 4px;
}

.fh-proof-heading .fh-section-title h2 {
  max-width: 13ch;
}
.fh-proof-heading .fh-section-title p {
  max-width: 50ch;
}
.fh-review-carousel {
  --fh-review-gap: 14px;
}
.fh-review-carousel .et_pb_group_carousel_slide {
  padding-inline: calc(var(--fh-review-gap) / 2);
}
.fh-review-carousel .et_pb_group_carousel_slide > .fh-review-card {
  height: 100%;
}
.fh-review-placeholder {
  display: flex;
  min-height: 246px;
  flex-direction: column;
  margin: 0;
}
.fh-review-source {
  display: grid;
  flex: 0 0 auto;
  width: 30px;
  height: 30px;
  border: 1px solid var(--fh-line);
  border-radius: 50%;
  background: var(--fh-white);
  place-items: center;
}
.fh-review-source img {
  width: 17px;
  height: 17px;
}
.fh-review-source:hover {
  border-color: var(--fh-leaf);
}
.fh-review-source:focus-visible {
  outline: 2px solid var(--fh-green);
  outline-offset: 5px;
}
/* Review content is generated as nested figure markup inside a Text module;
   Divi cannot address its individual quote, author, and source elements. */
.fh-review-stars {
  margin: 0 0 18px;
  color: var(--fh-leaf);
  font-size: 26px;
  letter-spacing: 0.1em;
  line-height: 1;
}
.fh-review-placeholder blockquote {
  margin: 0 0 22px;
  padding: 0;
  border: 0;
}
.fh-review-placeholder blockquote p {
  margin: 0;
  color: var(--fh-ink);
  font-size: clamp(18px, 1.5vw, 22px);
  font-weight: 500;
  line-height: 1.38;
}
.fh-review-placeholder figcaption {
  margin-top: auto;
}
.fh-review-author {
  display: flex;
  min-width: 0;
  gap: 10px;
  align-items: center;
}
.fh-review-author-copy {
  display: grid;
  min-width: 0;
  gap: 1px;
}
.fh-review-author strong {
  color: var(--fh-ink);
  font-size: 15px;
  font-weight: 600;
}
.fh-review-offer {
  color: rgb(23 59 10 / 62%);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.35;
}
.fh-review-product {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  color: var(--fh-green);
  font-size: 1em !important;
  font-weight: 600;
  line-height: inherit;
  text-decoration: underline;
  text-decoration-color: rgb(39 103 6 / 32%);
  text-underline-offset: 3px;
}
.fh-review-product::after {
  display: inline-block;
  width: 11px;
  height: 11px;
  margin-left: 3px;
  background: currentColor;
  content: "";
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M5 11 11 5M6 5h5v5' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%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 16 16'%3E%3Cpath d='M5 11 11 5M6 5h5v5' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")
    center / contain no-repeat;
}
.fh-review-product:hover,
.fh-review-product:focus-visible {
  color: var(--fh-green);
  text-decoration: underline;
  text-underline-offset: 4px;
}
.fh-accordion .et_pb_toggle_title {
  padding-right: 40px;
}
.fh-accordion .et_pb_toggle_content {
  padding-top: 17px;
}

/* Grüngut editorial exceptions. */
.fh-gruengut-main-hero .fh-hero-stage {
  min-height: 650px;
}
.fh-gruengut-main-hero .fh-hero-intro p {
  max-width: 58ch;
}
/* Service process follows the native product-page lead/steps composition. */
.fh-gruengut-process-simple .fh-tile-copy h3,
.fh-gruengut-process-simple .fh-tile-copy p {
  color: var(--fh-ink) !important;
}
/* Feature-panel grid and generated icon alignment. */
.fh-accept-card {
  display: grid !important;
  grid-template-columns: minmax(0, 0.78fr) minmax(0, 1.22fr);
  gap: clamp(48px, 7vw, 88px);
  align-items: start;
}
.fh-accept-panel-copy .fh-section-title h2 {
  max-width: none;
  margin-bottom: 16px;
}
.fh-accept-list {
  display: grid !important;
  grid-template-columns: 38px minmax(0, 1fr);
  column-gap: 18px;
}
.fh-accept-list-item {
  margin: 0 !important;
}
.fh-accept-list > :nth-last-child(-n + 2) {
  border-bottom: 0 !important;
}
.fh-accept-card .fh-accept-list-item {
  border-color: rgb(255 255 255 / 20%) !important;
}
.fh-accept-native-icon .et-pb-icon {
  font-size: 22px !important;
  line-height: 1;
}
.fh-accept-item-copy h3 {
  margin: 0 0 5px;
  padding: 0;
}
.fh-contact-page-row {
  display: grid !important;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 0;
  align-items: stretch;
}
.fh-contact-page-copy {
  color: white;
  isolation: isolate;
}
.fh-contact-page-copy::after {
  position: absolute;
  z-index: -1;
  right: -14%;
  bottom: -24%;
  width: 75%;
  height: 64%;
  border-radius: 50%;
  background: rgb(135 180 99 / 18%);
  content: "";
}
.fh-contact-page-title h1 {
  margin: 0 0 20px;
  padding: 0;
}
.fh-contact-details .et_pb_text_inner h2 {
  margin-bottom: 10px !important;
  text-transform: uppercase;
}
.fh-contact-details p {
  margin: 0;
  line-height: 1.5;
}
.fh-contact-link::after {
  display: inline-block;
  width: 14px;
  height: 14px;
  margin-left: 5px;
  vertical-align: -0.08em;
  background: currentColor;
  content: "";
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M5 11 11 5M6 5h5v5' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%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 16 16'%3E%3Cpath d='M5 11 11 5M6 5h5v5' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")
    center / contain no-repeat;
}
.fh-hero-breadcrumb .et_pb_breadcrumbs--trail,
.fh-stage-breadcrumb .et_pb_breadcrumbs--trail {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
.et_pb_breadcrumbs--home {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  vertical-align: middle;
}
.et_pb_breadcrumbs--home::before {
  display: inline-block;
  width: 15px;
  height: 15px;
  background: currentColor;
  content: "";
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2.5 7.2 8 2.8l5.5 4.4v6H9.8V9.5H6.2v3.7H2.5z' fill='none' stroke='black' stroke-width='1.45' stroke-linecap='round' stroke-linejoin='round'/%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 16 16'%3E%3Cpath d='M2.5 7.2 8 2.8l5.5 4.4v6H9.8V9.5H6.2v3.7H2.5z' fill='none' stroke='black' stroke-width='1.45' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")
    center / contain no-repeat;
}
.fh-contact-page-image {
  opacity: 0.22;
}
.fh-contact-page-image img {
  display: block;
  width: 100%;
  height: 260px;
  object-fit: cover;
  object-position: center 48%;
  mix-blend-mode: luminosity;
}
.fh-contact-form-intro .fh-form-label {
  margin: 0 0 14px;
  color: var(--fh-green);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.fh-contact-form-intro h2 {
  max-width: 14ch;
  margin: 0 0 10px;
  padding: 0;
}
.fh-contact-form-intro > p:last-child {
  max-width: 36ch;
  margin: 0;
}
/* Contact Form's generated fields need a two-column grid. */
.fh-contact-form .et_pb_contact_form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px 30px;
}
.fh-contact-form .fh-contact-field-wide,
.fh-contact-form .et_contact_bottom_container {
  grid-column: 1 / -1;
}
.fh-contact-form .input:not([type="checkbox"]):not([type="radio"]) {
  padding: 14px 0;
  border: 0;
  border-bottom: 1px solid var(--fh-line);
  border-radius: 0;
  background: transparent;
  color: var(--fh-ink);
  font-size: 16px;
}
.fh-contact-form textarea.input {
  min-height: 124px;
}
.fh-contact-form .et_pb_contact_field {
  margin-bottom: 0;
}
.fh-contact-form .et_contact_bottom_container {
  margin-top: 10px;
}
.fh-contact-form .et_pb_contact_submit:focus-visible,
.fh-contact-details a:focus-visible {
  outline: 2px solid var(--fh-green);
  outline-offset: 4px;
}

/* Divi cannot set display on the directions image element. */
.fh-directions-map {
  display: block;
  width: 100%;
  margin: 0;
}
.fh-directions-map img {
  margin: 0;
}

/* Legal copy contains repeated generated headings that Divi cannot space individually. */
.fh-legal-copy h2 {
  margin: 42px 0 14px;
  padding: 38px 0 0;
  border-top: 1px solid rgb(23 59 10 / 16%);
}
.fh-legal-copy h2:first-of-type {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
}
.fh-legal-copy p {
  margin-bottom: 18px;
}
.fh-legal-copy p:last-child {
  margin-bottom: 0;
}
.fh-legal-title h1 {
  margin: 0;
  padding: 0;
}

/* Footer CSS covers generated lists, the grid and SVG contact icons. */
.fh-global-footer > .et_pb_row {
  display: grid !important;
}
.fh-footer-logo {
  overflow: hidden;
}
.fh-footer-directory {
  grid-template-columns: 1.05fr 0.8fr 1.15fr 1fr;
  gap: clamp(38px, 4.8vw, 78px);
  align-items: start;
}
.fh-footer-directory h3 {
  margin: 0 0 21px;
  padding: 0 0 13px;
  border-bottom: 1px solid rgb(255 255 255 / 18%);
}
.fh-footer-directory h3 a {
  color: white !important;
}
.fh-footer-directory ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.fh-footer-directory li {
  margin: 0 0 10px;
  line-height: 1.45;
}
.fh-footer-directory a {
  color: inherit;
  transition: color 180ms ease;
}
.fh-footer-directory a:hover,
.fh-footer-directory a:focus-visible {
  color: white;
}
.fh-footer-services > .et_pb_text_inner > ul > li {
  margin-bottom: 16px;
}
.fh-footer-contact li {
  position: relative;
  min-height: 24px;
  padding-left: 38px;
}
.fh-footer-contact li::before {
  position: absolute;
  top: 1px;
  left: 0;
  width: 21px;
  height: 21px;
  background: var(--fh-pale);
  content: "";
  -webkit-mask: var(--fh-footer-icon) center / contain no-repeat;
  mask: var(--fh-footer-icon) center / contain no-repeat;
}
.fh-footer-address {
  --fh-footer-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 5-8 11-8 11S4 15 4 10a8 8 0 1 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E");
}
.fh-footer-phone {
  --fh-footer-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 3H4a1 1 0 0 0-1 1c0 9.4 7.6 17 17 17a1 1 0 0 0 1-1v-3l-4-2-2 2c-3.6-1.5-6.5-4.4-8-8l2-2-2-4Z'/%3E%3C/svg%3E");
}
.fh-footer-mail {
  --fh-footer-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m4 7 8 6 8-6'/%3E%3C/svg%3E");
}
.fh-footer-contact-column {
  justify-self: stretch;
}
.fh-footer-meta p {
  max-width: none;
  display: flex;
  justify-content: space-between;
  gap: 30px;
  margin: 0;
}
.fh-footer-legal {
  display: flex;
  gap: 24px;
}
/* Generated footer-link markup needs an inner icon that Divi text attributes cannot target. */
.fh-footer-cookie-settings {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-width: 24px;
  min-height: 24px;
}
.fh-footer-cookie-settings::before {
  width: 14px;
  height: 14px;
  flex: 0 0 14px;
  background: currentColor;
  content: "";
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 12.8A9 9 0 1 1 11.2 3a4 4 0 0 0 4.6 5.7A4 4 0 0 0 21 12.8Z'/%3E%3Ccircle cx='8.2' cy='10.2' r='.8' fill='black' stroke='none'/%3E%3Ccircle cx='11.5' cy='16' r='.8' fill='black' stroke='none'/%3E%3Ccircle cx='6.8' cy='15.2' r='.8' fill='black' stroke='none'/%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 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 12.8A9 9 0 1 1 11.2 3a4 4 0 0 0 4.6 5.7A4 4 0 0 0 21 12.8Z'/%3E%3Ccircle cx='8.2' cy='10.2' r='.8' fill='black' stroke='none'/%3E%3Ccircle cx='11.5' cy='16' r='.8' fill='black' stroke='none'/%3E%3Ccircle cx='6.8' cy='15.2' r='.8' fill='black' stroke='none'/%3E%3C/svg%3E")
    center / contain no-repeat;
}
.fh-footer-meta a:hover,
.fh-footer-meta a:focus-visible {
  color: white;
}
@media (max-width: 980px) {
  .fh-catalog-intro-row,
  .fh-accept-card,
  .fh-farm > .et_pb_row {
    grid-template-columns: 1fr;
  }
  .fh-catalog-intro-row {
    gap: 30px;
  }
  .fh-accept-card {
    gap: 32px;
  }
  .fh-gruengut-main-hero .fh-hero-stage {
    min-height: 560px;
  }
  .fh-heading-unified .fh-section-title {
    display: block !important;
  }
  .fh-heading-unified .fh-section-title h2 {
    margin-bottom: 17px;
    font-size: var(--gvid-fahringer-text-h2-tablet, 42px);
  }
  .fh-native-slider .et_pb_slide_image {
    width: 58%;
  }
  .fh-native-slider .et_pb_slide_description {
    width: 42%;
    margin-left: 58%;
  }
  .fh-review-placeholder {
    min-height: 230px;
  }
  .fh-contact-page-row {
    grid-template-columns: minmax(0, 1fr);
  }
  .fh-contact-page-copy {
    display: grid !important;
    grid-template-columns: 1fr 220px;
    column-gap: 28px;
  }
  .fh-contact-page-title {
    grid-column: 1 / -1;
  }
  .fh-footer-directory {
    grid-template-columns: 1fr 1fr;
  }
  .fh-footer-brand {
    grid-column: 1 / -1;
  }
  .fh-footer-contact-column {
    justify-self: start;
  }
}

@media (max-width: 767px) {
  .fh-accept-card {
    gap: 34px;
  }
  .fh-accept-panel-copy .fh-section-title h2 {
    max-width: none;
  }
  .fh-accept-list-item .et_pb_text_inner {
    grid-template-columns: 32px minmax(0, 1fr);
    gap: 15px;
  }
  .fh-gruengut-main-hero .fh-hero-stage {
    min-height: 520px;
  }
  .fh-catalog-intro-row {
    gap: 22px;
  }
  .fh-heading-unified .fh-section-title h2 {
    font-size: var(--gvid-fahringer-text-h2-phone, 36px);
  }
  body.fahringer-site .fh-factbar.et_pb_row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .fh-insights .fh-section-title {
    display: block;
  }
  .fh-native-slider .et_pb_slide,
  .fh-native-slider .et_pb_container {
    min-height: 620px;
  }
  .fh-native-slider .et_pb_slide_image {
    /* Divi hides slide media on phones; the native slider has no responsive
       switch that keeps its generated image element visible or top-aligned. */
    display: block !important;
    position: absolute;
    top: 0;
    width: 100%;
    height: 320px;
  }
  .fh-native-slider .et_pb_slide_description {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    min-height: 300px;
    margin: 0;
    padding: 44px 30px 55px;
  }
  .fh-native-slider .fh-slide-index {
    margin-bottom: 18px;
  }
  .fh-contact-page-row {
    gap: 24px;
  }
  .fh-contact-page-copy {
    display: flex !important;
  }
  .fh-contact-page-image img {
    height: 190px;
  }
  .fh-contact-form .et_pb_contact_form {
    display: block;
  }
  .fh-farm .fh-section-title h2 {
    max-width: 11ch;
  }
  .fh-farm-era {
    min-width: 190px;
  }
  .fh-farm-era strong {
    font-size: 23px;
  }
  .fh-review-carousel {
    --fh-review-gap: 12px;
  }
  .fh-review-placeholder {
    min-height: 0;
  }
  .fh-review-placeholder blockquote p {
    font-size: 20px;
  }
  .fh-footer-directory {
    grid-template-columns: 1fr;
    gap: 38px;
  }
  .fh-footer-brand {
    grid-column: auto;
  }
  .fh-footer-meta p {
    display: block;
    line-height: 1.8;
  }
  .fh-footer-legal {
    gap: 20px;
    margin-top: 7px;
  }
}

/* Tile CSS is limited to generated link markup and the row grid. */
.fh-tile-row,
.fh-tiles-row {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}
.fh-tile-copy h2,
.fh-tile-copy h3 {
  margin: 0 0 13px;
  padding: 0;
}
.fh-tile-copy .fh-product-link {
  margin-top: 14px;
}
.fh-tile-copy .fh-product-link a {
  display: inline-flex;
  gap: 9px;
  align-items: center;
  color: white;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.2;
}
@media (max-width: 980px) {
  .fh-tile-row,
  .fh-tiles-row {
    grid-template-columns: 1fr;
  }
}

/* Detail CSS covers generated lists, masks and the row grid. */
/* equal_columns currently triggers Divi's D4 fallback. */
.fh-stage {
  display: grid !important;
  grid-template-columns: minmax(0, 3fr) minmax(380px, 2fr);
  gap: 0;
  align-items: stretch;
}
/* Native Divi image attributes cannot set object-fit on the generated img. */
:is(.fh-stage-media-image, .fh-fleet-media-image) {
  display: block;
}
:is(.fh-stage-media-image, .fh-fleet-media-image) .et_pb_image_wrap {
  width: 100%;
  height: 100%;
}
:is(.fh-stage-media-image, .fh-fleet-media-image) img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.fh-stage-display h1 {
  margin: 0 0 16px;
  padding: 0;
}
/* Stage CTA spans the copy column; width-only layout has no Divi 5 attr path. */
.fh-stage-cta .et_pb_button {
  display: block;
  width: 100%;
  text-align: center;
}
.fh-stage-info ul {
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--fh-line);
  list-style: none;
}
.fh-stage-info li {
  position: relative;
  display: grid;
  grid-template-columns: 24px 96px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  padding: 9px 0;
  border-bottom: 1px solid var(--fh-line);
}
.fh-stage-info li::before {
  width: 20px;
  height: 20px;
  background: var(--fh-green);
  content: "";
  -webkit-mask: var(--fh-stage-icon) center / contain no-repeat;
  mask: var(--fh-stage-icon) center / contain no-repeat;
}
.fh-stage-info li:nth-child(1) {
  --fh-stage-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 8h16M7 5v6m3-6v3m4-3v3m3-3v6M5 11v8h14v-8'/%3E%3C/svg%3E");
}
.fh-stage-info li:nth-child(2) {
  --fh-stage-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3s6 6.7 6 11a6 6 0 0 1-12 0c0-4.3 6-11 6-11Z'/%3E%3Cpath d='M9 15c.4 1.4 1.4 2.2 3 2.5'/%3E%3C/svg%3E");
}
.fh-stage-info li:nth-child(3) {
  --fh-stage-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h11v10H3zM14 10h4l3 3v3h-7z'/%3E%3Ccircle cx='7' cy='18' r='2'/%3E%3Ccircle cx='17' cy='18' r='2'/%3E%3C/svg%3E");
}
.fh-stage-info span {
  color: rgb(23 59 10 / 55%);
  font-size: 13px;
}
.fh-stage-info strong {
  color: var(--fh-ink);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
}

@media (max-width: 980px) {
  .fh-stage {
    grid-template-columns: 1fr;
  }
}

/* Compact tile text overrides the image-card preset. */
.fh-tile {
  transition: transform 0.25s ease;
}
.fh-tile:hover {
  transform: translateY(-4px);
}
.fh-tile-copy .fh-tile-no {
  margin: 0 0 8px;
  color: var(--fh-green);
  font-size: 38px;
  font-weight: 650;
  line-height: 0.8;
  letter-spacing: -0.04em;
  opacity: 0.32;
}
.fh-tile-copy .fh-tile-cat {
  margin: 0 0 5px;
  color: var(--fh-green);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}
.fh-tile > .fh-tile-copy h3 {
  margin: 0 0 8px;
  padding: 0;
  font-size: 24px !important;
  line-height: 1.08;
}
.fh-tile > .fh-tile-copy p:last-child {
  margin: 0;
  color: rgb(23 59 10 / 64%);
  font-size: 15px;
  line-height: 1.5;
}
body #annahme .fh-tile-copy .fh-tile-no,
body #annahme .fh-tile-copy .fh-tile-cat,
body #annahme .fh-tile-copy h3 {
  color: var(--fh-ink) !important;
}
body #annahme .fh-tile-copy p:last-child {
  color: rgb(23 59 10 / 68%) !important;
}

/* Arrange the Blog module's generated posts as a catalog strip. */
.fh-product-directory-intro .fh-section-title h2,
.fh-product-directory-intro .fh-section-title p,
.fh-service-directory-intro .fh-section-title p {
  max-width: 48ch;
}
.fh-product-directory.et_pb_blog .et_pb_blog_posts,
.fh-service-directory.et_pb_blog .et_pb_blog_posts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--fh-line);
  border-bottom: 1px solid var(--fh-line);
}
.fh-service-directory.et_pb_blog .et_pb_blog_posts {
  position: relative;
  gap: 0;
}
.fh-service-directory.et_pb_blog .et_pb_blog_posts::before,
.fh-service-directory.et_pb_blog .et_pb_blog_posts::after {
  position: absolute;
  z-index: 2;
  top: 0;
  bottom: 0;
  width: 1px;
  background: var(--fh-line);
  content: "";
  pointer-events: none;
}
.fh-service-directory.et_pb_blog .et_pb_blog_posts::before {
  left: 33.333333%;
}
.fh-service-directory.et_pb_blog .et_pb_blog_posts::after {
  left: 66.666667%;
}
:is(.fh-product-directory, .fh-service-directory) article.et_pb_post {
  display: grid;
  grid-template-columns: 104px minmax(0, 1fr);
  grid-template-rows: auto 1fr;
  gap: 4px 20px;
  min-width: 0;
  margin: 0;
  padding: 20px 26px;
  border: 0;
  background: transparent;
}
.fh-product-directory article.et_pb_post {
  border-right: 1px solid var(--fh-line);
}
.fh-product-directory article.et_pb_post:first-child {
  padding-left: 0;
}
.fh-product-directory article.et_pb_post:last-child {
  padding-right: 0;
  border-right: 0;
}
.fh-service-directory article.et_pb_post:nth-child(3n + 1) {
  padding-left: 0;
}
.fh-service-directory article.et_pb_post:nth-child(3n) {
  padding-right: 0;
}
.fh-service-directory article.et_pb_post:nth-child(-n + 3) {
  border-bottom: 1px solid var(--fh-line);
}
:is(.fh-product-directory, .fh-service-directory).et_pb_blog
  article
  .et_pb_image_container {
  grid-row: 1 / 3;
  margin: 0;
  overflow: hidden;
  border-radius: var(--gvid-fahringer-radius-s, 8px);
  background: var(--fh-paper);
}
:is(.fh-product-directory, .fh-service-directory).et_pb_blog
  article
  .entry-featured-image-url {
  display: block;
  height: 104px;
  margin: 0;
  overflow: hidden;
}
:is(.fh-product-directory, .fh-service-directory).et_pb_blog
  article
  .entry-featured-image-url
  img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 220ms ease;
}
:is(.fh-product-directory, .fh-service-directory)
  .entry-featured-image-url
  .et_overlay {
  display: none;
}
:is(.fh-product-directory, .fh-service-directory)
  article:hover
  .entry-featured-image-url
  img {
  transform: scale(1.035);
}
:is(.fh-product-directory, .fh-service-directory) .entry-title {
  align-self: end;
  margin: 0;
  padding: 0;
  color: var(--fh-ink);
  font-size: 20px;
  line-height: 1.15;
}
:is(.fh-product-directory, .fh-service-directory) .entry-title a {
  color: inherit !important;
}
:is(.fh-product-directory, .fh-service-directory) .post-meta {
  display: none;
}
:is(.fh-product-directory, .fh-service-directory) .post-content-inner {
  display: block;
}
:is(.fh-product-directory, .fh-service-directory) .post-content-inner p {
  display: -webkit-box;
  max-width: 31ch;
  margin: 5px 0 0;
  overflow: hidden;
  color: rgb(23 59 10 / 64%);
  font-size: 13px;
  line-height: 1.35;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
:is(.fh-product-directory, .fh-service-directory) .more-link {
  width: fit-content;
  margin-top: 8px;
  color: var(--fh-green) !important;
  font-size: 13px;
  font-weight: 650;
  line-height: 1.3;
  text-decoration: underline;
  text-decoration-color: rgb(39 103 6 / 36%);
  text-underline-offset: 4px;
}
:is(.fh-product-directory, .fh-service-directory)
  :is(.entry-title a, .more-link):focus-visible {
  outline: 2px solid var(--fh-green);
  outline-offset: 4px;
}

.fh-cta-band-row {
  display: grid !important;
  grid-template-columns: minmax(0, 3fr) minmax(220px, 2fr);
  gap: clamp(36px, 7vw, 100px);
  align-items: center;
}
.fh-cta-band-copy p {
  max-width: 54ch;
}
.fh-product-simple-row {
  gap: clamp(28px, 5vw, 70px);
}
.fh-product-simple-copy h2 {
  margin-bottom: 8px;
}
.fh-product-simple-copy > div > p:last-child,
.fh-product-simple-copy > p:last-child {
  max-width: 48ch;
}
/* Draw the cycle connectors between native Divi groups. */
.fh-cycle-heading .fh-section-title h2 {
  margin-right: auto;
  margin-left: auto;
}
.fh-cycle-heading .fh-section-title p {
  max-width: 61ch;
  margin-right: auto;
  margin-left: auto;
}
.fh-cycle-step:not(:last-child)::after {
  position: absolute;
  top: 20px;
  right: 12px;
  width: clamp(20px, 3vw, 42px);
  height: 1px;
  background: rgb(255 255 255 / 30%);
  content: "";
}
.fh-cycle-step:not(:last-child)::before {
  position: absolute;
  top: 17px;
  right: 10px;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-left: 6px solid var(--fh-pale);
  content: "";
}
.fh-soil-heading .fh-section-title h2 {
  margin-right: auto;
  margin-left: auto;
}
.fh-soil-heading .fh-section-title p {
  max-width: 58ch;
  margin-right: auto;
  margin-left: auto;
}
.fh-soil-symbol::before {
  width: 34px;
  height: 34px;
  background: var(--fh-pale);
  content: "";
  -webkit-mask: var(--fh-soil-symbol) center / contain no-repeat;
  mask: var(--fh-soil-symbol) center / contain no-repeat;
}
.fh-soil-symbol--compost {
  --fh-soil-symbol: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 24c4-8 8-11 13-11s9 3 13 11H3Z'/%3E%3Ccircle cx='11' cy='20' r='1'/%3E%3Ccircle cx='18' cy='17' r='1'/%3E%3Ccircle cx='23' cy='21' r='1'/%3E%3Cpath d='M16 13c0-4 2-7 6-9 0 4-2 7-6 9Z'/%3E%3C/svg%3E");
}
.fh-soil-symbol--bio-soil {
  --fh-soil-symbol: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 25h24M7 25l2-9h14l2 9M16 16V8'/%3E%3Cpath d='M16 11c-5 0-8-2-8-6 5 0 8 2 8 6Zm0-1c0-5 3-8 8-8 0 5-3 8-8 8Z'/%3E%3C/svg%3E");
}
/* Divi can create the comparison grid but cannot expose CSS subgrid. Subgrid
   lets both product columns share natural row heights without fixed whitespace. */
@supports (grid-template-rows: subgrid) {
  @media (min-width: 981px) {
    .fh-soil-comparison {
      grid-template-rows: repeat(4, auto);
    }
    .fh-soil-product {
      display: grid !important;
      grid-row: 1 / span 4;
      grid-template-rows: subgrid;
    }
    .fh-soil-product--compost {
      grid-column: 1;
    }
    .fh-soil-product--bio-soil {
      grid-column: 2;
    }
  }
}
@media (max-width: 980px) {
  :is(.fh-product-directory, .fh-service-directory).et_pb_blog
    .et_pb_blog_posts {
    grid-template-columns: 1fr;
  }
  .fh-service-directory.et_pb_blog .et_pb_blog_posts::before,
  .fh-service-directory.et_pb_blog .et_pb_blog_posts::after {
    display: none;
  }
  :is(.fh-product-directory, .fh-service-directory) article.et_pb_post,
  .fh-product-directory article.et_pb_post:is(:first-child, :last-child),
  .fh-service-directory article.et_pb_post:nth-child(3n),
  .fh-service-directory article.et_pb_post:nth-child(3n + 1) {
    padding: 18px 0;
    border-right: 0;
  }
  .fh-service-directory article.et_pb_post:nth-child(-n + 3) {
    border-bottom: 0;
  }
  .fh-service-directory article.et_pb_post:not(:last-child) {
    border-bottom: 1px solid var(--fh-line);
  }
  .fh-product-directory article.et_pb_post:last-child {
    border-bottom: 0;
  }
  .fh-cta-band-row {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .fh-cycle-step:not(:last-child)::after {
    top: 43px;
    right: auto;
    bottom: 4px;
    left: 20px;
    width: 1px;
    height: auto;
  }
  .fh-cycle-step:not(:last-child)::before {
    top: auto;
    right: auto;
    bottom: 4px;
    left: 17px;
    border-top: 6px solid var(--fh-pale);
    border-right: 4px solid transparent;
    border-bottom: 0;
    border-left: 4px solid transparent;
  }
}

@media (max-width: 767px) {
  .fh-soil-symbol::before {
    width: 28px;
    height: 28px;
  }
  :is(.fh-product-directory, .fh-service-directory) article.et_pb_post {
    grid-template-columns: 88px minmax(0, 1fr);
    gap: 3px 16px;
  }
  :is(.fh-product-directory, .fh-service-directory).et_pb_blog
    article
    .entry-featured-image-url {
    height: 88px;
  }
  :is(.fh-product-directory, .fh-service-directory) .entry-title {
    font-size: 19px;
  }
  :is(.fh-product-directory, .fh-service-directory) .post-content-inner p {
    font-size: 12px;
  }
}

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