/*
Theme Name: Custom Site
Theme URI: 
Author: 
Description: Custom WordPress theme.
Version: 1.4.0
Requires at least: 6.8
Requires PHP: 7.4
Text Domain: site-core
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/

:root{
  --zw-green:#26852b;
  --zw-green-dark:#17651f;
  --zw-blue:#1689c9;
  --zw-orange:#f07a14;
  --zw-yellow:#d59b00;
  --zw-purple:#7c49b6;
  --zw-pink:#df3c72;
  --zw-red:#ea3442;
  --zw-cream:#fffaf0;
  --zw-text:#2a3b2e;
  --zw-white:#ffffff;
  --zw-shadow:0 16px 40px rgba(27,83,34,.12);
  --zw-radius:28px;
  --zw-header-h:76px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--zw-text);
  background:var(--zw-cream);
  font-family:ui-rounded,"Trebuchet MS","Arial Rounded MT Bold",Arial,sans-serif;
}
body.admin-bar .zw-site-header{top:32px}
a{transition:.18s ease}
img{max-width:100%;height:auto}
.wp-site-blocks{padding:0!important}
:where(.wp-site-blocks)>*{margin-block-start:0!important}
[id]{scroll-margin-top:calc(var(--zw-header-h) + 18px)}

/* HEADER */
.zw-site-header{
  position:fixed;
  z-index:9999;
  top:0; left:0; right:0;
  height:var(--zw-header-h);
  background:rgba(255,255,255,.76);
  border-bottom:1px solid rgba(255,255,255,.8);
  box-shadow:0 5px 22px rgba(20,80,40,.08);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.zw-header-inner{
  width:100%;
  height:100%;
  padding:0 16px 0 8px;
  display:flex;
  align-items:center;
  gap:12px;
}
.zw-brand{
  display:block;
  flex:0 0 165px;
  width:165px;
  height:58px;
  background:url("assets/images/logo.png") left center/contain no-repeat;
  text-indent:-9999px;
  overflow:hidden;
}
.zw-site-header .wp-block-navigation{
  flex:1 1 auto;
  font-size:clamp(.72rem,.78vw,.9rem);
  font-weight:900;
}
.zw-site-header .wp-block-navigation__container{
  gap:clamp(9px,1.1vw,20px)!important;
  justify-content:flex-start!important;
}
.zw-site-header .wp-block-navigation-item__content{
  padding:10px 0!important;
  text-decoration:none!important;
  white-space:nowrap;
}
.zw-site-header .wp-block-navigation-item:nth-child(1) .wp-block-navigation-item__content{color:var(--zw-red)!important}
.zw-site-header .wp-block-navigation-item:nth-child(2) .wp-block-navigation-item__content{color:var(--zw-orange)!important}
.zw-site-header .wp-block-navigation-item:nth-child(3) .wp-block-navigation-item__content{color:var(--zw-yellow)!important}
.zw-site-header .wp-block-navigation-item:nth-child(4) .wp-block-navigation-item__content{color:var(--zw-green)!important}
.zw-site-header .wp-block-navigation-item:nth-child(5) .wp-block-navigation-item__content{color:var(--zw-blue)!important}
.zw-site-header .wp-block-navigation-item:nth-child(6) .wp-block-navigation-item__content{color:var(--zw-purple)!important}
.zw-site-header .wp-block-navigation-item:nth-child(7) .wp-block-navigation-item__content{color:var(--zw-pink)!important}
.zw-site-header .wp-block-navigation-item:nth-child(8) .wp-block-navigation-item__content{color:var(--zw-red)!important}
.zw-site-header .wp-block-navigation-item__content:hover{transform:translateY(-2px)}
.zw-site-header .wp-block-navigation__responsive-container{
  background:rgba(255,250,240,.99)!important;
}
.zw-site-header .wp-block-navigation__responsive-container-content{
  padding:34px!important;
}

/* HERO */
.zw-hero{
  position:relative;
  min-height:clamp(620px,44vw,800px);
  overflow:hidden;
  background:
    linear-gradient(90deg,rgba(255,250,240,.94) 0%,rgba(255,250,240,.78) 17%,rgba(255,250,240,.28) 33%,rgba(255,250,240,0) 50%),
    url("assets/images/hero.webp") center center/cover no-repeat;
}
.zw-hero-inner{
  position:relative;
  width:100%;
  max-width:none!important;
  min-height:clamp(620px,44vw,800px);
  margin:0!important;
  padding:0!important;
}
.zw-hero-copy{
  position:absolute;
  z-index:5;
  left:10px;
  top:calc(var(--zw-header-h) + 6px);
  width:clamp(330px,31vw,500px);
  display:flex;
  flex-direction:column;
  align-items:center;
  margin:0;
  padding:0;
}
.zw-hero-logo{
  width:100%;
  aspect-ratio:2.5/1;
  background:url("assets/images/logo.png") left top/contain no-repeat;
}
.zw-hero-buttons{
  width:100%;
  margin-top:3px!important;
  justify-content:center!important;
}
.zw-hero-button .wp-block-button__link{
  min-height:50px;
  padding:13px 28px!important;
  border:0!important;
  border-radius:999px!important;
  color:#fff!important;
  background:linear-gradient(180deg,#49aa3d,#27872a 55%,#1e7423)!important;
  font-weight:900!important;
  font-size:1rem!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.42),0 5px 0 #155c1a,0 11px 22px rgba(25,100,35,.20)!important;
}
.zw-hero-button .wp-block-button__link:hover{
  transform:translateY(-2px);
  filter:brightness(1.06);
}
.zw-hero::after{
  content:"";
  position:absolute;
  z-index:4;
  left:-2%;right:-2%;bottom:-19px;
  height:50px;
  background:radial-gradient(68px 24px at 68px 0,transparent 66px,var(--zw-cream) 67px) 0 0/136px 48px repeat-x;
}

/* ALLGEMEINE BEREICHE */
.zw-section{
  padding:78px 24px;
  position:relative;
}
.zw-section:nth-of-type(even){background:#fff}
.zw-section:nth-of-type(odd){background:var(--zw-cream)}
.zw-section-inner{
  width:min(1120px,100%);
  margin:0 auto;
}
.zw-section h2{
  margin:0 0 18px;
  font-size:clamp(2rem,4vw,3rem);
  color:var(--section-color,var(--zw-green-dark));
  text-align:center;
}
.zw-section .zw-lead{
  width:min(820px,100%);
  margin:0 auto 34px;
  text-align:center;
  font-size:1.06rem;
  line-height:1.72;
}
.zw-content-card{
  padding:clamp(26px,4vw,48px);
  border-radius:var(--zw-radius);
  background:rgba(255,255,255,.92);
  border:1px solid rgba(30,110,42,.09);
  box-shadow:var(--zw-shadow);
}
.zw-content-card p,
.zw-content-card li{
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  line-height:1.78;
  font-size:1rem;
}
.zw-content-card h3{
  margin-top:2rem;
  color:var(--section-color,var(--zw-green-dark));
}
.zw-content-card ul{
  padding-left:1.25rem;
}
.zw-content-card li{
  margin:.55rem 0;
}

/* START/ÜBER MICH */
.zw-start{--section-color:var(--zw-green-dark)}
.zw-start-grid{
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:32px;
  align-items:start;
}
.zw-start-note{
  padding:26px;
  border-radius:22px;
  background:linear-gradient(135deg,#f5fff0,#fff6dc);
  border:1px solid rgba(38,133,43,.12);
}
.zw-start-note strong{color:var(--zw-green-dark)}
.zw-room-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
  margin:24px 0;
}
.zw-room-grid figure{
  margin:0;
  overflow:hidden;
  border-radius:20px;
  box-shadow:0 10px 24px rgba(0,0,0,.08);
}
.zw-room-grid img{
  width:100%;
  display:block;
  aspect-ratio:4/3;
  object-fit:cover;
}

/* Farbige Sektionen */
.zw-tagesablauf{--section-color:var(--zw-orange)}
.zw-erwartet{--section-color:var(--zw-blue)}
.zw-qualifikation{--section-color:var(--zw-green)}
.zw-erstgespraech{--section-color:var(--zw-purple)}
.zw-vertrag{--section-color:var(--zw-pink)}
.zw-eingewoehnung{--section-color:var(--zw-red)}
.zw-organisatorisches{--section-color:#a86c00}

/* Tagesablauf-Timeline */
.zw-timeline{
  margin:0;
  padding:0;
  list-style:none;
  counter-reset:step;
}
.zw-timeline li{
  position:relative;
  margin:0 0 18px;
  padding:18px 22px 18px 72px;
  border-radius:18px;
  background:#fff9ef;
  border-left:5px solid var(--zw-orange);
}
.zw-timeline li::before{
  counter-increment:step;
  content:counter(step);
  position:absolute;
  left:18px;top:16px;
  width:36px;height:36px;
  display:flex;align-items:center;justify-content:center;
  border-radius:50%;
  color:#fff;
  background:var(--zw-orange);
  font-weight:900;
}

/* Kontakt */
.zw-contact{
  padding:70px 24px;
  background:linear-gradient(135deg,#efffe9,#fff6d5);
}
.zw-contact-box{
  width:min(1040px,100%);
  margin:0 auto;
  padding:38px;
  border-radius:30px;
  background:#fff;
  box-shadow:var(--zw-shadow);
  text-align:center;
}
.zw-contact-box h2{color:var(--zw-green-dark);margin-top:0}
.zw-contact-data{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:12px 26px;
  margin-top:22px;
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
.zw-contact-data span{
  padding:10px 16px;
  border-radius:999px;
  background:#f4faef;
}

/* Footer */
.zw-footer{
  padding:34px 24px 28px;
  color:#fff;
  background:linear-gradient(180deg,#2f8f2e,#17671d);
  text-align:center;
}
.zw-footer p{margin:.3rem 0}
.zw-footer a{color:#fff}

/* Nach oben */
.zw-back-top{
  position:fixed;
  z-index:9990;
  right:22px;
  bottom:22px;
  width:48px;height:48px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:var(--zw-green);
  color:#fff!important;
  font-size:1.55rem;
  font-weight:900;
  text-decoration:none!important;
  box-shadow:0 5px 0 var(--zw-green-dark),0 10px 20px rgba(0,0,0,.18);
  opacity:0;
  visibility:hidden;
  transform:translateY(10px);
  transition:.2s ease;
}
.zw-back-top.is-visible{
  opacity:1;
  visibility:visible;
  transform:none;
}

/* Responsive */
@media(max-width:1250px){
  .zw-brand{flex-basis:145px;width:145px}
  .zw-site-header .wp-block-navigation{font-size:.74rem}
  .zw-site-header .wp-block-navigation__container{gap:10px!important}
}
@media(max-width:900px){
  :root{--zw-header-h:66px}
  body.admin-bar .zw-site-header{top:46px}
  .zw-brand{flex-basis:145px;width:145px;height:52px}
  .zw-site-header .wp-block-navigation__responsive-container-open{display:block!important}
  .zw-site-header .wp-block-navigation__responsive-container:not(.is-menu-open){display:none!important}
  .zw-hero{
    min-height:650px;
    background:
      linear-gradient(90deg,rgba(255,250,240,.96) 0%,rgba(255,250,240,.78) 36%,rgba(255,250,240,.05) 76%),
      url("assets/images/hero.webp") 64% center/cover no-repeat;
  }
  .zw-hero-inner{min-height:650px}
  .zw-hero-copy{
    left:10px;
    top:calc(var(--zw-header-h) + 5px);
    width:min(420px,58vw);
  }
  .zw-start-grid{grid-template-columns:1fr}
}
@media(max-width:620px){
  .zw-header-inner{padding-left:6px}
  .zw-brand{flex-basis:130px;width:130px}
  .zw-hero{
    min-height:585px;
    background:
      linear-gradient(90deg,rgba(255,250,240,.98) 0%,rgba(255,250,240,.78) 48%,rgba(255,250,240,.04) 88%),
      url("assets/images/hero.webp") 69% center/cover no-repeat;
  }
  .zw-hero-inner{min-height:585px}
  .zw-hero-copy{
    left:8px;
    top:calc(var(--zw-header-h) + 4px);
    width:min(300px,72vw);
  }
  .zw-hero-buttons{margin-top:0!important}
  .zw-hero-button .wp-block-button__link{
    min-height:44px;
    padding:11px 18px!important;
    font-size:.88rem!important;
  }
  .zw-section{padding:58px 16px}
  .zw-content-card{padding:24px 20px}
  .zw-room-grid{grid-template-columns:1fr}
  .zw-contact-box{padding:28px 20px}
  .zw-back-top{right:14px;bottom:14px;width:44px;height:44px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition:none!important}
}


/* =========================================================
   v2.1 – Header wirklich linksbündig
   ========================================================= */

/* Gutenberg-Constrained-Regeln vollständig neutralisieren */
.zw-site-header,
.zw-site-header.is-layout-constrained{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
}

.zw-site-header > .zw-header-inner,
.zw-site-header.is-layout-constrained > .zw-header-inner,
.zw-site-header .zw-header-inner{
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
  margin-inline-start:0!important;
  margin-inline-end:0!important;
  padding-left:8px!important;
  padding-right:14px!important;
  justify-content:flex-start!important;
  align-items:center!important;
}

/* WordPress setzt bei constrained-Gruppen teils auto-Margins */
.zw-site-header > :where(:not(.alignleft):not(.alignright):not(.alignfull)){
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
}

/* Logo direkt an den linken Rand */
.zw-brand{
  margin-left:0!important;
  margin-right:8px!important;
  flex:0 0 165px!important;
  width:165px!important;
  background-position:left center!important;
}

/* Menü ohne zusätzlichen linken Abstand */
.zw-site-header .wp-block-navigation{
  margin-left:0!important;
  margin-right:0!important;
  padding-left:0!important;
  flex:1 1 auto!important;
}

.zw-site-header .wp-block-navigation__container{
  justify-content:flex-start!important;
  margin-left:0!important;
  margin-right:0!important;
  padding-left:0!important;
}

/* Tablet */
@media(max-width:900px){
  .zw-site-header .zw-header-inner{
    padding-left:6px!important;
    padding-right:10px!important;
  }
  .zw-brand{
    flex-basis:145px!important;
    width:145px!important;
    margin-right:6px!important;
  }
}

/* Smartphone */
@media(max-width:620px){
  .zw-site-header .zw-header-inner{
    padding-left:4px!important;
  }
  .zw-brand{
    flex-basis:130px!important;
    width:130px!important;
  }
}


/* v2.2 – dynamische Inhaltsseiten im Onepager */
.zw-content-card .wp-block-image,
.zw-content-card figure{
  margin-top:1.4rem;
  margin-bottom:1.4rem;
}
.zw-content-card img{
  border-radius:18px;
}
.zw-content-card > :first-child{margin-top:0}
.zw-content-card > :last-child{margin-bottom:0}

/* Der Site Editor enthält jetzt nur noch wenige Blöcke;
   die eigentlichen Texte werden unter "Seiten" bearbeitet. */


/* =========================================================
   v2.5 – eigenes, unveränderbares Onepage-Menü
   ========================================================= */

.zw-main-nav{
  flex:1 1 auto;
  min-width:0;
}

.zw-main-nav-list{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:clamp(9px,1.1vw,20px);
  margin:0;
  padding:0;
  list-style:none;
}

.zw-main-nav-list li{margin:0;padding:0}

.zw-main-nav-list a{
  display:block;
  padding:10px 0;
  text-decoration:none!important;
  white-space:nowrap;
  font-size:clamp(.72rem,.78vw,.9rem);
  font-weight:900;
}

.zw-main-nav-list li:nth-child(1) a{color:var(--zw-red)}
.zw-main-nav-list li:nth-child(2) a{color:var(--zw-orange)}
.zw-main-nav-list li:nth-child(3) a{color:var(--zw-yellow)}
.zw-main-nav-list li:nth-child(4) a{color:var(--zw-green)}
.zw-main-nav-list li:nth-child(5) a{color:var(--zw-blue)}
.zw-main-nav-list li:nth-child(6) a{color:var(--zw-purple)}
.zw-main-nav-list li:nth-child(7) a{color:var(--zw-pink)}
.zw-main-nav-list li:nth-child(8) a{color:var(--zw-red)}

.zw-main-nav-list a:hover{
  transform:translateY(-2px);
  filter:brightness(.86);
}

.zw-menu-toggle{
  display:none;
  margin-left:auto;
  border:0;
  background:transparent;
  color:var(--zw-green-dark);
  font-size:2rem;
  line-height:1;
  cursor:pointer;
  padding:8px;
}

@media(max-width:900px){
  .zw-menu-toggle{display:block}

  .zw-main-nav{
    position:fixed;
    z-index:10000;
    left:0;
    right:0;
    top:var(--zw-header-h);
    padding:18px 20px 24px;
    background:rgba(255,250,240,.98);
    box-shadow:0 14px 28px rgba(22,72,27,.14);
    transform:translateY(-130%);
    opacity:0;
    visibility:hidden;
    transition:transform .2s ease,opacity .2s ease,visibility .2s ease;
  }

  body.admin-bar .zw-main-nav{
    top:calc(var(--zw-header-h) + 46px);
  }

  .zw-main-nav.is-open{
    transform:translateY(0);
    opacity:1;
    visibility:visible;
  }

  .zw-main-nav-list{
    flex-direction:column;
    align-items:flex-start;
    gap:3px;
  }

  .zw-main-nav-list a{
    padding:10px 4px;
    font-size:1rem;
  }
}


/* =========================================================
   v2.6 – Google Maps im Kontaktbereich
   ========================================================= */

.zw-map-wrap{
  width:100%;
  margin:30px auto 0;
}

.zw-google-map{
  display:block;
  width:100%;
  height:420px;
  border:0;
  border-radius:24px;
  background:#edf3e9;
  box-shadow:0 12px 30px rgba(25,78,31,.13);
}

.zw-map-link{
  display:inline-block;
  margin-top:14px;
  color:var(--zw-green-dark)!important;
  font-weight:900;
  text-decoration:none!important;
}

.zw-map-link:hover{
  text-decoration:underline!important;
}

@media(max-width:620px){
  .zw-google-map{
    height:320px;
    border-radius:18px;
  }
}


/* =========================================================
   v2.7 – Kontaktformular als Popup
   ========================================================= */

.zw-contact-actions{
  margin-top:24px;
  display:flex;
  justify-content:center;
  gap:12px;
  flex-wrap:wrap;
}

.zw-contact-popup-button{
  appearance:none;
  border:0;
  border-radius:999px;
  padding:14px 26px;
  color:#fff;
  background:linear-gradient(180deg,#49aa3d,#27872a 55%,#1e7423);
  font:900 1rem/1.2 ui-rounded,"Trebuchet MS","Arial Rounded MT Bold",Arial,sans-serif;
  cursor:pointer;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.42),
    0 5px 0 #155c1a,
    0 11px 22px rgba(25,100,35,.20);
  transition:transform .16s ease,filter .16s ease;
}

.zw-contact-popup-button:hover{
  transform:translateY(-2px);
  filter:brightness(1.06);
}

.zw-contact-popup-button:focus-visible{
  outline:3px solid #ffd84d;
  outline-offset:4px;
}

.zw-modal[hidden]{
  display:none!important;
}

.zw-modal{
  position:fixed;
  z-index:20000;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
}

.zw-modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(18,42,22,.64);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
}

.zw-modal-dialog{
  position:relative;
  z-index:1;
  width:min(680px,100%);
  max-height:min(86vh,820px);
  overflow:auto;
  padding:34px;
  border-radius:28px;
  background:#fffdf7;
  box-shadow:0 28px 70px rgba(0,0,0,.28);
}

.zw-modal-dialog h2{
  margin:0 42px 8px 0;
  color:var(--zw-green-dark);
  font-size:clamp(1.8rem,3.4vw,2.6rem);
}

.zw-modal-intro{
  margin:0 0 24px;
  color:#536156;
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  line-height:1.6;
}

.zw-modal-close{
  position:absolute;
  top:16px;
  right:16px;
  width:42px;
  height:42px;
  border:0;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#edf7e9;
  color:var(--zw-green-dark);
  font-size:1.7rem;
  cursor:pointer;
}

.zw-modal-close:hover{
  background:#dff0da;
}

.zw-contact-form{
  display:grid;
  gap:17px;
}

.zw-form-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}

.zw-field{
  display:grid;
  gap:7px;
  text-align:left;
}

.zw-field label,
.zw-privacy-label{
  color:#26372a;
  font:700 .95rem/1.35 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}

.zw-field input,
.zw-field textarea{
  width:100%;
  min-height:48px;
  border:1px solid #bfd2ba;
  border-radius:14px;
  padding:11px 13px;
  background:#fff;
  color:#24352a;
  font:400 1rem/1.45 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}

.zw-field textarea{
  min-height:150px;
  resize:vertical;
}

.zw-field input:focus,
.zw-field textarea:focus{
  outline:3px solid rgba(38,133,43,.18);
  border-color:var(--zw-green);
}

.zw-privacy{
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:12px 14px;
  border-radius:14px;
  background:#f4faef;
}

.zw-privacy input{
  margin-top:3px;
  accent-color:var(--zw-green);
}

.zw-privacy-label a{
  color:var(--zw-green-dark);
  font-weight:900;
}

.zw-form-submit{
  justify-self:start;
  border:0;
  border-radius:999px;
  padding:13px 26px;
  color:#fff;
  background:var(--zw-green);
  box-shadow:0 5px 0 var(--zw-green-dark);
  font-weight:900;
  cursor:pointer;
}

.zw-form-submit:hover{
  transform:translateY(-1px);
  filter:brightness(1.05);
}

.zw-form-status{
  margin:0 0 18px;
  padding:12px 15px;
  border-radius:14px;
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}

.zw-form-status.success{
  color:#155d1b;
  background:#e8f8e5;
  border:1px solid #b9dfb6;
}

.zw-form-status.error{
  color:#872026;
  background:#fff0ef;
  border:1px solid #efc1bd;
}

.zw-hp-field{
  position:absolute!important;
  left:-9999px!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
}

body.zw-modal-open{
  overflow:hidden;
}

@media(max-width:620px){
  .zw-modal{
    padding:12px;
    align-items:flex-end;
  }

  .zw-modal-dialog{
    max-height:92vh;
    border-radius:24px 24px 12px 12px;
    padding:28px 20px 22px;
  }

  .zw-form-row{
    grid-template-columns:1fr;
  }

  .zw-form-submit{
    width:100%;
  }
}


/* =========================================================
   v2.8 – vorhandene Betreuungsplatzanfrage im Popup
   ========================================================= */

.zw-form-iframe{
  display:block;
  width:100%;
  height:min(76vh,820px);
  min-height:620px;
  border:0;
  border-radius:18px;
  background:#fff;
}

.zw-modal-dialog.zw-form-dialog{
  width:min(860px,96vw);
  padding:24px;
}

.zw-form-dialog .zw-modal-intro{
  margin-right:50px;
}

/* Wenn die bestehende Formularseite im Popup geladen wird,
   Header/Footer des Themes in diesem Frame ausblenden. */
body.zw-popup-frame .zw-site-header,
body.zw-popup-frame .zw-footer,
body.zw-popup-frame .zw-back-top{
  display:none!important;
}

body.zw-popup-frame{
  background:#fff!important;
}

body.zw-popup-frame .wp-site-blocks{
  padding:0!important;
  margin:0!important;
}

body.zw-popup-frame .wp-site-blocks > main,
body.zw-popup-frame .zw-page-shell,
body.zw-popup-frame main{
  padding-top:14px!important;
  margin-top:0!important;
  min-height:auto!important;
}

body.zw-popup-frame .zw-page-card{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:14px!important;
  border-radius:0!important;
  box-shadow:none!important;
}

@media(max-width:620px){
  .zw-modal-dialog.zw-form-dialog{
    width:100%;
    padding:16px;
  }

  .zw-form-iframe{
    height:82vh;
    min-height:560px;
    border-radius:14px;
  }
}


/* =========================================================
   v2.9 – milchigen Schleier links entfernen, weicher Übergang unten
   ========================================================= */

/* Hero-Hintergrund ohne milchigen Weißschleier links */
.zw-hero{
  background:
    url("assets/images/hero.webp") center center/cover no-repeat !important;
}

/* Den bisherigen gerahmten / welligen Abschluss entfernen */
.zw-hero::after{
  content:"" !important;
  position:absolute !important;
  left:0 !important;
  right:0 !important;
  bottom:0 !important;
  height:120px !important;
  background:
    linear-gradient(
      to bottom,
      rgba(255,250,240,0) 0%,
      rgba(255,250,240,0.18) 38%,
      rgba(255,250,240,0.55) 68%,
      rgba(255,250,240,0.88) 88%,
      var(--zw-cream) 100%
    ) !important;
  pointer-events:none !important;
}

/* Tablet */
@media(max-width:900px){
  .zw-hero{
    background:
      url("assets/images/hero.webp") 64% center/cover no-repeat !important;
  }

  .zw-hero::after{
    height:110px !important;
  }
}

/* Smartphone */
@media(max-width:620px){
  .zw-hero{
    background:
      url("assets/images/hero.webp") 69% center/cover no-repeat !important;
  }

  .zw-hero::after{
    height:95px !important;
  }
}


/* =========================================================
   v3.0 – Schriftzug, Button und Header feiner abgestimmt
   ========================================================= */

/* Noch etwas eleganterer, leichterer Header */
.zw-site-header{
  background:rgba(255,255,255,.54)!important;
  border-bottom:1px solid rgba(255,255,255,.55)!important;
  box-shadow:0 8px 24px rgba(24,72,32,.08)!important;
  backdrop-filter:blur(14px)!important;
  -webkit-backdrop-filter:blur(14px)!important;
}

.zw-header-inner{
  gap:14px!important;
}

.zw-brand{
  filter:
    drop-shadow(0 3px 10px rgba(255,255,255,.55))
    drop-shadow(0 3px 8px rgba(42,86,42,.14))!important;
}

/* Menü optisch feiner und besser lesbar auf dem weicheren Hero */
.zw-main-nav-list{
  gap:clamp(10px,1.15vw,22px)!important;
}

.zw-main-nav-list a{
  position:relative!important;
  padding:8px 0!important;
  letter-spacing:.01em!important;
  text-shadow:0 1px 0 rgba(255,255,255,.55)!important;
}

.zw-main-nav-list a::after{
  content:""!important;
  position:absolute!important;
  left:0!important;
  right:0!important;
  bottom:3px!important;
  height:2px!important;
  border-radius:999px!important;
  background:currentColor!important;
  transform:scaleX(0)!important;
  transform-origin:center!important;
  opacity:.22!important;
  transition:transform .18s ease,opacity .18s ease!important;
}

.zw-main-nav-list a:hover{
  transform:translateY(-1px)!important;
  filter:saturate(.96) brightness(.92)!important;
}

.zw-main-nav-list a:hover::after{
  transform:scaleX(1)!important;
  opacity:.55!important;
}

/* Großer Schriftzug harmonischer und klarer */
.zw-hero-copy{
  top:calc(var(--zw-header-h) + 10px)!important;
  left:12px!important;
  width:clamp(330px,31vw,520px)!important;
}

.zw-hero-logo{
  filter:
    drop-shadow(0 8px 18px rgba(255,255,255,.34))
    drop-shadow(0 10px 18px rgba(46,91,43,.14))!important;
}

/* Button weicher, hochwertiger und etwas luftiger */
.zw-hero-buttons{
  margin-top:10px!important;
}

.zw-hero-button .wp-block-button__link,
.zw-contact-popup-button{
  min-height:52px!important;
  padding:14px 30px!important;
  border:1px solid rgba(255,255,255,.36)!important;
  border-radius:999px!important;
  color:#fff!important;
  background:
    linear-gradient(180deg,#62be54 0%, #46a63e 48%, #2f8c30 100%)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.34),
    0 3px 0 #1f6d21,
    0 12px 22px rgba(29,108,34,.16)!important;
  font-weight:900!important;
  letter-spacing:.01em!important;
}

.zw-hero-button .wp-block-button__link:hover,
.zw-contact-popup-button:hover{
  transform:translateY(-2px)!important;
  filter:brightness(1.04)!important;
}

/* Kontaktbereich-Button konsistent halten */
.zw-contact-popup-button{
  font-size:1rem!important;
}

/* Mobile Feintuning */
@media(max-width:900px){
  .zw-site-header{
    background:rgba(255,255,255,.62)!important;
  }

  .zw-hero-copy{
    top:calc(var(--zw-header-h) + 8px)!important;
    left:10px!important;
    width:min(420px,58vw)!important;
  }

  .zw-main-nav{
    background:rgba(255,250,240,.96)!important;
    box-shadow:0 18px 34px rgba(22,72,27,.12)!important;
  }

  .zw-main-nav-list a{
    text-shadow:none!important;
  }
}

@media(max-width:620px){
  .zw-site-header{
    background:rgba(255,255,255,.68)!important;
  }

  .zw-hero-copy{
    top:calc(var(--zw-header-h) + 6px)!important;
    left:8px!important;
    width:min(300px,72vw)!important;
  }

  .zw-hero-buttons{
    margin-top:6px!important;
  }

  .zw-hero-button .wp-block-button__link,
  .zw-contact-popup-button{
    min-height:46px!important;
    padding:12px 18px!important;
    font-size:.9rem!important;
  }
}


/* =========================================================
   v3.3 – Kontakt im Hauptmenü
   ========================================================= */

.zw-main-nav-list li:nth-child(9) a{
  color:var(--zw-green);
}


/* =========================================================
   v3.4 – Footer
   ========================================================= */

.zw-footer{
  margin-top:0!important;
  padding:34px 20px 30px!important;
  background:rgba(240,248,235,.96)!important;
  border-top:1px solid rgba(50,120,55,.12)!important;
}

.zw-footer-inner{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  text-align:center;
  color:#4b5d4d;
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:.93rem;
  line-height:1.55;
}

.zw-footer-nav{
  display:flex;
  justify-content:center;
  align-items:center;
  flex-wrap:wrap;
  gap:9px;
  margin-bottom:4px;
}

.zw-footer a{
  color:var(--zw-green-dark)!important;
  font-weight:800;
  text-decoration:none!important;
}

.zw-footer a:hover{
  text-decoration:underline!important;
}

.zw-footer-separator{
  opacity:.45;
}

.zw-footer-copy,
.zw-footer-design{
  margin:0!important;
}

.zw-footer-design{
  font-size:.88rem;
  opacity:.9;
}

@media(max-width:520px){
  .zw-footer{
    padding:28px 16px 26px!important;
  }

  .zw-footer-nav{
    gap:7px;
    font-size:.9rem;
  }

  .zw-footer-copy,
  .zw-footer-design{
    font-size:.84rem;
  }
}


/* =========================================================
   v3.6 – Zurück-nach-oben-Pfeil wieder global aktiv
   ========================================================= */

.zw-back-top{
  cursor:pointer;
  border:1px solid rgba(255,255,255,.38);
}

.zw-back-top:hover{
  transform:translateY(-2px)!important;
  filter:brightness(1.06);
}

.zw-back-top:focus-visible{
  outline:3px solid #ffd84d;
  outline-offset:4px;
}

@media(max-width:620px){
  .zw-back-top{
    right:16px;
    bottom:16px;
    width:44px;
    height:44px;
    font-size:1.35rem;
  }
}


/* =========================================================
   v3.7 – optionale Darstellung für Popup-Textlinks
   ========================================================= */

.zw-popup-textlink{
  color:var(--zw-green-dark)!important;
  font-weight:900;
  text-decoration:underline;
  text-decoration-thickness:2px;
  text-underline-offset:3px;
  cursor:pointer;
}

.zw-popup-textlink:hover{
  color:var(--zw-green)!important;
}




/* =========================================================
   v4.3 – bereinigter Hero + Betreuungszeiten-Infobox
   ========================================================= */

.zw-hero .zw-contact-actions{
  margin-top:10px!important;
  display:flex!important;
  justify-content:center!important;
}

.zw-hero .zw-contact-popup-button{
  white-space:nowrap;
}

.zw-care-times{
  width:min(360px,92%);
  margin:18px auto 0;
  padding:15px 20px 16px;
  border:1px solid rgba(255,255,255,.58);
  border-radius:20px;
  background:rgba(255,255,255,.78);
  box-shadow:0 10px 26px rgba(31,92,38,.12);
  backdrop-filter:blur(9px);
  -webkit-backdrop-filter:blur(9px);
  text-align:center;
  color:#29472d;
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}

.zw-care-times-title{
  display:block;
  margin-bottom:5px;
  color:var(--zw-green-dark);
  font-size:1.05rem;
  font-weight:900;
}

.zw-care-times-days,
.zw-care-times-hours,
.zw-care-times-holidays{
  display:block;
  font-weight:800;
  line-height:1.4;
}

.zw-care-times-hours{
  margin-top:2px;
  color:#253e29;
}

.zw-care-times-holidays{
  margin-top:5px;
  font-size:.87rem;
  font-weight:700;
  color:#68756a;
}

@media(max-width:620px){
  .zw-care-times{
    width:min(290px,94%);
    margin-top:12px;
    padding:12px 14px 13px;
    border-radius:17px;
    font-size:.88rem;
  }

  .zw-care-times-title{
    font-size:.96rem;
  }

  .zw-care-times-holidays{
    font-size:.8rem;
  }
}
