/* Heartbeat theme chrome + HBC/Kadence token bridge, aligned to Styleguide 03/2026. */

:root {
  /* Canonical bridge from HBC/Kadence component tokens to the controlled theme.json palette. */
  --hbc-accent: var(--wp--preset--color--heartbeat-blue);
  --hbc-accent-strong: var(--wp--preset--color--heartbeat-blue-deep);
  --hbc-text-strong: var(--wp--preset--color--heartbeat-ink);
  --hbc-text: var(--wp--preset--color--heartbeat-muted);
  --hbc-muted: var(--wp--preset--color--heartbeat-muted);
  --hbc-background: var(--wp--preset--color--heartbeat-bg);
  --hbc-surface: var(--wp--preset--color--heartbeat-surface);
  --hbc-surface-soft: color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 72%, var(--wp--preset--color--heartbeat-bg));
  --hbc-coral: var(--wp--preset--color--heartbeat-coral);
  --hbc-border: color-mix(in srgb, var(--wp--preset--color--heartbeat-ink) 14%, transparent);
  --hbc-shadow-soft: 0 18px 46px rgba(0, 0, 0, 0.08);
  --hbc-radius-card: 18px;
  --hbc-radius-hero: clamp(22px, 2.35vw, 30px);
  --hbc-radius-panel: 16px;
  --hbc-radius-pill: 999px;
  --hbc-container: var(--wp--style--global--wide-size);
  --hbc-layout-page-max: var(--wp--style--global--wide-size);
  --hbc-layout-content-max: var(--wp--style--global--content-size);
  --hbc-layout-narrow-max: 760px;
  --hbc-layout-utility-max: 960px;
  --hbc-layout-section-gap: clamp(3rem, 7vw, 5.3125rem);
  --hbc-layout-inner-gap: 32px;
  --hbc-button-min-height: 54px;
  --hbc-button-padding-block: clamp(1rem, 0.82rem + 0.35vw, 1.12rem);
  --hbc-button-padding-inline: clamp(1.65rem, 1.25rem + 0.95vw, 2.05rem);
  --hbc-button-line-height: 1.16;

  /* Kadence Blocks often read the Kadence theme palette variables directly. */
  --global-palette1: var(--wp--preset--color--heartbeat-blue);
  --global-palette2: var(--wp--preset--color--heartbeat-blue-deep);
  --global-palette3: var(--wp--preset--color--heartbeat-ink);
  --global-palette4: var(--wp--preset--color--heartbeat-muted);
  --global-palette5: color-mix(in srgb, var(--wp--preset--color--heartbeat-ink) 42%, var(--wp--preset--color--heartbeat-bg));
  --global-palette6: color-mix(in srgb, var(--wp--preset--color--heartbeat-ink) 18%, var(--wp--preset--color--heartbeat-bg));
  --global-palette7: var(--wp--preset--color--heartbeat-bg);
  --global-palette8: var(--wp--preset--color--heartbeat-surface);
  --global-palette9: #ffffff;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: var(--wp--preset--color--heartbeat-bg);
  color: var(--wp--preset--color--heartbeat-ink);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

.wp-site-blocks {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.wp-site-blocks > main {
  flex: 1 0 auto;
}

a:where(:not(.wp-element-button)) {
  text-underline-offset: 0.18em;
}

a:where(:not(.wp-element-button)):hover,
a:where(:not(.wp-element-button)):focus-visible {
  color: var(--wp--preset--color--heartbeat-blue);
}

img {
  max-width: 100%;
  height: auto;
}

.heartbeat-site-header,
.heartbeat-site-footer {
  padding-right: var(--wp--style--root--padding-right);
  padding-left: var(--wp--style--root--padding-left);
}

.heartbeat-site-header {
  position: relative;
  z-index: 20;
  margin-block-start: 0;
  padding-top: clamp(0.85rem, 2vw, 1.25rem);
  padding-bottom: clamp(0.85rem, 2vw, 1.25rem);
}

.heartbeat-site-header__inner {
  max-width: var(--wp--style--global--wide-size);
  margin-inline: auto;
  padding: 0.72rem 0.85rem;
  flex-wrap: nowrap !important;
  gap: clamp(1rem, 3vw, 2rem);
  border: 1px solid var(--hbc-border);
  border-radius: var(--hbc-radius-pill);
  background: color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 88%, transparent);
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.08);
  backdrop-filter: blur(16px);
}

.heartbeat-site-brand {
  gap: 0.7rem;
  flex: 0 0 auto;
  min-width: 0;
}

.heartbeat-site-header__actions {
  flex: 1 1 auto;
  min-width: 0;
  justify-content: flex-end;
  gap: clamp(0.75rem, 1.4vw, 1rem);
  margin-left: auto;
}

.heartbeat-primary-nav {
  flex: 1 1 auto;
  min-width: 0;
  justify-content: flex-end;
  margin-left: auto;
}

.heartbeat-header-search-link {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  margin-block-start: 0;
}

.heartbeat-header-search-link .wp-block-button,
.heartbeat-header-search-link .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0;
}

.heartbeat-header-search-link .wp-block-button__link {
  position: relative;
  width: 44px;
  min-width: 44px;
  min-height: 44px;
  padding: 0 !important;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--wp--preset--color--heartbeat-ink) 13%, transparent) !important;
  background: color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 86%, transparent) !important;
  color: var(--wp--preset--color--heartbeat-blue-deep) !important;
  font-size: 0.8rem;
  line-height: 1;
  text-indent: -999rem;
  box-shadow: none !important;
}

.heartbeat-header-search-link .wp-block-button__link::before,
.heartbeat-header-search-link .wp-block-button__link::after {
  content: "";
  position: absolute;
  display: block;
  text-indent: 0;
}

.heartbeat-header-search-link .wp-block-button__link::before {
  top: 12px;
  left: 12px;
  width: 13px;
  height: 13px;
  border: 2px solid currentColor;
  border-radius: 50%;
}

.heartbeat-header-search-link .wp-block-button__link::after {
  top: 27px;
  left: 27px;
  width: 9px;
  height: 2px;
  border-radius: 999px;
  background: currentColor;
  transform: rotate(45deg);
  transform-origin: left center;
}

.heartbeat-header-search {
  display: none;
  margin-block-start: 0;
}

.heartbeat-primary-nav .wp-block-navigation__container {
  justify-content: flex-end;
  gap: clamp(0.5rem, 0.75vw, 0.85rem);
}

.heartbeat-primary-classic-menu {
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

.heartbeat-primary-classic-menu__list {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: clamp(0.5rem, 0.75vw, 0.85rem);
  margin: 0;
  padding: 0;
  list-style: none;
}

.heartbeat-primary-classic-menu__list .menu-item {
  position: relative;
  margin: 0;
}

.heartbeat-site-title,
.heartbeat-site-title a,
.heartbeat-site-footer__title,
.heartbeat-site-footer__title a {
  margin: 0;
  color: var(--wp--preset--color--heartbeat-ink);
  font-size: 1rem;
  font-weight: 760;
  letter-spacing: -0.02em;
  line-height: 1.1;
  text-decoration: none;
}

.heartbeat-primary-nav .wp-block-navigation-item__content,
.heartbeat-footer-nav .wp-block-navigation-item__content,
.heartbeat-primary-classic-menu a {
  color: var(--wp--preset--color--heartbeat-ink);
  font-size: clamp(0.86rem, 0.78rem + 0.2vw, 0.96rem);
  font-weight: 650;
  text-decoration: none;
}

.heartbeat-primary-classic-menu__list > .menu-item > a {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  min-height: 1.9rem;
}

.heartbeat-primary-classic-menu__list > .menu-item-has-children > a {
  padding: 0.32rem 0.5rem;
  border: 1px solid color-mix(in srgb, var(--wp--preset--color--heartbeat-ink) 9%, transparent);
  border-radius: var(--hbc-radius-pill);
  background: color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 68%, transparent);
  transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, box-shadow 160ms ease;
}

.heartbeat-primary-classic-menu__list > .menu-item-has-children > a::after {
  content: "";
  width: 0.42rem;
  height: 0.42rem;
  margin-top: -0.12rem;
  border-right: 1.7px solid currentColor;
  border-bottom: 1.7px solid currentColor;
  opacity: 0.74;
  transform: rotate(45deg);
  transition: transform 160ms ease, opacity 160ms ease;
}

.heartbeat-primary-nav .wp-block-navigation-item__content:hover,
.heartbeat-primary-nav .wp-block-navigation-item__content:focus-visible,
.heartbeat-footer-nav .wp-block-navigation-item__content:hover,
.heartbeat-footer-nav .wp-block-navigation-item__content:focus-visible,
.heartbeat-primary-classic-menu a:hover,
.heartbeat-primary-classic-menu a:focus-visible {
  color: var(--wp--preset--color--heartbeat-blue-deep);
}

.heartbeat-primary-classic-menu__list > .menu-item-has-children:hover > a,
.heartbeat-primary-classic-menu__list > .menu-item-has-children:focus-within > a {
  border-color: color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 22%, transparent);
  background: color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 8%, var(--wp--preset--color--heartbeat-surface));
  box-shadow: 0 10px 24px color-mix(in srgb, var(--wp--preset--color--heartbeat-ink) 8%, transparent);
}

.heartbeat-primary-classic-menu__list > .menu-item-has-children:hover > a::after,
.heartbeat-primary-classic-menu__list > .menu-item-has-children:focus-within > a::after {
  opacity: 1;
  transform: translateY(0.08rem) rotate(45deg);
}

/* Desktop Core Navigation dropdowns: override WordPress' default white/black
   submenu panel so it belongs to the Heartbeat beige/blue design system. */
.heartbeat-primary-nav .wp-block-navigation__submenu-container {
  min-width: 13.5rem !important;
  padding: 0.45rem !important;
  border: 1px solid color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 18%, transparent) !important;
  border-radius: 22px;
  background: linear-gradient(
    180deg,
    color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 96%, white),
    color-mix(in srgb, var(--wp--preset--color--heartbeat-bg) 92%, var(--wp--preset--color--heartbeat-surface))
  ) !important;
  color: var(--wp--preset--color--heartbeat-ink) !important;
  box-shadow: 0 22px 54px color-mix(in srgb, var(--wp--preset--color--heartbeat-ink) 14%, transparent);
  overflow: hidden;
}

.heartbeat-primary-classic-menu .menu-item-has-children::before {
  content: "";
  position: absolute;
  right: 0;
  bottom: -0.85rem;
  left: 0;
  height: 0.9rem;
}

.heartbeat-primary-classic-menu .sub-menu {
  position: absolute;
  top: calc(100% + 0.72rem);
  right: 0;
  z-index: 30;
  display: grid;
  min-width: 16.25rem;
  margin: 0;
  padding: 0.56rem;
  border: 1px solid color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 22%, transparent);
  border-radius: 24px;
  background-color: var(--wp--preset--color--heartbeat-surface);
  background-image: linear-gradient(
    180deg,
    color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 96%, white),
    color-mix(in srgb, var(--wp--preset--color--heartbeat-bg) 90%, var(--wp--preset--color--heartbeat-surface))
  );
  box-shadow: 0 24px 58px color-mix(in srgb, var(--wp--preset--color--heartbeat-ink) 16%, transparent), inset 0 1px 0 color-mix(in srgb, white 68%, transparent);
  list-style: none;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(0.45rem) scale(0.985);
  transform-origin: top right;
  transition: opacity 170ms ease, transform 170ms ease, visibility 0s linear 170ms;
}

.heartbeat-primary-classic-menu .sub-menu::before {
  content: "";
  position: absolute;
  top: -0.43rem;
  right: 1.35rem;
  width: 0.82rem;
  height: 0.82rem;
  border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 22%, transparent);
  border-left: 1px solid color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 22%, transparent);
  background: color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 96%, white);
  transform: rotate(45deg);
}

.heartbeat-primary-classic-menu .menu-item-has-children:hover > .sub-menu,
.heartbeat-primary-classic-menu .menu-item-has-children:focus-within > .sub-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0) scale(1);
  transition-delay: 0s;
}

.heartbeat-primary-nav .wp-block-navigation__submenu-container::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  box-shadow: inset 0 1px 0 color-mix(in srgb, white 62%, transparent);
}

.heartbeat-primary-nav .wp-block-navigation__submenu-container .wp-block-navigation-item {
  width: 100%;
}

.heartbeat-primary-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
  display: flex;
  align-items: center;
  min-height: 42px;
  padding: 0.68rem 0.85rem !important;
  border-radius: 16px;
  color: var(--wp--preset--color--heartbeat-ink) !important;
  font-size: 0.98rem;
  font-weight: 680;
  line-height: 1.15;
  text-decoration: none;
}

.heartbeat-primary-classic-menu .sub-menu a {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.9rem;
  min-height: 46px;
  padding: 0.74rem 0.92rem;
  border-radius: 17px;
  color: var(--wp--preset--color--heartbeat-ink);
  font-size: 0.98rem;
  font-weight: 700;
  line-height: 1.15;
  transition: background-color 150ms ease, color 150ms ease, transform 150ms ease;
}

.heartbeat-primary-classic-menu .sub-menu a::after {
  content: "→";
  flex: 0 0 auto;
  color: var(--wp--preset--color--heartbeat-blue-deep);
  font-size: 0.95rem;
  opacity: 0.34;
  transform: translateX(-0.15rem);
  transition: opacity 150ms ease, transform 150ms ease;
}

.heartbeat-primary-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.heartbeat-primary-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus-visible {
  background: color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 11%, transparent);
  color: var(--wp--preset--color--heartbeat-blue-deep) !important;
  outline: none;
}

.heartbeat-primary-classic-menu .sub-menu a:hover,
.heartbeat-primary-classic-menu .sub-menu a:focus-visible {
  background: color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 12%, var(--wp--preset--color--heartbeat-surface));
  color: var(--wp--preset--color--heartbeat-blue-deep);
  outline: none;
  transform: translateX(0.12rem);
}

.heartbeat-primary-classic-menu .sub-menu a:hover::after,
.heartbeat-primary-classic-menu .sub-menu a:focus-visible::after {
  opacity: 0.8;
  transform: translateX(0);
}

.heartbeat-primary-nav .wp-block-navigation__submenu-icon {
  color: currentColor;
}

.heartbeat-primary-nav .wp-block-navigation__responsive-container-open,
.heartbeat-primary-nav .wp-block-navigation__responsive-container-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  min-width: 44px;
  height: 44px;
  min-height: 44px;
  padding: 0;
  border: 1px solid color-mix(in srgb, var(--wp--preset--color--heartbeat-ink) 12%, transparent);
  border-radius: var(--hbc-radius-pill);
  background: color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 92%, transparent);
  color: var(--wp--preset--color--heartbeat-ink);
  line-height: 1;
  box-shadow: 0 10px 22px rgba(0, 0, 0, 0.08);
}

.heartbeat-primary-nav .wp-block-navigation__responsive-container-open {
  display: none;
}

.heartbeat-primary-nav .wp-block-navigation__responsive-container-close {
  display: inline-flex;
}

.heartbeat-primary-nav .wp-block-navigation__responsive-container-open svg,
.heartbeat-primary-nav .wp-block-navigation__responsive-container-close svg {
  display: block;
  flex: 0 0 auto;
  width: 24px;
  height: 24px;
  margin: 0;
}

.heartbeat-primary-nav .wp-block-navigation__responsive-container-open:hover,
.heartbeat-primary-nav .wp-block-navigation__responsive-container-open:focus-visible,
.heartbeat-primary-nav .wp-block-navigation__responsive-container-close:hover,
.heartbeat-primary-nav .wp-block-navigation__responsive-container-close:focus-visible {
  background: color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 10%, var(--wp--preset--color--heartbeat-surface));
  border-color: color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 30%, transparent);
  outline: 3px solid color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 22%, transparent);
  outline-offset: 3px;
}

.heartbeat-page-shell,
.heartbeat-single-shell,
.heartbeat-archive-shell,
.heartbeat-search-shell,
.heartbeat-error-shell {
  margin-block-start: 0;
  padding-right: var(--wp--style--root--padding-right);
  padding-left: var(--wp--style--root--padding-left);
}

.heartbeat-page-shell {
  padding-top: 0;
  padding-bottom: clamp(3rem, 7vw, 6rem);
}

.heartbeat-single-shell,
.heartbeat-archive-shell,
.heartbeat-search-shell,
.heartbeat-error-shell {
  padding-top: clamp(2.5rem, 6vw, 5rem);
  padding-bottom: clamp(3rem, 7vw, 6rem);
}

.hbc-404-page {
  color: var(--wp--preset--color--heartbeat-ink);
}

.hbc-layout--error {
  --hbc-layout-section-gap: clamp(2.5rem, 6vw, 5rem);
  --hbc-layout-active-content-max: var(--hbc-layout-page-max);
  --hbc-layout-active-hero-max: var(--hbc-layout-page-max);
}

.hbc-404-page > .hbc-layout--error.alignfull {
  width: min(100%, var(--hbc-layout-page-max));
  max-width: var(--hbc-layout-page-max) !important;
  margin-right: auto !important;
  margin-left: auto !important;
}

.hbc-404-page .hbc-layout--error > .wp-block-group__inner-container > .hbc-hero,
.hbc-404-page .hbc-layout--error .hbc-hero__inner {
  width: min(100%, var(--hbc-layout-page-max)) !important;
  max-width: var(--hbc-layout-page-max) !important;
  margin-right: auto !important;
  margin-left: auto !important;
}

.hbc-layout--error .hbc-hero__inner {
  min-height: clamp(26rem, 34vw, 32rem);
}

.hbc-404-hero__content {
  align-content: center;
}

.hbc-404-card {
  align-self: center;
  align-content: center;
  gap: 1rem;
}

.hbc-404-search-note {
  margin: 0;
  color: var(--hbc-muted);
  font-size: clamp(1rem, 1.6vw, 1.12rem);
  line-height: 1.45;
}

.hbc-404-search {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin-block-start: 0.15rem;
}

.hbc-404-search .wp-block-search__inside-wrapper {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  gap: 0.5rem;
}

.hbc-404-search .wp-block-search__input {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 3rem;
  border: 1px solid var(--hbc-border);
  border-radius: var(--hbc-radius-pill);
  background: var(--wp--preset--color--heartbeat-surface);
  color: var(--wp--preset--color--heartbeat-ink);
  padding-inline: 1rem;
}

.hbc-404-search .wp-block-search__button {
  flex: 0 0 3.75rem;
  width: 3.75rem;
  min-width: 3.75rem;
  padding-inline: 0 !important;
  border-radius: var(--hbc-radius-pill);
}

.heartbeat-page-shell > .wp-block-post-content {
  margin-block-start: 0;
}

.heartbeat-page-title {
  width: min(100%, var(--wp--style--global--wide-size));
  max-width: var(--wp--style--global--wide-size) !important;
  margin: clamp(2rem, 5vw, 3.5rem) auto clamp(1.5rem, 4vw, 2.5rem);
  padding: clamp(1.75rem, 4vw, 3rem);
  border: 1px solid var(--hbc-border);
  border-radius: var(--hbc-radius-card);
  background: linear-gradient(180deg, var(--wp--preset--color--heartbeat-surface), color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 74%, var(--wp--preset--color--heartbeat-bg)));
  box-shadow: var(--hbc-shadow-soft);
  color: var(--wp--preset--color--heartbeat-ink);
  font-size: clamp(2.7rem, 6vw, 5rem);
  line-height: 0.94;
  letter-spacing: -0.06em;
  text-wrap: balance;
}

.heartbeat-page-shell:has(.wp-block-post-content > :is(.hbc-layout, .hbc-homepage-stack):first-child) > .heartbeat-page-title,
.heartbeat-page-shell:has(.wp-block-post-content > :is(.hbc-layout, .hbc-homepage-stack):first-child) > .heartbeat-page-fallback-layout {
  display: none;
}

.heartbeat-page-fallback-layout {
  --hbc-layout-section-gap: clamp(3rem, 7vw, 5.3125rem);
  --hbc-layout-inner-gap: 32px;
  --hbc-layout-active-content-max: var(--hbc-layout-page-max);
  --hbc-layout-active-hero-max: var(--hbc-layout-page-max);
  margin-block: clamp(2rem, 5vw, 3.5rem) clamp(2rem, 5vw, 3.5rem);
}

/* Default template fallback pages use the same primary SITE rail as the header.
   The root shell may stay FULL, but the fallback layout and hero must not drift
   onto WordPress' negative alignfull rail. */
.heartbeat-page-shell > .heartbeat-page-fallback-layout.alignfull {
  width: min(100%, var(--hbc-layout-page-max));
  max-width: var(--hbc-layout-page-max) !important;
  margin-right: auto !important;
  margin-left: auto !important;
}

.heartbeat-page-shell > .heartbeat-page-fallback-layout.has-global-padding {
  padding-right: 0 !important;
  padding-left: 0 !important;
}

.heartbeat-page-fallback-layout > .heartbeat-page-fallback-hero-wrap,
.heartbeat-page-fallback-layout > .wp-block-group__inner-container > .heartbeat-page-fallback-hero-wrap,
.heartbeat-page-fallback-layout .heartbeat-page-fallback-hero,
.heartbeat-page-shell > .wp-block-post-content.alignfull {
  width: min(100%, var(--hbc-layout-page-max)) !important;
  max-width: var(--hbc-layout-page-max) !important;
  margin-right: auto !important;
  margin-left: auto !important;
}

.heartbeat-page-shell > .wp-block-post-content.has-global-padding {
  padding-right: 0 !important;
  padding-left: 0 !important;
}

.heartbeat-page-fallback-hero__content {
  align-content: center;
  justify-self: start;
  width: min(100%, 50rem);
  max-width: 50rem !important;
  margin-inline: 0 !important;
}

.heartbeat-page-fallback-hero__content > * {
  margin-inline: 0 !important;
}

.heartbeat-page-fallback-title {
  max-width: min(100%, 14.5ch) !important;
  font-size: clamp(2.65rem, 4.35vw, 4.25rem) !important;
  line-height: 0.97;
}

.heartbeat-page-fallback-image {
  height: 100%;
  min-height: 22rem;
}

.heartbeat-page-fallback-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.heartbeat-page-fallback-hero__panel:not(:has(img)) {
  display: none;
}

.heartbeat-page-fallback-hero:not(:has(.heartbeat-page-fallback-hero__panel img)) {
  grid-template-columns: minmax(0, 1fr) !important;
  min-height: clamp(18rem, 26vw, 24rem) !important;
}

.heartbeat-page-shell .wp-block-post-content > :first-child {
  margin-block-start: 0;
}

.wp-block-post-content > .alignfull {
  margin-right: calc(-1 * var(--wp--style--root--padding-right));
  margin-left: calc(-1 * var(--wp--style--root--padding-left));
}

.heartbeat-page-shell .wp-block-post-content > .hbc-layout.alignfull,
.heartbeat-page-shell .wp-block-post-content > .hbc-homepage-stack.alignfull {
  width: 100% !important;
  max-width: 100% !important;
  margin-right: 0 !important;
  margin-left: 0 !important;
}

/* Curated HBC/Kadence page roots already sit on the header/menu SITE rail.
   WordPress may still add has-global-padding to first hero blocks inside saved
   content; reset that nested root padding here so hero cards cannot drift one
   extra gutter inward on Home or future HBC page patterns. */
.heartbeat-page-shell .wp-block-post-content > :is(.hbc-layout, .hbc-homepage-stack).alignfull > .hbc-hero.has-global-padding,
.heartbeat-page-shell .wp-block-post-content > :is(.hbc-layout, .hbc-homepage-stack).alignfull > .wp-block-group__inner-container > .hbc-hero.has-global-padding {
  padding-right: 0 !important;
  padding-left: 0 !important;
}

/* Gottesdienst uses the header/menu rail: the hero card and all following
   sections should sit flush with the navigation capsule, not one inner gutter in. */
.heartbeat-page-shell .wp-block-post-content > .hbc-layout.alignfull:has(.hbc-visit-steps--gottesdienst) {
  width: 100% !important;
  max-width: 100% !important;
  margin-right: 0 !important;
  margin-left: 0 !important;
  padding-right: 0 !important;
  padding-left: 0 !important;
}

.wp-block-button__link,
.wp-element-button,
.hbc-button,
.kt-button,
.kb-button {
  box-sizing: border-box;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  max-width: 100%;
  min-height: var(--hbc-button-min-height);
  padding: var(--hbc-button-padding-block) var(--hbc-button-padding-inline) !important;
  border-radius: var(--hbc-radius-pill) !important;
  font-weight: 720;
  line-height: var(--hbc-button-line-height) !important;
  letter-spacing: -0.01em;
  text-align: center;
  text-decoration: none;
  text-wrap: balance;
  white-space: nowrap;
  overflow-wrap: normal;
  word-break: normal;
}

.wp-block-button,
.wp-block-buttons,
.kb-buttons-wrap {
  max-width: 100%;
}

.kt-button .kt-btn-inner-text,
.kb-button .kt-btn-inner-text {
  display: inline-block !important;
  max-width: none;
  line-height: inherit;
  white-space: inherit;
  overflow-wrap: inherit;
  word-break: inherit;
}

.hbc-layout--media .kb-button.kt-btn-width-type-auto,
.hbc-layout--media .kt-button.kt-btn-width-type-auto,
.hbc-media-button-row .kb-button.kt-btn-width-type-auto,
.hbc-media-button-row .kt-button.kt-btn-width-type-auto {
  width: auto !important;
  min-width: max-content;
}

.hbc-hero__actions,
.hbc-action-group__inner,
.wp-block-buttons,
.kb-buttons-wrap {
  gap: 0.85rem;
}

.wp-block-kadence-rowlayout,
.wp-block-kadence-column,
.kt-row-layout-inner,
.kt-row-column-wrap {
  color: var(--wp--preset--color--heartbeat-ink);
}

.wp-block-kadence-rowlayout a:not(.kt-button):not(.kb-button),
.wp-block-kadence-column a:not(.kt-button):not(.kb-button) {
  color: var(--wp--preset--color--heartbeat-blue-deep);
}

.wp-block-kadence-column .kt-inside-inner-col,
.kt-row-column-wrap > .wp-block-kadence-column {
  min-width: 0;
}

.hbc-homepage-card > .kt-inside-inner-col,
.hbc-media-entry-card > .kt-inside-inner-col,
.hbc-media-playlist-card > .kt-inside-inner-col,
.hbc-media-embed-card > .kt-inside-inner-col,
.wp-block-kadence-column.hbc-homepage-card > .kt-inside-inner-col,
.wp-block-kadence-column.hbc-media-entry-card > .kt-inside-inner-col,
.wp-block-kadence-column.hbc-media-playlist-card > .kt-inside-inner-col,
.wp-block-kadence-column.hbc-media-embed-card > .kt-inside-inner-col,
.wp-block-group.hbc-homepage-card,
.wp-block-group.hbc-media-entry-card,
.wp-block-group.hbc-media-playlist-card,
.wp-block-group.hbc-media-embed-card,
.wp-block-column.hbc-homepage-card,
.wp-block-column.hbc-media-entry-card,
.wp-block-column.hbc-media-playlist-card,
.wp-block-column.hbc-media-embed-card {
  display: grid;
  align-content: start;
  gap: 0.75rem;
  height: 100%;
  padding: clamp(1.25rem, 3vw, 1.8rem);
  overflow: hidden;
  border: 1px solid var(--hbc-border);
  border-radius: var(--hbc-radius-card);
  background: linear-gradient(180deg, var(--wp--preset--color--heartbeat-surface), var(--hbc-surface-soft));
  box-shadow: var(--hbc-shadow-soft);
}

/* Gutenberg editor parity: Kadence column blocks do not render the public
   .kt-inside-inner-col wrapper around editable children in the same position.
   Put the shared HBC card surface on the editor block wrapper only, keeping the
   public/frontend selector above unchanged. */
.editor-styles-wrapper :is(.wp-block-kadence-column, .block-editor-block-list__block[data-type="kadence/column"]).hbc-homepage-card,
.editor-styles-wrapper :is(.wp-block-kadence-column, .block-editor-block-list__block[data-type="kadence/column"]).hbc-media-entry-card,
.editor-styles-wrapper :is(.wp-block-kadence-column, .block-editor-block-list__block[data-type="kadence/column"]).hbc-media-playlist-card {
  display: grid;
  align-content: start;
  gap: 0.75rem;
  height: 100%;
  padding: clamp(1.25rem, 3vw, 1.8rem);
  overflow: hidden;
  border: 1px solid var(--hbc-border);
  border-radius: var(--hbc-radius-card);
  background: linear-gradient(180deg, var(--wp--preset--color--heartbeat-surface), var(--hbc-surface-soft));
  box-shadow: var(--hbc-shadow-soft);
}

.hbc-layout--media .hbc-media-playlist-card > .kt-inside-inner-col,
.hbc-layout--media .hbc-media-youtube-card > .kt-inside-inner-col {
  gap: 1rem;
}

.hbc-layout--media .hbc-media-youtube-preview {
  position: relative;
  isolation: isolate;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--hbc-border) 82%, transparent);
  border-radius: calc(var(--hbc-radius-card) - 0.55rem);
  background: color-mix(in srgb, var(--wp--preset--color--heartbeat-ink) 10%, var(--wp--preset--color--heartbeat-surface));
}

/* HBC media: live YouTube poster first, iframe only after an explicit click. */
.hbc-layout--media .hbc-media-youtube-poster,
.hbc-layout--media .hbc-media-youtube-frame {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

.hbc-layout--media .hbc-media-youtube-poster {
  z-index: 0;
  object-fit: cover;
  background: color-mix(in srgb, var(--wp--preset--color--heartbeat-ink) 22%, var(--wp--preset--color--heartbeat-surface));
}

.hbc-layout--media .hbc-media-youtube-load {
  position: absolute;
  z-index: 2;
  inset: 0;
  display: grid;
  place-content: center;
  gap: 0.7rem;
  width: 100%;
  padding: 1rem;
  border: 0;
  background: linear-gradient(145deg, rgba(10, 19, 35, 0.12), rgba(10, 19, 35, 0.62));
  color: var(--wp--preset--color--heartbeat-surface);
  font: inherit;
  font-size: 0.95rem;
  font-weight: 760;
  letter-spacing: 0.01em;
  text-align: center;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.5);
  cursor: pointer;
  transition: background 160ms ease;
}

.hbc-layout--media .hbc-media-youtube-load:hover {
  background: linear-gradient(145deg, rgba(23, 96, 235, 0.28), rgba(10, 19, 35, 0.72));
}

.hbc-layout--media .hbc-media-youtube-load:focus-visible {
  outline: 3px solid var(--wp--preset--color--heartbeat-surface);
  outline-offset: -6px;
}

.hbc-layout--media .hbc-media-youtube-load.is-loading {
  cursor: progress;
}

.hbc-layout--media .hbc-media-youtube-play-icon {
  width: 3.6rem;
  height: 3.6rem;
  margin-inline: auto;
  border: 1px solid rgba(255, 255, 255, 0.76);
  border-radius: 50%;
  background: rgba(23, 96, 235, 0.94);
  box-shadow: 0 0.5rem 1.35rem rgba(0, 0, 0, 0.32);
}

.hbc-layout--media .hbc-media-youtube-play-icon::before {
  content: '';
  display: block;
  width: 0;
  height: 0;
  margin: 1.03rem 0 0 1.38rem;
  border-block: 0.72rem solid transparent;
  border-inline-start: 1.04rem solid var(--wp--preset--color--heartbeat-surface);
}

.hbc-layout--media .hbc-media-youtube-frame {
  z-index: 3;
  opacity: 0;
  pointer-events: none;
  transition: opacity 180ms ease;
}

.hbc-layout--media .hbc-media-youtube-frame.is-ready {
  opacity: 1;
  pointer-events: auto;
}

/* Fallback if JavaScript is delayed or unavailable. */
.hbc-layout--media .hbc-media-youtube-preview:empty::before {
  content: "Playlist-Vorschau nicht verfügbar";
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 1rem;
  color: color-mix(in srgb, var(--wp--preset--color--heartbeat-ink) 62%, transparent);
  font-size: 0.9rem;
  font-weight: 680;
  letter-spacing: 0.01em;
  text-align: center;
}

.hbc-button--primary,
.wp-block-button:not(.is-style-outline) .wp-block-button__link,
.kt-button:not(.kb-btn-global-outline),
.kb-button:not(.kb-btn-global-outline) {
  background: var(--wp--preset--color--heartbeat-blue) !important;
  color: var(--wp--preset--color--heartbeat-surface) !important;
}

.hbc-button--secondary,
.wp-block-button.is-style-outline .wp-block-button__link,
.kt-button.kb-btn-global-outline,
.kb-button.kb-btn-global-outline {
  border-color: color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 34%, transparent) !important;
  background: color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 82%, transparent) !important;
  color: var(--wp--preset--color--heartbeat-blue-deep) !important;
}

/* Shared HBC Hero Primary Actions button component.
   Landing heroes and Event CTAs both reuse this existing Core Buttons style;
   size stays governed by the global --hbc-button-* tokens plus this approved
   hero-action typography, not by a separate event-specific button size. */
:is(.heartbeat-page-shell, .heartbeat-single-shell) .hbc-hero__actions.is-style-hbc-hero-primary-actions :is(.wp-block-button__link, .kt-button, .kb-button),
.heartbeat-page-shell :is(.hbc-layout--landing, .hbc-layout--home) .hbc-homepage-final-cta.is-style-hbc-landing-final-cta :is(.wp-block-button__link, .kt-button, .kb-button) {
  font-size: 18px !important;
  line-height: var(--hbc-button-line-height) !important;
}

:is(.heartbeat-page-shell, .heartbeat-single-shell) .hbc-hero__actions.is-style-hbc-hero-primary-actions :is(.wp-block-button.is-style-outline, .wp-block-button.hbc-kadence-button--secondary) .wp-block-button__link,
:is(.heartbeat-page-shell, .heartbeat-single-shell) .hbc-hero__actions.is-style-hbc-hero-primary-actions :is(.kb-button.kb-btn-global-outline, .kt-button.kb-btn-global-outline, .kb-button.kt-btn-global-outline, .kt-button.kt-btn-global-outline) {
  border: 0 !important;
  background: var(--wp--preset--color--heartbeat-blue) !important;
  color: var(--wp--preset--color--heartbeat-surface) !important;
}

/* Home polish: keep the approved hero action sizing, but restore the existing
   HBC secondary/outline standard where the Startseite visitor journey needs a
   clear primary/secondary CTA hierarchy. */
.heartbeat-page-shell .hbc-layout--home .hbc-hero__actions.is-style-hbc-hero-primary-actions .wp-block-button.is-style-outline .wp-block-button__link,
.heartbeat-page-shell .hbc-layout--home .hbc-homepage-final-cta.is-style-hbc-landing-final-cta .hbc-kadence-button--secondary:is(.kt-button, .kb-button) {
  border: 1px solid color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 34%, transparent) !important;
  background: color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 82%, transparent) !important;
  color: var(--wp--preset--color--heartbeat-blue-deep) !important;
}

.hbc-layout,
.hbc-homepage-stack,
.hbc-homepage-section,
.hbc-hero,
.hbc-location-grid,
.hbc-visit-steps,
.hbc-service-times,
.hbc-section-intro,
.hbc-action-group {
  color: var(--wp--preset--color--heartbeat-ink);
}

.hbc-layout,
.hbc-homepage-stack {
  margin-block-start: 0;
}

.hbc-layout > *,
.hbc-homepage-stack > *,
.hbc-homepage-section,
.hbc-location-grid,
.hbc-visit-steps,
.hbc-service-times {
  margin-block-start: 0;
}

.hbc-hero__inner,
.hbc-location-grid__card,
.hbc-service-times__item,
.hbc-homepage-card > .kt-inside-inner-col,
.wp-block-group.hbc-homepage-card,
.hbc-media-embed-card,
.heartbeat-post-card {
  border-color: var(--hbc-border) !important;
  background: linear-gradient(180deg, var(--wp--preset--color--heartbeat-surface), color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 74%, var(--wp--preset--color--heartbeat-bg))) !important;
  box-shadow: var(--hbc-shadow-soft);
}

.hbc-hero__title,
.hbc-section-intro__title,
.hbc-location-grid__title,
.hbc-visit-steps__title,
.hbc-service-times__title {
  color: var(--wp--preset--color--heartbeat-ink) !important;
}

.hbc-hero__content,
.hbc-hero__panel {
  min-width: 0;
}

.hbc-hero__title {
  overflow-wrap: normal;
  text-wrap: balance;
  word-break: normal;
}

.hbc-nowrap,
.hbc-brand-word {
  display: inline-block;
  white-space: nowrap;
}

/* Editor canvas can be narrower than the public desktop rail. Keep the saved
   Home hero editable without clipping the existing brand-word span; public
   rendering keeps the normal non-wrapping brand treatment above. */
.editor-styles-wrapper .hbc-layout--home .hbc-hero__title {
  max-width: 100%;
  font-size: clamp(3.05rem, 4.4vw, 4rem) !important;
  overflow-wrap: normal;
  word-break: normal;
}

.editor-styles-wrapper .hbc-layout--home .hbc-hero__title .hbc-brand-word {
  display: inline-block;
  max-width: 100%;
  overflow-wrap: normal;
  word-break: normal;
  white-space: nowrap;
}

.hbc-hero__eyebrow,
.hbc-hero__panel-eyebrow,
.hbc-section-intro__eyebrow,
.hbc-location-grid__kind,
.hbc-visit-steps__eyebrow {
  color: var(--wp--preset--color--heartbeat-blue-deep) !important;
}

.hbc-visit-steps__eyebrow {
  font-size: 0.78rem;
  font-weight: 780;
  letter-spacing: 0.11em;
  line-height: 1.2;
  text-transform: uppercase;
}

.hbc-hero__text,
.hbc-hero__panel-text,
.hbc-section-intro__text,
.hbc-location-grid__intro,
.hbc-location-grid__text,
.hbc-service-times__intro,
.hbc-visit-steps__intro,
.hbc-visit-steps__text,
.heartbeat-site-footer__text {
  color: var(--wp--preset--color--heartbeat-muted) !important;
}

.heartbeat-post-list {
  display: grid;
  gap: 1rem;
}

.heartbeat-post-card {
  padding: clamp(1.25rem, 3vw, 2rem);
  border: 1px solid var(--hbc-border);
  border-radius: var(--hbc-radius-card);
}

.heartbeat-search-overlay[hidden] {
  display: none !important;
}

.heartbeat-search-overlay {
  position: fixed;
  inset: 0;
  z-index: 9998;
  display: grid;
  place-items: center;
  padding: clamp(1rem, 4vw, 2rem);
}

.heartbeat-search-overlay__backdrop {
  position: absolute;
  inset: 0;
  background: color-mix(in srgb, var(--wp--preset--color--heartbeat-ink) 34%, transparent);
  backdrop-filter: blur(12px);
}

.heartbeat-search-overlay__dialog {
  position: relative;
  z-index: 1;
  box-sizing: border-box;
  display: grid;
  gap: clamp(0.75rem, 2vw, 1rem);
  width: min(100%, 46rem);
  padding: clamp(1.35rem, 4vw, 2.4rem);
  color: var(--wp--preset--color--heartbeat-ink);
  background: linear-gradient(180deg, var(--wp--preset--color--heartbeat-surface), color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 82%, var(--wp--preset--color--heartbeat-bg)));
  border: 1px solid color-mix(in srgb, white 72%, var(--hbc-border));
  border-radius: clamp(24px, 4vw, 36px);
  box-shadow: 0 30px 90px color-mix(in srgb, var(--wp--preset--color--heartbeat-ink) 22%, transparent);
}

.heartbeat-search-overlay__close {
  position: absolute;
  top: clamp(0.8rem, 2vw, 1rem);
  right: clamp(0.8rem, 2vw, 1rem);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border: 1px solid color-mix(in srgb, var(--wp--preset--color--heartbeat-ink) 12%, transparent);
  border-radius: 999px;
  color: var(--wp--preset--color--heartbeat-ink);
  background: color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 86%, transparent);
  font-size: 1.8rem;
  line-height: 1;
  cursor: pointer;
}

.heartbeat-search-overlay__eyebrow,
.heartbeat-search-overlay__title,
.heartbeat-search-overlay__form {
  margin: 0;
}

.heartbeat-search-overlay__eyebrow {
  color: var(--hbc-muted);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.heartbeat-search-overlay__title {
  max-width: 10em;
  padding-right: 3.2rem;
  font-size: clamp(2.35rem, 7vw, 4.6rem);
  line-height: 0.95;
  letter-spacing: -0.055em;
}

.heartbeat-search-overlay__form {
  display: grid;
  gap: 0.65rem;
}

.heartbeat-search-overlay__field {
  display: flex;
  gap: 0.35rem;
  min-height: 58px;
  padding: 0.35rem;
  border: 1px solid color-mix(in srgb, var(--wp--preset--color--heartbeat-ink) 12%, transparent);
  border-radius: var(--hbc-radius-pill);
  background: color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 92%, transparent);
  box-shadow: inset 0 1px 0 color-mix(in srgb, white 56%, transparent);
  transition: border-color 160ms ease, box-shadow 160ms ease;
}

.heartbeat-search-overlay__field:focus-within {
  border-color: color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 48%, transparent);
  box-shadow:
    inset 0 1px 0 color-mix(in srgb, white 56%, transparent),
    0 0 0 3px color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 15%, transparent);
}

.heartbeat-search-overlay__input {
  flex: 1 1 auto;
  min-width: 0;
  padding: 0.55rem 0.75rem 0.55rem 1rem;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--wp--preset--color--heartbeat-ink);
  font: inherit;
  font-size: clamp(1rem, 2vw, 1.15rem);
}

.heartbeat-search-overlay__input[aria-invalid="true"]::placeholder {
  color: #b3261e;
}

.heartbeat-search-overlay__submit {
  flex: 0 0 auto;
  border: 0;
  cursor: pointer;
}

.heartbeat-search-overlay__close:focus-visible,
.heartbeat-search-overlay__submit:focus-visible {
  outline: 0;
  box-shadow:
    0 0 0 3px color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 86%, transparent),
    0 0 0 6px color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 24%, transparent);
}

html.heartbeat-search-overlay-open,
body.heartbeat-search-overlay-open {
  overflow: hidden;
}

.heartbeat-search-result-meta {
  margin-block: 0 0.55rem;
}

.heartbeat-search-result-badge {
  display: inline-flex;
  align-items: center;
  min-height: 1.85rem;
  padding: 0.34rem 0.7rem;
  border: 1px solid color-mix(in srgb, var(--wp--preset--color--heartbeat-ink) 10%, transparent);
  border-radius: var(--hbc-radius-pill);
  color: var(--wp--preset--color--heartbeat-ink);
  background: color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 82%, var(--wp--preset--color--heartbeat-bg));
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  line-height: 1;
  text-transform: uppercase;
}

.heartbeat-search-result-badge--podcast {
  color: var(--wp--preset--color--heartbeat-surface);
  background: var(--wp--preset--color--heartbeat-blue);
  border-color: color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 68%, black);
}

@media (max-width: 640px) {
  .heartbeat-search-overlay {
    align-items: start;
    padding: 0.85rem;
    padding-top: max(0.85rem, env(safe-area-inset-top));
  }

  .heartbeat-search-overlay__dialog {
    width: 100%;
    margin-top: clamp(2.5rem, 10vh, 5rem);
  }

  .heartbeat-search-overlay__field {
    flex-direction: column;
    border-radius: 28px;
  }

  .heartbeat-search-overlay__submit {
    width: 100%;
  }
}

.heartbeat-back-to-top {
  position: fixed;
  right: max(1.1rem, env(safe-area-inset-right));
  bottom: max(1.25rem, env(safe-area-inset-bottom));
  z-index: 60;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(3rem, 4.8vw, 3.5rem);
  height: clamp(3rem, 4.8vw, 3.5rem);
  padding: 0;
  border: 1px solid color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 72%, var(--wp--preset--color--heartbeat-bg));
  border-radius: var(--hbc-radius-pill);
  background: var(--wp--preset--color--heartbeat-blue);
  color: var(--wp--preset--color--heartbeat-bg);
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transform: translate3d(0, 0.65rem, 0) scale(0.96);
  visibility: hidden;
  transition:
    opacity 180ms ease,
    transform 180ms ease,
    visibility 180ms ease,
    background-color 160ms ease,
    border-color 160ms ease;
}

.heartbeat-back-to-top.is-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translate3d(0, 0, 0) scale(1);
  visibility: visible;
}

.heartbeat-back-to-top:hover,
.heartbeat-back-to-top:focus-visible {
  background: var(--wp--preset--color--heartbeat-blue-deep);
  border-color: color-mix(in srgb, var(--wp--preset--color--heartbeat-blue-deep) 76%, var(--wp--preset--color--heartbeat-bg));
  color: var(--wp--preset--color--heartbeat-bg);
}

.heartbeat-back-to-top:focus-visible {
  outline: 3px solid var(--wp--preset--color--heartbeat-bg);
  outline-offset: 3px;
}

.heartbeat-back-to-top__icon {
  display: grid;
  place-items: center;
  width: 1.35rem;
  height: 1.35rem;
  color: currentColor;
  transform: translateY(-0.02em);
}

.heartbeat-back-to-top__icon svg {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
}

.heartbeat-back-to-top__icon path {
  fill: none;
  stroke: currentColor;
  stroke-width: 3.2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

html.heartbeat-search-overlay-open .heartbeat-back-to-top,
body.hbc-menu-open .heartbeat-back-to-top {
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
}

@media (max-width: 640px) {
  .heartbeat-back-to-top {
    right: max(0.5rem, env(safe-area-inset-right));
    bottom: max(0.65rem, env(safe-area-inset-bottom));
    width: 2.75rem;
    height: 2.75rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .heartbeat-back-to-top {
    transition: none;
  }
}

.heartbeat-header-search .wp-block-search__inside-wrapper,
.heartbeat-search-form .wp-block-search__inside-wrapper {
  display: flex;
  align-items: stretch;
  gap: 0.35rem;
  min-height: 46px;
  padding: 0.28rem;
  border: 1px solid color-mix(in srgb, var(--wp--preset--color--heartbeat-ink) 12%, transparent);
  border-radius: var(--hbc-radius-pill);
  background: color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 92%, transparent);
  box-shadow: inset 0 1px 0 color-mix(in srgb, white 56%, transparent);
}

.heartbeat-header-search .wp-block-search__input,
.heartbeat-search-form .wp-block-search__input {
  min-width: 0;
  border: 0;
  background: transparent;
  color: var(--wp--preset--color--heartbeat-ink);
  font: inherit;
  line-height: 1.2;
}

.heartbeat-header-search .wp-block-search__input {
  padding: 0.2rem 0.3rem 0.2rem 0.75rem;
  font-size: 0.92rem;
}

.heartbeat-header-search .wp-block-search__button,
.heartbeat-search-form .wp-block-search__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  margin: 0;
  border: 0;
  border-radius: var(--hbc-radius-pill);
  background: var(--wp--preset--color--heartbeat-blue);
  color: var(--wp--preset--color--heartbeat-surface);
  font-weight: 720;
  line-height: 1;
  white-space: nowrap;
}

.heartbeat-header-search .wp-block-search__button {
  padding: 0.72rem 0.9rem;
  font-size: 0.88rem;
}

.heartbeat-search-hero {
  display: grid;
  gap: 1rem;
  width: min(100%, var(--hbc-layout-utility-max));
  max-width: var(--hbc-layout-utility-max) !important;
  margin-inline: auto;
  padding: clamp(1.6rem, 4vw, 3rem);
  border: 1px solid var(--hbc-border);
  border-radius: clamp(24px, 3vw, 32px);
  background: linear-gradient(180deg, var(--wp--preset--color--heartbeat-surface), color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 74%, var(--wp--preset--color--heartbeat-bg)));
  box-shadow: var(--hbc-shadow-soft);
}

.heartbeat-search-eyebrow,
.heartbeat-search-title,
.heartbeat-search-intro,
.heartbeat-search-form {
  margin-block-start: 0;
}

.heartbeat-search-title {
  max-width: 13em;
  color: var(--wp--preset--color--heartbeat-ink);
  font-size: clamp(2.45rem, 6vw, 4.85rem);
  line-height: 0.96;
  letter-spacing: -0.055em;
  overflow-wrap: anywhere;
  text-wrap: balance;
}

.heartbeat-search-intro {
  max-width: 42rem;
  color: var(--wp--preset--color--heartbeat-muted);
  font-size: clamp(1.05rem, 2vw, 1.25rem);
  line-height: 1.55;
}

.heartbeat-search-form {
  width: min(100%, 42rem);
}

.heartbeat-search-form .wp-block-search__inside-wrapper {
  min-height: 56px;
  padding: 0.35rem;
}

.heartbeat-search-form .wp-block-search__input {
  padding: 0.45rem 0.65rem 0.45rem 1rem;
  font-size: 1rem;
}

.heartbeat-search-form .wp-block-search__button,
.heartbeat-search-overlay__submit {
  min-height: var(--hbc-button-min-height);
  padding: var(--hbc-button-padding-block) var(--hbc-button-padding-inline) !important;
  font-size: 18px;
  line-height: var(--hbc-button-line-height) !important;
}

.heartbeat-search-query {
  width: min(100%, var(--hbc-layout-utility-max));
  max-width: var(--hbc-layout-utility-max) !important;
  margin-block-start: clamp(1.25rem, 4vw, 2.25rem);
  margin-inline: auto;
}

.heartbeat-search-result-card h2,
.heartbeat-search-empty h2 {
  margin-block-start: 0;
}

.heartbeat-search-empty {
  display: grid;
  gap: 0.85rem;
}

.heartbeat-search-empty p {
  max-width: 40rem;
  margin: 0;
  color: var(--wp--preset--color--heartbeat-muted);
  line-height: 1.55;
}

.heartbeat-single-title,
.heartbeat-archive-title {
  max-width: 12ch;
}

.heartbeat-single-image {
  border-radius: var(--hbc-radius-card);
  overflow: hidden;
}

/* Canonical HBC Event components. These selectors are reusable and editor-visible:
   no page/post IDs, no display: contents, no template-owned title/media layout. */
.heartbeat-single-shell--content-owned {
  padding-top: clamp(1rem, 2.4vw, 2rem);
}

.heartbeat-single-shell--content-owned > .wp-block-post-content {
  width: 100%;
  max-width: 100%;
  margin-block-start: 0;
}

.hbc-event {
  --hbc-event-rail: var(--hbc-layout-page-max);
  --hbc-event-gap: clamp(1.25rem, 3.2vw, 3rem);
  --hbc-event-card-radius: clamp(1.5rem, 3vw, 2.4rem);

  box-sizing: border-box;
  display: grid;
  gap: var(--hbc-event-gap);
  width: min(calc(100% - 4rem), var(--hbc-event-rail)) !important;
  max-width: var(--hbc-event-rail) !important;
  margin-right: auto !important;
  margin-left: auto !important;
  color: var(--wp--preset--color--heartbeat-ink);
}

.editor-styles-wrapper .hbc-event {
  width: min(100%, var(--hbc-event-rail)) !important;
}

.hbc-event > * {
  margin-block-start: 0;
}

.hbc-event-hero {
  box-sizing: border-box;
  display: grid;
  grid-template-columns: minmax(0, 1.06fr) minmax(18rem, 0.82fr);
  align-items: center;
  gap: clamp(1.75rem, 4vw, 4rem);
  width: 100%;
  max-width: 100% !important;
  margin: 0;
  padding: clamp(2.5rem, 5vw, 5.25rem) clamp(2.2rem, 5vw, 4.75rem);
  overflow: clip;
  background: linear-gradient(180deg, rgba(255, 252, 247, 0.98), rgba(255, 248, 239, 0.94));
  border: 1px solid rgba(255, 255, 255, 0.72);
  border-radius: var(--hbc-event-card-radius);
  box-shadow: 0 24px 70px rgba(61, 48, 36, 0.13);
}

.hbc-event-hero > * {
  margin-block-start: 0;
}

.hbc-event-hero__content {
  display: grid;
  align-content: center;
  gap: clamp(0.85rem, 1.8vw, 1.25rem);
  min-width: 0;
}

.hbc-event-hero__content > * {
  margin-block-start: 0;
}

.hbc-event-hero__eyebrow {
  margin: 0;
  color: var(--hbc-muted);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  line-height: 1.1;
  text-transform: uppercase;
}

.hbc-event-hero__title {
  max-width: 12ch;
  margin: 0;
  font-size: clamp(3rem, 6.6vw, 6.15rem);
  line-height: 0.92;
  letter-spacing: -0.067em;
  text-wrap: balance;
}

.hbc-event-hero__lead {
  max-width: var(--hbc-layout-narrow-max);
  margin: 0;
  color: color-mix(in srgb, var(--wp--preset--color--heartbeat-ink) 84%, white);
  font-size: clamp(1.04rem, 1.35vw, 1.24rem);
  line-height: 1.6;
}

.hbc-event-hero__media {
  box-sizing: border-box;
  width: 100%;
  max-width: 100% !important;
  min-width: 0;
  margin: 0;
  padding: clamp(0.55rem, 1.1vw, 0.85rem);
  background: rgba(255, 255, 255, 0.74);
  border: 1px solid rgba(25, 38, 52, 0.08);
  border-radius: clamp(1.25rem, 2vw, 1.75rem);
  box-shadow: 0 22px 60px rgba(42, 60, 82, 0.12);
}

.hbc-event-hero__media figure,
.hbc-event-hero__image {
  width: 100%;
  max-width: 100% !important;
  margin: 0;
}

.hbc-event-hero__media img {
  display: block;
  width: 100%;
  height: clamp(21rem, 31vw, 28rem);
  border-radius: calc(clamp(1.25rem, 2vw, 1.75rem) - 0.45rem);
  object-fit: cover;
}

/* Event artwork/poster variant: reusable for text-sensitive event media. */
.hbc-event--poster .hbc-event-hero__media img {
  object-fit: contain;
  background: rgba(255, 255, 255, 0.48);
}

.hbc-event-content,
.hbc-event-cta {
  box-sizing: border-box;
  width: min(100%, var(--hbc-event-rail));
  max-width: var(--hbc-event-rail) !important;
  margin-right: auto;
  margin-left: auto;
}

.hbc-event-content {
  display: grid;
  gap: 1rem;
  padding: 0 clamp(0.25rem, 1vw, 0.75rem);
}

.hbc-event-content__text {
  max-width: var(--hbc-layout-narrow-max);
  margin: 0;
  color: color-mix(in srgb, var(--wp--preset--color--heartbeat-ink) 82%, white);
  font-size: clamp(1.05rem, 1.4vw, 1.22rem);
  line-height: 1.65;
}

.hbc-event-cta {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 0 clamp(2.2rem, 5vw, 4.75rem);
}

.hbc-event-hero__content > .hbc-event-cta {
  width: 100%;
  max-width: 100% !important;
  margin: 0;
  padding: 0;
}

.hbc-event-cta__buttons {
  gap: 0.8rem;
  margin: 0;
}

.hbc-event-hero__content > .hbc-hero__actions {
  justify-self: stretch;
  width: 100%;
  max-width: 100%;
  margin-right: auto;
  margin-left: 0;
  justify-content: flex-start;
}

.hbc-event-hero__content > .hbc-hero__actions > .hbc-event-cta__buttons,
.hbc-event-cta > .hbc-event-cta__buttons {
  margin-right: auto !important;
  margin-left: 0 !important;
  justify-content: flex-start !important;
}

@media (max-width: 900px) {
  .hbc-event {
    width: min(calc(100% - 1.5rem), var(--hbc-event-rail)) !important;
  }

  .hbc-event-hero {
    grid-template-columns: minmax(0, 1fr);
    padding: clamp(1.4rem, 5vw, 2rem) clamp(1.25rem, 5vw, 1.8rem) clamp(2rem, 7vw, 2.6rem);
  }

  .hbc-event-hero__title {
    max-width: 100%;
    font-size: clamp(2.35rem, 10vw, 3.4rem);
    overflow-wrap: anywhere;
    hyphens: auto;
  }

  .hbc-event-hero__media img {
    height: auto;
    aspect-ratio: 16 / 9;
  }
}

@media (max-width: 520px) {
  .hbc-event-cta {
    min-width: 0;
    padding-right: 0;
    padding-left: 0;
  }

  .hbc-event-cta__buttons,
  .hbc-event-cta__buttons .wp-block-button,
  .hbc-event-cta__buttons .wp-block-button__link {
    width: 100%;
  }

  .hbc-event-hero__content > .hbc-hero__actions > .hbc-event-cta__buttons,
  .hbc-event-cta > .hbc-event-cta__buttons {
    width: auto;
    max-width: 100%;
    min-width: 0;
    flex-wrap: nowrap;
  }

  .hbc-event-hero__content > .hbc-hero__actions > .hbc-event-cta__buttons .wp-block-button,
  .hbc-event-hero__content > .hbc-hero__actions > .hbc-event-cta__buttons .wp-block-button__link,
  .hbc-event-cta > .hbc-event-cta__buttons .wp-block-button,
  .hbc-event-cta > .hbc-event-cta__buttons .wp-block-button__link {
    width: auto;
  }
}

/* Anfahrt utility pages should feel precise, not like oversized homepage promo
   cards: slightly tighter cards and a contained map height on desktop/mobile. */
.hbc-anfahrt-page .hbc-homepage-card {
  align-content: start;
  padding: clamp(1.15rem, 2.1vw, 1.6rem) !important;
}

.hbc-anfahrt-page .hbc-section-intro__title {
  font-size: clamp(2.2rem, 4.2vw, 3.9rem);
}

.hbc-anfahrt-page .hbc-homepage-card-row {
  align-items: start !important;
}

.hbc-anfahrt-page .hbc-homepage-card-row > .wp-block-column > .hbc-homepage-card {
  height: auto !important;
}

.hbc-anfahrt-page .hbc-homepage-card iframe {
  min-height: clamp(12rem, 24vw, 20rem) !important;
}

@media (min-width: 900px) {
  .hbc-anfahrt-page .hbc-homepage-card-row--two > .wp-block-column > .hbc-homepage-card {
    min-height: 0;
  }
}

/* Podcast episodes use a scoped media-family template: a calm episode hero,
   contained square artwork, and one consistent content/player/video surface. */
.heartbeat-podcast-single-shell {
  --hbc-layout-section-gap: clamp(0.75rem, 2.2vw, 1.4rem);
  --hbc-layout-active-content-max: var(--hbc-layout-page-max);
  --hbc-layout-active-hero-max: var(--hbc-layout-page-max);

  display: grid;
  grid-template-columns: minmax(0, 1fr);
  padding-block: clamp(0.65rem, 2vw, 1.25rem) clamp(3rem, 7vw, 5rem);
  row-gap: var(--hbc-layout-section-gap);
}

.heartbeat-podcast-single-title {
  width: min(100%, 15ch);
  max-width: 15ch !important;
  margin-block: 0;
  font-size: clamp(2.25rem, 5vw, 4.9rem);
  line-height: 0.96;
  letter-spacing: -0.058em;
  text-wrap: balance;
}

.single-podcast .wp-block-post-content {
  margin-block-start: 0;
}

.single-podcast .hbc-podcast-episode-hero__intro {
  font-size: clamp(1.08rem, 0.9rem + 0.48vw, 1.22rem);
  line-height: 1.6;
}

.single-podcast .hbc-podcast-episode-content__body {
  font-size: clamp(1.08rem, 0.92rem + 0.42vw, 1.18rem);
  line-height: 1.68;
}

.single-podcast .hbc-podcast-episode-content__body :where(p, li) {
  font-size: inherit;
  line-height: inherit;
}

.single-podcast .hbc-podcast-episode-content__body :where(p, ul, ol) {
  margin-block: 0 1rem;
}

.single-podcast .wp-block-post-content > .wp-block-spacer:first-child {
  height: clamp(0.75rem, 2vw, 1.15rem) !important;
}

.single-podcast .wp-block-post-content > .wp-block-heading {
  margin-block: clamp(1rem, 2.5vw, 1.75rem) 0.75rem;
  font-size: clamp(1.55rem, 3.2vw, 2.25rem);
  line-height: 1.08;
}

.single-podcast .wp-block-embed-youtube,
.single-podcast .wp-block-embed.is-provider-youtube {
  width: 100%;
  max-width: none !important;
  margin-block-start: 0.75rem;
  margin-inline: auto;
  padding: clamp(0.55rem, 1.5vw, 0.85rem);
  border: 1px solid var(--hbc-border);
  border-radius: var(--hbc-radius-card);
  background: var(--wp--preset--color--heartbeat-surface);
  box-shadow: var(--hbc-shadow-soft);
  overflow: hidden;
}

.single-podcast .wp-block-embed-youtube iframe,
.single-podcast .wp-block-embed.is-provider-youtube iframe {
  border-radius: calc(var(--hbc-radius-card) - 0.55rem);
}

@media (max-width: 600px) {
  .heartbeat-podcast-single-title {
    width: 100%;
    max-width: 100% !important;
    font-size: clamp(1.65rem, 8.8vw, 2.35rem);
    line-height: 1.02;
    letter-spacing: -0.045em;
  }
}

.heartbeat-site-footer {
  margin-block-start: 0;
  padding-top: clamp(2rem, 5vw, 4rem);
  padding-bottom: clamp(2rem, 5vw, 4rem);
  background: color-mix(in srgb, var(--wp--preset--color--heartbeat-ink) 96%, black);
  color: var(--wp--preset--color--heartbeat-surface);
}

.heartbeat-site-footer__inner {
  max-width: var(--wp--style--global--wide-size);
  margin-inline: auto;
  gap: 1.5rem;
}

.heartbeat-site-footer__title,
.heartbeat-site-footer__title a,
.heartbeat-site-footer .wp-block-navigation-item__content {
  color: var(--wp--preset--color--heartbeat-surface);
}

.heartbeat-site-footer__text {
  max-width: 28rem;
  margin-block-start: 0.55rem;
}

/* Mobile-first polish for block-composed Heartbeat pages. */
.heartbeat-page-shell {
  overflow-x: clip;
}

.hbc-layout {
  --hbc-layout-section-gap: clamp(3rem, 7vw, 5.3125rem);
  --hbc-layout-inner-gap: 32px;
  --hbc-layout-active-content-max: var(--hbc-layout-page-max);
  --hbc-layout-active-hero-max: var(--hbc-layout-page-max);

  display: grid;
  gap: var(--hbc-layout-section-gap);
  width: min(100%, var(--hbc-layout-page-max));
  max-width: var(--hbc-layout-page-max) !important;
  margin-inline: auto;
}

.hbc-homepage-stack {
  --hbc-layout-section-gap: clamp(3rem, 7vw, 5.3125rem);
  --hbc-layout-inner-gap: 32px;
  --hbc-layout-active-content-max: var(--hbc-layout-page-max);
  --hbc-layout-active-hero-max: var(--hbc-layout-page-max);

  display: grid;
  gap: var(--hbc-layout-section-gap);
}

.hbc-layout > .wp-block-group__inner-container,
.hbc-homepage-stack > .wp-block-group__inner-container {
  width: 100%;
  max-width: none !important;
}

.hbc-layout > .wp-block-group__inner-container,
.hbc-homepage-stack > .wp-block-group__inner-container {
  display: grid;
  row-gap: var(--hbc-layout-section-gap);
}

.hbc-homepage-stack > .wp-block-group__inner-container > * {
  margin-block-start: 0;
}

.hbc-layout > .hbc-hero,
.hbc-layout > .hbc-homepage-section,
.hbc-layout > .hbc-location-grid,
.hbc-layout > .hbc-visit-steps,
.hbc-layout > .hbc-service-times,
.hbc-layout > .hbc-action-group,
.hbc-layout > .wp-block-group__inner-container > .hbc-hero,
.hbc-layout > .wp-block-group__inner-container > .hbc-homepage-section,
.hbc-layout > .wp-block-group__inner-container > .hbc-location-grid,
.hbc-layout > .wp-block-group__inner-container > .hbc-visit-steps,
.hbc-layout > .wp-block-group__inner-container > .hbc-service-times,
.hbc-layout > .wp-block-group__inner-container > .hbc-action-group,
.hbc-homepage-stack > .hbc-hero,
.hbc-homepage-stack > .hbc-homepage-section,
.hbc-homepage-stack > .hbc-location-grid,
.hbc-homepage-stack > .hbc-visit-steps,
.hbc-homepage-stack > .hbc-service-times,
.hbc-homepage-stack > .hbc-action-group,
.hbc-homepage-stack > .wp-block-group__inner-container > .hbc-hero,
.hbc-homepage-stack > .wp-block-group__inner-container > .hbc-homepage-section,
.hbc-homepage-stack > .wp-block-group__inner-container > .hbc-location-grid,
.hbc-homepage-stack > .wp-block-group__inner-container > .hbc-visit-steps,
.hbc-homepage-stack > .wp-block-group__inner-container > .hbc-service-times,
.hbc-homepage-stack > .wp-block-group__inner-container > .hbc-action-group {
  width: 100%;
  max-width: none !important;
  margin-right: 0 !important;
  margin-left: 0 !important;
}

.hbc-layout > .hbc-hero,
.hbc-layout > .wp-block-group__inner-container > .hbc-hero {
  width: min(100%, var(--hbc-layout-active-hero-max));
  max-width: var(--hbc-layout-active-hero-max) !important;
  margin-inline: auto !important;
}

.hbc-layout > :is(.hbc-homepage-section, .hbc-location-grid, .hbc-visit-steps, .hbc-service-times, .hbc-action-group),
.hbc-layout > .wp-block-group__inner-container > :is(.hbc-homepage-section, .hbc-location-grid, .hbc-visit-steps, .hbc-service-times, .hbc-action-group) {
  width: min(100%, var(--hbc-layout-active-content-max));
  max-width: var(--hbc-layout-active-content-max) !important;
  margin-inline: auto !important;
}

/* Podcast singles need the same outer rail as the media page; WP's constrained
   group layout otherwise keeps direct template children on the inner content
   track and makes the episode feel one size smaller. */
.heartbeat-podcast-single-shell > :is(.hbc-podcast-episode-title-section, .hbc-podcast-episode-hero, .hbc-podcast-episode-content) {
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
  justify-self: stretch;
}

.hbc-podcast-episode-title-section {
  width: min(100%, var(--hbc-layout-active-content-max, var(--hbc-layout-page-max)));
  max-width: var(--hbc-layout-page-max) !important;
  margin-inline: auto !important;
}

.heartbeat-podcast-single-shell .hbc-podcast-episode-title {
  width: 100%;
  max-width: none !important;
  margin-inline: 0 !important;
}

@media (min-width: 900px) {
  .heartbeat-podcast-single-shell.has-global-padding {
    padding-right: 0 !important;
    padding-left: 0 !important;
  }
}

.hbc-hero__inner {
  display: grid;
  gap: clamp(1.5rem, 3vw, 2.25rem);
  align-items: stretch;
  padding: clamp(1.75rem, 4vw, 3.25rem);
  border: 1px solid var(--hbc-border);
  border-radius: var(--hbc-radius-hero);
  background: linear-gradient(180deg, var(--wp--preset--color--heartbeat-surface), color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 74%, var(--wp--preset--color--heartbeat-bg)));
  box-shadow: var(--hbc-shadow-soft);
}

/* Core Columns adds the global is-layout-flex class. Keep the standard HBC hero
   geometry grid-driven so Core-based patterns match the Kadence layout family. */
.wp-block-columns.hbc-hero__inner {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr);
}

.wp-block-columns.hbc-hero__inner > .wp-block-column {
  min-width: 0;
  margin: 0;
}

/* Kadence wraps row content as rowlayout > inner > column-wrap. The hbc-hero__inner
   class sits on the outer rowlayout block, so the actual columns must be driven on
   the internal Kadence wrapper; otherwise the outer grid creates an empty track and
   squeezes the hero text into a vertical strip. */
.wp-block-kadence-rowlayout.hbc-hero__inner {
  display: block;
}

.wp-block-kadence-rowlayout.hbc-hero__inner > .kt-row-layout-inner {
  width: 100%;
  max-width: none;
}

.kb-row-layout-wrap.hbc-hero__inner > .kt-row-column-wrap,
.wp-block-kadence-rowlayout.hbc-hero__inner > .kt-row-layout-inner > .kt-row-column-wrap {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(1.5rem, 3vw, 2.25rem) !important;
  align-items: stretch;
  width: 100% !important;
  padding: 0 !important;
}

.kb-row-layout-wrap.hbc-hero__inner > .kt-row-column-wrap:has(> .wp-block-kadence-rowlayout.hbc-hero__inner) {
  display: block !important;
}

.kb-row-layout-wrap.hbc-hero__inner > .kt-row-column-wrap > .wp-block-kadence-rowlayout.hbc-hero__inner {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0;
  border-radius: 0;
  background: transparent !important;
  box-shadow: none;
}

.wp-block-kadence-rowlayout.hbc-hero__inner .wp-block-kadence-column,
.kb-row-layout-wrap.hbc-hero__inner > .kt-row-column-wrap > .wp-block-kadence-column {
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
}

.hbc-hero__content > .kt-inside-inner-col,
.hbc-hero__panel > .kt-inside-inner-col {
  display: grid;
  gap: 0.875rem;
  height: 100%;
}

.hbc-hero__content,
.hbc-hero__panel,
.hbc-section-intro,
.hbc-visit-steps__inner,
.hbc-visit-steps__header {
  display: grid;
  gap: 0.875rem;
}

.hbc-hero__eyebrow,
.hbc-hero__text,
.hbc-hero__panel-eyebrow,
.hbc-hero__panel-text,
.hbc-section-intro__eyebrow,
.hbc-section-intro__text,
.hbc-visit-steps__eyebrow,
.hbc-visit-steps__intro,
.hbc-visit-steps__text,
.hbc-location-grid__intro,
.hbc-location-grid__text,
.hbc-location-grid__times,
.hbc-location-grid__address,
.hbc-location-grid__helper-text,
.hbc-location-grid__kind {
  margin: 0;
}

.hbc-hero__title,
.hbc-hero__panel-title,
.hbc-section-intro__title,
.hbc-visit-steps__title,
.hbc-visit-steps__item-title,
.hbc-location-grid__title,
.hbc-location-grid__card-title {
  margin: 0;
}

.hbc-hero__title {
  max-width: 13.8ch;
  font-size: clamp(3.05rem, 5.55vw, 5.2rem);
  line-height: 0.94;
  letter-spacing: -0.06em;
}

.hbc-section-intro__title {
  font-size: clamp(2.35rem, 4.8vw, 4.35rem);
  line-height: 0.95;
  letter-spacing: -0.055em;
}

.hbc-hero__text,
.hbc-hero__panel-text,
.hbc-section-intro__text,
.hbc-visit-steps__intro,
.hbc-visit-steps__text {
  max-width: var(--hbc-layout-narrow-max);
  line-height: 1.6;
}

.hbc-hero__actions,
.hbc-action-group__inner {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
}

/* Hero V3: image-led landing hero. The saved content stays Core-block based
   (group/cover/heading/buttons); these classes define the reusable contract. */
.hbc-hero--v3 {
  --hbc-hero-v3-frame-size: 30px;
  --hbc-hero-v3-frame-color: color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 88%, transparent);
  --hbc-hero-v3-image-radius: calc(var(--hbc-radius-hero) - 10px);
  --hbc-hero-v3-title-color: #fff;
  width: min(100%, var(--hbc-layout-active-hero-max, var(--hbc-layout-page-max)));
  max-width: var(--hbc-layout-active-hero-max, var(--hbc-layout-page-max)) !important;
  margin-inline: auto !important;
}

.hbc-hero--v3.hbc-hero--v3-ci-beige,
.hbc-hero--v3.hbc-hero--v3-title-beige {
  --hbc-hero-v3-title-color: var(--wp--preset--color--heartbeat-bg);
}

.hbc-hero--v3.hbc-hero--v3-title-white {
  --hbc-hero-v3-title-color: #fff;
}

.heartbeat-page-shell .hbc-hero--v3.has-global-padding {
  padding-right: 0 !important;
  padding-left: 0 !important;
}

.heartbeat-page-shell .hbc-hero--v3 > .hbc-hero-v3__stage {
  width: 100% !important;
  max-width: none !important;
  margin-right: 0 !important;
  margin-left: 0 !important;
}

.hbc-hero--v3 .hbc-hero-v3__stage {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  min-height: clamp(31rem, 47vw, 40rem) !important;
  padding:
    calc(var(--hbc-hero-v3-frame-size) + clamp(2rem, 5.5vw, 4.8rem))
    calc(var(--hbc-hero-v3-frame-size) + clamp(2rem, 5.5vw, 4.8rem))
    calc(var(--hbc-hero-v3-frame-size) + clamp(1.8rem, 2.6vw, 2.8rem));
  overflow: hidden;
  border-radius: var(--hbc-radius-hero);
  background: var(--hbc-hero-v3-frame-color);
  box-shadow: var(--hbc-shadow-soft);
  isolation: isolate;
}

.hbc-hero--v3 .hbc-hero-v3__stage .wp-block-cover__image-background {
  inset: var(--hbc-hero-v3-frame-size) !important;
  width: calc(100% - (2 * var(--hbc-hero-v3-frame-size))) !important;
  height: calc(100% - (2 * var(--hbc-hero-v3-frame-size))) !important;
  border-radius: var(--hbc-hero-v3-image-radius);
  object-fit: cover;
}

.hbc-hero--v3 .hbc-hero-v3__stage .wp-block-cover__background {
  inset: var(--hbc-hero-v3-frame-size) !important;
  border-radius: var(--hbc-hero-v3-image-radius);
  opacity: 1 !important;
  background-color: transparent !important;
  background-image:
    linear-gradient(180deg, transparent 54%, rgba(0, 0, 0, 0.19) 100%),
    linear-gradient(90deg, rgba(0, 0, 0, 0.59) 0%, rgba(0, 0, 0, 0.33) 42%, rgba(0, 0, 0, 0) 78%) !important;
}

.hbc-hero--v3 .wp-block-cover__inner-container {
  align-self: stretch;
  display: flex;
  height: auto !important;
  width: 100%;
  max-width: var(--hbc-layout-page-max);
  margin-inline: auto;
  color: var(--hbc-hero-v3-title-color);
  z-index: 2;
}

.hbc-hero--v3 .hbc-hero-v3__content {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: clamp(1.4rem, 2vw, 1.75rem);
  height: 100%;
  min-height: 100%;
  padding-block-start: clamp(6.3rem, 11.6vw, 10.5rem);
  width: min(100%, 62rem);
  margin: 0 !important;
}

.hbc-hero--v3 .hbc-hero-v3__content > :not(.hbc-hero-v3__title) {
  width: 100% !important;
  max-width: 100% !important;
  margin-right: 0 !important;
  margin-left: 0 !important;
}

.hbc-hero--v3 .hbc-hero-v3__title {
  width: auto !important;
  max-width: 15ch;
  margin: 0 !important;
  color: var(--hbc-hero-v3-title-color);
  font-size: 3.125rem;
  font-weight: 800;
  line-height: 0.92;
  letter-spacing: -0.058em;
  text-align: left;
  text-wrap: balance;
}

.hbc-hero--v3 .hbc-hero-v3__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
  justify-content: flex-start !important;
  margin-block-start: auto;
}

.hbc-hero--v3 .hbc-hero-v3__actions :is(.wp-block-button__link, .wp-element-button) {
  opacity: 1;
  filter: none;
}

.editor-styles-wrapper .hbc-hero--v3 .hbc-hero__actions.is-style-hbc-hero-primary-actions :is(.wp-block-button__link, .kt-button, .kb-button) {
  font-size: 18px;
  line-height: var(--hbc-button-line-height);
}

.editor-styles-wrapper .hbc-hero--v3 .hbc-hero__actions.is-style-hbc-hero-primary-actions :is(.wp-block-button.is-style-outline, .wp-block-button.hbc-kadence-button--secondary) .wp-block-button__link,
.editor-styles-wrapper .hbc-hero--v3 .hbc-hero__actions.is-style-hbc-hero-primary-actions :is(.kb-button.kb-btn-global-outline, .kt-button.kb-btn-global-outline, .kb-button.kt-btn-global-outline, .kt-button.kt-btn-global-outline) {
  border: 0;
  background: var(--wp--preset--color--heartbeat-blue);
  color: var(--wp--preset--color--heartbeat-surface);
}

@media (min-width: 768px) and (max-width: 1199px) {
  .hbc-hero--v3 .hbc-hero-v3__stage {
    min-height: clamp(33rem, 60vw, 37rem) !important;
  }

  .hbc-hero--v3 .hbc-hero-v3__content {
    padding-block-start: clamp(5.2rem, 9vw, 7.4rem);
    width: min(100%, 48rem);
  }

  .hbc-hero--v3 .hbc-hero-v3__title {
    font-size: 2.875rem;
  }
}

@media (max-width: 767px) {
  .heartbeat-page-shell .hbc-hero--v3 {
    width: calc(100vw - 2rem) !important;
    max-width: calc(100vw - 2rem) !important;
    margin-right: auto !important;
    margin-left: auto !important;
  }

  .hbc-hero--v3 .hbc-hero-v3__stage {
    min-height: clamp(31rem, 112vw, 36rem) !important;
    padding:
      calc(var(--hbc-hero-v3-frame-size) + clamp(1.55rem, 7vw, 2.15rem))
      calc(var(--hbc-hero-v3-frame-size) + clamp(1.55rem, 7vw, 2.15rem))
      calc(var(--hbc-hero-v3-frame-size) + clamp(1.15rem, 5vw, 1.65rem));
    align-items: flex-end;
  }

  .hbc-hero--v3 .hbc-hero-v3__stage .wp-block-cover__background {
    background:
      linear-gradient(180deg, transparent 46%, rgba(0, 0, 0, 0.21) 100%),
      linear-gradient(90deg, rgba(0, 0, 0, 0.61) 0%, rgba(0, 0, 0, 0.32) 56%, rgba(0, 0, 0, 0) 100%);
  }

  .hbc-hero--v3 .hbc-hero-v3__content {
    padding-block-start: clamp(2rem, 9vw, 2.75rem);
    width: min(100%, 31rem);
  }

  .hbc-hero--v3 .hbc-hero-v3__title {
    max-width: 100%;
    font-size: clamp(2.35rem, 10.6vw, 2.5625rem);
    line-height: 0.98;
    letter-spacing: -0.035em;
  }

  .hbc-hero--v3 .hbc-hero-v3__actions,
  .hbc-hero--v3 .hbc-hero-v3__actions .wp-block-button,
  .hbc-hero--v3 .hbc-hero-v3__actions .wp-block-button__link {
    width: 100%;
  }

  .hbc-hero--v3 .hbc-hero-v3__actions.hbc-hero__actions.is-style-hbc-hero-primary-actions :is(.wp-block-button__link, .wp-element-button, .kt-button, .kb-button) {
    min-height: 46px !important;
    padding: 12px 16px !important;
    font-size: 16px !important;
    line-height: 1.15 !important;
  }
}

.hbc-hero__panel {
  padding: clamp(1.15rem, 2.5vw, 1.6rem);
  border: 1px solid var(--hbc-border);
  border-radius: var(--hbc-radius-panel);
  background: color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 92%, transparent);
}

/* HBC form pages: the page heading belongs inside the form box, not as a separate hero. */
.hbc-form-page__section {
  width: min(100%, var(--hbc-layout-narrow-max)) !important;
  max-width: var(--hbc-layout-narrow-max) !important;
  margin-inline: auto !important;
  padding-block: clamp(2rem, 5vw, 4rem) !important;
}

.hbc-form-card,
.is-style-hbc-form-card,
.is-style-hbc-form-success {
  display: grid;
  gap: clamp(0.85rem, 2vw, 1.15rem);
  padding: clamp(1.25rem, 3vw, 2rem) !important;
}

.hbc-form-success {
  background: color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 94%, var(--wp--preset--color--heartbeat-blue) 6%);
}

.hbc-form-card .wpcf7,
.is-style-hbc-form-card .wpcf7 {
  width: 100%;
  margin-block-start: 0.25rem;
}

.hbc-form-card .wpcf7 form,
.is-style-hbc-form-card .wpcf7 form {
  display: grid;
  gap: clamp(0.85rem, 2vw, 1.05rem);
}

.hbc-form-card .wpcf7 form > p,
.is-style-hbc-form-card .wpcf7 form > p {
  display: grid;
  gap: 0.4rem;
  margin-block: 0;
}

.hbc-form-card .wpcf7 label,
.is-style-hbc-form-card .wpcf7 label {
  display: grid;
  gap: 0.4rem;
  font-weight: 680;
  color: var(--wp--preset--color--heartbeat-ink);
}

.hbc-form-card .wpcf7 input:not([type="submit"]):not([type="checkbox"]),
.hbc-form-card .wpcf7 select,
.hbc-form-card .wpcf7 textarea,
.is-style-hbc-form-card .wpcf7 input:not([type="submit"]):not([type="checkbox"]),
.is-style-hbc-form-card .wpcf7 select,
.is-style-hbc-form-card .wpcf7 textarea {
  width: 100%;
  min-height: 48px;
  box-sizing: border-box;
  padding: 0.78rem 0.95rem;
  border: 1px solid color-mix(in srgb, var(--wp--preset--color--heartbeat-ink) 14%, transparent);
  border-radius: 14px;
  background-color: var(--wp--preset--color--heartbeat-surface);
  color: var(--wp--preset--color--heartbeat-ink);
  font: inherit;
}

.hbc-form-card .wpcf7 select {
  appearance: none;
  -webkit-appearance: none;
  padding-inline-end: 2.85rem;
  line-height: inherit;
  background-image:
    linear-gradient(45deg, transparent 50%, color-mix(in srgb, var(--wp--preset--color--heartbeat-ink) 72%, transparent) 50%),
    linear-gradient(135deg, color-mix(in srgb, var(--wp--preset--color--heartbeat-ink) 72%, transparent) 50%, transparent 50%);
  background-position:
    calc(100% - 1.18rem) 50%,
    calc(100% - 0.86rem) 50%;
  background-size: 0.38rem 0.38rem, 0.38rem 0.38rem;
  background-repeat: no-repeat;
}

.hbc-form-card .wpcf7 select::-ms-expand {
  display: none;
}

.hbc-form-card .wpcf7 textarea {
  min-height: 8rem;
  resize: vertical;
}

.hbc-form-card .wpcf7-list-item {
  margin-inline: 0;
}

.hbc-form-card .wpcf7-list-item label {
  grid-template-columns: 22px minmax(0, 1fr);
  align-items: start;
  gap: 0.62rem;
  font-weight: 500;
  line-height: 1.4;
}

.hbc-form-card .wpcf7 input[type="checkbox"] {
  width: 20px;
  height: 20px;
  margin-top: 0.15rem;
}

.hbc-form-card .wpcf7 input[type="submit"].wpcf7-submit {
  box-sizing: border-box;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: auto;
  justify-self: start;
  align-self: start;
  max-width: 100%;
  min-height: var(--hbc-button-min-height);
  min-width: 0;
  padding: var(--hbc-button-padding-block) var(--hbc-button-padding-inline) !important;
  border: 0;
  border-radius: var(--hbc-radius-pill) !important;
  background: var(--wp--preset--color--heartbeat-blue) !important;
  color: var(--wp--preset--color--heartbeat-surface) !important;
  font: inherit;
  font-weight: 720;
  line-height: var(--hbc-button-line-height) !important;
  letter-spacing: -0.01em;
  text-align: center;
  text-decoration: none;
  text-wrap: balance;
  white-space: nowrap;
  cursor: pointer;
}

.hbc-form-card .wpcf7-spinner {
  margin: 0.5rem 0 0;
}

.hbc-form-card .wpcf7 form .wpcf7-response-output {
  margin: 0;
  padding: 0.85rem 1rem;
  border-radius: 14px;
}

/* Mailchimp is an external form provider, not CF7. Keep its provider-owned
   embed/script in the page, but normalize its visible fields through the shared
   HBC form-card contract instead of Mailchimp inline/external embed CSS. */
.hbc-form-card__provider,
.hbc-form-card__provider--mailchimp,
.hbc-form-card__provider--mailchimp #mc_embed_signup,
.hbc-form-card__provider--mailchimp #mc_embed_signup_scroll,
.hbc-form-card__provider--mailchimp form,
.hbc-form-card__provider--mailchimp .mc-field-group,
.hbc-form-card__provider--mailchimp .optionalParent .foot {
  display: grid;
  gap: clamp(0.85rem, 2vw, 1.05rem);
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.hbc-form-card__provider--mailchimp #mc_embed_signup {
  background: transparent;
  color: var(--wp--preset--color--heartbeat-ink);
  font: inherit;
}

.hbc-form-card__provider--mailchimp .indicates-required,
.hbc-form-card__provider--mailchimp .helper_text,
.hbc-form-card__provider--mailchimp .hbc-mailchimp-referral {
  color: var(--hbc-muted);
  font-size: 0.9rem;
  line-height: 1.45;
}

.hbc-form-card__provider--mailchimp .asterisk {
  color: var(--wp--preset--color--heartbeat-blue);
  font-weight: 800;
}

.hbc-form-card__provider--mailchimp label {
  display: grid;
  gap: 0.4rem;
  margin: 0 0 0.35rem;
  color: var(--wp--preset--color--heartbeat-ink);
  font-weight: 680;
}

.hbc-form-card__provider--mailchimp input:not([type="submit"]):not([type="checkbox"]) {
  width: 100%;
  min-height: 48px;
  box-sizing: border-box;
  padding: 0.78rem 0.95rem;
  border: 1px solid color-mix(in srgb, var(--wp--preset--color--heartbeat-ink) 14%, transparent);
  border-radius: 14px;
  background-color: var(--wp--preset--color--heartbeat-surface);
  color: var(--wp--preset--color--heartbeat-ink);
  font: inherit;
}

.hbc-form-card__provider--mailchimp input[type="submit"] {
  box-sizing: border-box;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: auto;
  justify-self: start;
  max-width: 100%;
  min-height: var(--hbc-button-min-height);
  padding: var(--hbc-button-padding-block) var(--hbc-button-padding-inline) !important;
  border: 0 !important;
  border-radius: var(--hbc-radius-pill) !important;
  background: var(--wp--preset--color--heartbeat-blue) !important;
  color: var(--wp--preset--color--heartbeat-surface) !important;
  font: inherit;
  font-weight: 720;
  line-height: var(--hbc-button-line-height) !important;
  letter-spacing: -0.01em;
  text-align: center;
  text-decoration: none;
  text-wrap: balance;
  white-space: nowrap;
  cursor: pointer;
}

.hbc-form-card__provider--mailchimp #mce-responses .response:empty {
  display: none;
}

.hbc-form-card__provider--mailchimp #mce-responses .response:not(:empty) {
  padding: 0.85rem 1rem;
  border-radius: 14px;
  background: color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 8%, var(--wp--preset--color--heartbeat-surface));
}

.hbc-form-card__provider--mailchimp .hbc-mailchimp-referral {
  margin: 0;
}

.hbc-form-card__provider--mailchimp .hbc-mailchimp-referral a,
.hbc-form-card__provider--mailchimp .hbc-mailchimp-referral span {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
}

.hbc-form-card__provider--mailchimp .refferal_badge {
  display: block;
  width: min(220px, 100%);
  height: auto;
  padding-block: 2px;
}

.hbc-form-card__header {
  gap: 0.55rem;
}

.hbc-form-card__header .hbc-section-intro__title {
  font-size: clamp(2.25rem, 5vw, 3.45rem);
  line-height: 0.98;
}

.hbc-form-card__header .hbc-section-intro__text,
.hbc-form-card__header .hbc-hero__panel-text {
  max-width: 40rem;
}

.hbc-hero__panel--image-only {
  gap: 0;
  padding: 0.875rem;
}

.hbc-hero__panel-image-wrap {
  margin: 0;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  height: 100%;
  min-height: 22rem;
  border-radius: calc(var(--hbc-radius-panel) - 2px);
  overflow: hidden;
  background: var(--wp--preset--color--heartbeat-bg);
}

.hbc-hero__panel-image-wrap img,
.hbc-hero__panel-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Standortleitung is a shared two-card location component, not a promo-card
   equal-height grid. Let each column size to its real content so images and
   copy do not inherit artificial height from the sibling column. */
.hbc-location-leadership > .kt-row-column-wrap,
.hbc-location-leadership > .kt-row-layout-inner > .kt-row-column-wrap,
.editor-styles-wrapper .hbc-location-leadership > .kt-row-column-wrap,
.editor-styles-wrapper .hbc-location-leadership > .kt-row-layout-inner > .kt-row-column-wrap {
  align-items: start !important;
  grid-auto-rows: auto !important;
}

.hbc-location-leadership__copy,
.hbc-location-leadership__image,
.hbc-location-leadership__copy > .kt-inside-inner-col,
.hbc-location-leadership__image > .kt-inside-inner-col {
  height: auto !important;
  min-height: 0 !important;
}

.hbc-location-leadership__image .hbc-hero__panel-image-wrap {
  height: auto;
}

@media (min-width: 900px) {
  .hbc-layout .kb-row-layout-wrap.hbc-location-leadership > .kt-row-column-wrap,
  .hbc-homepage-stack .kb-row-layout-wrap.hbc-location-leadership > .kt-row-column-wrap,
  .hbc-layout .wp-block-kadence-rowlayout.hbc-location-leadership > .kt-row-layout-inner > .kt-row-column-wrap,
  .hbc-homepage-stack .wp-block-kadence-rowlayout.hbc-location-leadership > .kt-row-layout-inner > .kt-row-column-wrap,
  .editor-styles-wrapper .kb-row-layout-wrap.hbc-location-leadership > .kt-row-column-wrap,
  .editor-styles-wrapper .wp-block-kadence-rowlayout.hbc-location-leadership > .kt-row-layout-inner > .kt-row-column-wrap {
    grid-template-columns: minmax(0, 1fr) minmax(0, 0.9fr) !important;
  }
}

.hbc-section-intro,
.hbc-visit-steps__header,
.hbc-location-grid__header {
  max-width: var(--hbc-layout-narrow-max);
}

.hbc-standard-content .wp-block-table {
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.hbc-standard-content .wp-block-table table {
  min-width: 100%;
}

.hbc-visit-steps__inner,
.hbc-visit-steps__list {
  display: grid;
  gap: 1rem;
  width: 100%;
  max-width: none !important;
  padding: 0;
  margin: 0 !important;
  list-style: none;
}

.hbc-visit-steps > .wp-block-group__inner-container,
.hbc-visit-steps__inner > .wp-block-group__inner-container,
.hbc-visit-steps__list > .wp-block-group__inner-container {
  display: grid;
  gap: 1rem;
  width: 100%;
  max-width: none !important;
  padding: 0;
  margin: 0;
}

.hbc-visit-steps__item,
.hbc-visit-steps__item > .wp-block-group__inner-container {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 1rem;
  align-items: start;
}

.hbc-visit-steps__item > .wp-block-group__inner-container {
  width: 100%;
  max-width: none !important;
  padding: 0;
  margin: 0;
}

.hbc-visit-steps__item {
  width: 100%;
  max-width: none !important;
  height: 100%;
  padding: clamp(1rem, 2.5vw, 1.35rem);
  margin-block-start: 0 !important;
  margin-block-end: 0 !important;
  margin-inline: 0 !important;
  border: 1px solid var(--hbc-border);
  border-radius: 20px;
  background: var(--wp--preset--color--heartbeat-surface);
  box-shadow: var(--hbc-shadow-soft);
}

.hbc-visit-steps__content,
.hbc-visit-steps__content > .wp-block-group__inner-container {
  min-width: 0;
  width: 100%;
  max-width: none !important;
  margin: 0 !important;
  text-align: left;
  justify-items: start;
}

.hbc-visit-steps__content > .wp-block-group__inner-container {
  display: grid;
  gap: 0.5rem;
}

.hbc-visit-steps__content > *,
.hbc-visit-steps__content > .wp-block-group__inner-container > * {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  justify-self: stretch !important;
  text-align: left !important;
}

.hbc-visit-steps__number {
  min-width: 3rem;
  height: 3rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--hbc-border);
  border-radius: var(--hbc-radius-pill);
  background: color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 78%, var(--wp--preset--color--heartbeat-bg));
  font-weight: 760;
  margin: 0 !important;
}

.hbc-visit-steps__content {
  display: grid;
  gap: 0.5rem;
}

.hbc-location-grid__inner {
  display: grid;
  gap: 1.5rem;
}

.hbc-location-grid__grid {
  display: grid;
  gap: 1rem;
}

.hbc-location-grid__card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--hbc-border);
  border-radius: var(--hbc-radius-card);
  background: var(--wp--preset--color--heartbeat-surface);
  box-shadow: var(--hbc-shadow-soft);
}

.hbc-location-grid__image img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.hbc-location-grid__content {
  position: relative;
  z-index: 2;
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 0.75rem;
  padding: clamp(1.15rem, 2.5vw, 1.5rem);
}

.hbc-location-grid__meta {
  display: grid;
  gap: 0.35rem;
}

.hbc-location-grid__actions {
  margin-top: auto;
  padding-top: 0.5rem;
}

@media (min-width: 768px) {
  .hbc-location-grid--cols-2 .hbc-location-grid__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .hbc-location-grid--cols-3 .hbc-location-grid__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 900px) {
  .hbc-hero__inner {
    grid-template-columns: minmax(0, 1.55fr) minmax(18.5rem, 0.88fr);
  }

  .wp-block-columns.hbc-hero__inner {
    grid-template-columns: minmax(0, 1.55fr) minmax(18.5rem, 0.88fr);
  }

  .kb-row-layout-wrap.hbc-hero__inner > .kt-row-column-wrap,
  .wp-block-kadence-rowlayout.hbc-hero__inner > .kt-row-layout-inner > .kt-row-column-wrap {
    grid-template-columns: minmax(0, 1.55fr) minmax(18.5rem, 0.88fr);
  }

  .kb-row-layout-wrap.hbc-hero__inner > .kt-row-column-wrap:has(> .wp-block-kadence-rowlayout.hbc-hero__inner) {
    grid-template-columns: minmax(0, 1fr);
  }

  .hbc-hero__content {
    max-width: 50rem;
  }

  .hbc-hero__panel--image-only {
    min-height: 100%;
  }
}

.hbc-homepage-section,
.hbc-homepage-stack > .wp-block-group__inner-container,
.hbc-media-page > .wp-block-group__inner-container {
  width: min(100%, var(--wp--style--global--wide-size));
  margin-inline: auto;
}

.hbc-homepage-section {
  padding-block: clamp(2.5rem, 6vw, 5rem);
}

.hbc-homepage-section--compact {
  padding-block: clamp(2rem, 5vw, 4rem);
}

/* Layout families: page-wide width, rhythm and hero shape live here. Legacy
   page wrappers remain only as temporary bridges until content wrappers are migrated. */
.hbc-layout .hbc-homepage-section,
.hbc-layout .hbc-homepage-section--compact {
  padding-block: 0;
}

.hbc-layout .hbc-section-intro,
.hbc-layout .hbc-visit-steps__header,
.hbc-layout .hbc-location-grid__header {
  max-width: var(--hbc-layout-narrow-max);
}

.hbc-layout .hbc-homepage-card-row,
.hbc-layout .hbc-location-grid__grid,
.hbc-layout .hbc-visit-steps__list,
.hbc-layout .kt-row-column-wrap {
  gap: var(--hbc-layout-inner-gap) !important;
}

/* Shared Kadence card-row bridge: Kadence renders an outer helper row with a
   single inner rowlayout child. The helper row must not become the visual card
   grid, otherwise every default/media page bottom section collapses into a
   narrow left column. Drive the real columns on the inner row only. */
.hbc-layout .kb-row-layout-wrap.hbc-homepage-card-row,
.hbc-homepage-stack .kb-row-layout-wrap.hbc-homepage-card-row {
  width: min(100%, var(--hbc-layout-active-content-max, var(--hbc-layout-content-max)));
  max-width: var(--hbc-layout-active-content-max, var(--hbc-layout-content-max)) !important;
  margin-inline: auto !important;
}

.hbc-layout .kb-row-layout-wrap.hbc-homepage-card-row > .kt-row-column-wrap,
.hbc-homepage-stack .kb-row-layout-wrap.hbc-homepage-card-row > .kt-row-column-wrap,
.hbc-layout .wp-block-kadence-rowlayout.hbc-homepage-card-row > .kt-row-layout-inner > .kt-row-column-wrap,
.hbc-homepage-stack .wp-block-kadence-rowlayout.hbc-homepage-card-row > .kt-row-layout-inner > .kt-row-column-wrap,
.hbc-layout .wp-block-columns.hbc-homepage-card-row,
.hbc-homepage-stack .wp-block-columns.hbc-homepage-card-row {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: var(--hbc-layout-inner-gap) !important;
  align-items: stretch;
  grid-auto-rows: 1fr;
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
  padding: 0 !important;
}

.hbc-layout .kb-row-layout-wrap.hbc-homepage-card-row > .kt-row-column-wrap:has(> .wp-block-kadence-rowlayout.hbc-homepage-card-row),
.hbc-homepage-stack .kb-row-layout-wrap.hbc-homepage-card-row > .kt-row-column-wrap:has(> .wp-block-kadence-rowlayout.hbc-homepage-card-row) {
  display: block !important;
}

@media (min-width: 900px) {
  .hbc-layout .kb-row-layout-wrap.hbc-homepage-card-row > .kt-row-column-wrap,
  .hbc-homepage-stack .kb-row-layout-wrap.hbc-homepage-card-row > .kt-row-column-wrap,
  .hbc-layout .wp-block-kadence-rowlayout.hbc-homepage-card-row > .kt-row-layout-inner > .kt-row-column-wrap,
  .hbc-homepage-stack .wp-block-kadence-rowlayout.hbc-homepage-card-row > .kt-row-layout-inner > .kt-row-column-wrap,
  .hbc-layout .wp-block-columns.hbc-homepage-card-row,
  .hbc-homepage-stack .wp-block-columns.hbc-homepage-card-row {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }

  .hbc-layout .kb-row-layout-wrap.hbc-homepage-card-row > .kt-row-column-wrap:has(> .wp-block-kadence-rowlayout.hbc-homepage-card-row),
  .hbc-homepage-stack .kb-row-layout-wrap.hbc-homepage-card-row > .kt-row-column-wrap:has(> .wp-block-kadence-rowlayout.hbc-homepage-card-row) {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .hbc-anfahrt-page .wp-block-columns.hbc-homepage-card-row--two {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .hbc-layout--media .wp-block-kadence-rowlayout.hbc-media-entry-grid > .kt-row-layout-inner > .kt-row-column-wrap,
  .hbc-media-page .wp-block-kadence-rowlayout.hbc-media-entry-grid > .kt-row-layout-inner > .kt-row-column-wrap,
  .hbc-layout--media .kb-row-layout-wrap.hbc-media-entry-grid > .kt-row-column-wrap,
  .hbc-media-page .kb-row-layout-wrap.hbc-media-entry-grid > .kt-row-column-wrap {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .hbc-layout--media .wp-block-kadence-rowlayout.hbc-media-playlist-grid > .kt-row-layout-inner > .kt-row-column-wrap,
  .hbc-media-page .wp-block-kadence-rowlayout.hbc-media-playlist-grid > .kt-row-layout-inner > .kt-row-column-wrap,
  .hbc-layout--media .kb-row-layout-wrap.hbc-media-playlist-grid > .kt-row-column-wrap,
  .hbc-media-page .kb-row-layout-wrap.hbc-media-playlist-grid > .kt-row-column-wrap {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)) !important;
  }

  .hbc-layout--media .wp-block-kadence-rowlayout.hbc-media-playlist-grid > .kt-row-layout-inner > .kt-row-column-wrap:has(> .wp-block-kadence-column:only-child),
  .hbc-media-page .wp-block-kadence-rowlayout.hbc-media-playlist-grid > .kt-row-layout-inner > .kt-row-column-wrap:has(> .wp-block-kadence-column:only-child),
  .hbc-layout--media .kb-row-layout-wrap.hbc-media-playlist-grid > .kt-row-column-wrap:has(> .wp-block-kadence-column:only-child),
  .hbc-media-page .kb-row-layout-wrap.hbc-media-playlist-grid > .kt-row-column-wrap:has(> .wp-block-kadence-column:only-child) {
    grid-template-columns: minmax(0, min(100%, 48rem)) !important;
  }
}

.hbc-layout .hbc-homepage-card-row .wp-block-kadence-column,
.hbc-homepage-stack .hbc-homepage-card-row .wp-block-kadence-column {
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
}

.hbc-anfahrt-page .hbc-map-card iframe {
  display: block;
  width: 100%;
  max-width: 100%;
  min-height: clamp(12rem, 20vw, 18rem);
  border: 0;
  border-radius: calc(var(--hbc-radius-card) - 0.55rem);
}

/* Reported-page polish: utility heroes need to sit on the same wide rail as
   comparable full-width pages, while Anfahrt info cards should not inherit the
   homepage card-row's equal-height promo behaviour. */
.hbc-utility-page > .hbc-hero,
.hbc-layout--utility > .hbc-hero {
  width: calc(100% + var(--wp--style--root--padding-left) + var(--wp--style--root--padding-right));
  max-width: none !important;
  margin-right: calc(-1 * var(--wp--style--root--padding-right)) !important;
  margin-left: calc(-1 * var(--wp--style--root--padding-left)) !important;
}

.hbc-anfahrt-page .hbc-homepage-card-row {
  align-items: start !important;
  grid-auto-rows: auto !important;
}

.hbc-anfahrt-page .hbc-homepage-card-row > .wp-block-column {
  display: block !important;
  height: auto !important;
}

.hbc-anfahrt-page .hbc-homepage-card-row > .wp-block-column > .hbc-homepage-card {
  height: auto !important;
  min-height: 0 !important;
}

.hbc-anfahrt-page .hbc-map-card iframe {
  min-height: clamp(12rem, 20vw, 18rem) !important;
}

.hbc-map-card__link {
  margin-block: 0 !important;
}

.hbc-map-card__link a {
  display: inline-flex;
  align-items: center;
  min-height: 2.4rem;
  padding: 0.55rem 0.9rem;
  border: 1px solid color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 24%, transparent);
  border-radius: var(--hbc-radius-pill);
  background: color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 84%, transparent);
  color: var(--wp--preset--color--heartbeat-blue-deep) !important;
  font-weight: 760;
  line-height: 1.1;
  text-decoration: none;
}

@media (max-width: 700px) {
  .hbc-anfahrt-page .hbc-map-card iframe {
    display: none;
  }
}

/* Anfahrt follow-up: keep the utility topheader, but make it the single content
   block by moving address + Google Maps into the hero and removing the lower
   duplicate card row from the saved page content. */
.hbc-anfahrt-page .hbc-anfahrt-hero .hbc-hero__content {
  align-content: start;
}

.hbc-anfahrt-page .hbc-anfahrt-hero__address {
  display: grid;
  gap: 0.45rem;
  width: min(100%, 34rem);
  margin-block-start: 0.35rem;
  padding: clamp(1rem, 2vw, 1.25rem);
  border: 1px solid var(--hbc-border);
  border-radius: calc(var(--hbc-radius-panel) - 0.35rem);
  background: color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 86%, transparent);
}

.hbc-anfahrt-page .hbc-anfahrt-hero__address,
.hbc-anfahrt-page .hbc-anfahrt-hero__map {
  text-align: left;
}

.hbc-anfahrt-page .hbc-anfahrt-hero__address h3,
.hbc-anfahrt-page .hbc-anfahrt-hero__address p,
.hbc-anfahrt-page .hbc-anfahrt-hero__map h3 {
  margin: 0;
}

.hbc-anfahrt-page .hbc-anfahrt-hero__address h3,
.hbc-anfahrt-page .hbc-anfahrt-hero__map h3 {
  font-size: clamp(1.25rem, 2.3vw, 1.55rem);
  line-height: 1.05;
  letter-spacing: -0.03em;
}

.hbc-anfahrt-page .hbc-anfahrt-hero__address p {
  color: var(--wp--preset--color--heartbeat-muted);
  line-height: 1.55;
}

.hbc-anfahrt-page .hbc-hero__panel.hbc-anfahrt-hero__map {
  align-content: start;
  gap: 0.8rem;
  padding: clamp(1rem, 2.2vw, 1.35rem);
}

.hbc-anfahrt-page .hbc-anfahrt-hero .hbc-map-card iframe {
  display: block !important;
  width: 100%;
  height: clamp(16rem, 24vw, 22rem);
  min-height: clamp(16rem, 24vw, 22rem) !important;
  border-radius: calc(var(--hbc-radius-panel) - 0.55rem);
}

@media (max-width: 700px) {
  .hbc-anfahrt-page .hbc-anfahrt-hero .hbc-map-card iframe {
    display: block !important;
    height: 13rem;
    min-height: 13rem !important;
  }
}

.hbc-newsletter-page #mc_embed_signup {
  width: 100% !important;
  max-width: 100% !important;
  background: transparent !important;
  color: var(--wp--preset--color--heartbeat-ink) !important;
}

.hbc-newsletter-page #mc_embed_signup input:not([type="submit"]) {
  border: 1px solid var(--hbc-border);
  border-radius: 0.85rem;
}

/* Shared visit-step cards: the homepage uses the canonical `hbc-visit-steps`
   list, while Standort pages render the same component through Kadence rowlayout
   wrappers. Drive both through one desktop card-row contract so the numbered
   cards sit side-by-side on desktop and remain stacked on mobile. */
@media (min-width: 1024px) {
  .hbc-visit-steps__list:not(.wp-block-kadence-rowlayout):not(.kb-row-layout-wrap),
  .hbc-visit-steps__list > .wp-block-group__inner-container {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-auto-rows: 1fr;
    align-items: stretch;
  }

  .hbc-visit-steps__list > .wp-block-group__inner-container {
    grid-column: 1 / -1;
  }
}

.hbc-layout .kb-row-layout-wrap.hbc-visit-steps__list,
.hbc-homepage-stack .kb-row-layout-wrap.hbc-visit-steps__list {
  width: min(100%, var(--hbc-layout-active-content-max, var(--hbc-layout-content-max)));
  max-width: var(--hbc-layout-active-content-max, var(--hbc-layout-content-max)) !important;
  margin-inline: auto !important;
}

/* Standort pages put hbc-visit-steps__list on the outer Kadence rowlayout and
   hbc-visit-steps__item on direct Kadence columns. Keep the helper row from
   stacking full-width columns; the direct kt-row-column-wrap is the visual grid. */
.hbc-layout .kb-row-layout-wrap.hbc-visit-steps__list > .kt-row-column-wrap,
.hbc-homepage-stack .kb-row-layout-wrap.hbc-visit-steps__list > .kt-row-column-wrap,
.hbc-layout .wp-block-kadence-rowlayout.hbc-visit-steps__list > .kt-row-layout-inner > .kt-row-column-wrap,
.hbc-homepage-stack .wp-block-kadence-rowlayout.hbc-visit-steps__list > .kt-row-layout-inner > .kt-row-column-wrap {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: var(--hbc-layout-inner-gap, 1.5rem) !important;
  align-items: stretch;
  grid-auto-rows: auto;
  width: 100% !important;
  max-width: none !important;
  margin-inline: 0 !important;
  padding: 0 !important;
}

.hbc-layout .kb-row-layout-wrap.hbc-visit-steps__list > .kt-row-column-wrap > .wp-block-kadence-rowlayout.hbc-visit-steps__list,
.hbc-homepage-stack .kb-row-layout-wrap.hbc-visit-steps__list > .kt-row-column-wrap > .wp-block-kadence-rowlayout.hbc-visit-steps__list {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}

.hbc-layout .wp-block-kadence-rowlayout.hbc-visit-steps__list > .kt-row-layout-inner,
.hbc-homepage-stack .wp-block-kadence-rowlayout.hbc-visit-steps__list > .kt-row-layout-inner {
  width: 100% !important;
  max-width: none !important;
}

.hbc-layout .hbc-visit-steps__list .wp-block-kadence-column,
.hbc-homepage-stack .hbc-visit-steps__list .wp-block-kadence-column {
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
}

.hbc-layout .hbc-visit-steps__list .wp-block-kadence-column.hbc-visit-steps__item,
.hbc-homepage-stack .hbc-visit-steps__list .wp-block-kadence-column.hbc-visit-steps__item {
  display: block !important;
  height: auto !important;
  min-height: 0 !important;
}

.hbc-layout .hbc-visit-steps__list .wp-block-kadence-column.hbc-visit-steps__item > .kt-inside-inner-col,
.hbc-homepage-stack .hbc-visit-steps__list .wp-block-kadence-column.hbc-visit-steps__item > .kt-inside-inner-col {
  display: grid !important;
  grid-template-columns: 3rem minmax(0, 1fr);
  column-gap: 1rem;
  row-gap: 0.5rem;
  height: 100%;
  align-content: start;
  align-items: start;
}

.hbc-layout .hbc-visit-steps__list .wp-block-kadence-column.hbc-visit-steps__item > .kt-inside-inner-col > .hbc-visit-steps__number,
.hbc-homepage-stack .hbc-visit-steps__list .wp-block-kadence-column.hbc-visit-steps__item > .kt-inside-inner-col > .hbc-visit-steps__number {
  grid-column: 1;
  grid-row: 1 / span 3;
  width: 3rem !important;
  min-width: 3rem !important;
  height: 3rem !important;
  border-radius: 999px;
  justify-self: start;
}

.hbc-layout .hbc-visit-steps__list .wp-block-kadence-column.hbc-visit-steps__item > .kt-inside-inner-col > :not(.hbc-visit-steps__number),
.hbc-homepage-stack .hbc-visit-steps__list .wp-block-kadence-column.hbc-visit-steps__item > .kt-inside-inner-col > :not(.hbc-visit-steps__number) {
  grid-column: 2;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  text-align: left !important;
}

@media (min-width: 1024px) {
  .hbc-layout .kb-row-layout-wrap.hbc-visit-steps__list > .kt-row-column-wrap,
  .hbc-homepage-stack .kb-row-layout-wrap.hbc-visit-steps__list > .kt-row-column-wrap,
  .hbc-layout .wp-block-kadence-rowlayout.hbc-visit-steps__list > .kt-row-layout-inner > .kt-row-column-wrap,
  .hbc-homepage-stack .wp-block-kadence-rowlayout.hbc-visit-steps__list > .kt-row-layout-inner > .kt-row-column-wrap {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 1023px) {
  .hbc-visit-steps__list:not(.wp-block-kadence-rowlayout):not(.kb-row-layout-wrap),
  .hbc-visit-steps__list > .wp-block-group__inner-container,
  .hbc-layout .kb-row-layout-wrap.hbc-visit-steps__list > .kt-row-column-wrap,
  .hbc-homepage-stack .kb-row-layout-wrap.hbc-visit-steps__list > .kt-row-column-wrap,
  .hbc-layout .wp-block-kadence-rowlayout.hbc-visit-steps__list > .kt-row-layout-inner > .kt-row-column-wrap,
  .hbc-homepage-stack .wp-block-kadence-rowlayout.hbc-visit-steps__list > .kt-row-layout-inner > .kt-row-column-wrap {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-auto-rows: auto;
    align-items: stretch;
  }
}

.hbc-layout--home {
  --hbc-layout-section-gap: clamp(3rem, 7vw, 5.3125rem);
  --hbc-layout-inner-gap: 32px;
  --hbc-layout-active-content-max: var(--hbc-layout-page-max);
  --hbc-layout-active-hero-max: var(--hbc-layout-page-max);
}

.hbc-layout--home .hbc-hero__inner {
  min-height: clamp(32rem, 46vw, 40rem);
}

.hbc-layout--home .hbc-hero__content {
  max-width: var(--hbc-layout-narrow-max);
}

.hbc-layout--home .hbc-hero__title {
  max-width: 13.9ch;
  font-size: clamp(3.15rem, 5.8vw, 5.35rem);
  line-height: 0.93;
}

.hbc-layout--home .hbc-hero__panel {
  max-width: 100%;
}

.hbc-layout--home .hbc-hero__panel-image-wrap {
  min-height: clamp(26rem, 34vw, 34rem);
}

/* HBCWB-045: shared Page/Hero shell. Home, default ministry pages and later
   layout families use the same outer hero rhythm; variants differ by height
   and type scale only, not by an accidental narrower inner card. */
.heartbeat-page-shell .hbc-hero > .hbc-hero__inner,
.heartbeat-page-shell .hbc-hero > .wp-block-kadence-rowlayout.hbc-hero__inner,
.heartbeat-page-shell .hbc-hero > .wp-block-group__inner-container > .hbc-hero__inner,
.heartbeat-page-shell .hbc-hero > .wp-block-group__inner-container > .wp-block-kadence-rowlayout.hbc-hero__inner {
  width: 100% !important;
  max-width: none !important;
  margin-right: 0 !important;
  margin-left: 0 !important;
}

.heartbeat-page-shell .hbc-hero__title {
  overflow-wrap: normal !important;
  word-break: normal !important;
  hyphens: manual;
}

@media (max-width: 600px) {
  .heartbeat-page-shell .heartbeat-page-fallback-title,
  .heartbeat-page-shell .hbc-layout--utility .hbc-hero__title {
    max-width: 100% !important;
    font-size: clamp(2.15rem, 11vw, 2.75rem) !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
    hyphens: auto;
  }

  .heartbeat-page-shell .hbc-layout--utility .hbc-hero__title {
    font-size: clamp(2.1rem, 9.8vw, 2.45rem) !important;
  }
}

.heartbeat-page-shell .hbc-layout--home .hbc-hero__inner {
  min-height: clamp(32rem, 44vw, 39rem) !important;
}

.heartbeat-page-shell .hbc-layout--home .hbc-hero__content {
  max-width: min(100%, var(--hbc-layout-narrow-max)) !important;
}

.heartbeat-page-shell .hbc-layout--home .hbc-hero__title {
  max-width: 15ch !important;
  font-size: clamp(3.05rem, 5.25vw, 5.05rem) !important;
  line-height: 0.94;
}

.heartbeat-page-shell :is(.hbc-layout--default, .hbc-kleingruppen-page, .hbc-generation-page, .hbc-mission-page, .hbc-donate-page, .hbc-layout--media, .hbc-media-page, .hbc-layout--events, .hbc-termine-page, .hbc-layout--location) .hbc-hero__inner {
  min-height: clamp(26rem, 36vw, 32rem) !important;
}

.heartbeat-page-shell :is(.hbc-layout--default, .hbc-kleingruppen-page, .hbc-generation-page, .hbc-mission-page, .hbc-donate-page, .hbc-layout--media, .hbc-media-page, .hbc-layout--events, .hbc-termine-page, .hbc-layout--location) .hbc-hero__title {
  max-width: 13.2ch !important;
  font-size: clamp(2.85rem, 4.9vw, 4.65rem) !important;
  line-height: 0.95;
}

/* Standard-content heroes can have very short left copy beside a taller info
   panel. Keep the left rail start-aligned instead of letting CSS Grid stretch
   sparse rows through the whole card height. */
.heartbeat-page-shell .hbc-standard-content-page .hbc-hero__content {
  align-content: start;
}

.heartbeat-page-shell .hbc-standard-content-page .hbc-hero__title {
  overflow-wrap: anywhere !important;
  word-break: normal !important;
  hyphens: auto;
}

.hbc-layout--default,
.hbc-kleingruppen-page,
.hbc-generation-page,
.hbc-mission-page,
.hbc-donate-page {
  --hbc-layout-section-gap: clamp(3rem, 7vw, 5.3125rem);
  --hbc-layout-inner-gap: 32px;
  --hbc-layout-active-content-max: var(--hbc-layout-page-max);
  --hbc-layout-active-hero-max: var(--hbc-layout-page-max);
}

.hbc-layout--default .hbc-hero__inner,
.hbc-kleingruppen-page .hbc-hero__inner,
.hbc-generation-page .hbc-hero__inner,
.hbc-mission-page .hbc-hero__inner,
.hbc-donate-page .hbc-hero__inner {
  min-height: clamp(26rem, 36vw, 32rem);
  padding: clamp(1.6rem, 3.4vw, 2.85rem);
}

.hbc-layout--default .hbc-hero__title,
.hbc-kleingruppen-page .hbc-hero__title,
.hbc-generation-page .hbc-hero__title,
.hbc-mission-page .hbc-hero__title,
.hbc-donate-page .hbc-hero__title {
  max-width: 13.2ch;
  font-size: clamp(2.85rem, 4.9vw, 4.65rem);
  line-height: 0.95;
}

@media (max-width: 600px) {
  .heartbeat-page-shell .hbc-layout--utility .hbc-hero__title {
    max-width: 100% !important;
    font-size: clamp(2.05rem, 8.9vw, 2.25rem) !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
    hyphens: auto;
  }

  .heartbeat-page-shell .hbc-standard-content-page .hbc-hero__title {
    max-width: 100% !important;
    font-size: clamp(2.05rem, 9.5vw, 2.6rem) !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
    hyphens: auto;
  }
}

/* Keep normal page heroes visually in the same family as the homepage hero:
   the HBC root is nested inside the already constrained post-content/header rail.
   Size it from that parent, not 100vw, so scrollbars or WordPress alignfull
   margins cannot make the card wider than the menu capsule again. */
.heartbeat-page-shell .wp-block-post-content > .hbc-layout.alignfull {
  width: 100% !important;
  max-width: 100% !important;
  margin-right: 0 !important;
  margin-left: 0 !important;
}

.heartbeat-page-shell .wp-block-post-content > .hbc-layout.alignfull > .wp-block-group__inner-container {
  width: 100% !important;
  max-width: none !important;
}

.hbc-layout--default > .wp-block-group__inner-container > .hbc-hero,
.hbc-kleingruppen-page > .wp-block-group__inner-container > .hbc-hero,
.hbc-generation-page > .wp-block-group__inner-container > .hbc-hero,
.hbc-mission-page > .wp-block-group__inner-container > .hbc-hero,
.hbc-donate-page > .wp-block-group__inner-container > .hbc-hero {
  width: 100% !important;
  max-width: var(--wp--style--global--wide-size) !important;
}

@media (min-width: 900px) {
  .hbc-layout--default .wp-block-kadence-rowlayout.hbc-hero__inner > .kt-row-layout-inner > .kt-row-column-wrap,
  .hbc-kleingruppen-page .wp-block-kadence-rowlayout.hbc-hero__inner > .kt-row-layout-inner > .kt-row-column-wrap,
  .hbc-generation-page .wp-block-kadence-rowlayout.hbc-hero__inner > .kt-row-layout-inner > .kt-row-column-wrap,
  .hbc-mission-page .wp-block-kadence-rowlayout.hbc-hero__inner > .kt-row-layout-inner > .kt-row-column-wrap,
  .hbc-donate-page .wp-block-kadence-rowlayout.hbc-hero__inner > .kt-row-layout-inner > .kt-row-column-wrap {
    grid-template-columns: minmax(0, 1.15fr) minmax(18.5rem, 0.85fr);
  }

  .hbc-layout--default .hbc-hero__panel-image-wrap,
  .hbc-kleingruppen-page .hbc-hero__panel-image-wrap,
  .hbc-generation-page .hbc-hero__panel-image-wrap,
  .hbc-mission-page .hbc-hero__panel-image-wrap,
  .hbc-donate-page .hbc-hero__panel-image-wrap {
    min-height: clamp(22rem, 29vw, 28rem);
  }
}

.hbc-layout--default :is(.hbc-section-intro, .hbc-visit-steps__header),
.hbc-kleingruppen-page :is(.hbc-section-intro, .hbc-visit-steps__header),
.hbc-generation-page :is(.hbc-section-intro, .hbc-visit-steps__header),
.hbc-mission-page :is(.hbc-section-intro, .hbc-visit-steps__header),
.hbc-donate-page :is(.hbc-section-intro, .hbc-visit-steps__header) {
  max-width: var(--hbc-layout-narrow-max);
}

/* HBCWB-048: Section intros are a reusable editorial pattern, not a random
   narrow stack. Keep the Gutenberg/Kadence markup editierbar and drive the
   visual hierarchy through the shared class names. */
.hbc-homepage-section.hbc-section-intro,
.hbc-layout .hbc-homepage-section.hbc-section-intro,
.hbc-homepage-stack .hbc-section-intro,
.hbc-layout .hbc-section-intro {
  width: min(100%, var(--hbc-layout-active-content-max, var(--hbc-layout-content-max)));
  max-width: var(--hbc-layout-active-content-max, var(--hbc-layout-content-max)) !important;
  margin-inline: auto !important;
}

.hbc-section-intro > .wp-block-group__inner-container,
section.hbc-section-intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(0.7rem, 1.6vw, 1rem);
  align-items: end;
}

.hbc-section-intro__eyebrow {
  max-width: 18rem;
}

.hbc-section-intro__title {
  max-width: 12.8ch;
  text-wrap: balance;
}

@media (min-width: 900px) {
  .hbc-section-intro__title {
    max-width: 100%;
  }
}

.hbc-section-intro__text {
  max-width: 36rem;
  font-size: clamp(1.02rem, 1.35vw, 1.16rem);
}

/* WordPress constrained group children default to centered margins. For HBC section
   intros, keep eyebrow/title/text visually left-bound like the homepage pattern. */
.hbc-section-intro > :is(.hbc-section-intro__eyebrow, .hbc-section-intro__title, .hbc-section-intro__text),
.hbc-section-intro > .wp-block-group__inner-container > :is(.hbc-section-intro__eyebrow, .hbc-section-intro__title, .hbc-section-intro__text),
section.hbc-section-intro > :is(.hbc-section-intro__eyebrow, .hbc-section-intro__title, .hbc-section-intro__text) {
  justify-self: start !important;
  margin-inline: 0 !important;
  text-align: left !important;
}

@media (min-width: 900px) {
  .hbc-section-intro > .wp-block-group__inner-container,
  section.hbc-section-intro {
    grid-template-columns: minmax(0, 1fr);
    row-gap: clamp(0.85rem, 1.4vw, 1.15rem);
  }

  .hbc-section-intro__eyebrow,
  .hbc-section-intro__title,
  .hbc-section-intro__text {
    grid-column: 1;
  }

  .hbc-section-intro__text {
    align-self: start;
    margin-bottom: 0;
  }
}

/* HBCWB-048: editorial image-language variants. The layout geometry stays
   shared; only crop/position changes per ministry hero so pages no longer all
   feel like the same worship-service photo. */
.hbc-layout--default .hbc-hero__panel-image-wrap img {
  object-position: center center;
}

.kadence-column_kleingruppen-hero-image .hbc-hero__panel-image-wrap img {
  object-position: 52% 48%;
}

.kadence-column_generationen-hero-image .hbc-hero__panel-image-wrap img {
  object-position: 48% 42%;
}

.kadence-column_gebetsdienst-hero-image .hbc-hero__panel-image-wrap img {
  object-position: 50% 50%;
}

.kadence-column_mission-hero-image .hbc-hero__panel-image-wrap img {
  object-position: 50% 46%;
}

.hbc-layout--location {
  --hbc-layout-section-gap: clamp(3rem, 7vw, 5.3125rem);
  --hbc-layout-inner-gap: 32px;
  --hbc-layout-active-content-max: var(--hbc-layout-page-max);
  --hbc-layout-active-hero-max: var(--hbc-layout-page-max);
}

.hbc-layout--location .hbc-location-grid__grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
}

.hbc-layout--location .hbc-location-grid__card {
  min-height: 100%;
}

.hbc-layout--location .hbc-news-slider {
  --hbc-location-news-rail-width: min(calc(100vw - 2rem), var(--hbc-layout-page-max));
  width: min(100%, var(--hbc-layout-page-max)) !important;
  max-width: var(--hbc-layout-page-max) !important;
  justify-self: stretch;
  margin-inline: auto !important;
}

.hbc-layout--location .hbc-news-slider__header {
  max-width: min(100%, var(--hbc-layout-page-max));
}

.hbc-layout--location .hbc-news-slider__viewport {
  width: 100%;
  max-width: 100%;
  margin-inline: 0;
  padding-inline: 0;
}

.hbc-layout--location .hbc-news-slider__track {
  max-width: none;
}

.hbc-layout--location .hbc-news-slider__card:first-child {
  margin-inline-start: 0;
}

@media (max-width: 720px) {
  .hbc-layout--location .hbc-news-slider__track {
    width: 100%;
    max-width: 100%;
  }

  .hbc-layout--location .hbc-news-slider__card {
    flex-basis: calc(100% - 2rem);
  }

  .hbc-layout--location .hbc-news-slider__card:first-child {
    margin-inline-start: 1rem;
  }
}

@media (min-width: 900px) {
  .hbc-layout--location .hbc-news-slider__card {
    flex-basis: calc((var(--hbc-location-news-rail-width) - 2rem) / 3);
  }
}

.hbc-layout--events,
.hbc-termine-page {
  --hbc-layout-section-gap: clamp(3rem, 7vw, 5.3125rem);
  --hbc-layout-inner-gap: 32px;
  /* Termine/events use the same page rail for hero, section intro, filters and
     agenda cards so the list does not collapse into a detached middle column. */
  --hbc-layout-active-content-max: var(--hbc-layout-page-max);
  --hbc-layout-active-hero-max: var(--hbc-layout-page-max);
}

.hbc-layout.hbc-layout--events .hbc-homepage-section.hbc-section-intro,
.hbc-termine-page.hbc-layout .hbc-homepage-section.hbc-section-intro,
.hbc-layout--events .hbc-section-intro,
.hbc-termine-page .hbc-section-intro {
  display: grid !important;
  grid-template-areas:
    "eyebrow"
    "title"
    "text";
  grid-template-columns: minmax(0, 1fr) !important;
  gap: clamp(0.75rem, 1.4vw, 1.05rem) !important;
  align-items: start;
  justify-items: start;
  width: min(100%, var(--hbc-layout-page-max)) !important;
  max-width: var(--hbc-layout-page-max) !important;
  justify-self: stretch;
}

.hbc-layout--events .hbc-section-intro > .wp-block-group__inner-container,
.hbc-termine-page .hbc-section-intro > .wp-block-group__inner-container {
  display: grid;
  grid-template-areas:
    "eyebrow"
    "title"
    "text";
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(0.75rem, 1.4vw, 1.05rem);
  align-items: start;
  width: 100%;
  max-width: none !important;
}

.hbc-layout--events .hbc-section-intro__eyebrow,
.hbc-termine-page .hbc-section-intro__eyebrow {
  grid-area: eyebrow;
  justify-self: start;
  max-width: none;
  margin-inline: 0 !important;
}

.hbc-layout--events .hbc-section-intro__title,
.hbc-termine-page .hbc-section-intro__title {
  grid-area: title;
  max-width: 100%;
  font-size: clamp(2.55rem, 4.2vw, 3.85rem);
}

.hbc-layout--events .hbc-section-intro__text,
.hbc-termine-page .hbc-section-intro__text {
  grid-area: text;
  max-width: 32rem;
}

.hbc-layout--events .hbc-homepage-card-row,
.hbc-termine-page .hbc-homepage-card-row {
  width: min(100%, var(--hbc-layout-utility-max));
  max-width: var(--hbc-layout-utility-max) !important;
  margin-inline: auto !important;
}

.hbc-layout--events .hbc-homepage-card-row > .kt-row-layout-inner,
.hbc-termine-page .hbc-homepage-card-row > .kt-row-layout-inner {
  width: 100%;
  max-width: none !important;
}

/* Kadence rowlayout blocks render an outer .kb-row-layout-wrap and an inner
   .wp-block-kadence-rowlayout. The outer helper wrapper must not become the
   card grid, otherwise the real 3-card row is squeezed into the first column. */
.hbc-layout--events .kb-row-layout-wrap.hbc-homepage-card-row > .kt-row-column-wrap,
.hbc-termine-page .kb-row-layout-wrap.hbc-homepage-card-row > .kt-row-column-wrap {
  display: block !important;
  width: 100% !important;
  padding: 0 !important;
}

.hbc-layout--events .kb-row-layout-wrap.hbc-homepage-card-row > .kt-row-column-wrap > .wp-block-kadence-rowlayout.hbc-homepage-card-row,
.hbc-termine-page .kb-row-layout-wrap.hbc-homepage-card-row > .kt-row-column-wrap > .wp-block-kadence-rowlayout.hbc-homepage-card-row {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}

.hbc-layout--events .wp-block-kadence-rowlayout.hbc-homepage-card-row > .kt-row-layout-inner > .kt-row-column-wrap,
.hbc-termine-page .wp-block-kadence-rowlayout.hbc-homepage-card-row > .kt-row-layout-inner > .kt-row-column-wrap {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: var(--hbc-layout-inner-gap) !important;
  align-items: stretch;
  width: 100% !important;
}

.hbc-layout--events .hbc-homepage-card-row .wp-block-kadence-column,
.hbc-termine-page .hbc-homepage-card-row .wp-block-kadence-column {
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
}

/* Enforce the editorial contract for Kadence card rows after all family-specific
   rules: two saved card columns render as two desktop tracks, three as three.
   Mobile/tablet stays single-column. This avoids auto-fit leaving a collapsed
   third track on two-card rows and prevents the generated outer Kadence helper
   wrapper from acting as the visual grid. */
@media (min-width: 1024px) {
  .hbc-layout .kb-row-layout-wrap.hbc-homepage-card-row > .kt-row-column-wrap:has(> .wp-block-kadence-column:nth-child(2):last-child),
  .hbc-homepage-stack .kb-row-layout-wrap.hbc-homepage-card-row > .kt-row-column-wrap:has(> .wp-block-kadence-column:nth-child(2):last-child),
  .hbc-layout .wp-block-kadence-rowlayout.hbc-homepage-card-row > .kt-row-layout-inner > .kt-row-column-wrap:has(> .wp-block-kadence-column:nth-child(2):last-child),
  .hbc-homepage-stack .wp-block-kadence-rowlayout.hbc-homepage-card-row > .kt-row-layout-inner > .kt-row-column-wrap:has(> .wp-block-kadence-column:nth-child(2):last-child) {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .hbc-layout .kb-row-layout-wrap.hbc-homepage-card-row > .kt-row-column-wrap:has(> .wp-block-kadence-column:nth-child(3):last-child),
  .hbc-homepage-stack .kb-row-layout-wrap.hbc-homepage-card-row > .kt-row-column-wrap:has(> .wp-block-kadence-column:nth-child(3):last-child),
  .hbc-layout .wp-block-kadence-rowlayout.hbc-homepage-card-row > .kt-row-layout-inner > .kt-row-column-wrap:has(> .wp-block-kadence-column:nth-child(3):last-child),
  .hbc-homepage-stack .wp-block-kadence-rowlayout.hbc-homepage-card-row > .kt-row-layout-inner > .kt-row-column-wrap:has(> .wp-block-kadence-column:nth-child(3):last-child) {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 1023px) {
  .hbc-layout .kb-row-layout-wrap.hbc-homepage-card-row > .kt-row-column-wrap,
  .hbc-homepage-stack .kb-row-layout-wrap.hbc-homepage-card-row > .kt-row-column-wrap,
  .hbc-layout .wp-block-kadence-rowlayout.hbc-homepage-card-row > .kt-row-layout-inner > .kt-row-column-wrap,
  .hbc-homepage-stack .wp-block-kadence-rowlayout.hbc-homepage-card-row > .kt-row-layout-inner > .kt-row-column-wrap {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

/* Events are utility/list-first below the fold, but the hero itself must sit on
   the shared page/header rail. The previous compact island (960px wide, short
   image card) looked unlike Medien/Standorte and was rejected in QA. */
.heartbeat-page-shell .hbc-layout--events > .hbc-hero,
.heartbeat-page-shell .hbc-termine-page > .hbc-hero,
.heartbeat-page-shell .hbc-layout--events > .wp-block-group__inner-container > .hbc-hero,
.heartbeat-page-shell .hbc-termine-page > .wp-block-group__inner-container > .hbc-hero {
  width: min(100%, var(--hbc-layout-page-max)) !important;
  max-width: var(--hbc-layout-page-max) !important;
}

.heartbeat-page-shell .hbc-layout--events .hbc-hero__inner,
.heartbeat-page-shell .hbc-termine-page .hbc-hero__inner,
.hbc-layout--events .hbc-hero__inner,
.hbc-termine-page .hbc-hero__inner {
  min-height: clamp(26rem, 36vw, 32rem) !important;
  padding: clamp(1.6rem, 3.4vw, 2.85rem);
}

.heartbeat-page-shell .hbc-layout--events .hbc-hero__title,
.heartbeat-page-shell .hbc-termine-page .hbc-hero__title,
.hbc-layout--events .hbc-hero__title,
.hbc-termine-page .hbc-hero__title {
  max-width: 13.2ch !important;
  font-size: clamp(2.85rem, 4.9vw, 4.65rem) !important;
}

.heartbeat-page-shell .hbc-layout--events .hbc-hero__panel--image-only,
.heartbeat-page-shell .hbc-termine-page .hbc-hero__panel--image-only,
.hbc-layout--events .hbc-hero__panel--image-only,
.hbc-termine-page .hbc-hero__panel--image-only {
  min-height: 100% !important;
  align-self: stretch;
  padding: 0.875rem;
}

.heartbeat-page-shell .hbc-layout--events .hbc-hero__panel-image-wrap,
.heartbeat-page-shell .hbc-termine-page .hbc-hero__panel-image-wrap,
.hbc-layout--events .hbc-hero__panel-image-wrap,
.hbc-termine-page .hbc-hero__panel-image-wrap {
  min-height: clamp(22rem, 29vw, 28rem) !important;
}

@media (min-width: 900px) {
  .hbc-layout--events .wp-block-kadence-rowlayout.hbc-hero__inner > .kt-row-layout-inner > .kt-row-column-wrap,
  .hbc-termine-page .wp-block-kadence-rowlayout.hbc-hero__inner > .kt-row-layout-inner > .kt-row-column-wrap,
  .hbc-layout--events .wp-block-columns.hbc-hero__inner,
  .hbc-termine-page .wp-block-columns.hbc-hero__inner {
    grid-template-columns: minmax(0, 1.15fr) minmax(18.5rem, 0.85fr) !important;
  }
}

.hbc-layout--events .hbc-service-times,
.hbc-layout--events .hbc-elvanto-unavailable,
.hbc-layout--events .agenda-container,
.hbc-layout--events .services-container,
.hbc-layout--events .hbc-filter-buttons,
.hbc-layout--events .hbc-agenda-filter-empty,
.hbc-termine-page .hbc-service-times,
.hbc-termine-page .hbc-elvanto-unavailable,
.hbc-termine-page .agenda-container,
.hbc-termine-page .services-container,
.hbc-termine-page .hbc-filter-buttons,
.hbc-termine-page .hbc-agenda-filter-empty {
  width: min(100%, var(--hbc-layout-page-max));
  max-width: var(--hbc-layout-page-max) !important;
  margin-inline: auto;
}

.hbc-layout--events .hbc-filter-buttons,
.hbc-termine-page .hbc-filter-buttons {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 0.75rem !important;
  /* Keep filter controls on the same sibling rhythm as other HBC sections.
     The parent layout already supplies the page gap; extra margins made Termine
     read looser than Medien/standard pages. */
  margin-block: 0;
}

.hbc-layout--events .hbc-filter-btn,
.hbc-termine-page .hbc-filter-btn {
  min-height: 48px;
  padding: 0.9rem 1.35rem !important;
  border: 1px solid color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 24%, transparent) !important;
  border-radius: var(--hbc-radius-pill) !important;
  background: color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 82%, transparent) !important;
  color: var(--wp--preset--color--heartbeat-blue-deep) !important;
  font-size: 0.98rem;
  font-weight: 760;
  line-height: 1.1;
  box-shadow: none;
  cursor: pointer;
}

.hbc-layout--events .hbc-filter-btn.is-active,
.hbc-layout--events .hbc-filter-btn:hover,
.hbc-layout--events .hbc-filter-btn:focus-visible,
.hbc-termine-page .hbc-filter-btn.is-active,
.hbc-termine-page .hbc-filter-btn:hover,
.hbc-termine-page .hbc-filter-btn:focus-visible {
  background: var(--wp--preset--color--heartbeat-blue) !important;
  color: var(--wp--preset--color--heartbeat-surface) !important;
  outline: 3px solid color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 18%, transparent);
  outline-offset: 3px;
}

.hbc-layout--events .agenda-container,
.hbc-layout--events .services-container,
.hbc-termine-page .agenda-container,
.hbc-termine-page .services-container {
  display: grid;
  gap: 0.85rem;
  margin-block: 0 clamp(1.4rem, 3.5vw, 2.4rem);
}

.hbc-layout--events .agenda,
.hbc-layout--events .services,
.hbc-termine-page .agenda,
.hbc-termine-page .services {
  display: grid;
  grid-template-columns: minmax(6.2rem, 9rem) minmax(0, 1fr);
  gap: clamp(1rem, 2.4vw, 1.7rem);
  align-items: start;
  min-width: 0;
  padding: clamp(1rem, 2.6vw, 1.35rem);
  border: 1px solid var(--hbc-border);
  border-radius: clamp(20px, 2.4vw, 26px);
  background: linear-gradient(180deg, var(--wp--preset--color--heartbeat-surface), color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 78%, var(--wp--preset--color--heartbeat-bg)));
  color: var(--wp--preset--color--heartbeat-ink);
  box-shadow: 0 14px 34px color-mix(in srgb, var(--wp--preset--color--heartbeat-ink) 7%, transparent);
}

.hbc-layout--events .agenda[hidden],
.hbc-layout--events .services[hidden],
.hbc-layout--events .hbc-agenda-filter-empty[hidden],
.hbc-termine-page .agenda[hidden],
.hbc-termine-page .services[hidden],
.hbc-termine-page .hbc-agenda-filter-empty[hidden] {
  display: none !important;
}

.hbc-layout--events .agenda__when,
.hbc-layout--events .services__when,
.hbc-termine-page .agenda__when,
.hbc-termine-page .services__when {
  display: grid;
  gap: 0.18rem;
  align-content: start;
  min-height: 100%;
  padding: 0.72rem 0.78rem;
  border-radius: 18px;
  background: color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 10%, var(--wp--preset--color--heartbeat-surface));
  color: var(--wp--preset--color--heartbeat-blue-deep);
  text-align: center;
}

.hbc-layout--events .agenda__date,
.hbc-layout--events .services__date,
.hbc-termine-page .agenda__date,
.hbc-termine-page .services__date {
  color: var(--wp--preset--color--heartbeat-blue-deep);
  font-size: clamp(1.25rem, 2.4vw, 1.65rem);
  font-weight: 840;
  line-height: 0.96;
  letter-spacing: -0.04em;
}

.hbc-layout--events .agenda__time,
.hbc-layout--events .services__time,
.hbc-termine-page .agenda__time,
.hbc-termine-page .services__time {
  color: color-mix(in srgb, var(--wp--preset--color--heartbeat-blue-deep) 74%, var(--wp--preset--color--heartbeat-muted));
  font-size: 0.86rem;
  font-weight: 760;
  line-height: 1.1;
}

.hbc-layout--events .agenda__body,
.hbc-layout--events .services__body,
.hbc-termine-page .agenda__body,
.hbc-termine-page .services__body {
  display: grid;
  gap: 0.65rem;
  min-width: 0;
  justify-items: start;
}

.hbc-layout--events .agenda__description,
.hbc-layout--events .services__description,
.hbc-termine-page .agenda__description,
.hbc-termine-page .services__description {
  margin: 0;
  color: var(--wp--preset--color--heartbeat-ink);
  font-size: clamp(1.08rem, 2vw, 1.28rem);
  font-weight: 760;
  line-height: 1.16;
  letter-spacing: -0.025em;
}

.hbc-layout--events .agenda__meta,
.hbc-layout--events .services__meta,
.hbc-termine-page .agenda__meta,
.hbc-termine-page .services__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.55rem;
  width: 100%;
  color: var(--wp--preset--color--heartbeat-muted);
  font-size: 0.94rem;
  line-height: 1.35;
}

.hbc-layout--events .agenda__location,
.hbc-layout--events .services__location,
.hbc-termine-page .agenda__location,
.hbc-termine-page .services__location {
  display: inline-flex;
  align-items: center;
  gap: 0.42rem;
  min-width: 0;
}

.hbc-layout--events .agenda__meta-label,
.hbc-layout--events .services__meta-label,
.hbc-termine-page .agenda__meta-label,
.hbc-termine-page .services__meta-label {
  color: color-mix(in srgb, var(--wp--preset--color--heartbeat-muted) 78%, var(--wp--preset--color--heartbeat-ink));
  font-size: 0.78rem;
  font-weight: 820;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.hbc-layout--events .agenda__register,
.hbc-termine-page .agenda__register {
  justify-self: end;
  max-width: 100%;
  margin-block-start: 0.05rem;
  margin-inline-start: auto;
  text-align: right;
}

.hbc-layout--events .agenda__register a,
.hbc-termine-page .agenda__register a {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  max-width: 100%;
  min-height: 36px;
  padding: 0.52rem 0.8rem;
  border: 1px solid color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 26%, transparent);
  border-radius: var(--hbc-radius-pill);
  background: color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 9%, transparent);
  color: var(--wp--preset--color--heartbeat-blue-deep);
  font-size: 0.86rem;
  font-weight: 780;
  line-height: 1.12;
  text-decoration: none;
  white-space: normal;
  overflow-wrap: anywhere;
}

.hbc-layout--events .agenda__register .icon-label,
.hbc-termine-page .agenda__register .icon-label {
  margin: 0;
  color: currentColor;
  font-size: inherit;
}

.hbc-agenda-filter-empty,
.hbc-layout--events .agenda-container.is-loading,
.hbc-termine-page .agenda-container.is-loading {
  margin-block: 0 clamp(1.4rem, 3.5vw, 2.4rem);
  padding: clamp(1rem, 2.6vw, 1.35rem);
  border: 1px solid var(--hbc-border);
  border-radius: clamp(20px, 2.4vw, 26px);
  background: color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 88%, var(--wp--preset--color--heartbeat-bg));
  color: var(--wp--preset--color--heartbeat-muted);
  box-shadow: var(--hbc-shadow-soft);
}

.hbc-agenda-filter-empty {
  display: grid;
  gap: 0.25rem;
}

.hbc-agenda-filter-empty strong {
  color: var(--wp--preset--color--heartbeat-ink);
}

.hbc-layout--events .agenda-container.is-loading > *,
.hbc-termine-page .agenda-container.is-loading > * {
  opacity: 0.52;
}

@media (max-width: 899px) {
  .hbc-layout--events .hbc-section-intro > .wp-block-group__inner-container,
  .hbc-termine-page .hbc-section-intro > .wp-block-group__inner-container {
    grid-template-areas:
      "eyebrow"
      "title"
      "text";
    grid-template-columns: minmax(0, 1fr);
    gap: 0.72rem;
    align-items: start;
  }

  .hbc-layout--events .hbc-section-intro__title,
  .hbc-termine-page .hbc-section-intro__title {
    max-width: 13ch;
    font-size: clamp(2.25rem, 9vw, 3.05rem);
    line-height: 0.96;
  }

  .hbc-layout--events .wp-block-kadence-rowlayout.hbc-homepage-card-row > .kt-row-layout-inner > .kt-row-column-wrap,
  .hbc-termine-page .wp-block-kadence-rowlayout.hbc-homepage-card-row > .kt-row-layout-inner > .kt-row-column-wrap {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

@media (max-width: 640px) {
  .hbc-layout--events .hbc-filter-buttons,
  .hbc-termine-page .hbc-filter-buttons {
    display: flex !important;
    flex-wrap: wrap;
    gap: 0.55rem !important;
  }

  .hbc-layout--events .hbc-filter-buttons .wp-block-button,
  .hbc-termine-page .hbc-filter-buttons .wp-block-button {
    width: auto !important;
  }

  .hbc-layout--events .hbc-filter-btn,
  .hbc-termine-page .hbc-filter-btn {
    min-height: 42px;
    padding: 0.72rem 0.9rem !important;
    font-size: 0.9rem;
  }

  .hbc-layout--events .agenda,
  .hbc-layout--events .services,
  .hbc-termine-page .agenda,
  .hbc-termine-page .services {
    grid-template-columns: 1fr;
    gap: 0.85rem;
  }

  .hbc-layout--events .agenda__when,
  .hbc-layout--events .services__when,
  .hbc-termine-page .agenda__when,
  .hbc-termine-page .services__when {
    grid-template-columns: auto auto;
    justify-content: start;
    align-items: baseline;
    width: fit-content;
    min-height: 0;
    padding: 0.58rem 0.72rem;
    text-align: left;
  }

  .hbc-layout--events .agenda__date,
  .hbc-layout--events .services__date,
  .hbc-termine-page .agenda__date,
  .hbc-termine-page .services__date {
    font-size: 1.2rem;
  }

  .hbc-layout--events .agenda__meta,
  .hbc-layout--events .services__meta,
  .hbc-termine-page .agenda__meta,
  .hbc-termine-page .services__meta {
    display: grid;
    align-items: start;
    gap: 0.5rem;
  }
}

.hbc-layout--media,
.hbc-media-page {
  --hbc-layout-section-gap: clamp(3rem, 7vw, 5.3125rem);
  --hbc-layout-inner-gap: 32px;
  --hbc-layout-active-content-max: var(--hbc-layout-page-max);
  --hbc-layout-active-hero-max: var(--hbc-layout-page-max);
  --hbc-media-episode-rail-width: min(
    calc(100vw - var(--wp--style--root--padding-left) - var(--wp--style--root--padding-right)),
    var(--wp--style--global--wide-size)
  );
}

/* Media is a standard content page, not a compact special hero. Keep its hero
   shell in the same geometry family as Gottesdienst/Generationen/Kleingruppen;
   only the media modules below differ. */
.hbc-layout--media .hbc-hero__inner,
.hbc-media-page .hbc-hero__inner {
  min-height: clamp(26rem, 36vw, 32rem);
  padding: clamp(1.6rem, 3.4vw, 2.85rem);
}

.hbc-layout--media .hbc-hero__title,
.hbc-media-page .hbc-hero__title {
  max-width: 13.2ch;
  font-size: clamp(2.85rem, 4.9vw, 4.65rem);
  line-height: 0.95;
}

.hbc-layout--media .hbc-media-embed-card,
.hbc-layout--media .hbc-media-podcast,
.hbc-layout--media .hbc-news-slider,
.hbc-media-page .hbc-media-embed-card,
.hbc-media-page .hbc-media-podcast,
.hbc-media-page .hbc-news-slider {
  width: min(100%, var(--hbc-layout-content-max));
  max-width: var(--hbc-layout-content-max);
  margin-inline: auto;
}

/* HBCWB-053: media section intros should use the available page rail instead of
   inheriting the generic narrow editorial measure. This keeps the short labels
   and intro copy calm on desktop without changing the Gutenberg/Kadence content. */
.hbc-layout--media .hbc-section-intro__eyebrow,
.hbc-media-page .hbc-section-intro__eyebrow {
  max-width: none;
}

.hbc-layout--media .hbc-section-intro__text,
.hbc-media-page .hbc-section-intro__text {
  max-width: min(100%, var(--hbc-layout-narrow-max));
}

@media (min-width: 900px) {
  .hbc-layout--home .hbc-hero__inner {
    grid-template-columns: minmax(0, 1.15fr) minmax(18.5rem, 0.85fr);
  }

  .hbc-layout--home .wp-block-kadence-rowlayout.hbc-hero__inner > .kt-row-layout-inner > .kt-row-column-wrap {
    grid-template-columns: minmax(0, 1.15fr) minmax(18.5rem, 0.85fr);
  }

  .hbc-layout--default .hbc-hero__inner,
  .hbc-kleingruppen-page .hbc-hero__inner,
  .hbc-generation-page .hbc-hero__inner,
  .hbc-mission-page .hbc-hero__inner,
  .hbc-donate-page .hbc-hero__inner {
    grid-template-columns: minmax(0, 1.55fr) minmax(18.5rem, 0.88fr);
  }

  .hbc-layout--default .wp-block-kadence-rowlayout.hbc-hero__inner > .kt-row-layout-inner > .kt-row-column-wrap,
  .hbc-kleingruppen-page .wp-block-kadence-rowlayout.hbc-hero__inner > .kt-row-layout-inner > .kt-row-column-wrap,
  .hbc-generation-page .wp-block-kadence-rowlayout.hbc-hero__inner > .kt-row-layout-inner > .kt-row-column-wrap,
  .hbc-mission-page .wp-block-kadence-rowlayout.hbc-hero__inner > .kt-row-layout-inner > .kt-row-column-wrap,
  .hbc-donate-page .wp-block-kadence-rowlayout.hbc-hero__inner > .kt-row-layout-inner > .kt-row-column-wrap {
    grid-template-columns: minmax(0, 1.15fr) minmax(18.5rem, 0.85fr);
  }

  .hbc-layout--location .hbc-hero__inner {
    grid-template-columns: minmax(0, 1.1fr) minmax(18.5rem, 0.9fr);
  }

  .hbc-layout--location .wp-block-kadence-rowlayout.hbc-hero__inner > .kt-row-layout-inner > .kt-row-column-wrap {
    grid-template-columns: minmax(0, 1.1fr) minmax(18.5rem, 0.9fr);
  }

  .hbc-layout--events .hbc-hero__inner,
  .hbc-termine-page .hbc-hero__inner {
    grid-template-columns: minmax(0, 1.15fr) minmax(18.5rem, 0.85fr);
  }

  .hbc-layout--events .wp-block-kadence-rowlayout.hbc-hero__inner > .kt-row-layout-inner > .kt-row-column-wrap,
  .hbc-termine-page .wp-block-kadence-rowlayout.hbc-hero__inner > .kt-row-layout-inner > .kt-row-column-wrap {
    grid-template-columns: minmax(0, 1.15fr) minmax(18.5rem, 0.85fr);
  }

  .hbc-layout--events .hbc-hero__panel-image-wrap,
  .hbc-termine-page .hbc-hero__panel-image-wrap,
  .hbc-layout--location .hbc-hero__panel-image-wrap {
    min-height: clamp(22rem, 29vw, 28rem);
  }

  .hbc-layout--media .hbc-hero__inner,
  .hbc-media-page .hbc-hero__inner {
    grid-template-columns: minmax(0, 1.15fr) minmax(18.5rem, 0.85fr);
  }

  .hbc-layout--media .wp-block-kadence-rowlayout.hbc-hero__inner > .kt-row-layout-inner > .kt-row-column-wrap,
  .hbc-media-page .wp-block-kadence-rowlayout.hbc-hero__inner > .kt-row-layout-inner > .kt-row-column-wrap {
    grid-template-columns: minmax(0, 1.15fr) minmax(18.5rem, 0.85fr);
  }

  .hbc-layout--media .hbc-hero__panel-image-wrap,
  .hbc-media-page .hbc-hero__panel-image-wrap {
    min-height: clamp(22rem, 29vw, 28rem);
  }
}

.hbc-homepage-card.wp-block-group,
.hbc-media-embed-card.wp-block-group {
  height: 100%;
}

.hbc-homepage-card.wp-block-group > .wp-block-group__inner-container,
.hbc-media-embed-card.wp-block-group > .wp-block-group__inner-container {
  display: grid;
  gap: 1rem;
  height: 100%;
  padding: clamp(1.25rem, 3vw, 1.8rem);
  border: 1px solid var(--hbc-border);
  border-radius: var(--hbc-radius-card);
  background: linear-gradient(180deg, var(--wp--preset--color--heartbeat-surface), color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 74%, var(--wp--preset--color--heartbeat-bg)));
  box-shadow: var(--hbc-shadow-soft);
}

.hbc-homepage-card h3,
.hbc-media-embed-card h3 {
  margin-block: 0;
  font-size: clamp(1.3rem, 3vw, 1.75rem);
  line-height: 1.05;
}

.hbc-homepage-card p,
.hbc-media-embed-card p {
  margin-block: 0;
}

.hbc-elvanto-unavailable {
  display: grid;
  gap: 0.9rem;
  margin-block: clamp(1.25rem, 3vw, 2rem);
  padding: clamp(1.1rem, 3vw, 1.5rem);
  border: 1px solid var(--hbc-border);
  border-radius: var(--hbc-radius-card);
  background: color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 88%, var(--wp--preset--color--heartbeat-bg));
  color: var(--wp--preset--color--heartbeat-muted);
  box-shadow: var(--hbc-shadow-soft);
}

.hbc-elvanto-unavailable__title,
.hbc-elvanto-unavailable__text {
  margin: 0;
}

.hbc-elvanto-unavailable__title {
  color: var(--wp--preset--color--heartbeat-ink);
  font-size: clamp(1.2rem, 2vw, 1.45rem);
  line-height: 1.15;
}

.hbc-elvanto-unavailable__actions {
  margin-top: 0.15rem;
  gap: 0.75rem;
}

.hbc-homepage-card .wp-block-buttons,
.hbc-media-archive .wp-block-buttons,
.hbc-media-button-row {
  gap: 0.75rem;
}

.hbc-media-podcast-note {
  margin-block: 0;
  color: var(--wp--preset--color--heartbeat-muted);
  font-size: 0.98rem;
  line-height: 1.55;
}

/* Podlove / Podcast: keep plugin markup intact, but visually fold the list,
   filters, archive and episode pages into the Heartbeat card system. */
.hbc-layout--media .show-filter,
.hbc-layout--media .pod,
.hbc-layout--media .archive,
.hbc-media-podcast .show-filter,
.hbc-media-podcast .pod,
.hbc-media-podcast .archive {
  width: min(100%, var(--hbc-layout-content-max));
  max-width: var(--hbc-layout-content-max);
  margin-inline: auto;
}

.hbc-layout--media .show-filter,
.hbc-media-podcast .show-filter {
  display: flex !important;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 0.65rem !important;
  width: var(--hbc-media-episode-rail-width);
  max-width: none !important;
  margin-inline: calc((100% - var(--hbc-media-episode-rail-width)) / 2) !important;
  margin-block: clamp(0.35rem, 2vw, 0.75rem) clamp(0.2rem, 1vw, 0.55rem) !important;
  transform: translateY(clamp(1rem, 3.4vw, 3rem));
  position: relative;
  z-index: 1;
}

.hbc-layout--media .show-filter__btn,
.hbc-media-podcast .show-filter__btn {
  min-width: 7.5rem;
  min-height: 44px;
  padding: 0.68rem 1rem !important;
  border: 1px solid color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 20%, transparent) !important;
  border-radius: var(--hbc-radius-pill) !important;
  background: color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 88%, var(--wp--preset--color--heartbeat-bg)) !important;
  color: var(--wp--preset--color--heartbeat-blue-deep) !important;
  font: inherit;
  font-size: 0.92rem !important;
  font-weight: 720;
  line-height: 1.15;
  box-shadow: inset 0 1px 0 color-mix(in srgb, white 58%, transparent);
  transition: background-color 140ms ease, border-color 140ms ease, box-shadow 140ms ease, transform 140ms ease;
}

.hbc-layout--media .show-filter__btn:hover,
.hbc-layout--media .show-filter__btn:focus-visible,
.hbc-media-podcast .show-filter__btn:hover,
.hbc-media-podcast .show-filter__btn:focus-visible {
  background: color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 9%, var(--wp--preset--color--heartbeat-surface)) !important;
  border-color: color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 36%, transparent) !important;
  box-shadow: inset 0 1px 0 color-mix(in srgb, white 64%, transparent), 0 10px 24px color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 13%, transparent);
  transform: translateY(-1px);
}

.hbc-layout--media .show-filter__btn.is-active,
.hbc-media-podcast .show-filter__btn.is-active {
  border-color: transparent;
  background: var(--wp--preset--color--heartbeat-blue) !important;
  color: var(--wp--preset--color--heartbeat-surface) !important;
  box-shadow: 0 12px 24px color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 26%, transparent);
}

.hbc-layout--media .hbc-podcast-list,
.hbc-media-podcast .hbc-podcast-list {
  --hbc-podcast-list-width: min(
    calc(100vw - var(--wp--style--root--padding-left) - var(--wp--style--root--padding-right)),
    var(--wp--style--global--wide-size)
  );
  display: grid;
  gap: clamp(0.5rem, 1.5vw, 0.75rem);
  width: var(--hbc-podcast-list-width);
  max-width: none;
  margin-inline: calc((100% - var(--hbc-podcast-list-width)) / 2);
}

.hbc-layout--media .hbc-podcast-list > .pod,
.hbc-media-podcast .hbc-podcast-list > .pod {
  width: 100%;
  max-width: none;
}

.hbc-layout--media .pod,
.hbc-media-podcast .pod {
  --hbc-podcast-category-column: 8rem;
  display: grid !important;
  grid-template-columns: 38px 52px var(--hbc-podcast-category-column) minmax(4.6rem, auto) minmax(0, 1fr) auto;
  gap: 0.5rem clamp(0.58rem, 1.6vw, 0.9rem);
  align-items: center;
  margin-block: 0.42rem !important;
  padding: clamp(0.58rem, 1.6vw, 0.78rem) !important;
  border: 1px solid color-mix(in srgb, var(--wp--preset--color--heartbeat-ink) 10%, transparent);
  border-radius: 18px;
  background: linear-gradient(180deg, var(--wp--preset--color--heartbeat-surface), color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 78%, var(--wp--preset--color--heartbeat-bg))) !important;
  box-shadow: 0 8px 22px color-mix(in srgb, var(--wp--preset--color--heartbeat-ink) 5%, transparent);
}

.hbc-layout--media .pod.is-filter-hidden,
.hbc-layout--media .pod[hidden],
.hbc-media-podcast .pod.is-filter-hidden,
.hbc-media-podcast .pod[hidden] {
  display: none !important;
}

.hbc-layout--media .pod:nth-child(even),
.hbc-media-podcast .pod:nth-child(even) {
  background: linear-gradient(180deg, var(--wp--preset--color--heartbeat-surface), color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 78%, var(--wp--preset--color--heartbeat-bg))) !important;
}

.hbc-layout--media .pod__play,
.hbc-layout--media .pod__image,
.hbc-layout--media .pod__category,
.hbc-layout--media .pod__date,
.hbc-layout--media .pod__description,
.hbc-layout--media .pod__duration,
.hbc-media-podcast .pod__play,
.hbc-media-podcast .pod__image,
.hbc-media-podcast .pod__category,
.hbc-media-podcast .pod__date,
.hbc-media-podcast .pod__description,
.hbc-media-podcast .pod__duration {
  min-width: 0;
  margin: 0 !important;
  padding: 0 !important;
  align-self: center !important;
}

.hbc-layout--media .pod__image,
.hbc-media-podcast .pod__image {
  display: block;
  width: 52px;
  height: 52px;
  border-radius: 14px;
  overflow: hidden;
  background: color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 7%, var(--wp--preset--color--heartbeat-surface));
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--wp--preset--color--heartbeat-ink) 7%, transparent);
}

.hbc-layout--media .pod__image img,
.hbc-media-podcast .pod__image img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
}

.hbc-layout--media .pod__category,
.hbc-media-podcast .pod__category {
  min-width: 0 !important;
  width: var(--hbc-podcast-category-column, auto);
}

.hbc-layout--media .pod__category__label,
.hbc-layout--media .pod__category__label__archiv,
.hbc-media-podcast .pod__category__label,
.hbc-media-podcast .pod__category__label__archiv {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-height: 28px;
  margin: 0 !important;
  padding: 0.3rem 0.6rem !important;
  border: 1px solid color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 16%, transparent);
  border-radius: var(--hbc-radius-pill);
  background: color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 8%, var(--wp--preset--color--heartbeat-bg)) !important;
  color: var(--wp--preset--color--heartbeat-blue-deep) !important;
  font-size: 0.68rem;
  font-weight: 760;
  line-height: 1.1;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.hbc-layout--media .pod__date,
.hbc-layout--media .pod__duration,
.hbc-media-podcast .pod__date,
.hbc-media-podcast .pod__duration {
  color: color-mix(in srgb, var(--wp--preset--color--heartbeat-ink) 54%, var(--wp--preset--color--heartbeat-bg));
  font-size: 0.82rem;
  font-weight: 680;
  line-height: 1.25;
  white-space: nowrap;
}

.hbc-layout--media .pod__duration,
.hbc-media-podcast .pod__duration {
  justify-self: end;
  padding: 0.22rem 0.48rem !important;
  border-radius: var(--hbc-radius-pill);
  background: color-mix(in srgb, var(--wp--preset--color--heartbeat-ink) 5%, transparent);
}

.hbc-layout--media .pod__description,
.hbc-media-podcast .pod__description {
  font-weight: 500 !important;
  line-height: 1.32;
}

.hbc-layout--media .pod__description a,
.hbc-media-podcast .pod__description a {
  display: block;
  color: var(--wp--preset--color--heartbeat-muted) !important;
  text-decoration: none;
}

.hbc-layout--media .pod__description a:hover strong,
.hbc-layout--media .pod__description a:focus-visible strong,
.hbc-media-podcast .pod__description a:hover strong,
.hbc-media-podcast .pod__description a:focus-visible strong {
  color: var(--wp--preset--color--heartbeat-blue-deep);
}

.hbc-layout--media .pod__description strong,
.hbc-media-podcast .pod__description strong {
  display: block;
  margin-bottom: 0.08rem;
  color: var(--wp--preset--color--heartbeat-ink);
  font-size: clamp(0.96rem, 1.45vw, 1.08rem);
  font-weight: 780;
  line-height: 1.12;
  letter-spacing: -0.015em;
}

.hbc-layout--media .archive,
.hbc-media-podcast .archive {
  width: var(--hbc-media-episode-rail-width);
  max-width: none !important;
  margin-inline: calc((100% - var(--hbc-media-episode-rail-width)) / 2) !important;
  margin-top: clamp(1.2rem, 4vw, 2rem) !important;
  padding: clamp(1rem, 2.8vw, 1.35rem) !important;
  border: 1px solid color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 14%, transparent) !important;
  border-radius: var(--hbc-radius-card);
  background: color-mix(in srgb, var(--wp--preset--color--heartbeat-bg) 64%, var(--wp--preset--color--heartbeat-surface));
  box-shadow: var(--hbc-shadow-soft);
}

.hbc-layout--media .archive__heading,
.hbc-media-podcast .archive__heading {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  margin: 0 !important;
  color: var(--wp--preset--color--heartbeat-ink);
  font-size: clamp(1.18rem, 2.6vw, 1.5rem) !important;
  line-height: 1.15;
  cursor: pointer;
  user-select: none;
}

.hbc-layout--media .archive__heading::after,
.hbc-media-podcast .archive__heading::after {
  content: "ältere Folgen";
  color: var(--wp--preset--color--heartbeat-muted);
  font-size: 0.92rem;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
}

.hbc-layout--media .archive__list,
.hbc-media-podcast .archive__list {
  display: none !important;
  margin: 1rem 0 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.hbc-layout--media .archive__list.active,
.hbc-media-podcast .archive__list.active {
  display: grid !important;
  gap: 0.72rem;
  max-height: min(68vh, 42rem);
  overflow: auto;
  padding-right: 0.35rem !important;
  overscroll-behavior: contain;
}

.hbc-layout--media .archive__item,
.hbc-media-podcast .archive__item {
  width: 100%;
  max-width: none;
  margin-block: 0 !important;
}

.hbc-podcast-episode-hero {
  width: min(100%, var(--hbc-layout-active-hero-max, var(--hbc-layout-page-max)));
  max-width: var(--hbc-layout-page-max) !important;
  margin-inline: auto;
}

.hbc-podcast-episode-hero__inner {
  display: grid;
  gap: clamp(1.5rem, 3vw, 2.25rem);
  align-items: stretch;
  width: 100%;
  max-width: none !important;
  min-height: clamp(26rem, 36vw, 32rem);
  padding: clamp(1.75rem, 4vw, 3.25rem);
  border: 1px solid color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 16%, transparent);
  border-radius: var(--hbc-radius-hero);
  background:
    radial-gradient(circle at 12% 8%, color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 11%, transparent), transparent 34%),
    linear-gradient(135deg, var(--wp--preset--color--heartbeat-surface), color-mix(in srgb, var(--wp--preset--color--heartbeat-bg) 72%, var(--wp--preset--color--heartbeat-surface)));
  box-shadow: var(--hbc-shadow-soft);
}

.hbc-podcast-episode-hero__content {
  align-content: center;
  max-width: 50rem;
}

.hbc-podcast-episode-hero__eyebrow {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  min-height: 30px;
  padding: 0.35rem 0.7rem;
  border: 1px solid color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 18%, transparent);
  border-radius: var(--hbc-radius-pill);
  background: color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 8%, var(--wp--preset--color--heartbeat-surface));
  color: var(--wp--preset--color--heartbeat-blue-deep);
  font-size: 0.76rem;
  font-weight: 780;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.hbc-podcast-episode-hero__meta {
  gap: 0.55rem;
  margin-block-start: 0.1rem;
}

.hbc-podcast-episode-hero__date,
.hbc-podcast-episode-hero__format {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  margin: 0;
  padding: 0.34rem 0.72rem;
  border-radius: var(--hbc-radius-pill);
  background: color-mix(in srgb, var(--wp--preset--color--heartbeat-ink) 5%, transparent);
  color: color-mix(in srgb, var(--wp--preset--color--heartbeat-ink) 62%, var(--wp--preset--color--heartbeat-bg));
  font-size: 0.86rem;
  font-weight: 680;
  line-height: 1.2;
}

.hbc-podcast-episode-hero__intro {
  max-width: 39rem;
  color: var(--wp--preset--color--heartbeat-muted);
}

.hbc-podcast-episode-hero__actions {
  margin-block-start: 0.35rem;
}

.hbc-podcast-episode-artwork {
  display: grid;
  place-items: center;
  align-content: center;
  width: 100%;
  max-width: none !important;
  min-height: clamp(22rem, 29vw, 28rem);
  padding: clamp(1.25rem, 3vw, 2rem);
  border-color: color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 14%, transparent);
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 94%, white), color-mix(in srgb, var(--wp--preset--color--heartbeat-bg) 58%, var(--wp--preset--color--heartbeat-surface)));
  box-shadow: inset 0 1px 0 color-mix(in srgb, white 62%, transparent);
}

.hbc-podcast-episode-artwork__fallback {
  display: grid;
  place-items: center;
  width: clamp(9rem, 17vw, 13rem);
  aspect-ratio: 1;
  margin: 0;
  border: 1px solid color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 18%, transparent);
  border-radius: 28px;
  background:
    radial-gradient(circle at 34% 28%, color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 16%, transparent), transparent 38%),
    color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 78%, var(--wp--preset--color--heartbeat-bg));
  color: var(--wp--preset--color--heartbeat-blue-deep);
  font-size: 0.86rem;
  font-weight: 780;
  letter-spacing: 0.08em;
  line-height: 1.2;
  text-align: center;
  text-transform: uppercase;
}

.hbc-podcast-episode-artwork:has(.wp-block-post-featured-image img) .hbc-podcast-episode-artwork__fallback {
  display: none;
}

.hbc-podcast-episode-artwork .wp-block-post-featured-image {
  margin: 0;
}

.hbc-podcast-episode-content {
  display: grid;
  gap: clamp(1.1rem, 2.4vw, 1.75rem);
  width: min(100%, var(--hbc-layout-active-content-max, var(--hbc-layout-page-max)));
  max-width: var(--hbc-layout-page-max) !important;
  margin-inline: auto;
  padding: clamp(1.25rem, 3vw, 2rem) !important;
  border: 1px solid var(--hbc-border);
  border-radius: var(--hbc-radius-card);
  background: linear-gradient(180deg, var(--wp--preset--color--heartbeat-surface), color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 74%, var(--wp--preset--color--heartbeat-bg)));
  box-shadow: var(--hbc-shadow-soft);
}

.hbc-podcast-episode-content__body {
  width: 100%;
  max-width: none !important;
}

body.single-podcast .hbc-podcast-episode-content .wp-block-post-content,
body.podcast-template-default .hbc-podcast-episode-content .wp-block-post-content {
  margin-top: 0;
  padding: 0 !important;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

body.single-podcast .hbc-podcast-episode-content .hbc-podcast-episode-title,
body.podcast-template-default .hbc-podcast-episode-content .hbc-podcast-episode-title {
  width: 100%;
  max-width: none !important;
  margin: 0 !important;
}

@media (min-width: 900px) {
  .hbc-podcast-episode-hero__inner {
    grid-template-columns: minmax(0, 1.15fr) minmax(18.5rem, 0.85fr);
  }
}

body.single-podcast .heartbeat-single-shell,
body.podcast-template-default .heartbeat-single-shell {
  overflow-x: clip;
}

body.single-podcast .heartbeat-single-title,
body.podcast-template-default .heartbeat-single-title {
  width: min(100%, var(--hbc-layout-content-max));
  max-width: 16ch;
  margin-inline: auto;
  text-wrap: balance;
}

body.single-podcast .heartbeat-single-image,
body.podcast-template-default .heartbeat-single-image {
  width: clamp(220px, 24vw, 340px) !important;
  max-width: 340px !important;
  aspect-ratio: 1 / 1 !important;
  margin-inline: auto;
  padding: clamp(0.45rem, 1.4vw, 0.75rem);
  border: 1px solid color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 14%, transparent);
  border-radius: clamp(24px, 2.4vw, 32px);
  background: linear-gradient(180deg, var(--wp--preset--color--heartbeat-surface), color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 72%, var(--wp--preset--color--heartbeat-bg)));
  box-shadow: 0 14px 34px color-mix(in srgb, var(--wp--preset--color--heartbeat-ink) 9%, transparent);
}

body.single-podcast .heartbeat-single-image img,
body.podcast-template-default .heartbeat-single-image img {
  width: 100% !important;
  height: 100% !important;
  border-radius: calc(var(--hbc-radius-card) - 8px);
  object-fit: contain !important;
  background: color-mix(in srgb, var(--wp--preset--color--heartbeat-bg) 78%, var(--wp--preset--color--heartbeat-surface));
}

body.single-podcast .wp-block-post-content,
body.podcast-template-default .wp-block-post-content {
  display: grid;
  gap: clamp(1rem, 3vw, 1.5rem);
  width: 100%;
  max-width: none !important;
  margin-top: clamp(1.4rem, 4vw, 2.4rem);
  padding: clamp(1.25rem, 3vw, 2rem) !important;
  border: 1px solid var(--hbc-border);
  border-radius: var(--hbc-radius-card);
  background: linear-gradient(180deg, var(--wp--preset--color--heartbeat-surface), color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 74%, var(--wp--preset--color--heartbeat-bg)));
  box-shadow: var(--hbc-shadow-soft);
}

body.single-podcast .wp-block-post-content > *,
body.podcast-template-default .wp-block-post-content > * {
  margin-block: 0;
}

body.single-podcast .wp-block-post-content > .wp-block-spacer,
body.podcast-template-default .wp-block-post-content > .wp-block-spacer {
  height: clamp(0.75rem, 2.5vw, 1.25rem) !important;
}

body.single-podcast .wp-block-post-content h2,
body.podcast-template-default .wp-block-post-content h2 {
  font-size: clamp(1.35rem, 3vw, 1.85rem);
  line-height: 1.1;
  letter-spacing: -0.025em;
}

body.single-podcast .wp-block-post-content iframe,
body.podcast-template-default .wp-block-post-content iframe {
  max-width: 100%;
  border: 0;
  border-radius: 18px;
}

body.single-podcast .wp-block-post-content .wp-block-embed,
body.podcast-template-default .wp-block-post-content .wp-block-embed {
  padding: 0.55rem;
  border: 1px solid color-mix(in srgb, var(--wp--preset--color--heartbeat-ink) 9%, transparent);
  border-radius: 22px;
  background: color-mix(in srgb, var(--wp--preset--color--heartbeat-bg) 72%, var(--wp--preset--color--heartbeat-surface));
}

body.single-podcast .wp-block-post-content .wp-block-embed iframe,
body.podcast-template-default .wp-block-post-content .wp-block-embed iframe {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  height: auto;
}

.hbc-podcast-episode-hero .heartbeat-single-title {
  max-width: 15ch !important;
  margin-inline: 0;
}

body.single-podcast .hbc-podcast-episode-title,
body.podcast-template-default .hbc-podcast-episode-title {
  width: 100%;
  max-width: none !important;
  margin-inline: 0 !important;
}

@media (max-width: 781px) {
  .hbc-layout--media .show-filter,
  .hbc-media-podcast .show-filter {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr);
  }

  .hbc-layout--media .show-filter__btn,
  .hbc-media-podcast .show-filter__btn {
    width: 100%;
    justify-content: center;
    text-align: center;
  }

  .hbc-layout--media .pod,
  .hbc-media-podcast .pod {
    grid-template-columns: 44px 48px minmax(0, 1fr) auto;
    gap: 0.42rem 0.55rem;
    padding: 0.72rem !important;
    border-radius: 18px;
  }

  .hbc-layout--media .pod__play,
  .hbc-media-podcast .pod__play {
    grid-column: 1;
    grid-row: 1 / span 3;
    min-height: 44px;
    align-self: start !important;
  }

  .hbc-layout--media .pod__play a,
  .hbc-media-podcast .pod__play a,
  .hbc-layout--media .pod__play a button.button,
  .hbc-media-podcast .pod__play a button.button {
    width: 44px !important;
    min-width: 44px;
    height: 44px !important;
    min-height: 44px;
  }

  .hbc-layout--media .archive .button__archiv,
  .hbc-media-podcast .archive .button__archiv {
    width: 44px !important;
    min-width: 44px;
    height: 44px !important;
    min-height: 44px;
  }

  .hbc-layout--media .pod__image,
  .hbc-media-podcast .pod__image {
    grid-column: 2;
    grid-row: 1 / span 3;
    width: 48px;
    height: 48px;
    border-radius: 13px;
    align-self: start !important;
  }

  .hbc-layout--media .pod__category,
  .hbc-media-podcast .pod__category {
    grid-column: 3;
    grid-row: 1;
  }

  .hbc-layout--media .pod__duration,
  .hbc-media-podcast .pod__duration {
    grid-column: 4;
    grid-row: 1;
    align-self: start !important;
    font-size: 0.76rem;
  }

  .hbc-layout--media .pod__description,
  .hbc-media-podcast .pod__description {
    grid-column: 3 / -1;
    grid-row: 2;
    line-height: 1.2;
  }

  .hbc-layout--media .pod__description a,
  .hbc-media-podcast .pod__description a {
    font-size: 0.92rem;
    line-height: 1.2;
  }

  .hbc-layout--media .pod__description strong,
  .hbc-media-podcast .pod__description strong {
    font-size: 1rem;
    line-height: 1.08;
  }

  .hbc-layout--media .pod__date,
  .hbc-media-podcast .pod__date {
    grid-column: 3 / -1;
    grid-row: 3;
    font-size: 0.78rem;
  }

  .hbc-layout--media .pod__description strong,
  .hbc-media-podcast .pod__description strong {
    font-size: 1rem;
  }

  .hbc-layout--media .archive,
  .hbc-media-podcast .archive {
    padding: 0.9rem !important;
    border-radius: 22px;
  }

  .hbc-layout--media .archive__heading,
  .hbc-media-podcast .archive__heading {
    flex-wrap: wrap;
    gap: 0.65rem;
  }

  .hbc-layout--media .archive__heading::after,
  .hbc-media-podcast .archive__heading::after {
    flex-basis: 100%;
    padding-left: calc(44px + 0.65rem);
  }

  body.single-podcast .heartbeat-single-shell,
  body.podcast-template-default .heartbeat-single-shell {
    padding-top: 1.35rem;
    padding-bottom: 3rem;
  }

  body.single-podcast .heartbeat-single-title,
  body.podcast-template-default .heartbeat-single-title {
    max-width: 100%;
    font-size: clamp(1.55rem, 8.2vw, 2rem);
    line-height: 1.02;
  }

  body.single-podcast .heartbeat-single-image,
  body.podcast-template-default .heartbeat-single-image {
    width: clamp(140px, 44vw, 188px) !important;
    max-width: 188px !important;
    padding: 0.45rem;
    border-radius: 20px;
  }

  body.single-podcast .wp-block-post-content,
  body.podcast-template-default .wp-block-post-content {
    padding: 0.8rem !important;
    border-radius: 22px;
  }
}

/* Podlove episode list: replace the template's black CSS-triangle play buttons with Heartbeat-blue controls. */
.heartbeat-page-shell .pod__play,
.hbc-media-podcast .pod__play {
  display: flex !important;
  align-items: center !important;
  height: auto !important;
  min-height: 38px;
}

.heartbeat-page-shell .pod__play a,
.hbc-media-podcast .pod__play a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  text-decoration: none;
}

.heartbeat-page-shell .pod__play a button.button,
.heartbeat-page-shell .archive .button__archiv,
.hbc-media-podcast .pod__play a button.button,
.hbc-media-podcast .archive .button__archiv {
  position: relative;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 38px !important;
  min-width: 38px;
  height: 38px !important;
  min-height: 38px;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: var(--hbc-radius-pill);
  background: color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 11%, transparent) !important;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 20%, transparent);
  cursor: pointer;
  transition: background-color 140ms ease, box-shadow 140ms ease, transform 140ms ease;
  appearance: none;
}

.heartbeat-page-shell .archive .button__archiv,
.hbc-media-podcast .archive .button__archiv {
  margin-left: 0.25rem !important;
  vertical-align: middle;
}

.heartbeat-page-shell .archive__heading.is-open .button__archiv,
.hbc-media-podcast .archive__heading.is-open .button__archiv {
  transform: rotate(90deg);
}

.heartbeat-page-shell .pod__play a button.button::before,
.heartbeat-page-shell .archive .button__archiv::before,
.hbc-media-podcast .pod__play a button.button::before,
.hbc-media-podcast .archive .button__archiv::before {
  content: "";
  display: block;
  width: 0;
  height: 0;
  margin-left: 0.14rem;
  border-top: 8px solid transparent;
  border-bottom: 8px solid transparent;
  border-left: 12px solid var(--wp--preset--color--heartbeat-blue);
}

.heartbeat-page-shell .pod__play a:hover button.button,
.heartbeat-page-shell .pod__play a:focus-visible button.button,
.heartbeat-page-shell .archive .button__archiv:hover,
.heartbeat-page-shell .archive .button__archiv:focus-visible,
.hbc-media-podcast .pod__play a:hover button.button,
.hbc-media-podcast .pod__play a:focus-visible button.button,
.hbc-media-podcast .archive .button__archiv:hover,
.hbc-media-podcast .archive .button__archiv:focus-visible {
  background: color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 17%, transparent) !important;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 34%, transparent), 0 8px 20px rgba(94, 128, 236, 0.16);
  transform: translateY(-1px);
}

.heartbeat-page-shell .pod__play a:hover button.button::before,
.heartbeat-page-shell .pod__play a:focus-visible button.button::before,
.heartbeat-page-shell .archive .button__archiv:hover::before,
.heartbeat-page-shell .archive .button__archiv:focus-visible::before,
.hbc-media-podcast .pod__play a:hover button.button::before,
.hbc-media-podcast .pod__play a:focus-visible button.button::before,
.hbc-media-podcast .archive .button__archiv:hover::before,
.hbc-media-podcast .archive .button__archiv:focus-visible::before {
  border-left-color: var(--wp--preset--color--heartbeat-blue-deep);
}

.heartbeat-page-shell .pod__play a:focus-visible,
.hbc-media-podcast .pod__play a:focus-visible,
.heartbeat-page-shell .archive .button__archiv:focus-visible,
.hbc-media-podcast .archive .button__archiv:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 42%, transparent);
  outline-offset: 3px;
}

@media (max-width: 781px) {
  :root {
    --wp--style--root--padding-right: 1rem;
    --wp--style--root--padding-left: 1rem;
  }

  body {
    overflow-x: hidden;
  }

  /* HBCWB-059: mobile-only tightening for confirmed audit issues. Keep these
     selectors page/layout-scoped; heartbeat-theme.css is shared across the site. */
  .hbc-layout--location .hbc-hero__inner,
  .hbc-layout--location .wp-block-kadence-rowlayout.hbc-hero__inner > .kt-row-layout-inner > .kt-row-column-wrap {
    min-height: 0 !important;
    padding: clamp(1.2rem, 5vw, 1.6rem) !important;
  }

  .hbc-layout--location .hbc-hero__panel {
    padding: 0.65rem;
  }

  .hbc-layout--location .hbc-hero__panel-image-wrap {
    height: auto;
    min-height: clamp(13.5rem, 58vw, 16rem) !important;
    aspect-ratio: 4 / 3;
  }

  .hbc-layout--media .pod__play,
  .hbc-media-podcast .pod__play {
    min-height: 44px !important;
  }

  .hbc-layout--media .pod__play a,
  .hbc-media-podcast .pod__play a,
  .hbc-layout--media .pod__play a button.button,
  .hbc-media-podcast .pod__play a button.button,
  .hbc-layout--media .archive .button__archiv,
  .hbc-media-podcast .archive .button__archiv {
    width: 44px !important;
    min-width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;
  }

  .hbc-form-page .hbc-form-page__section {
    display: grid;
    gap: 1.15rem;
    width: min(100%, var(--hbc-layout-narrow-max)) !important;
    max-width: var(--hbc-layout-narrow-max) !important;
    margin-inline: auto !important;
    padding-block: clamp(1.4rem, 5vw, 2.2rem) !important;
  }

  .hbc-form-page .hbc-form-page__intro,
  .hbc-form-page .hbc-form-card__header,
  .is-style-hbc-form-intro {
    gap: 0.55rem;
  }

  .hbc-form-page .hbc-form-page__intro .hbc-section-intro__title,
  .hbc-form-page .hbc-form-card__header .hbc-section-intro__title,
  .hbc-form-page .is-style-hbc-form-intro .hbc-section-intro__title {
    font-size: clamp(2.25rem, 10vw, 3.25rem);
    line-height: 0.98;
  }

  .hbc-form-page .hbc-form-card,
  .hbc-form-page .is-style-hbc-form-card,
  .hbc-form-page .is-style-hbc-form-success {
    display: grid;
    gap: 0.78rem;
    padding: clamp(1rem, 4vw, 1.35rem) !important;
  }

  .hbc-form-page .hbc-form-card > *,
  .hbc-form-page .is-style-hbc-form-card > *,
  .hbc-form-page .is-style-hbc-form-success > *,
  .hbc-form-page .wpcf7 form > p {
    margin-block: 0;
  }

  .hbc-form-page .wpcf7 form {
    display: grid;
    gap: 0.72rem;
  }

  .hbc-form-page .wpcf7 label {
    display: grid;
    gap: 0.35rem;
    font-weight: 680;
  }

  .hbc-form-page .wpcf7 input:not([type="submit"]):not([type="checkbox"]),
  .hbc-form-page .wpcf7 select,
  .hbc-form-page .wpcf7 textarea,
  .is-style-hbc-form-card .wpcf7 input:not([type="submit"]):not([type="checkbox"]),
  .is-style-hbc-form-card .wpcf7 select,
  .is-style-hbc-form-card .wpcf7 textarea {
    width: 100%;
    min-height: 44px;
    padding: 0.68rem 0.82rem;
    border: 1px solid color-mix(in srgb, var(--wp--preset--color--heartbeat-ink) 14%, transparent);
    border-radius: 14px;
    background: var(--wp--preset--color--heartbeat-surface);
    color: var(--wp--preset--color--heartbeat-ink);
    font: inherit;
  }

  .hbc-form-page .wpcf7-list-item {
    margin-inline: 0;
  }

  .hbc-form-page .wpcf7-list-item label {
    grid-template-columns: 22px minmax(0, 1fr);
    align-items: start;
    gap: 0.62rem;
    font-weight: 500;
    line-height: 1.4;
  }

  .hbc-form-page .wpcf7 input[type="checkbox"] {
    width: 20px;
    height: 20px;
    margin-top: 0.15rem;
  }

  .hbc-form-page .wpcf7 input[type="submit"].wpcf7-submit,
  .is-style-hbc-form-card .wpcf7 input[type="submit"].wpcf7-submit {
    box-sizing: border-box;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 100%;
    min-height: var(--hbc-button-min-height);
    min-width: 0;
    padding: var(--hbc-button-padding-block) var(--hbc-button-padding-inline) !important;
    border: 0;
    border-radius: var(--hbc-radius-pill) !important;
    background: var(--wp--preset--color--heartbeat-blue) !important;
    color: var(--wp--preset--color--heartbeat-surface) !important;
    font: inherit;
    font-weight: 720;
    line-height: var(--hbc-button-line-height) !important;
    letter-spacing: -0.01em;
    text-align: center;
    text-decoration: none;
    text-wrap: balance;
    white-space: nowrap;
    cursor: pointer;
  }

  .heartbeat-site-header {
    padding-top: 0.85rem;
    padding-bottom: 0.7rem;
  }

  .heartbeat-site-header__inner {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    flex-wrap: nowrap !important;
    border-radius: 24px;
    gap: 0.5rem;
    padding: 0.78rem 0.9rem;
    /* Mobile Navigation overlay lives inside this header block. backdrop-filter creates
       a containing block for fixed descendants in Safari/Chrome, which turns the WP
       overlay into a small scroll box. Disable it on mobile so the drawer can attach
       to the viewport. */
    backdrop-filter: none;
  }

  .heartbeat-site-brand {
    min-width: 0;
  }

  .heartbeat-site-header__actions {
    display: contents !important;
  }

  .heartbeat-site-title,
  .heartbeat-site-title a {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .heartbeat-primary-nav {
    grid-column: 3;
    grid-row: 1;
    display: flex !important;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: auto;
    height: 44px;
    margin-left: 0;
  }

  .heartbeat-header-search-link {
    display: flex !important;
    align-items: center;
    justify-content: center;
    grid-column: 2;
    grid-row: 1;
    margin: 0;
  }

  .heartbeat-header-search-link .wp-block-buttons,
  .heartbeat-header-search-link .wp-block-button {
    margin: 0;
  }

  .heartbeat-header-search-link .wp-block-button__link {
    position: relative;
    width: 44px;
    min-width: 44px;
    min-height: 44px;
    padding: 0 !important;
    overflow: hidden;
    border-color: color-mix(in srgb, var(--wp--preset--color--heartbeat-ink) 13%, transparent) !important;
    background: color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 86%, transparent) !important;
    color: var(--wp--preset--color--heartbeat-blue-deep) !important;
    font-size: 0.8rem;
    line-height: 1;
    text-indent: -999rem;
    box-shadow: none !important;
  }

  .heartbeat-header-search-link .wp-block-button__link::before,
  .heartbeat-header-search-link .wp-block-button__link::after {
    content: "";
    position: absolute;
    display: block;
    text-indent: 0;
  }

  .heartbeat-header-search-link .wp-block-button__link::before {
    top: 12px;
    left: 12px;
    width: 13px;
    height: 13px;
    border: 2px solid currentColor;
    border-radius: 50%;
  }

  .heartbeat-header-search-link .wp-block-button__link::after {
    top: 27px;
    left: 27px;
    width: 9px;
    height: 2px;
    border-radius: 999px;
    background: currentColor;
    transform: rotate(45deg);
    transform-origin: left center;
  }

  .heartbeat-header-search {
    display: none !important;
    grid-column: 1 / -1;
    grid-row: 2;
    width: 100%;
    min-width: 0;
    margin-top: 0;
  }

  .heartbeat-header-search .wp-block-search__inside-wrapper {
    min-height: 44px;
    padding: 0.24rem;
  }

  .heartbeat-header-search .wp-block-search__input {
    padding-left: 0.72rem;
    font-size: 0.95rem;
  }

  .heartbeat-header-search .wp-block-search__button {
    min-height: 36px;
    padding-inline: 0.82rem;
  }

  .hbc-layout--media .kb-button,
  .hbc-layout--media .kt-button,
  .hbc-media-button-row .kb-button,
  .hbc-media-button-row .kt-button {
    width: 100% !important;
    min-width: 0;
    white-space: normal;
    overflow-wrap: normal;
    text-wrap: balance;
  }

  .heartbeat-primary-nav .wp-block-navigation__responsive-container-open {
    display: inline-flex;
  }

  .heartbeat-primary-nav .wp-block-navigation__responsive-container.is-menu-open {
    position: fixed;
    inset: 0;
    width: 100vw;
    max-width: none;
    height: 100vh;
    height: 100dvh;
    max-height: none;
    margin: 0;
    padding: max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(6.5rem, calc(env(safe-area-inset-bottom) + 6.5rem)) max(1rem, env(safe-area-inset-left));
    overflow-y: auto;
    overscroll-behavior: contain;
    background: linear-gradient(180deg, var(--wp--preset--color--heartbeat-surface), color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 82%, var(--wp--preset--color--heartbeat-bg))) !important;
    color: var(--wp--preset--color--heartbeat-ink) !important;
  }

  .heartbeat-primary-nav .wp-block-navigation__responsive-close {
    width: min(100%, 38rem);
    max-width: none;
    margin-inline: auto;
  }

  .heartbeat-primary-nav .wp-block-navigation__responsive-dialog {
    min-height: calc(100vh - 2rem);
    min-height: calc(100dvh - 2rem);
  }

  .heartbeat-primary-nav .wp-block-navigation__responsive-container-close {
    top: 0;
    right: 0;
  }

  .heartbeat-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
    align-items: stretch;
    gap: 0.4rem;
    width: 100%;
    padding-top: 4.4rem;
  }

  .heartbeat-site-header__actions:has(.wp-block-navigation__responsive-container.is-menu-open) .heartbeat-header-search-link {
    position: fixed;
    right: max(1rem, env(safe-area-inset-right));
    bottom: max(1.25rem, env(safe-area-inset-bottom));
    left: max(1rem, env(safe-area-inset-left));
    z-index: 100002;
  }

  .heartbeat-site-header__actions:has(.wp-block-navigation__responsive-container.is-menu-open) .heartbeat-header-search-link .wp-block-buttons,
  .heartbeat-site-header__actions:has(.wp-block-navigation__responsive-container.is-menu-open) .heartbeat-header-search-link .wp-block-button {
    width: 100%;
  }

  .heartbeat-site-header__actions:has(.wp-block-navigation__responsive-container.is-menu-open) .heartbeat-header-search-link .wp-block-button__link {
    width: 100%;
    min-width: 0;
    min-height: 54px;
    padding: 0.95rem 1.1rem !important;
    border-color: color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 26%, transparent) !important;
    background: color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 12%, var(--wp--preset--color--heartbeat-surface)) !important;
    color: var(--wp--preset--color--heartbeat-blue-deep) !important;
    font-size: 1rem;
    font-weight: 760;
    line-height: 1.1;
    text-indent: 0;
  }

  .heartbeat-site-header__actions:has(.wp-block-navigation__responsive-container.is-menu-open) .heartbeat-header-search-link .wp-block-button__link::before,
  .heartbeat-site-header__actions:has(.wp-block-navigation__responsive-container.is-menu-open) .heartbeat-header-search-link .wp-block-button__link::after {
    display: none;
  }

  .heartbeat-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
  .heartbeat-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-page-list {
    display: grid;
    width: 100%;
    gap: 0.15rem;
  }

  .heartbeat-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
    align-items: stretch;
    width: 100%;
  }

  .heartbeat-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content,
  .heartbeat-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    min-height: 48px;
    position: relative;
    padding: 0.82rem 0;
    border-bottom: 0;
    color: var(--wp--preset--color--heartbeat-ink) !important;
    font-size: clamp(1.15rem, 5.4vw, 1.55rem);
    font-weight: 720;
    line-height: 1.15;
  }

  .heartbeat-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 48%) minmax(10rem, 1fr);
    column-gap: clamp(0.65rem, 3vw, 1rem);
    align-items: start;
  }

  .heartbeat-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu > .wp-block-navigation-item__content {
    grid-column: 1;
    padding-right: 2.75rem;
  }

  .heartbeat-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu > .wp-block-navigation-submenu__toggle {
    position: absolute;
    top: 0;
    right: 52%;
    z-index: 2;
    justify-content: center;
    width: 2.5rem;
    min-width: 2.5rem;
    padding-inline: 0;
    border-bottom-color: transparent;
  }

  .heartbeat-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::after,
  .heartbeat-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-submenu > .wp-block-navigation-item__content::after,
  .heartbeat-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-page-list > .wp-block-navigation-item > .wp-block-navigation-item__content::after,
  .heartbeat-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-page-list > .wp-block-navigation-submenu > .wp-block-navigation-item__content::after {
    content: "";
    position: absolute;
    right: auto;
    bottom: 0;
    left: 0;
    width: min(64vw, 17.5rem);
    height: 1px;
    background: color-mix(in srgb, var(--wp--preset--color--heartbeat-ink) 10%, transparent);
    pointer-events: none;
  }

  .heartbeat-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu:has(> .wp-block-navigation-submenu__toggle[aria-expanded="true"]) > .wp-block-navigation-item__content::after {
    width: min(34vw, 8.5rem);
  }

  .heartbeat-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu > .wp-block-navigation__submenu-container {
    position: static !important;
    grid-column: 2;
    grid-row: 1 / span 2;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-auto-flow: row;
    align-self: start;
    visibility: hidden !important;
    width: 100%;
    min-width: 0 !important;
    max-height: 0;
    height: auto !important;
    opacity: 0 !important;
    overflow: hidden;
    padding: 0.1rem 0 0 !important;
    border: 0 !important;
    border-radius: 0;
    background: transparent !important;
    box-shadow: none !important;
    pointer-events: none;
    transform: translateX(-0.45rem) scale(0.98);
    transform-origin: left top;
    gap: 0.05rem;
    align-content: start;
    transition: opacity 180ms ease, transform 180ms ease, max-height 180ms ease, visibility 0s linear 180ms;
  }

  .heartbeat-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu > .wp-block-navigation__submenu-container::before {
    display: none;
  }

  .heartbeat-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu > .wp-block-navigation-submenu__toggle[aria-expanded="true"] + .wp-block-navigation__submenu-container {
    visibility: visible !important;
    max-height: 12rem;
    opacity: 1 !important;
    pointer-events: auto;
    transform: translateX(0) scale(1);
    transition-delay: 0s;
  }

  .heartbeat-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
    min-height: 42px;
    padding: 0.62rem 0;
    color: var(--wp--preset--color--heartbeat-muted) !important;
    font-size: clamp(0.9rem, 3.7vw, 1.05rem);
    font-weight: 640;
    line-height: 1.15;
    white-space: nowrap;
  }

  .heartbeat-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background: color-mix(in srgb, var(--wp--preset--color--heartbeat-ink) 12%, transparent);
    pointer-events: none;
  }

  .heartbeat-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon {
    width: 0.85rem;
    height: 0.85rem;
    margin-left: 0;
    transition: transform 180ms ease;
  }

  .heartbeat-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu > .wp-block-navigation-submenu__toggle[aria-expanded="true"] .wp-block-navigation__submenu-icon {
    transform: rotate(-90deg);
  }

  .heartbeat-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu {
    grid-template-columns: minmax(0, 1fr);
    row-gap: 0.15rem;
    padding-bottom: 0.65rem;
  }

  .heartbeat-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu > .wp-block-navigation-item__content {
    grid-column: 1;
    padding-right: 3rem;
  }

  .heartbeat-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu > .wp-block-navigation-submenu__toggle {
    right: 0;
  }

  .heartbeat-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu > .wp-block-navigation__submenu-container {
    grid-column: 1;
    grid-row: auto;
    visibility: visible !important;
    max-height: none;
    opacity: 1 !important;
    pointer-events: auto;
    transform: none;
    gap: 0.35rem;
    padding: 0.1rem 0 0 1rem !important;
    transition: none;
  }

  .heartbeat-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
    min-height: 44px;
    padding: 0.62rem 0.8rem;
    border-radius: 16px;
    background: color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 7%, transparent);
    color: var(--wp--preset--color--heartbeat-blue-deep) !important;
    white-space: normal;
  }

  .heartbeat-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content::after {
    display: none;
  }

  @media (prefers-reduced-motion: reduce) {
    .heartbeat-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu > .wp-block-navigation__submenu-container,
    .heartbeat-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon {
      transition: none;
    }
  }

  .heartbeat-page-shell {
    padding-bottom: 3rem;
  }

  .heartbeat-search-shell {
    padding-top: 1.35rem;
    padding-bottom: 3rem;
  }

  .heartbeat-search-hero {
    gap: 0.8rem;
    padding: 1.35rem 1.15rem;
    border-radius: 24px;
  }

  .heartbeat-search-title {
    max-width: 100%;
    font-size: clamp(2.05rem, 10vw, 2.7rem);
    line-height: 1;
    letter-spacing: -0.05em;
  }

  .heartbeat-search-intro {
    font-size: 1rem;
  }

  .heartbeat-error-shell {
    padding-top: 1.35rem;
    padding-bottom: 3rem;
  }

  .hbc-404-page > .hbc-layout--error.alignfull,
  .hbc-404-page .hbc-layout--error > .wp-block-group__inner-container,
  .hbc-404-page .hbc-hero,
  .hbc-404-page .hbc-hero > .wp-block-group__inner-container {
    width: 100% !important;
    max-width: none !important;
    min-width: 0;
  }

  .hbc-404-page .hbc-404-hero {
    grid-template-columns: minmax(0, 1fr) !important;
    min-height: 0;
    gap: 1.35rem;
    padding: 1.45rem 1rem;
    border-radius: 24px;
  }

  .hbc-404-page .hbc-404-hero__content,
  .hbc-404-page .hbc-404-card {
    width: 100%;
    max-width: 100% !important;
    min-width: 0;
  }

  .hbc-404-page .hbc-hero__title {
    width: 100%;
    max-width: 100% !important;
    font-size: clamp(2.25rem, 10.1vw, 2.65rem);
    line-height: 1.02;
    letter-spacing: -0.035em;
    overflow-wrap: normal;
    text-wrap: balance;
  }

  .hbc-404-page .hbc-hero__text,
  .hbc-404-page .hbc-404-search-note {
    font-size: 1rem;
    line-height: 1.55;
  }

  .hbc-404-page .hbc-hero__actions {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr);
    gap: 0.85rem !important;
    width: 100%;
  }

  .hbc-404-page .hbc-hero__actions .wp-block-button,
  .hbc-404-page .hbc-hero__actions .wp-block-button__link {
    width: 100%;
  }

  .hbc-404-page .hbc-hero__actions .wp-block-button__link {
    justify-content: center;
    min-height: var(--hbc-button-min-height);
    text-align: center;
    white-space: normal;
  }

  .hbc-404-page .hbc-404-card {
    padding: 1.15rem;
    border-radius: 22px;
  }

  .hbc-404-page .hbc-404-card .hbc-hero__panel-title {
    font-size: clamp(1.9rem, 8.6vw, 2.25rem);
    line-height: 1.03;
    letter-spacing: -0.04em;
  }

  .hbc-404-page .hbc-404-search .wp-block-search__inside-wrapper {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.65rem;
  }

  .heartbeat-search-form .wp-block-search__inside-wrapper {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    border-radius: 22px;
  }

  .heartbeat-search-form .wp-block-search__button {
    width: 100%;
  }

  .heartbeat-page-shell > .wp-block-post-content,
  .heartbeat-page-shell .hbc-layout,
  .heartbeat-page-shell .hbc-layout > .wp-block-group__inner-container,
  .heartbeat-page-shell .hbc-homepage-stack,
  .heartbeat-page-shell .hbc-homepage-stack > .wp-block-group__inner-container,
  .heartbeat-page-shell .hbc-media-page,
  .heartbeat-page-shell .hbc-media-page > .wp-block-group__inner-container,
  .heartbeat-page-shell .hbc-homepage-section,
  .heartbeat-page-shell .hbc-homepage-section > .wp-block-group__inner-container {
    width: 100% !important;
    max-width: none !important;
    min-width: 0;
  }

  .heartbeat-page-shell > .wp-block-post-content {
    margin-right: 0 !important;
    margin-left: 0 !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
  }

  .heartbeat-page-shell > .wp-block-post-content > .alignfull {
    margin-right: 0 !important;
    margin-left: 0 !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
  }

  .heartbeat-page-shell .hbc-layout,
  .heartbeat-page-shell .hbc-homepage-stack,
  .heartbeat-page-shell .hbc-media-page {
    display: grid;
    gap: var(--hbc-layout-section-gap);
  }

  .heartbeat-page-shell .hbc-layout--events,
  .heartbeat-page-shell .hbc-termine-page {
    gap: var(--hbc-layout-section-gap);
  }

  .heartbeat-page-shell .hbc-layout--home,
  .heartbeat-page-shell .hbc-layout--default,
  .heartbeat-page-shell .hbc-layout--location,
  .heartbeat-page-shell .hbc-layout--events,
  .heartbeat-page-shell .hbc-layout--media,
  .heartbeat-page-shell .hbc-kleingruppen-page,
  .heartbeat-page-shell .hbc-generation-page,
  .heartbeat-page-shell .hbc-mission-page,
  .heartbeat-page-shell .hbc-donate-page,
  .heartbeat-page-shell .hbc-termine-page,
  .heartbeat-page-shell .hbc-media-page {
    --hbc-layout-inner-gap: 16px;
  }

  .heartbeat-page-shell .hbc-hero__inner {
    min-height: 0;
    gap: 1.15rem;
    padding: 1.45rem 1.2rem;
    border-radius: 24px;
  }

  .heartbeat-page-shell .hbc-hero__content {
    gap: 0.9rem;
  }

  .heartbeat-page-shell .hbc-hero__eyebrow,
  .heartbeat-page-shell .hbc-section-intro__eyebrow {
    font-size: 0.76rem;
    line-height: 1.15;
    letter-spacing: 0.13em;
  }

  .heartbeat-page-shell .hbc-hero__title {
    max-width: 100%;
    font-size: clamp(1.95rem, 8.5vw, 2.4rem);
    line-height: 1.03;
    letter-spacing: -0.04em;
  }

  /* Mobile home hero must overrule the desktop home scale that intentionally
     uses !important above. Without this scoped override the long H1 and the
     full-width CTA group keep a 15ch/desktop intrinsic width and get clipped
     inside the 390px first screen. */
  .heartbeat-page-shell .hbc-layout--home .hbc-hero__inner {
    min-height: 0 !important;
  }

  .heartbeat-page-shell .hbc-layout--home .hbc-hero__content,
  .heartbeat-page-shell .hbc-layout--home .hbc-hero__actions {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0;
  }

  .heartbeat-page-shell .hbc-layout--home .hbc-hero__title {
    width: 100%;
    max-width: 100% !important;
    font-size: clamp(2rem, 8.1vw, 2.35rem) !important;
    line-height: 1.02;
    letter-spacing: -0.04em;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
  }

  .heartbeat-page-shell .hbc-layout--home .hbc-hero__actions .hbc-button {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0;
  }

  .heartbeat-page-shell .hbc-hero__text,
  .heartbeat-page-shell .hbc-section-intro__text {
    font-size: clamp(1.02rem, 4.7vw, 1.18rem);
    line-height: 1.55;
  }

  .heartbeat-page-shell .hbc-hero__actions,
  .heartbeat-page-shell .hbc-action-group,
  .heartbeat-page-shell .hbc-action-group__inner,
  .heartbeat-page-shell .wp-block-buttons,
  .heartbeat-page-shell .kb-buttons-wrap {
    width: 100%;
  }

  .heartbeat-page-shell .hbc-hero__actions,
  .heartbeat-page-shell .hbc-action-group__inner,
  .heartbeat-page-shell .wp-block-buttons,
  .heartbeat-page-shell .kb-buttons-wrap {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr);
    gap: 0.85rem !important;
  }

  .heartbeat-page-shell .hbc-hero__actions .hbc-button,
  .heartbeat-page-shell .hbc-action-group .hbc-button,
  .heartbeat-page-shell .wp-block-button,
  .heartbeat-page-shell .wp-block-button__link,
  .heartbeat-page-shell .kt-button,
  .heartbeat-page-shell .kb-button {
    width: 100%;
  }

  .heartbeat-page-shell .hbc-hero__actions .hbc-button,
  .heartbeat-page-shell .hbc-action-group .hbc-button,
  .heartbeat-page-shell .wp-block-button__link,
  .heartbeat-page-shell .kt-button,
  .heartbeat-page-shell .kb-button {
    justify-content: center;
    min-height: var(--hbc-button-min-height);
    padding: var(--hbc-button-padding-block) var(--hbc-button-padding-inline) !important;
    line-height: var(--hbc-button-line-height) !important;
    text-align: center;
    white-space: normal;
  }

  .heartbeat-page-shell .hbc-hero__panel--image-only {
    padding: 0.65rem;
    border-radius: var(--hbc-radius-panel);
  }

  .heartbeat-page-shell .hbc-hero__panel--image-only .hbc-hero__panel-image-wrap {
    width: 100%;
    height: auto;
    min-height: 0;
    aspect-ratio: 4 / 3;
    max-height: 21rem;
    border-radius: calc(var(--hbc-radius-panel) - 2px);
  }

  .heartbeat-page-shell .hbc-homepage-section {
    padding-block: 1.8rem;
  }

  .heartbeat-page-shell .hbc-homepage-section + .hbc-homepage-section {
    padding-top: 1rem;
  }

  .heartbeat-page-shell .hbc-homepage-card-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 1rem !important;
  }

  .heartbeat-page-shell .hbc-homepage-card-row > .wp-block-column {
    flex-basis: 100% !important;
    min-width: 0;
  }

  .heartbeat-page-shell .hbc-section-intro {
    max-width: 100%;
    gap: 0.65rem;
  }

  .heartbeat-page-shell .hbc-section-intro__title {
    font-size: clamp(2rem, 10vw, 2.65rem);
    line-height: 0.98;
    letter-spacing: -0.055em;
  }

  .heartbeat-page-shell .hbc-homepage-card > .wp-block-group__inner-container {
    padding: 1.15rem;
  }

  .heartbeat-page-shell .hbc-media-embed-card > .wp-block-group__inner-container {
    gap: 0.85rem;
    padding: 0.65rem;
  }

  .heartbeat-page-shell .wp-block-embed,
  .heartbeat-page-shell .wp-block-embed__wrapper,
  .heartbeat-page-shell iframe {
    max-width: 100%;
  }

  .heartbeat-page-shell .wp-block-embed iframe {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    height: auto;
    min-height: 0;
    border-radius: 18px;
  }

  .heartbeat-page-shell .wp-element-caption {
    margin-top: 0.65rem;
    color: var(--wp--preset--color--heartbeat-muted);
    font-size: 0.92rem;
    text-align: center;
  }

  .heartbeat-page-shell .hbc-media-fallback-link {
    font-size: 0.88rem;
    line-height: 1.35;
    text-align: center;
  }


  .heartbeat-site-footer__inner {
    display: grid !important;
    justify-content: stretch !important;
    gap: 1.35rem;
  }

  .heartbeat-footer-nav {
    justify-content: flex-start !important;
  }

  .heartbeat-footer-nav .wp-block-navigation__container {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.65rem;
    width: 100%;
  }

  .heartbeat-footer-nav .wp-block-navigation-item {
    width: 100%;
  }

  .heartbeat-footer-nav .wp-block-navigation-item__content {
    display: flex;
    align-items: center;
    min-height: 44px;
    padding: 0.7rem 0.8rem;
    border: 1px solid color-mix(in srgb, white 14%, transparent);
    border-radius: 16px;
    background: color-mix(in srgb, white 6%, transparent);
    line-height: 1.15;
  }
}

/* Homepage identity / beliefs section moved out of saved page content so search excerpts never expose raw CSS. */
.hbc-beliefs-section { margin-top: 0; }
.hbc-beliefs { --belief-blue: var(--hbc-accent, #2f6fed); --belief-blue-strong: var(--hbc-accent-strong, #174ea6); --belief-soft: color-mix(in srgb, var(--belief-blue) 10%, var(--hbc-surface, #fff)); display: grid; gap: clamp(1.15rem, 2.4vw, 1.85rem); }
.hbc-beliefs .hbc-section-intro { margin-bottom: 0; }
.beliefs-title { margin: 0; }
.hbc-beliefs-vision { position: relative; display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(1.25rem, 3vw, 2.4rem); align-items: center; padding: clamp(1.6rem, 4.4vw, 3.5rem); border: 1px solid color-mix(in srgb, var(--belief-blue) 22%, transparent); border-radius: var(--hbc-radius-hero, 32px); background: radial-gradient(circle at 88% 15%, color-mix(in srgb, var(--belief-blue) 18%, transparent), transparent 34%), linear-gradient(145deg, color-mix(in srgb, var(--hbc-surface, #fff) 92%, white), var(--belief-soft)); box-shadow: var(--hbc-shadow-soft, 0 24px 70px rgba(20,40,80,.12)); overflow: hidden; transform-origin: center; }
.hbc-beliefs-vision::after { content: ""; position: absolute; right: clamp(1rem, 4vw, 3rem); bottom: clamp(1rem, 4vw, 2.6rem); width: clamp(7rem, 16vw, 13rem); height: clamp(7rem, 16vw, 13rem); border: 1px dashed color-mix(in srgb, var(--belief-blue-strong) 34%, transparent); border-radius: 999px; opacity: .55; pointer-events: none; }
.hbc-beliefs-vision__label, .hbc-beliefs-kicker { display: inline-flex; align-items: center; width: max-content; margin: 0 0 .85rem; padding: .42rem .72rem; border-radius: var(--hbc-radius-pill, 999px); background: color-mix(in srgb, var(--belief-blue) 11%, white); color: var(--belief-blue-strong); font-size: .74rem; font-weight: 900; letter-spacing: .14em; line-height: 1.1; text-transform: uppercase; }
.hbc-beliefs-vision h3 { position: relative; z-index: 1; margin: 0; max-width: 8.8em; color: var(--hbc-text-strong, #102033); font-size: clamp(2.6rem, 6vw, 5.7rem); line-height: .9; letter-spacing: -.075em; }
.hbc-beliefs-vision__copy { position: relative; z-index: 1; max-width: 760px; }
.hbc-beliefs-vision__copy p { margin: 0 0 1rem; color: var(--hbc-text, #344054); font-size: clamp(1.05rem, 1.35vw, 1.22rem); line-height: 1.65; }
.hbc-beliefs-vision__pill { display: inline-flex; align-items: center; gap: .25em; min-height: 42px; padding: .72rem 1rem; border-radius: var(--hbc-radius-pill, 999px); background: var(--hbc-surface, #fff); color: var(--belief-blue-strong); font-weight: 850; box-shadow: 0 12px 28px rgba(20,40,80,.08); }
.hbc-beliefs-mission { position: relative; display: grid; grid-template-columns: minmax(230px, .32fr) minmax(0, .68fr); gap: clamp(1rem, 2.5vw, 1.55rem); align-items: stretch; padding: clamp(1.2rem, 3vw, 2rem); border: 1px solid color-mix(in srgb, var(--belief-blue) 18%, transparent); border-radius: var(--hbc-radius-card, 24px); background: linear-gradient(135deg, color-mix(in srgb, var(--belief-blue) 11%, var(--hbc-surface, #fff)), color-mix(in srgb, var(--hbc-surface, #fff) 94%, white)); box-shadow: var(--hbc-shadow-soft, 0 24px 70px rgba(20,40,80,.12)); overflow: hidden; }

.hbc-beliefs-mission__intro { position: relative; z-index: 1; display: flex; flex-direction: column; justify-content: flex-start; min-height: 100%; padding-block-start: clamp(.25rem, .8vw, .55rem); padding-block-end: clamp(1.6rem, 4vw, 3rem); padding-inline: clamp(.3rem, 1vw, .8rem); }
.hbc-beliefs-mission__intro h3 { margin: 0 0 .75rem; color: var(--hbc-text-strong, #102033); font-size: clamp(1.9rem, 3.4vw, 3.15rem); line-height: .96; letter-spacing: -.065em; }
.hbc-beliefs-mission__intro p { margin: 0; color: var(--hbc-text, #344054); line-height: 1.6; }
.hbc-beliefs-steps { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 1fr; align-items: stretch; gap: clamp(.85rem, 1.6vw, 1.1rem); }
.hbc-beliefs-steps > .belief-card { margin-block-start: 0 !important; height: 100%; }
.belief-card { position: relative; display: grid; align-content: start; min-height: 190px; padding: clamp(1.12rem, 2vw, 1.55rem); border: 1px solid color-mix(in srgb, var(--belief-blue) 16%, var(--hbc-border, rgba(20,40,80,.12))); border-radius: var(--hbc-radius-card, 24px); background: color-mix(in srgb, var(--hbc-surface, #fff) 95%, white); box-shadow: 0 15px 38px rgba(20,40,80,.07); overflow: hidden; }
.belief-card::before { content: attr(data-step); display: grid; place-items: center; width: 46px; height: 46px; margin-bottom: 1.05rem; border-radius: 999px; background: var(--belief-blue); color: #fff; font-weight: 950; letter-spacing: -.03em; }
.belief-card--01::before { content: "01"; }
.belief-card--02::before { content: "02"; }
.belief-card--03::before { content: "03"; }
.belief-card--04::before { content: "04"; }
.belief-card--05::before { content: "05"; }
.belief-card--06::before { content: "06"; }
.belief-card--07::before { content: "07"; }
.belief-card--08::before { content: "08"; }
.belief-card--09::before { content: "09"; }
.belief-card--10::before { content: "10"; }
.belief-card--11::before { content: "11"; }
.belief-card--12::before { content: "12"; }
.belief-card--13::before { content: "13"; }
.belief-card--14::before { content: "14"; }
.belief-card--15::before { content: "15"; }
.belief-card::after { content: ""; position: absolute; width: 7.5rem; height: 7.5rem; right: -3.6rem; bottom: -3.8rem; border-radius: 999px; background: color-mix(in srgb, var(--belief-blue) 9%, transparent); }
.belief-card h3 { position: relative; z-index: 1; margin: 0; color: var(--hbc-text-strong, #102033); font-size: clamp(1.16rem, 1.55vw, 1.42rem); line-height: 1.06; letter-spacing: -.04em; }
.belief-card p { position: relative; z-index: 1; margin: .75rem 0 0; color: var(--hbc-text, #344054); font-size: .97rem; line-height: 1.55; }
.hbc-beliefs-values { display: grid; grid-template-columns: minmax(240px, .36fr) minmax(0, .64fr); gap: clamp(1rem, 2.5vw, 2rem); padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid var(--hbc-border, rgba(20,40,80,.12)); border-radius: var(--hbc-radius-card, 24px); background: color-mix(in srgb, var(--hbc-surface, #fff) 92%, white); box-shadow: var(--hbc-shadow-soft, 0 24px 70px rgba(20,40,80,.12)); }
.hbc-beliefs-values h3 { margin: 0 0 .7rem; color: var(--hbc-text-strong, #102033); font-size: clamp(1.8rem, 3.2vw, 3.05rem); line-height: .98; letter-spacing: -.06em; }
.hbc-beliefs-values p { margin: 0; color: var(--hbc-text, #344054); line-height: 1.6; }
.hbc-beliefs-values__chips { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: 1rem; }
.hbc-beliefs-values__chips span { display: inline-flex; padding: .42rem .68rem; border-radius: var(--hbc-radius-pill, 999px); background: color-mix(in srgb, var(--belief-blue) 9%, white); color: var(--belief-blue-strong); font-size: .78rem; font-weight: 850; }
.hbc-beliefs-accordion { display: grid; gap: .68rem; }
.accordion-item { border: 1px solid color-mix(in srgb, var(--hbc-text-strong, #102033) 10%, transparent); border-radius: 19px; background: #fff; overflow: hidden; }
.accordion-button,
.hbc-beliefs-accordion .accordion-item summary { appearance: none; display: grid; grid-template-columns: 1fr auto; align-items: center; width: 100%; gap: 1rem; padding: 1rem 1.15rem; border: 0; background: transparent; color: var(--hbc-text-strong, #102033); cursor: pointer; font: inherit; font-weight: 880; text-align: left; }
.hbc-beliefs-accordion .accordion-item summary::-webkit-details-marker { display: none; }
.hbc-beliefs-accordion .accordion-item summary::after { content: "+"; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 999px; background: color-mix(in srgb, var(--belief-blue) 10%, white); color: var(--belief-blue-strong); font-weight: 900; transition: transform .25s ease; }
.hbc-beliefs-accordion .accordion-item[open] summary::after { transform: rotate(45deg); }
.accordion-icon { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 999px; background: color-mix(in srgb, var(--belief-blue) 10%, white); color: var(--belief-blue-strong); font-weight: 900; transition: transform .25s ease; }
.accordion-item.open .accordion-icon { transform: rotate(45deg); }
.accordion-item:not(.open) .accordion-content,
.accordion-content[hidden] { display: none !important; }
.accordion-content,
.hbc-beliefs-accordion .accordion-item > p { padding: 0 1.15rem 1.08rem; color: var(--hbc-text, #344054); line-height: 1.6; }
.accordion-content p,
.hbc-beliefs-accordion .accordion-item > p { margin: 0; }
@media (max-width: 1020px) { .hbc-beliefs-vision, .hbc-beliefs-mission, .hbc-beliefs-values { grid-template-columns: 1fr; } .hbc-beliefs-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } .hbc-beliefs-vision::after { opacity: .32; } }
@media (max-width: 640px) { .hbc-beliefs-steps { grid-template-columns: 1fr; } .belief-card { min-height: auto; } .hbc-beliefs .hbc-section-intro__text, .hbc-beliefs-vision__copy p, .hbc-beliefs-mission__intro p, .belief-card p, .hbc-beliefs-values p, .accordion-content { color: #28384a; font-size: 1rem; line-height: 1.68; } .beliefs-title { font-size: clamp(2.35rem, 11vw, 3.15rem); line-height: 1.02; letter-spacing: -.055em; } .hbc-beliefs-vision h3 { font-size: clamp(2.25rem, 11vw, 3.25rem); line-height: .98; letter-spacing: -.055em; } .hbc-beliefs-mission__intro h3, .hbc-beliefs-values h3 { font-size: clamp(1.85rem, 8vw, 2.45rem); line-height: 1.03; letter-spacing: -.045em; } .accordion-button { padding: .95rem 1rem; color: #142033; font-weight: 900; } .accordion-content { padding-left: 1rem; padding-right: 1rem; } }

/* Home design polishing: use the completed layout/component system; only tune
   hierarchy, rhythm and surfaces for the approved Startseite visitor journey. */
.heartbeat-page-shell .hbc-layout--home .hbc-action-group {
  display: grid;
  gap: clamp(1rem, 2.5vw, 1.4rem);
  padding: clamp(1.55rem, 4vw, 2.65rem) !important;
  border: 1px solid color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 16%, var(--hbc-border));
  border-radius: var(--hbc-radius-hero);
  background:
    radial-gradient(circle at 92% 12%, color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 10%, transparent), transparent 30%),
    linear-gradient(180deg, var(--wp--preset--color--heartbeat-surface), color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 78%, var(--wp--preset--color--heartbeat-bg)));
  box-shadow: var(--hbc-shadow-soft);
}

.heartbeat-page-shell .hbc-layout--home .hbc-action-group .hbc-section-intro__text {
  max-width: 48rem;
}

.heartbeat-page-shell .hbc-layout--home .hbc-homepage-final-cta.is-style-hbc-landing-final-cta {
  margin-block-start: 0.2rem;
}

.heartbeat-page-shell .hbc-layout--home .hbc-beliefs {
  gap: clamp(1rem, 2vw, 1.5rem);
}

.heartbeat-page-shell .hbc-layout--home .hbc-beliefs-vision {
  padding: clamp(1.35rem, 3.4vw, 2.7rem);
  border-color: color-mix(in srgb, var(--belief-blue) 16%, transparent);
  background:
    radial-gradient(circle at 88% 15%, color-mix(in srgb, var(--belief-blue) 10%, transparent), transparent 30%),
    linear-gradient(145deg, color-mix(in srgb, var(--hbc-surface, #fff) 95%, white), color-mix(in srgb, var(--belief-blue) 7%, var(--hbc-surface, #fff)));
}

.heartbeat-page-shell .hbc-layout--home .hbc-beliefs-vision::after {
  opacity: 0.28;
}

.heartbeat-page-shell .hbc-layout--home .hbc-beliefs-vision h3 {
  font-size: clamp(2.3rem, 4.6vw, 4.45rem);
  line-height: 0.94;
}

.heartbeat-page-shell .hbc-layout--home .hbc-beliefs-vision__copy p,
.heartbeat-page-shell .hbc-layout--home .hbc-beliefs-mission__intro p,
.heartbeat-page-shell .hbc-layout--home .belief-card p,
.heartbeat-page-shell .hbc-layout--home .hbc-beliefs-values p,
.heartbeat-page-shell .hbc-layout--home .accordion-content,
.heartbeat-page-shell .hbc-layout--home .hbc-beliefs-accordion .accordion-item > p {
  line-height: 1.56;
}

.heartbeat-page-shell .hbc-layout--home .hbc-beliefs-mission,
.heartbeat-page-shell .hbc-layout--home .hbc-beliefs-values {
  padding: clamp(1.05rem, 2.4vw, 1.7rem);
  box-shadow: 0 18px 46px rgba(20, 40, 80, 0.08);
}

.heartbeat-page-shell .hbc-layout--home .hbc-beliefs-mission__intro h3,
.heartbeat-page-shell .hbc-layout--home .hbc-beliefs-values h3 {
  font-size: clamp(1.75rem, 2.9vw, 2.75rem);
}

.heartbeat-page-shell .hbc-layout--home .belief-card {
  min-height: 170px;
  padding: clamp(1rem, 1.8vw, 1.35rem);
  box-shadow: 0 10px 28px rgba(20, 40, 80, 0.055);
}

.heartbeat-page-shell .hbc-layout--home .belief-card::before {
  width: 40px;
  height: 40px;
  margin-bottom: 0.82rem;
}

.heartbeat-page-shell .hbc-layout--home .accordion-button,
.heartbeat-page-shell .hbc-layout--home .hbc-beliefs-accordion .accordion-item summary {
  padding: 0.86rem 1rem;
}

@media (max-width: 899px) {
  .heartbeat-page-shell .hbc-layout--home .hbc-hero__title {
    font-size: clamp(2.75rem, 7vw, 3.35rem) !important;
    line-height: 0.98;
  }

  .heartbeat-page-shell .hbc-layout--home .hbc-section-intro__title,
  .heartbeat-page-shell .hbc-layout--home .hbc-location-grid__title,
  .heartbeat-page-shell .hbc-layout--home .hbc-visit-steps__title {
    font-size: clamp(2.15rem, 6.2vw, 2.85rem);
    line-height: 1;
  }
}

@media (max-width: 640px) {
  .heartbeat-page-shell .hbc-layout--home .hbc-hero__content {
    width: 100%;
    max-width: 100% !important;
  }

  .heartbeat-page-shell .hbc-layout--home .hbc-hero__title {
    max-width: 100% !important;
    font-size: clamp(2rem, 8.6vw, 2.25rem) !important;
    line-height: 1.02;
    letter-spacing: -0.045em;
    overflow-wrap: normal !important;
  }

  .heartbeat-page-shell .hbc-layout--home .hbc-hero__actions.is-style-hbc-hero-primary-actions,
  .heartbeat-page-shell .hbc-layout--home .hbc-hero__actions.is-style-hbc-hero-primary-actions .wp-block-button,
  .heartbeat-page-shell .hbc-layout--home .hbc-hero__actions.is-style-hbc-hero-primary-actions .wp-block-button__link {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  .heartbeat-page-shell .hbc-layout--home .hbc-section-intro__title,
  .heartbeat-page-shell .hbc-layout--home .hbc-location-grid__title,
  .heartbeat-page-shell .hbc-layout--home .hbc-visit-steps__title,
  .heartbeat-page-shell .hbc-layout--home .beliefs-title {
    font-size: clamp(2.02rem, 8.4vw, 2.55rem);
    line-height: 1.02;
    letter-spacing: -0.045em;
  }

  .heartbeat-page-shell .hbc-layout--home .hbc-beliefs-vision,
  .heartbeat-page-shell .hbc-layout--home .hbc-beliefs-mission,
  .heartbeat-page-shell .hbc-layout--home .hbc-beliefs-values,
  .heartbeat-page-shell .hbc-layout--home .hbc-action-group {
    border-radius: 24px;
  }

  .heartbeat-page-shell .hbc-layout--home .hbc-beliefs-vision h3,
  .heartbeat-page-shell .hbc-layout--home .hbc-beliefs-mission__intro h3,
  .heartbeat-page-shell .hbc-layout--home .hbc-beliefs-values h3 {
    font-size: clamp(1.85rem, 7.4vw, 2.35rem);
    line-height: 1.03;
    letter-spacing: -0.045em;
  }

  .heartbeat-page-shell .hbc-layout--home .belief-card::after {
    opacity: 0.55;
  }
}

/* Staff und Vorstand: one cross-location people page in the shared Heartbeat layout system. */
.hbc-team-page {
  --hbc-layout-active-content-max: var(--hbc-layout-page-max);
}

.hbc-layout > :is(.hbc-team-bridge, .hbc-team-section),
.hbc-layout > .wp-block-group__inner-container > :is(.hbc-team-bridge, .hbc-team-section) {
  width: min(100%, var(--hbc-layout-active-content-max));
  max-width: var(--hbc-layout-active-content-max) !important;
  margin-inline: auto !important;
}

.hbc-team-bridge {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(18rem, 0.95fr);
  gap: clamp(1rem, 3vw, 1.75rem);
  align-items: stretch;
}

.hbc-team-bridge__copy,
.hbc-team-bridge__note,
.hbc-team-principles__item {
  box-sizing: border-box;
  display: grid;
  align-content: start;
  align-self: stretch;
  gap: 0.75rem;
  height: 100%;
  margin-block-start: 0 !important;
  padding: clamp(1.15rem, 2.7vw, 1.75rem);
  border: 1px solid var(--hbc-border);
  border-radius: var(--hbc-radius-card);
  background: var(--wp--preset--color--heartbeat-surface);
  box-shadow: var(--hbc-shadow-soft);
}

.hbc-team-bridge__note {
  background: linear-gradient(135deg, color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 10%, var(--wp--preset--color--heartbeat-surface)), var(--wp--preset--color--heartbeat-surface));
}

.hbc-team-bridge__eyebrow,
.hbc-team-section__eyebrow,
.hbc-team-principles__eyebrow {
  margin: 0;
  color: var(--wp--preset--color--heartbeat-blue-deep);
  font-size: 0.78rem;
  font-weight: 760;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.hbc-team-bridge h2,
.hbc-team-section h2,
.hbc-team-principles h3 {
  margin: 0;
  color: var(--wp--preset--color--heartbeat-ink);
  line-height: 1.02;
  letter-spacing: -0.035em;
  text-wrap: balance;
}

.hbc-team-bridge h2,
.hbc-team-section h2 {
  font-size: clamp(2rem, 4vw, 3.25rem);
}

.hbc-team-principles h3 {
  font-size: clamp(1.25rem, 2.5vw, 1.65rem);
}

.hbc-team-bridge p,
.hbc-team-section p,
.hbc-team-principles p {
  margin: 0;
  color: var(--wp--preset--color--heartbeat-muted);
  line-height: 1.6;
}

.hbc-team-principles,
.hbc-team-grid {
  display: grid;
  gap: 1rem;
}

.hbc-team-principles {
  align-items: stretch;
  grid-auto-rows: 1fr;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.hbc-team-section {
  display: grid;
  gap: clamp(1rem, 2.5vw, 1.5rem);
}

.hbc-team-section__header {
  display: grid;
  gap: 0.75rem;
  max-width: 52rem;
}

.hbc-team-grid,
.hbc-team-grid > .wp-block-group__inner-container {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
}

.hbc-team-grid > .wp-block-group__inner-container {
  display: grid;
  gap: 1rem;
}

.hbc-team-grid .person {
  box-sizing: border-box;
  align-items: stretch;
  width: 100%;
  max-width: none;
  min-height: 100%;
  padding: clamp(0.85rem, 2vw, 1rem);
  border: 1px solid var(--hbc-border);
  border-radius: var(--hbc-radius-card);
  background: var(--wp--preset--color--heartbeat-surface);
  box-shadow: var(--hbc-shadow-soft);
  text-align: left;
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

.hbc-team-grid .person:hover,
.hbc-team-grid .person:focus-within {
  transform: translateY(-3px);
  border-color: color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 30%, var(--hbc-border));
  box-shadow: 0 20px 48px rgba(24, 30, 45, 0.11);
}

.hbc-team-grid .person__image,
.hbc-team-grid .person__image-placeholder {
  position: relative;
  overflow: hidden;
  border-radius: calc(var(--hbc-radius-card) - 0.65rem);
  background:
    radial-gradient(circle at 24% 18%, color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 18%, transparent), transparent 34%),
    linear-gradient(135deg, color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 10%, var(--wp--preset--color--heartbeat-bg)), color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 84%, var(--wp--preset--color--heartbeat-bg)));
}

.hbc-team-grid .person__image img {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  box-shadow: none;
}

.hbc-team-grid .person__image-placeholder {
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
}

.hbc-team-grid .person__image-placeholder::before {
  content: "heartbeat";
  position: absolute;
  inset: auto 0.9rem 0.85rem;
  color: color-mix(in srgb, var(--wp--preset--color--heartbeat-blue-deep) 52%, var(--wp--preset--color--heartbeat-muted));
  font-size: 0.78rem;
  font-weight: 780;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.hbc-team-grid .person__name {
  margin-block-start: 0.9rem;
  color: var(--wp--preset--color--heartbeat-ink);
  font-size: clamp(1.15rem, 2.3vw, 1.35rem);
  font-weight: 760;
  line-height: 1.12;
}

.hbc-team-grid .person__job {
  margin-block-start: 0.35rem;
  color: var(--wp--preset--color--heartbeat-muted);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.35;
  text-transform: uppercase;
}

.hbc-team-grid .person__location {
  margin-block-start: 0.45rem;
  color: var(--wp--preset--color--heartbeat-blue-deep);
  font-size: 0.82rem;
  font-weight: 760;
  line-height: 1.25;
}

.hbc-team-grid .person__contacts {
  align-self: start;
  justify-self: start;
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-block-start: 0.85rem;
}

.hbc-team-grid .person__contacts__icon {
  padding: 0;
}

.hbc-team-grid .person__contacts__icon a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.35rem;
  height: 2.35rem;
  border: 1px solid var(--hbc-border);
  border-radius: var(--hbc-radius-pill);
  background: color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 8%, var(--wp--preset--color--heartbeat-surface));
  color: var(--wp--preset--color--heartbeat-blue-deep);
}

.hbc-team-grid .person__contacts__icon a:empty::before {
  color: currentColor;
  font-size: 0.86rem;
  font-weight: 800;
  line-height: 1;
}

.hbc-team-grid .person__contacts__icon a[href^="mailto:"]:empty::before {
  content: "@";
}

.hbc-team-grid .person__contacts__icon a[href*="facebook"]:empty::before,
.hbc-team-grid .person__contacts__icon a[href*="fb.com"]:empty::before {
  content: "f";
}

.hbc-team-grid .person__contacts__icon a[href*="twitter"]:empty::before,
.hbc-team-grid .person__contacts__icon a[href*="x.com"]:empty::before,
.hbc-team-grid .person__contacts__icon a[href*="/x/"]:empty::before {
  content: "";
  display: block;
  width: 1rem;
  height: 1rem;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Cpath%20d='M14.234%2010.162%2022.977%200h-2.072l-7.591%208.824L7.251%200H.258l9.168%2013.343L.258%2024H2.33l8.016-9.318L16.749%2024h6.993zm-2.837%203.299-.929-1.329L3.076%201.56h3.182l5.965%208.532.929%201.329%207.754%2011.09h-3.182z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Cpath%20d='M14.234%2010.162%2022.977%200h-2.072l-7.591%208.824L7.251%200H.258l9.168%2013.343L.258%2024H2.33l8.016-9.318L16.749%2024h6.993zm-2.837%203.299-.929-1.329L3.076%201.56h3.182l5.965%208.532.929%201.329%207.754%2011.09h-3.182z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.hbc-team-grid .person__contacts__icon a[href*="instagram"]:empty::before {
  content: "";
  display: block;
  width: 1rem;
  height: 1rem;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='4.5' y='4.5' width='15' height='15' rx='4.2' fill='none' stroke='black' stroke-width='2'/%3E%3Ccircle cx='12' cy='12' r='3.7' fill='none' stroke='black' stroke-width='2'/%3E%3Ccircle cx='16.7' cy='7.3' r='1.1' fill='black'/%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'%3E%3Crect x='4.5' y='4.5' width='15' height='15' rx='4.2' fill='none' stroke='black' stroke-width='2'/%3E%3Ccircle cx='12' cy='12' r='3.7' fill='none' stroke='black' stroke-width='2'/%3E%3Ccircle cx='16.7' cy='7.3' r='1.1' fill='black'/%3E%3C/svg%3E") center / contain no-repeat;
}

.hbc-team-grid .person__contacts__icon svg {
  width: 1rem;
  height: 1rem;
  fill: currentColor;
}

@media (max-width: 899px) {
  .hbc-team-bridge,
  .hbc-team-principles {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 600px) {
  .hbc-team-grid,
  .hbc-team-grid > .wp-block-group__inner-container {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.7rem;
  }

  .hbc-team-grid .person {
    padding: 0.55rem;
    border-radius: 1rem;
  }

  .hbc-team-grid .person__image,
  .hbc-team-grid .person__image-placeholder {
    border-radius: 0.75rem;
  }

  .hbc-team-grid .person__name {
    margin-block-start: 0.6rem;
    font-size: clamp(0.96rem, 4.2vw, 1.08rem);
    line-height: 1.08;
  }

  .hbc-team-grid .person__job {
    margin-block-start: 0.28rem;
    font-size: clamp(0.62rem, 2.7vw, 0.72rem);
    letter-spacing: 0.055em;
    line-height: 1.25;
  }

  .hbc-team-grid .person__location {
    margin-block-start: 0.32rem;
    font-size: clamp(0.68rem, 2.9vw, 0.78rem);
  }

  .hbc-team-grid .person__contacts {
    margin-block-start: 0.55rem;
    gap: 0.35rem;
  }

  .hbc-team-grid .person__contacts__icon a {
    width: 1.85rem;
    height: 1.85rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hbc-team-grid .person {
    transition: none;
  }

  .hbc-team-grid .person:hover,
  .hbc-team-grid .person:focus-within {
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}

/* Header navigation: classic-menu hamburger and non-dropdown Standort switcher. */
.heartbeat-primary-classic-menu__toggle {
  display: none;
  position: relative;
  align-items: center;
  justify-content: center;
  gap: 0.62rem;
  min-width: 44px;
  min-height: 44px;
  padding: 0.68rem 0.82rem;
  border: 1px solid color-mix(in srgb, var(--wp--preset--color--heartbeat-ink) 12%, transparent);
  border-radius: var(--hbc-radius-pill);
  background: color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 92%, transparent);
  color: var(--wp--preset--color--heartbeat-ink);
  font: inherit;
  font-size: 0.9rem;
  font-weight: 760;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 10px 22px rgba(0, 0, 0, 0.08);
  appearance: none;
}

.heartbeat-primary-classic-menu__toggle-icon {
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  width: 20px;
  height: 16px;
  flex: 0 0 20px;
  transform: translate(-50%, -50%);
}

.heartbeat-primary-classic-menu__toggle-icon span {
  position: absolute;
  left: 0;
  display: block;
  width: 100%;
  height: 2px;
  border-radius: 999px;
  background: currentColor;
  transform-origin: 50% 50%;
  transition: top 180ms ease, transform 180ms ease, opacity 180ms ease;
}

.heartbeat-primary-classic-menu__toggle-icon span:nth-child(1) {
  top: 2px;
}

.heartbeat-primary-classic-menu__toggle-icon span:nth-child(2) {
  top: 7px;
}

.heartbeat-primary-classic-menu__toggle-icon span:nth-child(3) {
  top: 12px;
}

.heartbeat-primary-classic-menu.is-open .heartbeat-primary-classic-menu__toggle-icon span:nth-child(1) {
  top: 7px;
  transform: rotate(45deg);
}

.heartbeat-primary-classic-menu.is-open .heartbeat-primary-classic-menu__toggle-icon span:nth-child(2) {
  opacity: 0;
}

.heartbeat-primary-classic-menu.is-open .heartbeat-primary-classic-menu__toggle-icon span:nth-child(3) {
  top: 7px;
  transform: rotate(-45deg);
}

@media (min-width: 1024px) {
  .heartbeat-primary-classic-menu__list > .menu-item-has-children {
    display: inline-flex;
    align-items: center;
    gap: 0.38rem;
    padding: 0.2rem 0.25rem 0.2rem 0.5rem;
    border: 1px solid color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 15%, transparent);
    border-radius: var(--hbc-radius-pill);
    background: color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 5%, var(--wp--preset--color--heartbeat-surface));
  }

  .heartbeat-primary-classic-menu__list > .menu-item-has-children > a {
    min-height: 0;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
  }

  .heartbeat-primary-classic-menu__list > .menu-item-has-children > a::after,
  .heartbeat-primary-classic-menu .menu-item-has-children::before,
  .heartbeat-primary-classic-menu .sub-menu::before,
  .heartbeat-primary-classic-menu .sub-menu a::after {
    display: none;
  }

  .heartbeat-primary-classic-menu .menu-item-has-children > .sub-menu {
    position: static;
    display: inline-flex;
    align-items: center;
    gap: 0.28rem;
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    background-image: none;
    box-shadow: none;
    list-style: none;
    opacity: 1;
    overflow: visible;
    visibility: visible;
    pointer-events: auto;
    transform: none;
  }

  .heartbeat-primary-classic-menu .sub-menu .menu-item {
    width: auto;
  }

  .heartbeat-primary-classic-menu .sub-menu a {
    min-height: 30px;
    padding: 0.46rem 0.58rem;
    border-radius: var(--hbc-radius-pill);
    background: color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 10%, transparent);
    color: var(--wp--preset--color--heartbeat-blue-deep);
    font-size: clamp(0.76rem, 0.68rem + 0.16vw, 0.84rem);
    font-weight: 760;
    white-space: nowrap;
    transform: none;
  }

  .heartbeat-primary-classic-menu .sub-menu a:hover,
  .heartbeat-primary-classic-menu .sub-menu a:focus-visible {
    background: color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 17%, var(--wp--preset--color--heartbeat-surface));
    transform: none;
  }
}

@media (max-width: 1023px) {
  html.hbc-menu-open,
  body.hbc-menu-open {
    overflow: hidden;
  }

  .heartbeat-site-header__actions {
    align-items: center !important;
    gap: 0.55rem;
  }

  .heartbeat-header-search-link,
  .heartbeat-header-search-link .wp-block-button,
  .heartbeat-header-search-link .wp-block-button__link,
  .heartbeat-primary-classic-menu,
  .heartbeat-primary-classic-menu__toggle {
    align-self: center;
  }

  .heartbeat-header-search-link .wp-block-button__link,
  .heartbeat-primary-classic-menu__toggle {
    box-sizing: border-box;
    height: 44px;
    min-height: 44px;
  }

  .heartbeat-primary-classic-menu {
    display: flex !important;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: auto;
    height: 44px;
    margin-left: 0;
  }

  .heartbeat-site-header__inner {
    backdrop-filter: none;
  }

  .heartbeat-primary-classic-menu__toggle {
    display: inline-flex;
    width: 44px;
    padding-inline: 0;
  }

  .heartbeat-primary-classic-menu__toggle-label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
  }

  .heartbeat-primary-classic-menu__list {
    position: fixed;
    inset: 0;
    z-index: 100000;
    box-sizing: border-box;
    display: grid;
    align-content: start;
    justify-content: stretch;
    justify-items: stretch;
    align-items: stretch;
    grid-template-columns: minmax(0, 1fr);
    width: 100vw;
    max-width: none;
    height: 100vh;
    height: 100dvh;
    margin: 0;
    padding: max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(6.25rem, calc(env(safe-area-inset-bottom) + 5.75rem)) max(1rem, env(safe-area-inset-left));
    gap: 0.2rem;
    overflow-y: auto;
    overscroll-behavior: contain;
    background: linear-gradient(180deg, var(--wp--preset--color--heartbeat-surface), color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 82%, var(--wp--preset--color--heartbeat-bg)));
    list-style: none;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-0.35rem);
    transition: opacity 180ms ease, transform 180ms ease, visibility 0s linear 180ms;
  }

  .heartbeat-primary-classic-menu.is-open .heartbeat-primary-classic-menu__list {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: none;
    transition-delay: 0s;
  }

  .heartbeat-primary-classic-menu:not(.is-open) .heartbeat-primary-classic-menu__list,
  .heartbeat-primary-classic-menu:not(.is-open) .heartbeat-primary-classic-menu__list * {
    visibility: hidden;
    pointer-events: none;
  }

  .heartbeat-primary-classic-menu.is-open .heartbeat-primary-classic-menu__toggle {
    position: fixed;
    top: max(1rem, env(safe-area-inset-top));
    right: max(1rem, env(safe-area-inset-right));
    z-index: 100001;
  }

  .heartbeat-primary-classic-menu__list::before {
    content: none;
    display: none;
  }

  .heartbeat-primary-classic-menu__list > .menu-item {
    width: 100%;
    margin: 0;
  }

  .heartbeat-primary-classic-menu__list > .menu-item > a {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    min-height: 52px;
    padding: 0.82rem 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--wp--preset--color--heartbeat-ink);
    font-size: clamp(1.2rem, 5.6vw, 1.62rem);
    font-weight: 740;
    line-height: 1.15;
    box-shadow: none;
  }

  .heartbeat-primary-classic-menu__list > .menu-item:not(.menu-item-has-children) > a::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 1px;
    background: color-mix(in srgb, var(--wp--preset--color--heartbeat-ink) 10%, transparent);
  }

  .heartbeat-primary-classic-menu__list > .menu-item-has-children {
    display: grid;
    gap: 0.62rem;
    margin: 0.2rem 0 0.45rem;
    padding: 0.92rem;
    border: 1px solid color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 18%, transparent);
    border-radius: 24px;
    background: color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 6%, transparent);
  }

  .heartbeat-primary-classic-menu__list > .menu-item-has-children > a {
    min-height: 0;
    padding: 0;
  }

  .heartbeat-primary-classic-menu__list > .menu-item-has-children > a::after,
  .heartbeat-primary-classic-menu .menu-item-has-children::before,
  .heartbeat-primary-classic-menu .sub-menu::before {
    display: none;
  }

  .heartbeat-primary-classic-menu .menu-item-has-children > .sub-menu {
    position: static;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0.5rem;
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    background-image: none;
    box-shadow: none;
    list-style: none;
    opacity: 1;
    overflow: visible;
    visibility: visible;
    pointer-events: auto;
    transform: none;
  }

  .heartbeat-primary-classic-menu .sub-menu a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 48px;
    padding: 0.78rem 0.92rem;
    border-radius: 18px;
    background: color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 74%, white);
    color: var(--wp--preset--color--heartbeat-blue-deep);
    font-size: clamp(1rem, 4.1vw, 1.16rem);
    font-weight: 760;
    line-height: 1.15;
    transform: none;
  }

  .heartbeat-primary-classic-menu .sub-menu a::after {
    content: "→";
    opacity: 0.55;
  }
}

@media (min-width: 1024px) {
  .heartbeat-primary-classic-menu__list > .menu-item-has-children {
    display: block;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
  }

  .heartbeat-primary-classic-menu__list > .menu-item-has-children > a {
    display: inline-flex;
    align-items: center;
    min-height: 1.9rem;
    padding: 0.32rem 0.5rem;
    border: 1px solid color-mix(in srgb, var(--wp--preset--color--heartbeat-ink) 9%, transparent);
    border-radius: var(--hbc-radius-pill);
    background: color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 68%, transparent);
  }

  .heartbeat-primary-classic-menu__list > .menu-item-has-children > a::after {
    display: block;
  }

  .heartbeat-primary-classic-menu .menu-item-has-children::before {
    display: block;
  }

  .heartbeat-primary-classic-menu .menu-item-has-children > .sub-menu {
    position: absolute;
    top: calc(100% + 0.72rem);
    right: 0;
    display: grid !important;
    min-width: 16.25rem;
    padding: 0.56rem;
    border: 1px solid color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 22%, transparent);
    border-radius: 24px;
    background-color: var(--wp--preset--color--heartbeat-surface);
    background-image: linear-gradient(
      180deg,
      color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 96%, white),
      color-mix(in srgb, var(--wp--preset--color--heartbeat-bg) 90%, var(--wp--preset--color--heartbeat-surface))
    );
    box-shadow: 0 24px 58px color-mix(in srgb, var(--wp--preset--color--heartbeat-ink) 16%, transparent), inset 0 1px 0 color-mix(in srgb, white 68%, transparent);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(0.45rem) scale(0.985);
  }

  .heartbeat-primary-classic-menu .sub-menu::before {
    display: block;
  }

  .heartbeat-primary-classic-menu .sub-menu a {
    min-height: 46px;
    padding: 0.74rem 0.92rem;
    border-radius: 17px;
    background: transparent;
    font-size: 0.98rem;
  }

  .heartbeat-primary-classic-menu .sub-menu a::after {
    display: inline;
  }

  .heartbeat-primary-classic-menu .menu-item-has-children:hover > .sub-menu,
  .heartbeat-primary-classic-menu .menu-item-has-children:focus-within > .sub-menu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0) scale(1);
  }
}

/* Standort navigation: desktop gets the real dropdown again; mobile keeps
   Standort plus its child pages visible, with children indented instead of
   hidden behind another submenu toggle. */
@media (max-width: 1023px) {
  .heartbeat-primary-classic-menu__list > .menu-item-has-children {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
  }

  .heartbeat-primary-classic-menu__list > .menu-item-has-children > a {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    min-height: 52px;
    padding: 0.82rem 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--wp--preset--color--heartbeat-ink);
    font-size: clamp(1.2rem, 5.6vw, 1.62rem);
    font-weight: 740;
    line-height: 1.15;
    box-shadow: none;
  }

  .heartbeat-primary-classic-menu__list > .menu-item-has-children > a::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    display: none !important;
    height: 1px;
    background: color-mix(in srgb, var(--wp--preset--color--heartbeat-ink) 10%, transparent);
    opacity: 1;
    transform: none;
  }

  .heartbeat-primary-classic-menu .menu-item-has-children > .sub-menu {
    position: static;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    min-width: 0;
    margin: 0.1rem 0 0.55rem 0;
    padding: 0 0 0 0.95rem;
    border: 0;
    border-left: 0;
    border-radius: 0;
    background: transparent;
    background-image: none;
    box-shadow: none;
    list-style: none;
    opacity: 1;
    overflow: visible;
    visibility: visible;
    pointer-events: auto;
    transform: none;
  }

  .heartbeat-primary-classic-menu .sub-menu a {
    min-height: 42px;
    padding: 0.52rem 0 0.52rem 0.35rem;
    border-radius: 0;
    background: transparent;
    color: var(--wp--preset--color--heartbeat-blue-deep);
    font-size: clamp(1rem, 4.1vw, 1.13rem);
    font-weight: 720;
    transform: none;
  }

  .heartbeat-primary-classic-menu .sub-menu a::after {
    content: "→";
    opacity: 0.42;
  }
}

/* Classic primary menu: mobile submenus are controlled per menu item in
   Appearance → Menus. Checked items start open; unchecked items collapse behind
   a separate toggle so the parent link can remain a real destination. */
.hbc-mobile-submenu-toggle {
  display: none;
}

@media (max-width: 1023px) {
  .heartbeat-primary-classic-menu__list > .menu-item-has-children {
    position: relative;
  }

  .heartbeat-primary-classic-menu__list > .menu-item-has-children > a {
    padding-right: 6.15rem;
  }

  .hbc-mobile-submenu-toggle {
    position: absolute;
    top: 0.3rem;
    right: 3.1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid color-mix(in srgb, var(--wp--preset--color--heartbeat-ink) 12%, transparent);
    border-radius: var(--hbc-radius-pill);
    background: color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 72%, transparent);
    color: var(--wp--preset--color--heartbeat-blue-deep);
    appearance: none;
  }

  .hbc-mobile-submenu-toggle::before {
    content: "";
    width: 0.5rem;
    height: 0.5rem;
    margin-top: -0.16rem;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    transition: transform 160ms ease, margin 160ms ease;
  }

  .menu-item-has-children.is-mobile-submenu-open > .hbc-mobile-submenu-toggle::before {
    margin-top: 0.18rem;
    transform: rotate(225deg);
  }

  .heartbeat-primary-classic-menu__list > .menu-item-has-children:not(.is-mobile-submenu-open) > .sub-menu,
  .heartbeat-primary-classic-menu__list > .menu-item-has-children > .sub-menu[hidden] {
    display: none !important;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }

  .heartbeat-primary-classic-menu__list > .menu-item-has-children.is-mobile-submenu-open > .sub-menu {
    display: grid !important;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }
}

@media (min-width: 1024px) {
  .heartbeat-primary-classic-menu .sub-menu[hidden] {
    display: grid !important;
  }
}

/* Footer groups with explicit editorial headings. */
.heartbeat-site-footer__inner {
  display: grid !important;
  gap: clamp(2rem, 4vw, 3.5rem);
  justify-content: stretch !important;
}

.heartbeat-site-footer__brand {
  max-width: 34rem;
}

.heartbeat-site-footer__text {
  color: color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 72%, transparent) !important;
}

.heartbeat-site-footer__columns {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(10.5rem, 1fr));
  gap: clamp(1.35rem, 3vw, 2.25rem);
  width: 100%;
  max-width: none !important;
}

.heartbeat-site-footer__column {
  display: grid !important;
  align-content: start;
  gap: 0.72rem;
  min-width: 0;
}

.heartbeat-site-footer__column > * {
  width: 100%;
  max-width: none !important;
  margin-right: 0 !important;
  margin-left: 0 !important;
}

.heartbeat-site-footer__heading {
  margin: 0 !important;
  color: color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 58%, transparent);
  font-size: 0.72rem;
  font-weight: 850;
  letter-spacing: 0.13em;
  line-height: 1.15;
  text-transform: uppercase;
}

.heartbeat-site-footer .heartbeat-footer-nav {
  justify-content: flex-start !important;
}

.heartbeat-site-footer .heartbeat-footer-nav .wp-block-navigation__container {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 0.36rem;
  width: 100%;
}

.heartbeat-site-footer .heartbeat-footer-nav .wp-block-navigation-item {
  width: 100%;
}

.heartbeat-site-footer .heartbeat-footer-nav .wp-block-navigation-item__content {
  display: inline-flex;
  align-items: center;
  min-height: 2rem;
  padding: 0.16rem 0;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--wp--preset--color--heartbeat-surface) !important;
  font-size: 0.94rem;
  font-weight: 650;
  line-height: 1.24;
  text-decoration: none;
}

.heartbeat-site-footer .heartbeat-footer-nav .wp-block-navigation-item__content:hover,
.heartbeat-site-footer .heartbeat-footer-nav .wp-block-navigation-item__content:focus-visible {
  color: color-mix(in srgb, var(--wp--preset--color--heartbeat-blue) 28%, var(--wp--preset--color--heartbeat-surface)) !important;
}

.heartbeat-site-footer .heartbeat-footer-nav--secondary .wp-block-navigation-item__content,
.heartbeat-site-footer__column--internal .wp-block-navigation-item__content {
  color: color-mix(in srgb, var(--wp--preset--color--heartbeat-surface) 68%, transparent) !important;
  font-size: 0.86rem;
}

@media (max-width: 640px) {
  .heartbeat-site-footer__columns {
    grid-template-columns: minmax(0, 1fr);
    justify-items: stretch;
    row-gap: 1.35rem;
  }

  .heartbeat-site-footer__column {
    width: 100%;
    max-width: 22rem;
    margin-inline: auto;
    gap: 0.55rem;
  }

  .heartbeat-site-footer__column--internal {
    grid-column: auto;
  }

  .heartbeat-site-footer__heading {
    text-align: left;
  }

  .heartbeat-site-footer .heartbeat-footer-nav,
  .heartbeat-site-footer .heartbeat-footer-nav .wp-block-navigation__container {
    justify-content: flex-start !important;
    justify-items: start !important;
    align-items: start !important;
  }

  .heartbeat-site-footer .heartbeat-footer-nav .wp-block-navigation__container {
    gap: 0.16rem;
  }

  .heartbeat-site-footer .heartbeat-footer-nav .wp-block-navigation-item__content {
    justify-content: flex-start;
    width: auto;
    min-height: 1.75rem;
    padding-block: 0.08rem;
    text-align: left;
  }
}

/* HBC styleguide review: calibrate the Hero/Topheader demo block against the
   approved Gottesdienst hero geometry without changing real page heroes. */
body.page-id-5040 #hero .hbc-hero__inner {
  min-height: 541px;
}

@media (min-width: 782px) {
  body.page-id-5040 #hero .hbc-hero__content,
  body.page-id-5040 #hero .hbc-hero__image-card {
    min-height: 448px !important;
  }
}

body.page-id-5040 .hbc-styleguide-stack,
body.page-id-5040 .hbc-styleguide-muted-row {
  display: grid;
  gap: 1rem;
}

body.page-id-5040 .hbc-styleguide-approved-box,
body.page-id-5040 .hbc-styleguide-comparison-box {
  padding: 1rem;
  border-radius: 1.25rem;
}

body.page-id-5040 .hbc-styleguide-approved-box {
  border: 1px solid rgba(94, 128, 236, 0.28);
  background: rgba(94, 128, 236, 0.08);
}

body.page-id-5040 .hbc-styleguide-comparison-box {
  border: 1px dashed rgba(0, 0, 0, 0.22);
  background: rgba(255, 255, 255, 0.62);
  opacity: 0.72;
}

body.page-id-5040 .hbc-styleguide-approved-box > .hbc-section-intro__eyebrow,
body.page-id-5040 .hbc-styleguide-comparison-box > .hbc-section-intro__eyebrow {
  margin-top: 0;
}

body.page-id-5040 .hbc-styleguide-muted-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  min-height: 54px;
  padding: 0 1.4rem;
  border: 1px dashed rgba(0, 0, 0, 0.24);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.45);
  color: rgba(0, 0, 0, 0.58);
  font-weight: 700;
}

body.page-id-5040 .hbc-styleguide-review .wp-block-button__link {
  font-size: 1.08rem !important;
  font-weight: 720;
  line-height: var(--hbc-button-line-height) !important;
}

body.page-id-5040 #hero .hbc-styleguide-hero-content {
  display: flex;
  flex-direction: column;
  align-self: stretch;
  min-height: clamp(19rem, 29vw, 26.2rem);
}

body.page-id-5040 #hero .hbc-styleguide-hero-title {
  margin-top: 0.15rem;
}

body.page-id-5040 #hero .hbc-styleguide-hero-actions {
  margin-top: auto;
  padding-top: clamp(2rem, 4vw, 4.75rem);
}

body.page-id-5040 #hero .hbc-hero__image-card img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 360px;
  object-fit: cover;
  border-radius: calc(var(--hbc-radius-panel) - 2px);
}

body.page-id-5040 #forms.hbc-styleguide-form-section,
body.page-id-5040 #forms .hbc-styleguide-form-card {
  width: 100%;
  max-width: none;
  box-sizing: border-box;
}

body.page-id-5040 #forms .wp-block-shortcode {
  margin: 0;
}

body.page-id-5040 #forms .hbc-styleguide-form {
  display: grid;
  gap: clamp(0.85rem, 2vw, 1.15rem);
  margin-block-start: 0.25rem;
}

body.page-id-5040 #forms .hbc-styleguide-form__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(0.85rem, 2vw, 1rem);
}

body.page-id-5040 #forms .hbc-styleguide-form__field {
  display: grid;
  gap: 0.4rem;
  font-weight: 680;
  color: var(--wp--preset--color--heartbeat-ink);
}

body.page-id-5040 #forms .hbc-styleguide-form input:not([type="checkbox"]),
body.page-id-5040 #forms .hbc-styleguide-form textarea {
  width: 100%;
  min-height: 48px;
  box-sizing: border-box;
  padding: 0.78rem 0.95rem;
  border: 1px solid color-mix(in srgb, var(--wp--preset--color--heartbeat-ink) 14%, transparent);
  border-radius: 14px;
  background: var(--wp--preset--color--heartbeat-surface);
  color: var(--wp--preset--color--heartbeat-ink);
  font: inherit;
}

body.page-id-5040 #forms .hbc-styleguide-form textarea {
  resize: vertical;
}

body.page-id-5040 #forms .hbc-styleguide-form__check {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  align-items: start;
  gap: 0.62rem;
  font-weight: 500;
  line-height: 1.4;
}

body.page-id-5040 #forms .hbc-styleguide-form__check input[type="checkbox"] {
  width: 20px;
  height: 20px;
  margin: 0.15rem 0 0;
}

body.page-id-5040 #forms .hbc-styleguide-form__actions {
  margin-block-start: 0.2rem;
}

body.page-id-5040 #forms .hbc-styleguide-form button.hbc-button {
  border: 0;
  cursor: pointer;
}

@media (max-width: 781px) {
  body.page-id-5040 #hero .hbc-hero__content {
    min-height: 0 !important;
  }

  body.page-id-5040 #hero .hbc-hero__image-card img {
    min-height: 307px !important;
  }

  body.page-id-5040 #forms .hbc-styleguide-form__grid {
    grid-template-columns: 1fr;
  }

  body.page-id-5040 #forms .hbc-styleguide-form button.hbc-button {
    width: 100%;
    min-height: 48px;
  }
}
