@charset "UTF-8";
/*
Theme Name: Future 4
Author: STUDIOHORN
Author URI: https://studio-horn.de
Description: Das globale Future 4 Theme
[...]
Template: twentytwentyfive
[...]
*/
/*== General SCSS ==*/
/*== General ==*/
@font-face {
  font-family: "Avenir Next";
  src: url("assets/fonts/AvenirNext-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Avenir Next";
  src: url("assets/fonts/AvenirNext-Medium.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Avenir Next";
  src: url("assets/fonts/AvenirNext-DemiBold.woff2") format("woff2");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Avenir Next";
  src: url("assets/fonts/AvenirNext-Bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Avenir Next";
  src: url("assets/fonts/AvenirNext-Heavy.woff2") format("woff2");
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}
main {
  margin-top: 0 !important;
}
@media (prefers-reduced-motion: no-preference) {
  html {
    scroll-behavior: smooth;
  }
}
[id], a[name] {
  scroll-margin-top: calc(var(--site-header-space, 80px) + var(--anchor-admin-bar-offset, 0px) + 16px);
}
body.admin-bar {
  --anchor-admin-bar-offset: 32px;
}
@media (max-width: 782px) {
  body.admin-bar {
    --anchor-admin-bar-offset: 46px;
  }
}
h1, h2, h3, h4, h5, h6 {
  font-family: "Avenir Next", Avenir, sans-serif !important;
  font-weight: 700;
  font-style: normal;
  margin-bottom: var(--wp--preset--spacing--20);
  word-break: normal;
  overflow-wrap: normal;
  hyphens: auto;
  -webkit-hyphens: auto;
}
p, a, li, div {
  font-family: "Avenir Next", Avenir, sans-serif !important;
  letter-spacing: unset !important;
  -webkit-hyphens: auto;
  font-size: var(--fs-p);
  line-height: var(--lh-p);
  font-weight: 400;
}
strong {
  font-weight: 700 !important;
  line-height: var(--lh-p-strong);
}
h1 {
  font-size: var(--fs-h1);
  line-height: var(--lh-h1);
  letter-spacing: var(--ls-h1) !important;
}
h2 {
  font-size: var(--fs-h2);
  line-height: var(--lh-h2);
  letter-spacing: var(--ls-h2) !important;
}
h3 {
  font-size: var(--fs-h3);
  line-height: var(--lh-h3);
  letter-spacing: var(--ls-h3) !important;
}
h4 {
  font-size: var(--fs-h4);
  line-height: var(--lh-h4);
  letter-spacing: var(--ls-h4) !important;
}
h5 {
  font-size: var(--fs-h5);
  line-height: var(--lh-h5);
}
h6 {
  font-size: var(--fs-h5);
  line-height: var(--lh-h5);
}
a {
  text-decoration: none !important;
  cursor: pointer;
  font-size: inherit;
  font-weight: inherit !important;
  color: inherit !important;
}
p a, .text-link {
  font-size: var(--fs-text-link);
  line-height: var(--lh-text-link);
  text-decoration: underline !important;
}
:where(.wp-site-blocks *:focus) {
  outline: none;
}
.fs-h4 {
  font-size: var(--fs-h4);
  line-height: var(--lh-h4) !important;
}
.fs-30 {
  font-size: var(--fs-h5);
}
.fs-20 {
  font-size: var(--fs-20);
}
.body-large {
  font-size: var(--fs-p-big) !important;
  line-height: var(--lh-p-big) !important;
  font-weight: 400 !important;
}
.small {
  font-size: var(--fs-p-small) !important;
  line-height: var(--lh-p-small) !important;
}
.eyebrow, .text-label {
  font-size: var(--fs-eyebrow) !important;
  line-height: var(--lh-eyebrow) !important;
  font-weight: 600 !important;
  letter-spacing: var(--ls-eyebrow) !important;
}
:root {
  /* Future4 colour system */
  --brand-pink: #ED129F;
  --brand-blue: #59C7F2;
  --text-black: #000000;
  --text-dark: #414141;
  --text-muted: #787878;
  --white: #FFFFFF;
  --background-off-white: #F4F2ED;
  --background-pink: #EE129F;
  --ui-gray: #D0D0D0;
  --ui-light-blue: #E8EDF5;
  --ui-light-pink: #FCD0EC;
  --ui-dark-blue: #017BAD;
  --primary: var(--brand-pink);
  --secondary: var(--brand-blue);
  /* Future4 typography system */
  --fs-h1: 113px;
  --fs-h2: clamp(52px, calc(9.375vw - 20px), 100px);
  --fs-h3: clamp(40px, calc(5.859375vw - 5px), 70px);
  --fs-h4: clamp(36px, calc(6.640625vw - 15px), 70px);
  --fs-h5: clamp(18px, calc(0.78125vw + 12px), 22px);
  --fs-p-big: 20px;
  --fs-p: 22px;
  --fs-p-small: 14px;
  --fs-button: clamp(1rem, calc(0.875rem + 0.4vw), 1.25rem);
  --button-padding-y: clamp(0.625rem, 0.85vw, 0.75rem);
  --button-padding-x: clamp(0.75rem, 1.4vw, 1.25rem);
  --button-gap: clamp(0.75rem, 1.9vw, 1.6875rem);
  --button-arrow-width: clamp(1.5rem, 2.6vw, 2.3125rem);
  --fs-eyebrow: 14px;
  --fs-text-link: var(--fs-p);
  --fs-20: var(--fs-p-big);
  --lh-h1: 56px;
  --lh-h2: clamp(48px, calc(7.03125vw - 6px), 84px);
  --lh-h3: clamp(40px, calc(4.6875vw + 4px), 64px);
  --lh-h4: clamp(40px, calc(4.6875vw + 4px), 64px);
  --lh-h5: clamp(24px, calc(0.78125vw + 18px), 28px);
  --lh-p-big: 28px;
  --lh-p: 28px;
  --lh-p-small: normal;
  --lh-p-strong: var(--lh-p);
  --lh-button: 1.2;
  --lh-eyebrow: 16px;
  --lh-text-link: var(--lh-p);
  --ls-h1: -0.05em;
  --ls-h2: -0.04em;
  --ls-h3: -0.04em;
  --ls-h4: -0.025em;
  --ls-eyebrow: 0.01em;
}
.has-fs-eyebrow-font-size {
  letter-spacing: 1.4px !important;
}
.responsive-padding-x {
  padding-right: var(--wp--preset--spacing--80) !important;
  padding-left: var(--wp--preset--spacing--80) !important;
}
.img-w-100 img {
  width: 100% !important;
}
.wp-block-cover {
  overflow: hidden;
}
.fw-blod {
  font-weight: 700 !important;
}
.fw-semibold {
  font-weight: 600 !important;
}
.fw-regular {
  font-weight: 400 !important;
}
.text-primary {
  color: var(--primary) !important;
}
.text-secondary {
  color: var(--secondary) !important;
}
.text-right {
  text-align: right;
}
.text-left {
  text-align: left;
}
.wp-block-buttons {
  min-width: 0;
  max-width: 100%;
  flex-wrap: wrap !important;
}
.wp-block-button {
  box-sizing: border-box;
  min-width: 0;
  max-width: 100%;
  flex-shrink: 1;
}
.wp-block-button .wp-block-button__link {
  font-family: "Avenir Next", Avenir, sans-serif !important;
  font-size: var(--fs-button);
  font-weight: 700;
  line-height: var(--lh-button);
  border-radius: 0;
}
.wp-site-blocks {
  padding-left: 0 !important;
  padding-right: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  max-width: 100vw;
  overflow: hidden;
}
.hyphens-auto {
  hyphens: auto !important;
  -webkit-hyphens: auto !important;
}
.wp-site-blocks .alignfull, .wp-site-blocks > .wp-block-group.has-background, .wp-site-blocks > .wp-block-cover, .wp-site-blocks > .wp-block-template-part > .wp-block-group.has-background, .wp-site-blocks > .wp-block-template-part > .wp-block-cover, body > .is-root-container > .wp-block-cover, body > .is-root-container > .wp-block-template-part > .wp-block-group.has-background, body > .is-root-container > .wp-block-template-part > .wp-block-cover, .is-root-container .wp-block[data-align="full"] {
  margin-left: 0 !important;
  margin-right: 0 !important;
  width: unset;
}
.border-primary {
  border-color: var(--primary) !important;
}
.border-secondary {
  border-color: var(--secondary) !important;
}
.entry-content {
  margin-top: 0 !important;
}
@media (max-width: 992px) {
  .center-animated-text-group .spacer-10vw {
    height: 20vw !important;
  }
  .center-animated-text-group .spacer-18vw {
    height: 30vw !important;
  }
}
.mw-unset {
  max-width: unset;
}
.mw-unset img {
  max-width: unset;
}
.blue-hover:hover a {
  color: var(--brand-blue) !important;
}
.blue-hover:hover a svg path {
  fill: var(--brand-blue) !important;
}
.pink-hover:hover a {
  color: var(--brand-pink) !important;
}
.pink-hover:hover a svg path {
  fill: var(--brand-pink) !important;
}
.white-hover:hover a {
  color: var(--white) !important;
  background-color: var(--text-black) !important;
}
.white-hover:hover a svg path {
  fill: var(--white) !important;
}
.white-pink-hover a svg path {
  fill: var(--brand-pink) !important;
}
.white-pink-hover:hover a {
  color: var(--white) !important;
  background-color: var(--brand-pink) !important;
}
.white-pink-hover:hover a svg path {
  fill: var(--white) !important;
}
.white-blue-hover a svg path {
  fill: var(--brand-blue) !important;
}
.white-blue-hover:hover a {
  color: var(--white) !important;
  background-color: var(--brand-blue) !important;
}
.white-blue-hover:hover a svg path {
  fill: var(--white) !important;
}
.wp-block-button__link {
  box-sizing: border-box;
  display: inline-flex;
  min-width: 0;
  max-width: 100%;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  flex-wrap: nowrap;
  gap: var(--button-gap);
  white-space: normal;
  overflow-wrap: anywhere;
  hyphens: none;
  -webkit-hyphens: none;
  padding: var(--button-padding-y) var(--button-padding-x) !important;
  font-weight: 700 !important;
}
.wp-block-button__link:hover {
  background-color: var(--white) !important;
}
.wp-block-button__link svg, .wp-block-button__link img {
  flex-shrink: 0;
  width: var(--button-arrow-width) !important;
  height: auto;
}
.wp-block-button__link.has-primary-color {
  transition: 0.25s;
}
.wp-block-button__link.has-primary-color:hover {
  background-color: var(--primary);
  color: white !important;
  border-color: var(--primary);
}
/*== Layout ==*/
table td {
  padding-left: 0 !important;
  padding-right: 0.25em !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
table * {
  font-size: var(--fs-p);
}
.force-mw {
  max-width: 1600px !important;
}
:root {
  --f4-content-half: 800px;
  --f4-split-gutter: clamp(24px, 3vw, 64px);
}
@media (min-width: 782px) {
  .f4-split > .wp-block-column:first-child > .wp-block-group {
    padding-left: max(var(--f4-split-gutter), calc(50vw - var(--f4-content-half))) !important;
    padding-right: var(--f4-split-gutter) !important;
  }
  .f4-split > .wp-block-column:last-child > .wp-block-group {
    padding-left: var(--f4-split-gutter) !important;
    padding-right: max(var(--f4-split-gutter), calc(50vw - var(--f4-content-half))) !important;
  }
}
@media (max-width: 781px) {
  .f4-split > .wp-block-column > .wp-block-group {
    padding-inline: var(--f4-split-gutter) !important;
  }
}
/*== Layout END ==*/
/*== z-index Styling ==*/
.z-99 {
  z-index: 99 !important;
  position: relative;
}
.z-98 {
  z-index: 98 !important;
  position: relative;
}
.z-97 {
  z-index: 97 !important;
  position: relative;
}
.z-96 {
  z-index: 96 !important;
  position: relative;
}
.z-95 {
  z-index: 95 !important;
  position: relative;
}
.z-94 {
  z-index: 94 !important;
  position: relative;
}
/*== Toolkit classes ==*/
.h-100 {
  height: -webkit-fill-available !important;
  height: fill-available !important;
}
.w-100 {
  width: -webkit-fill-available !important;
  width: fill-available !important;
}
.no-underline a, .no-underline a span {
  text-decoration: none !important;
}
figure {
  line-height: 0;
}
.wp-block-list {
  list-style: none;
  margin: 0;
  padding-left: 1.5rem;
}
.wp-block-list li {
  position: relative;
  padding-left: 1.25rem;
}
.wp-block-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.75em;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--brand-pink);
  transform: translateY(-50%);
}
.widespread-list li {
  margin-bottom: 1.25rem;
}
.undermark {
  position: relative;
}
.undermark:before {
  content: "";
  position: absolute;
  left: -1%;
  bottom: 3px !important;
  width: 102%;
  height: 22%;
  z-index: -1;
}
.undermark.pink:before {
  background-color: var(--brand-pink);
}
.undermark.blue:before {
  background-color: var(--brand-blue);
}
/*.get-responsive-width {
  max-width: 1600px;
  padding-left: 0;
  padding-right: 0;
}*/
@media (max-width: 1700px) {
  .responsive-mg-x {
    margin-right: var(--wp--preset--spacing--50) !important;
    margin-left: var(--wp--preset--spacing--50) !important;
  }
}
@media (max-width: 781.98px) {
  .wp-block-cover {
    min-height: 450px !important;
  }
}
.open-essentials, .open-365plus {
  cursor: pointer;
}
.maxw-heading {
  max-width: 520px !important;
}
/*== WPForms Styling ==*/
.wpforms-container input, .wpforms-container textarea {
  border-color: var(--text-dark) !important;
  border-radius: 0px !important;
}
.wpforms-container legend, .wpforms-container label {
  color: var(--text-dark) !important;
}
.wpforms-container button {
  padding: 10px 15px !important;
  border-radius: 0 !important;
  border: solid 1px var(--primary) !important;
  background-color: var(--primary) !important;
  color: white !important;
  font-family: "Avenir Next", Avenir, sans-serif;
  font-weight: 700 !important;
  transition: 0.25s;
  font-size: var(--fs-button) !important;
  line-height: var(--lh-button) !important;
}
.wpforms-container button:hover {
  transform: scale(1.1);
}
/*== WPForms Styling END ==*/
.grecaptcha-badge {
  opacity: 0 !important;
}
/*== General END ==*/
/* Compact, readable multi-line buttons on narrow phones. */
@media (max-width: 420px) {
  .wp-block-button .wp-block-button__link {
    --button-padding-x: 10px;
    --button-padding-y: 8px;
    --button-gap: 6px;
    --button-arrow-width: 22px;
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    flex-wrap: nowrap;
    gap: var(--button-gap);
    max-width: 100%;
    min-height: 44px;
    padding: var(--button-padding-y) var(--button-padding-x) !important;
    font-size: 15px !important;
    line-height: 1.3;
    text-align: left;
    white-space: normal;
    overflow-wrap: anywhere;
    hyphens: none;
    -webkit-hyphens: none;
  }
  .wp-block-button .wp-block-button__link > :is(svg, img) {
    flex-shrink: 0;
    width: var(--button-arrow-width) !important;
    height: auto;
    margin-inline-start: 0;
    padding: 0 !important;
  }
}
/* Keep headline words intact unless a whole word cannot fit on its own line.
   Manual hyphens and editor line breaks remain available. */
:is(h1, h2, h3, h4, h5, h6, .wp-block-heading), :is(h1, h2, h3, h4, h5, h6, .wp-block-heading) * {
  -webkit-hyphens: manual !important;
  hyphens: manual !important;
  word-break: normal !important;
  overflow-wrap: anywhere !important;
}
/* Small phone columns still need natural hyphenation for long words. */
@media (max-width: 480px) {
  :is(h1, h2, h3, h4, h5, h6, .wp-block-heading), :is(h1, h2, h3, h4, h5, h6, .wp-block-heading) * {
    -webkit-hyphens: auto !important;
    hyphens: auto !important;
  }
}
/*== Navigation ==*/
@media (max-width: 767.98px) {
  .menu-disappear-on-mobile {
    display: none !important;
  }
}
.mobile-menu-icon {
  display: none !important;
  margin-right: -8px !important;
}
.mobile-menu-icon figure {
  max-width: 40px;
}
@media (max-width: 767.98px) {
  .mobile-menu-icon {
    display: flex !important;
  }
}
.mobile-menu-open, .mobile-menu-close {
  cursor: pointer;
}
.mobile-menu-open:focus-visible, .mobile-menu-close:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 4px;
}
.mobile-menu-close {
  flex-shrink: 0;
  margin-right: -10px !important;
  width: 40px;
  margin: 0;
}
html.has-open-mobile-menu, html.has-open-mobile-menu body {
  overflow: hidden;
}
html.has-open-mobile-menu .site-header {
  z-index: 100000;
}
.mobile-menu {
  display: flex !important;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  gap: clamp(32px, 8vh, 80px);
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  margin: 0 !important;
  height: 100vh;
  height: 100dvh;
  position: fixed;
  inset: 0;
  z-index: 100001;
  overflow-y: auto;
  overscroll-behavior: contain;
  background-color: var(--white, #fff);
  visibility: hidden;
  pointer-events: none;
  transform: translateX(100%);
  transition: transform 400ms cubic-bezier(0.22, 1, 0.36, 1), visibility 0s 400ms;
}
.mobile-menu .undermark {
  width: fit-content;
}
.mobile-menu .wp-block-site-logo:focus, .mobile-menu .wp-block-site-logo svg:focus {
  outline-width: 0 !important;
}
.mobile-menu > .wp-block-group {
  flex-shrink: 0;
  width: 100%;
  max-width: none;
}
.mobile-menu.open {
  visibility: visible;
  pointer-events: auto;
  transform: translateX(0);
  transition-delay: 0s;
}
@media (min-width: 768px) {
  .mobile-menu {
    display: none !important;
  }
}
@media (prefers-reduced-motion: reduce) {
  .mobile-menu {
    transition: none;
  }
}
/*== Navigation END ==*/
/* Larger labels and real tap areas within the mobile navigation. */
@media (max-width: 767.98px) {
  /* Keep the brand highlights under the letters, inside the padded target. */
  .mobile-menu {
    flex-wrap: nowrap !important;
    gap: clamp(24px, 5vh, 48px);
  }
  .mobile-menu > .wp-block-group:not(:first-child) {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
  }
  .mobile-menu > .wp-block-group:not(:first-child) > * {
    margin-block: 0 !important;
  }
  .mobile-menu :is(.open-essentials, .open-365plus, .top-nav-link a) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    min-height: 52px;
    max-width: 100%;
    padding: 12px 16px;
    font-size: 22px !important;
    line-height: 1.2;
    text-align: center;
  }
  .mobile-menu .undermark::before {
    left: 16px;
    bottom: 14px !important;
    width: calc(100% - 32px);
    height: 5px;
  }
  .mobile-menu .wp-block-button .wp-block-button__link {
    min-height: 52px;
    padding: 12px 20px !important;
    font-size: 20px !important;
    line-height: 1.2;
  }
}
/*== Header ==*/
:root {
  --site-header-height: 80px;
  --site-header-sticky-height: 80px;
  --site-header-space: var(--site-header-height);
}
.site-header {
  position: relative;
  z-index: 1000;
  width: 100%;
  box-sizing: border-box;
  background-color: var(--white);
}
.site-header .header-cols {
  width: 1600px;
}
@media (max-width: 1700px) {
  .site-header .header-cols {
    width: -webkit-fill-available;
  }
}
.site-header.is-sticky {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
}
.top-nav-link a {
  font-size: 18px;
  font-style: normal;
  font-weight: 400;
  text-decoration: none !important;
}
.site-header-spacer {
  height: 0;
  pointer-events: none;
  margin: 0 !important;
}
.site-header-spacer.is-active {
  height: var(--site-header-space);
}
@media (min-width: 768px) and (max-width: 1199.98px) {
  .site-header .header-cols {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    row-gap: 12px;
  }
  .site-header .header-cols > .menu-disappear-on-mobile {
    grid-column: 1 / -1;
    justify-content: flex-end;
  }
}
@media (min-width: 1200px) {
  .site-header {
    height: var(--site-header-height);
  }
  .site-header > .wp-block-group {
    display: flex;
    align-items: center;
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
  .site-header.is-sticky {
    height: var(--site-header-sticky-height);
  }
}
.admin-bar .site-header.is-sticky {
  top: 32px;
}
@media (max-width: 782px) {
  .admin-bar .site-header.is-sticky {
    top: 46px;
  }
}
/* Center the gap between the unit links, regardless of label widths. */
@media (min-width: 768px) {
  .site-header .header-cols {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .site-header .header-cols > .wp-block-group:has(> .open-essentials):has(> .open-365plus) {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: center;
  }
  .site-header .header-cols > .wp-block-group > .open-essentials {
    justify-self: end;
    white-space: nowrap;
  }
  .site-header .header-cols > .wp-block-group > .open-365plus {
    justify-self: start;
    white-space: nowrap;
  }
}
/* Keep navigation readable before all three header columns have enough room. */
@media (min-width: 768px) and (max-width: 1535.98px) {
  .site-header, .site-header.is-sticky {
    height: auto;
  }
  .site-header > .wp-block-group {
    height: auto;
    padding-block: 16px !important;
  }
  .site-header .header-cols {
    row-gap: 12px;
  }
  .site-header .header-cols > .menu-disappear-on-mobile {
    grid-column: 1 / -1;
    justify-content: flex-end;
  }
}
@media (min-width: 768px) {
  .site-header .header-cols > .menu-disappear-on-mobile .wp-block-button {
    flex-shrink: 0;
  }
  .site-header .header-cols > .menu-disappear-on-mobile .wp-block-button__link {
    white-space: nowrap;
  }
}
/*== Header END ==*/
/*== Footer ==*/
footer {
  margin-top: 0;
}
footer p, footer a {
  letter-spacing: 1.6px !important;
}
footer .bottom-nav-link, footer .bottom-nav-link a {
  font-size: 16px !important;
  font-style: normal;
  font-weight: 600;
  text-transform: uppercase;
  text-decoration: none !important;
}
footer .bottom-nav-link-thin a {
  font-size: 14px;
  line-height: 1.4;
  text-transform: uppercase;
  text-decoration: none !important;
}
/*== Footer END ==*/
/*== Site specific SCSS ==*/
/*== content ==*/
.hero-intro-heading {
  position: relative;
}
.hero-intro-heading mark {
  position: relative;
  z-index: 0;
  isolation: isolate;
  white-space: nowrap;
}
.hero-intro-heading mark::before {
  content: "";
  position: absolute;
  left: -1%;
  bottom: 0.31em;
  width: 102%;
  height: 14%;
  z-index: -1;
}
.hero-intro-heading mark:nth-of-type(1)::before {
  background-color: var(--brand-pink);
}
.hero-intro-heading mark:nth-of-type(2)::before {
  background-color: var(--brand-blue);
}
/* Keep the hero cover stretched through the carousel's extra wrappers. */
.f4-split > .wp-block-column:has(> .wp-block-cb-carousel-v2) {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.f4-split > .wp-block-column > .wp-block-cb-carousel-v2 {
  display: flex;
  flex-direction: column;
  flex: 1;
  width: 100%;
  min-width: 0;
  height: auto !important;
}
.f4-split > .wp-block-column > .wp-block-cb-carousel-v2 > .swiper {
  display: flex;
  flex: 1;
  width: 100%;
  min-height: 0;
}
.f4-split > .wp-block-column > .wp-block-cb-carousel-v2 > .swiper > .swiper-wrapper {
  height: auto !important;
  align-items: stretch;
}
.f4-split > .wp-block-column > .wp-block-cb-carousel-v2 .swiper-slide {
  display: flex;
  height: auto !important;
}
.f4-split > .wp-block-column > .wp-block-cb-carousel-v2 .swiper-slide > .wp-block-cover {
  flex: 1;
  width: 100%;
  height: auto !important;
}
/* On stacked heroes, keep the scroll cue out of the copy. */
@media (max-width: 781.98px) {
  /* Keep the divider between the copy and image after the columns stack. */
  /* JavaScript limits the fixed cue to the hero; absolute placement is a fallback. */
  .f4-split:has(a[href="#start-here"]) {
    position: relative;
  }
  .f4-split:has(a[href="#start-here"]) > .wp-block-column:first-child {
    border-right-width: 0 !important;
    border-bottom: 1px solid var(--text-black, #000) !important;
  }
  .f4-split .wp-block-image:has(> a[href="#start-here"]) {
    position: absolute;
    right: var(--f4-split-gutter, 24px);
    bottom: 24px;
    z-index: 2;
    width: 48px;
    height: 48px;
    margin: 0 !important;
  }
  .f4-split .wp-block-image.f4-hero-scroll-cue:has(> a[href="#start-here"]) {
    position: fixed;
    right: max(var(--f4-split-gutter, 24px), env(safe-area-inset-right));
    bottom: max(24px, env(safe-area-inset-bottom));
    z-index: 900;
  }
  .f4-split .f4-hero-scroll-cue:not(.is-visible), .has-open-mobile-menu .f4-hero-scroll-cue, .has-open-contact-sidebar .f4-hero-scroll-cue {
    visibility: hidden;
    pointer-events: none;
  }
  .f4-split a[href="#start-here"] {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--white, #fff);
  }
  .f4-split a[href="#start-here"] :is(img, svg) {
    display: block;
    width: 48px;
    height: 48px;
  }
  .f4-split a[href="#start-here"]:focus-visible {
    outline: 2px solid var(--text-black, #000);
    outline-offset: 4px;
  }
}
/* Include text padding inside each 50% shopperwissen column. */
#shopperwissen > .wp-block-columns > .wp-block-column {
  box-sizing: border-box;
}
/*== Dynamic content switcher ==*/
.essentials-only, [class~="365plus-only"] {
  display: none;
}
.f4-reveal-section {
  display: none;
}
.f4-reveal-section.is-active {
  display: block;
  animation: f4-reveal-content 620ms cubic-bezier(0.22, 1, 0.36, 1) both;
}
.f4-primary-choice {
  overflow: hidden;
  opacity: 1;
  transform: translateY(0);
  transition: height 640ms cubic-bezier(0.22, 1, 0.36, 1), opacity 260ms ease, transform 480ms cubic-bezier(0.22, 1, 0.36, 1), visibility 0s linear 640ms;
}
.f4-primary-choice.is-dismissed {
  visibility: hidden;
  opacity: 0;
  transform: translateY(-16px);
  pointer-events: none;
}
@keyframes f4-reveal-content {
  from {
    opacity: 0;
    transform: translateY(28px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@media (prefers-reduced-motion: reduce) {
  .f4-reveal-section.is-active {
    animation: none;
  }
  .f4-primary-choice {
    transition: none;
  }
}
/*== Dynamic content switcher END ==*/
/*== Contact Form 7 ==*/
.f4-contact-form {
  width: 100%;
  max-width: 704px;
  margin: 0;
  color: var(--text-black);
  font-family: "Avenir Next", Avenir, sans-serif;
}
.f4-contact-form * {
  box-sizing: border-box;
}
.f4-contact-form__fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px 14px;
}
.f4-contact-form__field {
  min-width: 0;
  margin: 0;
}
.f4-contact-form__field--message {
  grid-column: 1 / -1;
}
.f4-contact-form__field > p, .f4-contact-form__privacy > p, .f4-contact-form__actions > p {
  margin: 0;
  font: inherit;
  line-height: inherit;
}
.f4-contact-form__field br, .f4-contact-form__privacy br, .f4-contact-form__actions br {
  display: none;
}
.f4-contact-form__label {
  display: block;
  margin: 0 0 11px;
  font-size: 14px;
  font-weight: 500;
  line-height: 24px;
  text-transform: uppercase;
}
.f4-contact-form__label-optional {
  text-transform: none;
}
.f4-contact-form__label-required {
  color: #ff0000;
}
.f4-contact-form .wpcf7-form-control-wrap {
  display: block;
}
.f4-contact-form__control {
  display: block;
  width: 100%;
  height: 40px;
  margin: 0;
  padding: 7px 16px;
  color: var(--text-black);
  font-family: inherit;
  font-size: 12px;
  font-weight: 500;
  line-height: 24px;
  background-color: var(--white);
  border: 1px solid var(--text-black);
  border-radius: 0;
  box-shadow: none;
  appearance: none;
}
.f4-contact-form__control::placeholder {
  color: var(--ui-gray);
  opacity: 1;
}
.f4-contact-form__control:focus {
  border-color: var(--brand-blue);
  outline: 1px solid var(--brand-blue);
  outline-offset: 0;
}
.f4-contact-form__control.wpcf7-not-valid {
  border-color: #ff0000;
}
.f4-contact-form textarea.f4-contact-form__control {
  height: 101px;
  min-height: 101px;
  padding-top: 7px;
  resize: vertical;
}
.f4-contact-form__privacy {
  display: grid;
  grid-template-columns: 17px minmax(0, 1fr);
  gap: 9px;
  align-items: start;
  width: 100%;
  max-width: 689px;
  margin: 24px 0 0;
  font-size: 16px;
  font-weight: 400;
  line-height: 24px;
  text-transform: capitalize;
}
.f4-contact-form__privacy::before {
  content: "";
  display: block;
  width: 17px;
  height: 17px;
  margin-top: 2px;
  background: url("assets/images/contact-lock.svg") center / contain no-repeat;
}
.f4-contact-form__privacy a {
  font-weight: 500 !important;
  text-decoration: none !important;
  font-size: 16px;
}
.f4-contact-form__privacy a:hover, .f4-contact-form__privacy a:focus-visible {
  text-decoration: underline !important;
}
.f4-contact-form__actions {
  position: relative;
  display: inline-flex;
  min-width: 0;
  max-width: 100%;
  margin-top: 24px;
}
.f4-contact-form__actions::after {
  content: "";
  position: absolute;
  top: 50%;
  right: var(--button-padding-x);
  width: var(--button-arrow-width);
  aspect-ratio: 2.1764705882;
  pointer-events: none;
  background: url(assets/images/contact-arrow.svg) center / 100% 100% no-repeat;
  transform: translateY(-50%) rotateX(180deg);
}
.f4-contact-form__submit {
  width: 410px;
  min-width: 0;
  max-width: 100%;
  min-height: 44px;
  margin: 0;
  padding: var(--button-padding-y) calc(var(--button-padding-x) + var(--button-arrow-width) + var(--button-gap)) var(--button-padding-y) var(--button-padding-x);
  color: var(--text-black);
  font-family: inherit;
  font-size: var(--fs-button);
  font-weight: 700;
  line-height: var(--lh-button);
  text-align: left;
  white-space: normal;
  overflow-wrap: anywhere;
  hyphens: none;
  background-color: transparent;
  border: 1px solid var(--text-black);
  border-radius: 0;
  box-shadow: none;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease;
}
.f4-contact-form__submit:hover, .f4-contact-form__submit:focus-visible {
  color: var(--white);
  background-color: var(--text-black);
  outline: 0;
}
.f4-contact-form__actions:hover::after, .f4-contact-form__actions:focus-within::after {
  filter: invert(1);
}
.f4-contact-form .wpcf7-spinner {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  margin: 0;
}
.f4-contact-form .wpcf7-not-valid-tip {
  margin-top: 4px;
  font-size: 12px;
  line-height: 16px;
}
.f4-contact-form + .wpcf7-response-output {
  margin: 24px 0 0 !important;
  padding: 12px 16px !important;
  font-size: 14px;
  line-height: 20px;
}
@media (max-width: 781px) {
  .f4-contact-form {
    max-width: none;
  }
  .f4-contact-form__fields {
    grid-template-columns: minmax(0, 1fr);
  }
  .f4-contact-form__field--message {
    grid-column: auto;
  }
}
@media (max-width: 480px) {
  .f4-contact-form__privacy {
    font-size: 14px;
    line-height: 21px;
  }
  .f4-contact-form__actions {
    display: flex;
  }
  .f4-contact-form__submit {
    width: 100%;
  }
}
/*== Contact Form 7 END ==*/
/*== Essentials grid ==*/
.essentials-grid.wp-block-columns {
  flex-wrap: wrap !important;
}
.essentials-grid.wp-block-columns .wp-block-column, .essentials-grid.wp-block-columns .wp-block-group, .essentials-grid.wp-block-columns .wp-block-buttons, .essentials-grid.wp-block-columns .wp-block-button {
  box-sizing: border-box;
  min-width: 0 !important;
  max-width: 100%;
}
.essentials-grid.wp-block-columns > .wp-block-column:first-child {
  flex: 3 1 24rem !important;
}
.essentials-grid.wp-block-columns > .wp-block-column:last-child {
  flex: 7 1 56rem !important;
}
.essentials-grid.wp-block-columns > .wp-block-column:last-child > .wp-block-columns {
  container: essentials-route / inline-size;
  flex-wrap: wrap !important;
}
.essentials-grid.wp-block-columns > .wp-block-column:last-child > .wp-block-columns > .wp-block-column:first-child {
  flex: 1 1 22rem !important;
  border-right-width: 0 !important;
  box-shadow: inset -1px 0 var(--brand-pink);
  /* Follow the 22rem + 28rem column wrap, including tablet layouts. */
}
@container essentials-route (width < 50rem) {
  .essentials-grid.wp-block-columns > .wp-block-column:last-child > .wp-block-columns > .wp-block-column:first-child {
    box-shadow: inset 0 -1px var(--brand-pink);
  }
}
.essentials-grid.wp-block-columns > .wp-block-column:last-child > .wp-block-columns > .wp-block-column:last-child {
  flex: 2 1 28rem !important;
  container: essentials-details / inline-size;
}
.essentials-grid.wp-block-columns > .wp-block-column:last-child > .wp-block-columns > .wp-block-column:last-child > .is-layout-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.essentials-grid.wp-block-columns > .wp-block-column:last-child > .wp-block-columns > .wp-block-column:last-child > .is-layout-grid > .wp-block-group {
  min-height: 0 !important;
}
@container essentials-details (max-width: 28rem) {
  .essentials-grid.wp-block-columns > .wp-block-column:last-child > .wp-block-columns > .wp-block-column:last-child > .is-layout-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .essentials-grid.wp-block-columns > .wp-block-column:last-child > .wp-block-columns > .wp-block-column:last-child > .is-layout-grid > .wp-block-group {
    border-right-width: 0 !important;
    border-bottom: 1px solid var(--brand-pink);
  }
  .essentials-grid.wp-block-columns > .wp-block-column:last-child > .wp-block-columns > .wp-block-column:last-child > .is-layout-grid > .wp-block-group:last-child {
    border-bottom-width: 0 !important;
  }
}
.essentials-grid.wp-block-columns .wp-block-heading, .essentials-grid.wp-block-columns p {
  overflow-wrap: anywhere;
}
/*== 365+ grid ==*/
[class~="365plus-grid"].wp-block-columns {
  flex-wrap: wrap !important;
}
[class~="365plus-grid"].wp-block-columns .wp-block-column, [class~="365plus-grid"].wp-block-columns .wp-block-group, [class~="365plus-grid"].wp-block-columns .wp-block-image {
  box-sizing: border-box;
  min-width: 0 !important;
  max-width: 100%;
}
[class~="365plus-grid"].wp-block-columns > .wp-block-column:first-child {
  flex: 3 1 24rem !important;
}
[class~="365plus-grid"].wp-block-columns > .wp-block-column:last-child {
  flex: 7 1 56rem !important;
}
[class~="365plus-grid"].wp-block-columns > .wp-block-column:last-child > .wp-block-columns {
  flex-wrap: wrap !important;
  align-items: stretch !important;
}
[class~="365plus-grid"].wp-block-columns > .wp-block-column:last-child > .wp-block-columns > .wp-block-column:first-child {
  flex: 1 1 18rem !important;
  display: flex;
}
[class~="365plus-grid"].wp-block-columns > .wp-block-column:last-child > .wp-block-columns > .wp-block-column:first-child > .wp-block-image {
  display: flex;
  flex: 1;
  margin: 0;
}
[class~="365plus-grid"].wp-block-columns > .wp-block-column:last-child > .wp-block-columns > .wp-block-column:first-child > .wp-block-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
[class~="365plus-grid"].wp-block-columns > .wp-block-column:last-child > .wp-block-columns > .wp-block-column:last-child {
  flex: 2 1 30rem !important;
  align-self: stretch;
  height: auto !important;
  display: flex;
}
[class~="365plus-grid"].wp-block-columns > .wp-block-column:last-child > .wp-block-columns > .wp-block-column:last-child > .wp-block-group {
  flex: 1;
  min-height: 0 !important;
  justify-content: center;
}
[class~="365plus-grid"].wp-block-columns .wp-block-heading, [class~="365plus-grid"].wp-block-columns p {
  overflow-wrap: anywhere;
}
.image-overlay-container {
  position: relative;
}
.image-overlay-container .image-overlay-content {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 0 !important;
  opacity: 0 !important;
  overflow: hidden;
  margin-top: 0;
  transition: height 0.5s ease, opacity 0.4s ease;
}
.image-overlay-container:hover .image-overlay-content {
  height: fit-content !important;
  opacity: 0.85 !important;
}
/*== Gallery ==*/
.gallery-title.wp-block-group {
  flex-wrap: wrap !important;
  align-items: flex-start;
  gap: clamp(1rem, 3vw, 3rem);
}
.gallery-title.wp-block-group > p {
  flex: 1 1 16rem;
}
.gallery-title.wp-block-group > .wp-block-heading {
  flex: 2 1 40rem;
}
.gallery-title.wp-block-group > p, .gallery-title.wp-block-group > .wp-block-heading {
  min-width: 0;
  max-width: 100%;
  margin-block: 0;
  overflow-wrap: anywhere;
}
/* Gallery rows honor WordPress flex-basis percentages, including row gaps. */
.gallery-grid.wp-block-group {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--wp--preset--spacing--15);
  min-width: 0;
}
.gallery-grid.wp-block-group > .wp-block-group {
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: var(--wp--preset--spacing--15);
  width: 100%;
  min-width: 0;
  margin: 0;
}
/* Low-specificity defaults preserve the original proportions for unsized cards.
   Widths set in the editor override flex-basis without custom class names. */
:where(.gallery-grid > .wp-block-group > .image-overlay-container) {
  flex: 1 1 0%;
}
:where(.gallery-grid > .wp-block-group > .image-overlay-container:nth-child(1)) {
  flex-grow: 726;
}
:where(.gallery-grid > .wp-block-group > .image-overlay-container:nth-child(2)) {
  flex-grow: 436;
}
:where(.gallery-grid > .wp-block-group > .image-overlay-container:nth-child(3)) {
  flex-grow: 732;
}
:where(.gallery-grid > .wp-block-group:nth-child(2) > .image-overlay-container:nth-child(1)) {
  flex-grow: 436;
}
:where(.gallery-grid > .wp-block-group:nth-child(2) > .image-overlay-container:nth-child(2)) {
  flex-grow: 726;
}
.gallery-grid .image-overlay-container {
  position: relative;
  display: flex;
  flex-direction: column;
  /* WordPress sets shrink: 0 with percentage widths; allow room for the gaps. */
  flex-shrink: 1 !important;
  box-sizing: border-box;
  min-width: 0;
  max-width: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
}
.gallery-grid .image-overlay-container > .wp-block-cover {
  flex: 1 0 auto;
  width: 100%;
  max-width: none;
  margin: 0;
}
.gallery-grid .wp-block-image {
  margin: 0;
  max-width: none;
}
.gallery-grid .wp-block-image img {
  display: block;
  width: 100%;
  height: auto;
}
.gallery-grid .image-overlay-content {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  margin-top: 0;
  box-sizing: border-box;
  max-width: 100%;
  padding-inline: clamp(1rem, 2.5vw, 2.5rem) !important;
  overflow: hidden;
  overflow-wrap: anywhere;
  height: auto !important;
  transform: translateY(100%);
  opacity: 0 !important;
  pointer-events: none;
  transition: transform 0.5s ease, opacity 0.4s ease;
}
.gallery-grid .image-overlay-container:hover .image-overlay-content {
  height: auto !important;
  transform: translateY(0);
  opacity: 0.85 !important;
  pointer-events: auto;
}
@media (max-width: 64rem) {
  .gallery-title .wp-block-heading br {
    display: none;
  }
  .gallery-grid.wp-block-group {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .gallery-grid.wp-block-group > .wp-block-group {
    display: contents;
  }
  .gallery-grid .image-overlay-container:has(> .wp-block-cover) {
    aspect-ratio: 1.3333333333;
  }
  .gallery-grid .image-overlay-container > .wp-block-cover {
    flex: 1 1 0;
    min-height: 0 !important;
  }
  .gallery-grid .wp-block-image img {
    aspect-ratio: 1.3333333333;
    object-fit: cover;
  }
}
@media (max-width: 37.5rem) {
  .gallery-grid.wp-block-group {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media (prefers-reduced-motion: reduce) {
  .gallery-grid .image-overlay-content {
    transition: none;
  }
}
/*== People ==*/
/* Animation groups can wrap the cards; keep the outer team split at 50/50. */
#team > .wp-block-columns:has(.people-grid) {
  container: team-layout / inline-size;
  flex-wrap: wrap !important;
  column-gap: 0;
}
#team > .wp-block-columns:has(.people-grid) > .wp-block-column {
  box-sizing: border-box;
  flex: 1 1 32rem !important;
  min-width: 0;
  max-width: 100%;
}
#team > .wp-block-columns > .wp-block-column:has(.people-grid) {
  container: people-cards / inline-size;
}
/* Drop the desktop gutter when the two 32rem columns stack. */
@container team-layout (width < 64rem) {
  #team > .wp-block-columns > .wp-block-column:has(> .float-container) {
    padding-right: 0 !important;
  }
}
/* Keep the team introduction beside the list on desktop only. */
@media (min-width: 1200px) {
  /* Clip overflow without creating a scroll container that traps sticky. */
  .wp-site-blocks:has(#team .float-container) {
    overflow: clip;
  }
  #team .wp-block-columns:has(> .wp-block-column > .float-container) {
    align-items: stretch;
  }
  #team .wp-block-column:has(> .float-container) {
    align-self: stretch;
  }
  #team .wp-block-column > .float-container {
    --team-sticky-top: calc(var(--site-header-space, 80px) + var(--anchor-admin-bar-offset, 0px) + 24px);
    position: sticky;
    top: var(--team-sticky-top);
    max-height: calc(100vh - var(--team-sticky-top) - 24px);
    max-height: calc(100dvh - var(--team-sticky-top) - 24px);
    overflow-y: auto;
  }
}
.wp-block-columns:has(> .wp-block-column > .people-grid) {
  flex-wrap: wrap !important;
}
.wp-block-columns:has(> .wp-block-column > .people-grid) > .wp-block-column {
  box-sizing: border-box;
  flex: 1 1 32rem !important;
  min-width: 0;
  max-width: 100%;
}
.wp-block-columns:has(> .wp-block-column > .people-grid) > .wp-block-column:has(> .people-grid) {
  container: people-cards / inline-size;
}
.wp-block-columns:has(> .wp-block-column > .people-grid) .wp-block-heading, .wp-block-columns:has(> .wp-block-column > .people-grid) p {
  overflow-wrap: anywhere;
}
.people-grid.wp-block-group {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--wp--preset--spacing--20);
  min-width: 0;
}
.people-grid.wp-block-group > .wp-block-group {
  box-sizing: border-box;
  min-width: 0;
  max-width: 100%;
  margin: 0;
}
.people-grid.wp-block-group .wp-block-image {
  max-width: none;
  margin: 0;
}
.people-grid.wp-block-group .wp-block-image img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  object-fit: cover;
}
.people-grid.wp-block-group p {
  overflow-wrap: anywhere;
}
@container people-cards (max-width: 38rem) {
  .people-grid.wp-block-group {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@container people-cards (max-width: 25rem) {
  .people-grid.wp-block-group {
    grid-template-columns: minmax(0, 1fr);
  }
}
/*== Responsive step rows ==*/
.wp-block-group:has(> .essential-steprow), .wp-block-column:has(> .essential-steprow) {
  container: essential-steps / inline-size;
}
.essential-steprow.wp-block-group {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
}
.essential-steprow.wp-block-group > .wp-block-group {
  display: grid;
  grid-template-columns: 2.25rem minmax(0, 1fr);
  align-items: center;
  gap: 0.75rem;
  min-width: 0;
  margin: 0;
}
.essential-steprow.wp-block-group .wp-block-image {
  margin: 0;
}
.essential-steprow.wp-block-group .wp-block-image img, .essential-steprow.wp-block-group .wp-block-image svg {
  display: block;
  max-width: 100%;
  height: auto;
  margin-inline: auto;
}
.essential-steprow.wp-block-group p {
  margin: 0;
  min-width: 0;
  line-height: 1.4;
  overflow-wrap: anywhere;
  hyphens: none;
}
@container essential-steps (max-width: 70rem) {
  .essential-steprow.wp-block-group {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@container essential-steps (max-width: 34rem) {
  .essential-steprow.wp-block-group {
    grid-template-columns: minmax(0, 1fr);
  }
}
.wp-block-group:has(> .shopperwissen-steprow), .wp-block-column:has(> .shopperwissen-steprow) {
  container: shopper-steps / inline-size;
}
.shopperwissen-steprow.wp-block-group {
  display: grid;
  grid-template-columns: max-content minmax(1.25rem, 1fr) max-content minmax(1.25rem, 1fr) max-content minmax(1.25rem, 1fr) max-content;
  align-items: center;
  gap: 0.75rem;
}
.shopperwissen-steprow.wp-block-group > p {
  margin: 0;
  font-size: 0.75rem !important;
  line-height: 1.4;
  white-space: nowrap;
  hyphens: none;
}
.shopperwissen-steprow.wp-block-group > .wp-block-image {
  margin: 0;
  justify-self: center;
  line-height: 0;
}
.shopperwissen-steprow.wp-block-group > .wp-block-image img, .shopperwissen-steprow.wp-block-group > .wp-block-image svg {
  display: block;
  width: 1.25rem;
  height: auto;
}
@container shopper-steps (max-width: 34rem) {
  .shopperwissen-steprow.wp-block-group {
    grid-template-columns: minmax(0, 1fr);
    justify-items: start;
    gap: 0.625rem;
  }
  .shopperwissen-steprow.wp-block-group > .wp-block-image {
    justify-self: start;
    margin-left: 0.25rem;
    transform: rotate(90deg);
  }
}
.fill-col-toolkit {
  height: -webkit-fill-available;
}
/* Contact sidebar */
.contact-sidebar-container {
  visibility: hidden;
  position: fixed;
}
.contact-sidebar-dialog {
  position: fixed;
  inset: 0 0 0 auto;
  box-sizing: border-box;
  width: 100%;
  max-width: 600px;
  height: 100vh;
  height: 100dvh;
  max-height: none;
  margin: 0;
  padding: 0;
  border: 0;
  background: var(--white, #fff);
  color: var(--text-black, #000);
  overflow: hidden;
  transform: translateX(100%);
  transition: transform 320ms cubic-bezier(0.22, 1, 0.36, 1);
}
.contact-sidebar-dialog.is-open {
  transform: translateX(0);
}
.contact-sidebar-dialog::backdrop {
  background: rgba(0, 0, 0, 0.4);
  opacity: 0;
  transition: opacity 320ms ease;
}
.contact-sidebar-dialog.is-open::backdrop {
  opacity: 1;
}
.contact-sidebar-dialog > .contact-sidebar-container {
  visibility: visible;
  position: relative;
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  height: 100%;
  margin: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
}
html.has-open-contact-sidebar {
  overflow: hidden;
}
.contact-sidebar-open, .contact-sidebar-close {
  cursor: pointer;
}
.contact-sidebar-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
}
.contact-sidebar-open:focus-visible, .contact-sidebar-open :focus-visible, .contact-sidebar-close:focus-visible, .contact-sidebar-close :focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 4px;
}
@media (prefers-reduced-motion: reduce) {
  .contact-sidebar-dialog, .contact-sidebar-dialog::backdrop {
    transition: none;
  }
}
.kontakte-telefonnummer a {
  font-size: 14px;
}
/*== content END ==*/
/* Essentials contact card responds to its column's available width. */
#essentials-kontakt > .fill-col-toolkit {
  container: essentials-contact / inline-size;
}
#essentials-kontakt .wp-block-group:has(> .wp-block-image):has(.contact-sidebar-open) {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  width: 100%;
  min-height: 0 !important;
  box-sizing: border-box;
}
#essentials-kontakt .wp-block-group:has(> .wp-block-image):has(.contact-sidebar-open) > * {
  min-width: 0;
  box-sizing: border-box;
}
#essentials-kontakt .wp-block-image {
  width: 100%;
  height: 100%;
  margin: 0;
}
#essentials-kontakt .wp-block-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@container essentials-contact (min-width: 32rem) {
  #essentials-kontakt .wp-block-group:has(> .wp-block-image):has(.contact-sidebar-open) {
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
  }
}
@media (max-width: 767.98px) {
  #essentials-kontakt > .fill-col-toolkit {
    padding-inline: 24px !important;
  }
  #essentials-kontakt .wp-block-group:has(> .wp-block-image):has(.contact-sidebar-open) > .wp-block-group {
    padding-inline: 16px !important;
  }
}
/* Keep the Essentials introduction alongside all activation cards. */
@media (min-width: 1200px) {
  /* Matches the grid's 24rem + 56rem column bases; stacked rows stay static. */
  .wp-site-blocks:has(.essentials-aktivierung-floater) {
    overflow: clip;
  }
  .essentials-grid:has(> .wp-block-column > .essentials-aktivierung-floater) {
    container: essentials-activation / inline-size;
    align-items: stretch;
  }
  @container essentials-activation (min-width: 80rem) {
    .essentials-grid > .wp-block-column:has(> .essentials-aktivierung-floater) {
      align-self: stretch;
    }
    .essentials-grid > .wp-block-column > .essentials-aktivierung-floater {
      --essentials-sticky-top: calc(var(--site-header-space, 80px) + var(--anchor-admin-bar-offset, 0px) + 24px);
      position: sticky;
      top: var(--essentials-sticky-top);
      max-height: calc(100vh - var(--essentials-sticky-top) - 24px);
      max-height: calc(100dvh - var(--essentials-sticky-top) - 24px);
      overflow-y: auto;
    }
  }
}
/* Keep the Marken introduction alongside the full 365+ card column. */
@media (min-width: 1200px) {
  /* Match the 24rem + 56rem column bases so wrapped columns stay static. */
  .wp-site-blocks:has(.marken-floater) {
    overflow: clip;
  }
  [class~="365plus-grid"]:has(> .wp-block-column > .marken-floater) {
    container: marken-activation / inline-size;
    align-items: stretch;
  }
  @container marken-activation (min-width: 80rem) {
    [class~="365plus-grid"] > .wp-block-column:has(> .marken-floater) {
      align-self: stretch;
    }
    [class~="365plus-grid"] > .wp-block-column > .marken-floater {
      --marken-sticky-top: calc(var(--site-header-space, 80px) + var(--anchor-admin-bar-offset, 0px) + 24px);
      position: sticky;
      top: var(--marken-sticky-top);
      align-items: flex-start;
      max-height: calc(100vh - var(--marken-sticky-top) - 24px);
      max-height: calc(100dvh - var(--marken-sticky-top) - 24px);
      overflow-y: auto;
    }
  }
}
.marken-floater {
  overflow: hidden;
  /* Keep the height-limited sticky content scrollable without a visible bar. */
  scrollbar-width: none;
}
.marken-floater::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}
.image-overlay-container .wp-block-cover {
  transition: scale 5s ease-in-out;
}
.image-overlay-container .wp-block-cover:hover {
  scale: 1.1;
}
#team .wp-block-image > a:has(> svg.inline-svg) {
  display: block;
  width: 100%;
  line-height: 0;
}
#team .wp-block-image > a:has(> svg.inline-svg) > svg.inline-svg {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1;
}
/*== Selector-Boxen ESSENTIALS / 365+ (Startseite) ==*/
/* Box-Inhalt füllt die ganze Spaltenhöhe, Buttons sitzen unten –
   so stehen beide Buttons auf einer Linie, auch wenn ein Text mehr Zeilen hat.
   Nur ab 782px (Spalten nebeneinander); mobil bleibt alles wie gehabt. */
@media (min-width: 782px) {
  /* Kinder volle Breite, sonst schrumpfen sie im Flex-Layout wegen der auto-Margins des constrained Layouts */
  .f4-split > .wp-block-column:has(> .wp-block-group .open-essentials, > .wp-block-group .open-365plus) {
    display: flex;
    flex-direction: column;
  }
  .f4-split > .wp-block-column > .wp-block-group:has(.open-essentials, .open-365plus) {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
  }
  .f4-split > .wp-block-column > .wp-block-group:has(.open-essentials, .open-365plus) > * {
    width: 100%;
  }
  .f4-split > .wp-block-column > .wp-block-group:has(.open-essentials, .open-365plus) > .wp-block-buttons {
    margin-top: auto;
  }
}
/*== Team-Karten: LinkedIn-Icon ohne Profil (nicht verlinkt, halbtransparent) ==*/
.people-grid .f4-icon-inactive {
  opacity: 0.5;
}
/*== Blog Stying ==*/
/*== Module specific SCSS ==*/
