:root{
  --ff-primary:#c5141b;
  --ff-primary-dark:#9d1116;
  --ff-text:#111111;
  --ff-muted:#5f6672;
  --ff-bg:#f5f6f8;
  --ff-surface:#ffffff;
  --ff-surface-dark:#050a14;
  --ff-surface-dark-2:#08111d;
  --ff-border:rgba(17,
17,
17,
.08);
  --ff-border-dark:rgba(255,
255,
255,
.08);
  --ff-shadow:0 18px 42px rgba(0,
0,
0,
.08);
  --ff-radius:24px;
  --ff-container:1400px;
  --ff-content:1280px;
  --ff-logo-width:380px;
  --ff-logo-width-mobile:240px;
  --ff-logo-max-height:none;
  --ff-logo-max-height-mobile:none;
  --ff-header-padding-y:16px;
  --ff-menu-color:#111111;
  --ff-menu-active-color:#c5141b;
  --ff-menu-hover-color:#111111;
  --ff-submenu-color:#111111;
  --ff-submenu-hover-color:#c5141b;
  --ff-backtop-bg:#c5141b;
  --ff-backtop-icon:#ffffff;
  --ff-backtop-size:56px;
  --ff-backtop-offset:24px;
  --ff-base-font-size:16px
}
*{
  box-sizing:border-box
}
html{
  scroll-behavior:smooth
}
body{
  margin:0;
  font-family:Arial,
Helvetica,
sans-serif;
  color:var(--ff-text);
  background:var(--ff-bg);
  font-size:var(--ff-base-font-size);
  line-height:1.65;
  overflow-x:hidden
}
a{
  color:var(--ff-primary);
  text-decoration:none
}
a:hover{
  text-decoration:none
}
img{
  max-width:100%;
  height:auto;
  display:block
}
button,
input,
select,
textarea{
  font:inherit
}
.container{
  width:min(100% - 32px,
var(--ff-container));
  margin-inline:auto
}
.site-main,
.site-footer,
.site-header,
.section{
  width:100%;
  overflow:visible
}
.hero{
  width:100%;
  overflow:hidden
}
.content-narrow{
  width:min(100%,
var(--ff-content));
  margin-inline:auto
}
.content-wide{
  width:min(100%,
var(--ff-page-max-width, 1480px));
  max-width:none;
  margin-inline:auto
}
.content-layout > .content-wide,
.content-layout > .entry-box,
.content-layout > article,
.content-layout > main{
  width:100%;
  max-width:none;
  justify-self:stretch
}
.screen-reader-text,
.skip-link{
  position:absolute;
  left:-9999px;
  top:auto;
  width:1px;
  height:1px;
  overflow:hidden
}
.skip-link:focus{
  left:12px;
  top:12px;
  width:auto;
  height:auto;
  padding:10px 14px;
  background:#fff;
  color:#000;
  border-radius:12px;
  z-index:9999
}
.site-header{
  position:sticky;
  top:0;
  z-index:100;
  background:rgba(255,
255,
255,
.96);
  backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(17,
17,
17,
.06)
}
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:var(--ff-header-padding-y) 0;
  min-height:96px
}
.site-brand{
  flex:0 0 auto;
  min-width:0;
  max-width:none
}
.branding-link{
  display:block;
  max-width:none
}
.branding-link img{
  display:block;
  width:var(--ff-logo-width);
  max-width:none;
  height:auto;
  max-height:none;
  object-fit:contain;
  flex:0 0 auto
}
.nav-wrap{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex:1 1 auto;
  min-width:0
}
.main-nav{
  position:relative
}
.main-nav>ul{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  list-style:none;
  margin:0;
  padding:0
}
.main-nav li{
  position:relative;
  list-style:none
}
.main-nav a{
  display:inline-flex;
  align-items:center;
  gap:0;
  padding:11px 14px;
  border-radius:999px;
  font-weight:700;
  color:var(--ff-menu-color);
  line-height:1.2;
  cursor:pointer
}
.main-nav a:hover,
.main-nav a:focus-visible{
  color:var(--ff-menu-hover-color);
  background:#f6ecec
}
.main-nav .current-menu-item>a,
.main-nav .current-menu-ancestor>a,
.main-nav .current_page_item>a,
.main-nav .current_page_ancestor>a{
  color:var(--ff-menu-active-color);
  background:#f6e7e7
}
.menu-toggle{
  display:none;
  align-items:center;
  justify-content:center;
  gap:5px;
  flex-direction:column;
  width:48px;
  height:48px;
  border:1px solid rgba(197,
20,
27,
.24);
  background:#fff;
  border-radius:16px;
  padding:0;
  cursor:pointer;
  box-shadow:0 10px 24px rgba(0,
0,
0,
.08)
}
.menu-toggle span{
  display:block;
  width:22px;
  height:2.5px;
  background:var(--ff-primary);
  border-radius:3px;
  transition:transform .25s ease,
opacity .25s ease,
background-color .25s ease
}
.menu-toggle[aria-expanded="true"] span:nth-child(1){
  transform:translateY(7px) rotate(45deg)
}
.menu-toggle[aria-expanded="true"] span:nth-child(2){
  opacity:0
}
.menu-toggle[aria-expanded="true"] span:nth-child(3){
  transform:translateY(-7px) rotate(-45deg)
}
.submenu-toggle{
  display:none !important
}
.main-nav .menu-item-has-children>a::after,
.main-nav .menu-item-has-children>a .submenu-indicator,
.main-nav .menu-item-has-children>a svg,
.main-nav .menu-item-has-children>a .fa,
.main-nav .menu-item-has-children>a i{
  display:none !important
}
.mobile-nav{
  display:none
}
.main-nav>ul>li>.sub-menu{
  position:absolute;
  top:calc(100% + 4px);
  left:0;
  display:none;
  min-width:320px;
  max-width:min(520px,
calc(100vw - 32px));
  width:max-content;
  background:#fff;
  border:1px solid var(--ff-border);
  border-radius:24px;
  box-shadow:0 26px 50px rgba(0,
0,
0,
.14);
  padding:18px 18px 16px;
  margin:0;
  z-index:90
}
.main-nav>ul>li.menu-item-open>.sub-menu{
  display:block
}
.main-nav>ul>li.align-right>.sub-menu{
  left:auto;
  right:0
}
.main-nav>ul>li>.sub-menu>li + li{
  margin-top:8px
}
.main-nav .sub-menu .sub-menu{
  display:block;
  position:static;
  background:transparent;
  border:0;
  box-shadow:none;
  padding:8px 0 0 18px;
  margin:6px 0 0 0;
  border-left:2px solid #eceff3
}
.main-nav .sub-menu a{
  display:flex;
  align-items:flex-start;
  border-radius:14px;
  padding:10px 12px;
  color:var(--ff-submenu-color);
  font-weight:700;
  white-space:normal
}
.main-nav .sub-menu a:hover,
.main-nav .sub-menu a:focus-visible{
  background:#f3f5f7;
  color:var(--ff-submenu-hover-color)
}
.main-nav .sub-menu .current-menu-item>a,
.main-nav .sub-menu .current_page_item>a,
.main-nav .sub-menu .current-menu-ancestor>a{
  color:var(--ff-menu-active-color);
  background:#f6e7e7
}
.main-nav .sub-menu .menu-item-has-children>.sub-menu{
  display:block
}
.hero{
  position:relative;
  overflow:hidden;
  color:#fff;
  background:linear-gradient(135deg,
#b40f18 0%,
#cf111d 48%,
#ab1318 100%);
  padding:52px 0
}
.hero::before,
.hero::after{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  width:320px;
  background:rgba(255,
255,
255,
.05);
  transform:skewX(-24deg);
  pointer-events:none
}
.hero::before{
  right:-80px
}
.hero::after{
  right:170px;
  background:rgba(255,
255,
255,
.03)
}
.hero-grid{
  display:grid;
  grid-template-columns:minmax(0,
700px) minmax(280px,
380px);
  gap:28px;
  align-items:start;
  justify-content:space-between;
  position:relative;
  z-index:1
}
.hero-content{
  max-width:700px;
  padding-right:8px
}
.hero-side{
  align-self:start
}
.hero-kicker{
  display:inline-block;
  padding:10px 16px;
  background:rgba(255,
255,
255,
.14);
  border-radius:999px;
  font-weight:700;
  margin-bottom:14px
}
.hero h1{
  margin:0 0 14px;
  font-size:clamp(34px,
5vw,
72px);
  line-height:.98;
  text-transform:uppercase;
  max-width:11ch
}
.hero p{
  margin:0 0 20px;
  font-size:clamp(18px,
1.6vw,
22px);
  max-width:28ch
}
.hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px
}
.button,
.wp-block-button__link,
button,
input[type="submit"]{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:56px;
  padding:14px 26px;
  border-radius:999px;
  border:0;
  background:var(--ff-primary);
  color:#fff;
  font-weight:700;
  cursor:pointer;
  transition:transform .2s ease,
opacity .2s ease,
background .2s ease;
  color-scheme:light
}
.button:hover,
.wp-block-button__link:hover,
button:hover,
input[type="submit"]:hover{
  transform:translateY(-1px);
  opacity:.96
}
.button.button-light{
  background:#fff;
  color:var(--ff-primary)
}
.button.button-light:hover{
  background:#fff;
  color:var(--ff-primary)
}
.info-grid{
  display:grid;
  grid-template-columns:repeat(2,
minmax(0,
1fr));
  gap:14px
}
.info-card{
  display:block;
  padding:22px;
  border-radius:22px;
  background:rgba(255,
255,
255,
.12);
  border:1px solid rgba(255,
255,
255,
.18);
  min-height:128px;
  color:#fff;
  text-decoration:none;
  transition:transform .2s ease,
background .2s ease,
border-color .2s ease;
  position:relative;
  z-index:2;
  cursor:pointer
}
.info-card:hover{
  transform:translateY(-2px);
  background:rgba(255,
255,
255,
.16);
  border-color:rgba(255,
255,
255,
.28)
}
.info-card{
  font-size:var(--ff-hero-card-text-size,
18px);
  line-height:1.45
}
.info-card strong{
  display:block;
  width:100%;
  text-align:center;
  font-size:var(--ff-hero-card-title-size,
clamp(28px,
3.4vw,
46px));
  line-height:1.05;
  margin:0 0 10px;
  overflow-wrap:normal;
  word-break:normal;
  hyphens:none
}
.section{
  padding:54px 0;
  background:#fff
}
.section.section-alt{
  background:#f2f4f7
}
.section-title{
  margin:0 0 8px;
  font-size:clamp(28px,
3.6vw,
46px);
  line-height:1.04
}
.section-intro{
  margin:0 0 20px;
  color:var(--ff-muted);
  font-size:18px
}
.card-grid{
  display:grid;
  grid-template-columns:repeat(3,
minmax(0,
1fr));
  gap:16px
}
.card{
  display:block;
  background:#fff;
  border:1px solid var(--ff-border);
  border-radius:20px;
  padding:20px;
  box-shadow:var(--ff-shadow);
  color:inherit
}
.card h3{
  margin:0 0 10px;
  font-size:22px
}
.card p{
  margin:0;
  color:var(--ff-muted)
}
.posts-grid{
  display:grid;
  grid-template-columns:repeat(3,
minmax(0,
1fr));
  gap:16px
}
.kontakt-grid{
  display:grid;
  grid-template-columns:repeat(2,
minmax(0,
1fr));
  gap:16px;
  align-items:start
}
.kontakt-grid .calendar-clean{
  grid-column:1 / -1;
  background:transparent;
  border:0;
  box-shadow:none;
  padding:0;
  overflow:visible
}
.kontakt-grid .calendar-clean>*{
  max-width:100%
}
.post-card{
  background:#fff;
  border:1px solid var(--ff-border);
  border-radius:24px;
  padding:24px;
  box-shadow:var(--ff-shadow)
}
.post-card h3{
  margin:0 0 10px;
  font-size:22px
}
.post-card p{
  margin:0 0 14px;
  color:var(--ff-muted)
}
.page-shell{
  padding:40px 0;
  background:#fff
}
.content-layout{
  display:grid;
  grid-template-columns:minmax(0,
1.8fr) minmax(300px,
var(--ff-sidebar-width, 360px));
  gap:clamp(22px,
2vw,
36px);
  align-items:start;
  width:100%;
  max-width:var(--ff-page-max-width, 1480px);
  margin-inline:auto
}
.content-layout.no-sidebar{
  grid-template-columns:minmax(0,
1fr);
  max-width:var(--ff-container, 1400px)
}
.entry-box{
  background:#fff;
  border:1px solid var(--ff-border);
  border-radius:24px;
  padding:32px;
  box-shadow:var(--ff-shadow)
}
.entry-box h1{
  margin-top:0;
  font-size:clamp(32px,
4.5vw,
54px);
  line-height:1.04
}
.entry-box .wp-post-image{
  border-radius:20px;
  margin-bottom:22px
}
.content-sidebar{
  display:grid;
  gap:18px;
  position:sticky;
  top:112px
}
.content-sidebar .widget{
  background:#fff;
  border:1px solid var(--ff-border);
  border-radius:24px;
  padding:22px;
  box-shadow:var(--ff-shadow)
}
.content-sidebar .widget_search .wp-block-search__inside-wrapper,
.content-sidebar .search-form{
  display:grid;
  grid-template-columns:1fr auto;
  gap:10px
}
.content-sidebar .search-field,
.content-sidebar input[type="search"]{
  width:100%;
  padding:12px 14px;
  border-radius:14px;
  border:1px solid var(--ff-border);
  background:#fff;
  color:#111
}
.widget-title{
  margin:0 0 12px;
  font-size:22px
}
.widget ul{
  margin:0;
  padding-left:18px
}
.entry-box.ffo-calendar-host,
.card.ffo-calendar-host,
.widget.ffo-calendar-host{
  background:transparent;
  border:none;
  box-shadow:none
}
.entry-box.ffo-calendar-host,
.widget.ffo-calendar-host{
  border-radius:0
}
.ffo-calendar-host [class*="calendar"],
.ffo-calendar-host .simcal-calendar,
.ffo-calendar-host .simcal-default-calendar,
.ffo-calendar-host .mec-wrap,
.ffo-calendar-host .tribe-events,
.ffo-calendar-host .fc,
.ffo-calendar-host .am-calendar,
.ffo-calendar-host .em-calendar{
  max-width:100%
}
.calendar-clean [class*="calendar"],
.calendar-clean .simcal-calendar,
.calendar-clean .simcal-default-calendar,
.calendar-clean .mec-wrap,
.calendar-clean .tribe-events,
.calendar-clean .fc,
.calendar-clean .am-calendar,
.calendar-clean .em-calendar{
  max-width:100%
}
.calendar-clean [class*="calendar"] *,
.ffo-calendar-host [class*="calendar"] *{
  box-sizing:border-box
}
.ffo-intern-gate,
.ffo-intern-denied{
  background:#f4f6f8;
  border:1px solid var(--ff-border);
  border-radius:24px;
  padding:26px;
  margin-top:26px
}
.ffo-intern-gate h2,
.ffo-intern-denied h2{
  margin-top:0
}
.ffo-intern-gate form,
.ffo-footer-login form{
  display:grid;
  gap:14px
}
.ffo-intern-gate input[type="text"],
.ffo-intern-gate input[type="password"],
.ffo-footer-login input[type="text"],
.ffo-footer-login input[type="password"],
.ffo-footer-login input[type="email"]{
  width:100%;
  padding:12px 14px;
  border-radius:14px;
  border:1px solid rgba(17,
17,
17,
.14);
  background:#fff;
  color:#111
}
.ffo-intern-gate .login-remember label,
.ffo-footer-login .login-remember label{
  display:flex;
  align-items:center;
  gap:8px;
  font-weight:400
}
.site-footer{
  background:var(--ff-surface-dark);
  color:#fff;
  padding:44px 0 18px
}
.footer-grid{
  display:grid;
  grid-template-columns:repeat(3,
minmax(0,
1fr));
  gap:18px;
  margin-bottom:28px
}
.footer-card{
  background:rgba(255,
255,
255,
.03);
  border:1px solid var(--ff-border-dark);
  border-radius:24px;
  padding:20px
}
.footer-card h3,
.footer-card strong{
  display:block;
  margin:0 0 12px;
  font-size:22px
}
.footer-card p{
  margin:0 0 12px;
  color:rgba(255,
255,
255,
.86)
}
.footer-card ul{
  margin:0;
  padding:0;
  list-style:none;
  display:grid;
  gap:10px
}
.footer-card li{
  margin:0
}
.footer-card a{
  color:#fff;
  text-decoration:none
}
.footer-card a:hover{
  color:#fff;
  text-decoration:underline
}
.footer-menu ul{
  display:grid;
  gap:10px;
  margin:0;
  padding:0;
  list-style:none
}
.footer-menu li{
  margin:0;
  padding:0
}
.footer-menu a{
  color:rgba(255,
255,
255,
.88);
  font-size:17px;
  font-weight:600;
  line-height:1.35;
  letter-spacing:0;
  text-decoration:none
}
.footer-menu a:hover,
.footer-menu .current-menu-item>a,
.footer-menu .current_page_item>a,
.footer-menu .current-menu-ancestor>a{
  color:#fff;
  text-decoration:none
}
.footer-bottom{
  border-top:1px solid rgba(255,
255,
255,
.08);
  padding-top:18px;
  display:flex;
  gap:18px;
  flex-wrap:wrap
}
.footer-bottom.footer-align-left{
  justify-content:flex-start;
  text-align:left
}
.footer-bottom.footer-align-center{
  justify-content:center;
  text-align:center
}
.footer-bottom.footer-align-right{
  justify-content:flex-end;
  text-align:right
}
.footer-copy{
  max-width:820px
}
.footer-copy p{
  margin:0 0 8px
}
.ffo-footer-action{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:48px;
  padding:10px 18px;
  border-radius:999px;
  background:var(--ff-primary);
  color:#fff !important;
  font-weight:700
}
.ffo-footer-action-secondary{
  background:transparent;
  border:1px solid rgba(255,
255,
255,
.18)
}
.ffo-footer-login::placeholder{
  color:rgba(255,
255,
255,
.55)
}
.ffo-footer-login input[type="text"],
.ffo-footer-login input[type="password"],
.ffo-footer-login input[type="email"]{
  background:rgba(255,
255,
255,
.06);
  border-color:rgba(255,
255,
255,
.14);
  color:#fff
}
.ffo-backtop{
  position:fixed;
  bottom:var(--ff-backtop-offset);
  right:var(--ff-backtop-offset);
  width:var(--ff-backtop-size);
  height:var(--ff-backtop-size);
  border-radius:999px;
  border:0;
  background:var(--ff-backtop-bg);
  color:var(--ff-backtop-icon);
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 18px 40px rgba(0,
0,
0,
.24);
  cursor:pointer;
  opacity:0;
  transform:translateY(10px);
  visibility:hidden;
  transition:opacity .22s ease,
transform .22s ease,
visibility .22s ease;
  z-index:120
}
.ffo-backtop[data-position="left"]{
  left:var(--ff-backtop-offset);
  right:auto
}
.ffo-backtop.is-visible{
  opacity:1;
  visibility:visible;
  transform:translateY(0)
}
.ffo-backtop span{
  font-size:28px;
  line-height:1
}
.ffo-backtop img{
  max-width:70%;
  max-height:70%;
  object-fit:contain
}
.ffo-bg{
  position:relative;
  background-size:cover;
  background-repeat:no-repeat;
  background-position:center
}
.ffo-bg::before{
  content:"";
  position:absolute;
  inset:0;
  background:var(--ff-overlay-color,
transparent);
  opacity:var(--ff-overlay-opacity,
0)
}
.ffo-bg>.container{
  position:relative;
  z-index:1
}
.ffo-filter-grayscale{
  filter:grayscale(1)
}
.ffo-filter-darken{
  filter:brightness(.7)
}
.ffo-filter-lighten{
  filter:brightness(1.15)
}
.ffo-filter-contrast{
  filter:contrast(1.2)
}
.ffo-filter-vivid{
  filter:saturate(1.3)
}
.ffo-filter-soft{
  filter:brightness(1.03) contrast(.96) saturate(.9)
}
@media (max-width:1100px){
  .hero-grid,
.card-grid,
.posts-grid,
.footer-grid,
.module-grid{
  grid-template-columns:repeat(2,
minmax(0,
1fr))
}
.content-layout{
  grid-template-columns:minmax(0,
1fr)
}
.content-sidebar{
  position:static
}
}
@media (max-width:860px){
  .header-inner{
  flex-wrap:wrap;
  row-gap:12px
}
.branding-link img{
  width:var(--ff-logo-width-mobile);
  max-height:none;
  max-width:none;
  height:auto
}
.desktop-nav{
  display:none
}
.menu-toggle{
  display:inline-flex;
  align-items:center;
  justify-content:center
}
.menu-toggle:hover,
.menu-toggle:focus-visible{
  background:#fff;
  border-color:rgba(197,
20,
27,
.4)
}
.nav-wrap{
  width:100%;
  display:block
}
.mobile-nav{
  display:none;
  width:100%;
  margin-top:12px;
  padding:12px;
  border-radius:22px;
  background:linear-gradient(180deg,
#091120 0%,
#0e1a2f 100%);
  border:1px solid rgba(255,
255,
255,
.08);
  box-shadow:0 20px 36px rgba(0,
0,
0,
.22);
  max-height:calc(100dvh - 170px);
  overflow-y:auto;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  padding-bottom:max(96px, calc(var(--ff-backtop-size) + var(--ff-backtop-offset) + 24px))
}
.mobile-nav.is-open{
  display:block
}
.mobile-nav>ul{
  flex-direction:column;
  align-items:stretch;
  gap:8px;
  padding-top:0;
  padding-bottom:8px
}
.mobile-nav li{
  width:100%
}
.mobile-nav a{
  width:100%;
  justify-content:flex-start;
  padding:13px 16px;
  border-radius:16px;
  color:#fff;
  background:rgba(255,
255,
255,
.04)
}
.mobile-nav a:hover,
.mobile-nav a:focus-visible{
  color:#fff;
  background:rgba(255,
255,
255,
.1)
}
.mobile-nav .current-menu-item>a,
.mobile-nav .current-menu-ancestor>a,
.mobile-nav .current_page_item>a,
.mobile-nav .current_page_ancestor>a{
  color:#fff;
  background:rgba(197,
20,
27,
.92)
}
.mobile-nav>ul>li>.sub-menu{
  position:static;
  display:none;
  min-width:0;
  max-width:none;
  width:100%;
  margin-top:8px;
  box-shadow:none;
  border-radius:18px;
  padding:12px;
  background:rgba(255,
255,
255,
.06);
  border:1px solid rgba(255,
255,
255,
.08)
}
.mobile-nav>ul>li.menu-item-open>.sub-menu{
  display:block
}
.mobile-nav>ul>li.align-right>.sub-menu{
  right:auto
}
.mobile-nav .sub-menu a{
  color:#fff;
  background:transparent;
  padding:10px 12px
}
.mobile-nav .sub-menu a:hover,
.mobile-nav .sub-menu a:focus-visible{
  background:rgba(255,
255,
255,
.08);
  color:#fff
}
.mobile-nav .sub-menu .current-menu-item>a,
.mobile-nav .sub-menu .current_page_item>a,
.mobile-nav .sub-menu .current-menu-ancestor>a{
  background:rgba(197,
20,
27,
.84);
  color:#fff
}
.mobile-nav .sub-menu .sub-menu{
  padding-left:14px;
  border-left-color:rgba(255,
255,
255,
.16)
}
.hero{
  padding:42px 0
}
.hero-grid,
.info-grid,
.card-grid,
.posts-grid,
.footer-grid,
.module-grid{
  grid-template-columns:1fr
}
.hero-content,
.hero p,
.hero h1{
  max-width:none
}
.footer-menu a{
  font-size:22px
}
.section{
  padding:58px 0
}
}
@media (min-width:861px){
  .desktop-nav{
  display:block
}
.mobile-nav,
.menu-toggle{
  display:none !important
}
}
.module-grid{
  display:grid;
  grid-template-columns:repeat(3,
minmax(0,
1fr));
  gap:22px
}
.module-card{
  background:#fff;
  border:1px solid var(--ff-border);
  border-radius:24px;
  padding:24px;
  box-shadow:var(--ff-shadow)
}
.module-card .widget{
  margin:0
}
.module-card .widget-title{
  margin-bottom:12px
}
.footer-card address{
  font-style:normal;
  color:rgba(255,
255,
255,
.86);
  line-height:1.7
}
.footer-contact-list{
  display:grid;
  gap:10px;
  margin:0;
  padding:0;
  list-style:none
}
.footer-contact-list li{
  margin:0;
  color:rgba(255,
255,
255,
.86);
  display:flex;
  align-items:flex-start;
  gap:10px
}
.footer-contact-list a{
  color:#fff
}
.ffo-contact-icon{
  font-size:18px;
  line-height:1.2;
  width:18px;
  height:18px;
  flex:0 0 18px;
  opacity:.92
}
.footer-contact-list li span:last-child{
  display:block
}
.module-card-wide{
  grid-column:1 / -1
}
@media (max-width:1100px){
  .module-card-wide{
  grid-column:auto
}
}
@media (max-width:860px){
  .kontakt-grid{
  grid-template-columns:1fr
}
.kontakt-grid .calendar-clean{
  grid-column:auto
}
}
.content-sidebar .widget ul{
  list-style:none;
  margin:0;
  padding:0
}
.content-sidebar .widget li{
  margin:0;
  padding:0
}
.content-sidebar .widget li + li{
  border-top:1px solid var(--ff-border);
  margin-top:14px;
  padding-top:14px
}
.content-sidebar .widget a{
  display:block;
  color:var(--ff-text);
  font-weight:500;
  line-height:1.55
}
.content-sidebar .widget a:hover{
  color:var(--ff-primary)
}
.ffo-separated-list li + li{
  border-top:1px solid var(--ff-border);
  margin-top:14px;
  padding-top:14px
}
.content-sidebar .fw-ics-sidebar-widget a.fw-ics-sidebar-item{
  display:block;
  color:inherit;
  font-weight:inherit;
  line-height:inherit
}
.content-sidebar .fw-ics-sidebar-widget .widget-title{
  font-size:22px
}
.ff-lightbox{
  position:fixed;
  inset:0;
  background:rgba(5,
10,
20,
.84);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:28px;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .22s ease,
visibility .22s ease;
  z-index:9999
}
.ff-lightbox.ff-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto
}
.ff-lightbox img{
  max-width:min(92vw,
1400px);
  max-height:90vh;
  border-radius:18px;
  box-shadow:0 22px 60px rgba(0,
0,
0,
.35)
}
.ff-lightbox-close{
  position:absolute;
  top:16px;
  right:16px;
  width:48px;
  height:48px;
  border-radius:999px;
  border:0;
  background:#fff;
  color:#111;
  font-size:32px;
  line-height:1;
  cursor:pointer;
  box-shadow:0 8px 24px rgba(0,
0,
0,
.2)
}
.ffo-pull-refresh{
  position:fixed;
  left:50%;
  top:0;
  transform:translate(-50%,
calc(-100% + var(--ffo-ptr-offset,
0px)));
  z-index:10000;
  display:flex;
  align-items:center;
  gap:.6rem;
  padding:.7rem 1rem;
  border-radius:0 0 16px 16px;
  background:rgba(0,
0,
0,
.82);
  color:#fff;
  font-size:.9rem;
  line-height:1.2;
  box-shadow:0 8px 24px rgba(0,
0,
0,
.2);
  opacity:0;
  pointer-events:none;
  transition:transform .2s ease,
opacity .2s ease,
background .2s ease
}
.ffo-pull-refresh.is-visible,
.ffo-pull-refresh.is-armed,
.ffo-pull-refresh.is-loading{
  opacity:1
}
.ffo-pull-refresh__icon{
  font-size:1rem;
  display:inline-flex
}
.ffo-pull-refresh.is-armed{
  background:rgba(197,
20,
27,
.92)
}
.ffo-pull-refresh.is-loading .ffo-pull-refresh__icon{
  animation:ffo-spin .8s linear infinite
}
@keyframes ffo-spin{
  from{
  transform:rotate(0deg)
}
to{
  transform:rotate(360deg)
}
}
.button,
.wp-element-button,
.wp-block-button__link,
.ffo-archive-card__actions .button,
.ffo-archive-filters .button,
.ffo-post-nav__item a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:var(--ff-button-padding-y,
14px) var(--ff-button-padding-x,
24px);
  border-radius:var(--ff-button-radius,
999px);
  font-size:var(--ff-button-font-size,
16px);
  line-height:1.2;
  font-weight:700;
  text-decoration:none;
  border:1px solid var(--ff-button-border,
var(--ff-primary));
  background:var(--ff-button-bg,
var(--ff-primary));
  color:var(--ff-button-text,
#fff);
  transition:transform .18s ease,
opacity .18s ease,
box-shadow .18s ease,
background .18s ease,
border-color .18s ease,
color .18s ease;
  box-shadow:none;
  min-height:44px
}
.button:hover,
.button:focus,
.wp-element-button:hover,
.wp-element-button:focus,
.wp-block-button__link:hover,
.wp-block-button__link:focus,
.ffo-archive-card__actions .button:hover,
.ffo-archive-filters .button:hover,
.button.button-light,
.ffo-post-nav__item--prev a,
.ffo-post-nav__item--next a,
.ffo-archive-filters .button.button-light{
  background:var(--ff-button-light-bg,
#fff);
  border-color:var(--ff-button-light-border,
#d8dee8);
  color:var(--ff-button-light-text,
#1a1a1a)
}
.ffo-post-nav{
  margin-top:28px;
  padding-top:16px;
  border-top:1px solid var(--ff-border)
}
.ffo-post-nav__grid{
  display:grid;
  grid-template-columns:minmax(0,
1fr) auto minmax(0,
1fr);
  gap:10px;
  align-items:stretch
}
.ffo-post-nav__item a{
  min-height:56px;
  line-height:1.35
}
.ffo-post-nav__item--prev a{
  justify-content:flex-start
}
.ffo-post-nav__item--next a{
  justify-content:flex-end
}
.ffo-post-nav__item--back a{
  justify-content:center
}
.ffo-post-nav__item a span[aria-hidden="true"]{
  font-size:1.15rem;
  line-height:1;
  opacity:.85
}
@media (max-width:900px){
  .ffo-post-nav__grid{
  grid-template-columns:1fr;
  gap:8px
}
.ffo-post-nav__item--prev a,
.ffo-post-nav__item--next a,
.ffo-post-nav__item--back a{
  justify-content:center;
  text-align:center
}
}
.ff-query-section{
  margin-top:1rem
}
.ff-query-loop{
  display:block
}
.ff-query-item{
  gap:1rem;
  padding:0 0 1rem;
  margin:0 0 1rem;
  border-bottom:1px solid var(--ff-border)
}
.ff-query-item .wp-block-post-title{
  margin:.1rem 0 .35rem;
  font-size:clamp(1.2rem,
2.2vw,
1.65rem);
  line-height:1.2
}
.ff-query-item .wp-block-post-title a{
  color:var(--ff-primary);
  text-decoration:none
}
.ff-query-item .wp-block-post-title a:hover{
  text-decoration:underline
}
.ff-query-item .wp-block-post-date{
  font-weight:600;
  color:#5d6470;
  margin:0 0 .5rem
}
.ff-query-item .wp-block-post-excerpt{
  margin:0;
  color:#23262d
}
.ff-query-item .wp-block-post-excerpt__more-link{
  color:var(--ff-primary);
  font-weight:700;
  text-decoration:none
}
.ff-query-item .wp-block-post-excerpt__more-link:hover{
  text-decoration:underline
}
.ff-query-item .wp-block-post-featured-image img{
  border-radius:12px;
  display:block
}
.ff-query-pagination{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.6rem;
  flex-wrap:wrap;
  margin-top:1.25rem
}
.ff-query-pagination>*{
  margin:0
}
.ff-query-pagination a,
.ff-query-pagination .page-numbers,
.ff-query-pagination-numbers .page-numbers{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:42px;
  height:42px;
  padding:0 14px;
  border-radius:12px;
  border:1px solid #e2e6ec;
  background:#fff;
  color:#222;
  font-weight:700;
  text-decoration:none;
  box-shadow:0 1px 2px rgba(0,
0,
0,
.03);
  transition:.18s ease
}
.ff-query-pagination a:hover,
.ff-query-pagination .page-numbers:hover{
  border-color:#cfd6de;
  background:#f8fafc;
  color:#111
}
.ff-query-pagination .current,
.ff-query-pagination .page-numbers.current{
  background:var(--ff-primary);
  border-color:var(--ff-primary);
  color:#fff
}
.ff-query-pagination .dots{
  border:none;
  background:transparent;
  min-width:auto;
  padding:0 4px;
  box-shadow:none
}
@media (max-width:782px){
  .ff-query-item{
  gap:.75rem
}
.ff-query-item .wp-block-columns{
  display:flex;
  flex-wrap:nowrap
}
.ff-query-item .wp-block-column:first-child{
  flex:0 0 75px !important
}
.ff-query-pagination a,
.ff-query-pagination .page-numbers,
.ff-query-pagination-numbers .page-numbers{
  min-width:38px;
  height:38px;
  padding:0 12px
}
}
.post-card,
.entry-box,
.content-sidebar .widget,
.module-card,
.card,
.info-card,
.footer-card{
  border-radius:var(--ff-card-radius,
24px)
}
.post-card,
.entry-box,
.content-sidebar .widget,
.module-card{
  padding:var(--ff-card-padding,
24px)
}
.content-layout.sidebar-left{
  grid-template-columns:minmax(300px,
var(--ff-sidebar-width, 360px)) minmax(0,
1.8fr)
}
.content-layout.sidebar-left .content-sidebar{
  order:-1
}
.content-layout.no-sidebar{
  grid-template-columns:minmax(0,
1fr)!important
}
.ffo-archive-filters{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  align-items:end;
  margin:0 0 24px;
  padding:16px;
  border:1px solid var(--ff-border);
  border-radius:18px;
  background:#f8fafc
}
.ffo-archive-filters label{
  display:grid;
  gap:6px;
  min-width:180px
}
.ffo-archive-filters span{
  font-weight:700;
  font-size:.95rem
}
.ffo-archive-filters select{
  width:100%;
  min-height:44px;
  padding:10px 12px;
  border:1px solid var(--ff-border);
  border-radius:12px;
  background:#fff
}
.ffo-archive-grid{
  grid-template-columns:1fr;
  gap:18px
}
.ffo-archive-card{
  display:grid;
  grid-template-columns:minmax(0,
260px) minmax(0,
1fr);
  gap:20px;
  align-items:start
}
.ffo-archive-card__thumb,
.ffo-archive-card__thumb img{
  display:block;
  width:100%
}
.ffo-archive-card__thumb img{
  height:auto;
  border-radius:18px;
  object-fit:cover
}
.ffo-archive-card__meta,
.ffo-archive-card__author{
  color:var(--ff-muted);
  font-weight:600;
  margin:0 0 8px
}
.ffo-archive-card__title{
  margin:0 0 10px;
  font-size:clamp(1.25rem,
2.2vw,
1.7rem);
  line-height:1.2
}
.ffo-archive-card__title a{
  text-decoration:none;
  color:var(--ff-primary)
}
.ffo-archive-card__title a:hover{
  text-decoration:underline
}
.ffo-archive-card__text p:last-child{
  margin-bottom:0
}
.ffo-archive-card__actions{
  margin:16px 0 0
}
@media (max-width:860px){
  .content-layout.sidebar-left{
  grid-template-columns:minmax(0,
1fr)
}
.content-layout.sidebar-left .content-sidebar{
  order:0
}
.ffo-archive-filters{
  padding:14px
}
.ffo-archive-filters label{
  min-width:100%
}
.ffo-archive-card{
  grid-template-columns:1fr;
  gap:14px
}
.ffo-archive-card__title{
  font-size:var(--ff-mobile-posts-title-size,
34px)
}
.single-post .entry-box h1,
.single .entry-box h1,
.single-post .entry-hero__title,
.single .entry-hero__title{
  font-size:var(--ff-mobile-single-title-size,
38px)
}
.entry-box,
.post-card,
.content-sidebar .widget,
.module-card{
  padding:max(16px,
calc(var(--ff-card-padding,
24px) - 6px))
}
.button,
.wp-element-button,
.wp-block-button__link,
.ffo-archive-card__actions .button,
.ffo-archive-filters .button,
.ffo-post-nav__item a{
  width:100%
}
}


/* ==============================
   2.24.0 Responsive rebuild fixes
   ============================== */
:root{
  --ff-heading-break:break-word;
}

.entry-box,
.entry-content,
.wp-block-group,
.wp-block-cover,
.wp-block-columns,
.wp-block-column,
.hero,
.card,
.module-card{
  min-width:0;
}

.entry-box h1,
.entry-box .wp-block-heading h1,
.entry-box > h1:first-child,
.page .entry-box h1,
.single .entry-box h1,
.single-post .entry-box h1{
  font-size:clamp(30px, 5vw, var(--ff-single-title-size, 54px));
  line-height:1.08;
  overflow-wrap:normal;
  word-break:var(--ff-heading-break);
  hyphens:none;
}

.entry-box h2,
.entry-box .wp-block-heading h2{
  overflow-wrap:normal;
  hyphens:none;
}

@media (max-width: 920px){
  .header-inner{
    min-height:84px;
    gap:14px;
  }

  .branding-link img{
    width:min(100%, var(--ff-logo-width-mobile));
    max-width:100%;
    max-height:var(--ff-logo-max-height-mobile);
  }
}

@media (max-width: 768px){
  .container{
    width:min(100% - 24px, var(--ff-container));
  }

  .header-inner{
    min-height:76px;
    align-items:center;
  }

  .site-brand{
    flex:1 1 auto;
    max-width:calc(100% - 72px);
  }

  .branding-link,
  .branding-link img{
    max-width:100%;
  }

  .menu-toggle{
    flex:0 0 48px;
  }

  .entry-box{
    padding:20px;
  }

  .entry-box h1,
  .entry-box .wp-block-heading h1,
  .entry-box > h1:first-child,
  .page .entry-box h1,
  .single .entry-box h1,
  .single-post .entry-box h1{
    font-size:clamp(24px, 8vw, var(--ff-mobile-single-title-size, 38px));
    line-height:1.12;
    letter-spacing:-0.02em;
    margin-bottom:18px;
  }

  .entry-box h2,
  .entry-box .wp-block-heading h2{
    font-size:clamp(20px, 5.8vw, 30px);
    line-height:1.18;
  }

  .entry-box h3,
  .entry-box .wp-block-heading h3{
    font-size:clamp(18px, 5vw, 24px);
    line-height:1.22;
  }
}

@media (max-width: 520px){
  .entry-box{
    padding:18px;
    border-radius:20px;
  }

  .entry-box h1,
  .entry-box .wp-block-heading h1,
  .entry-box > h1:first-child,
  .page .entry-box h1,
  .single .entry-box h1,
  .single-post .entry-box h1{
    font-size:clamp(22px, 9vw, 32px);
  }
}


/* 2.24.3 whole-word wrapping guard */
.entry-title,
.wp-block-post-title,
.entry-box h1,
.entry-box h2,
.entry-box .wp-block-heading h1,
.entry-box .wp-block-heading h2,
.ff-notfallseite-theme .ff-notfall-intro h1,
.ff-notfallseite-theme .ff-notfall-intro .wp-block-heading,
.ff-notfallseite-theme .ff-card h2,
.ff-notfallseite-theme .ff-card strong,
.ff-notfallseite-theme .ff-number,
.ff-notfallseite-theme .ff-number-small,
.info-card strong{
  word-break:normal !important;
  overflow-wrap:normal !important;
  word-wrap:normal !important;
  hyphens:none !important;
}

@media (max-width:860px){
  .mobile-nav a{font-size:clamp(.98rem, 1.8vw, 1.08rem);line-height:1.3;word-break:normal;overflow-wrap:normal;hyphens:manual;}
  .mobile-nav .sub-menu a{font-size:clamp(.94rem, 1.7vw, 1rem);}
}
