/* === Base === */
:root{
  --bg:#fff;
  --fg:#1d2a24;
  --muted:#5f7a6f;
  --brand:#2f7a59;
  --brand-2:#4fa87f;
  --surface:#f3f7f5;
  --ring: rgba(47,122,89,.35);
  --shadow: 0 10px 25px rgba(0,0,0,.08);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font:16px/1.6 system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji","Segoe UI Emoji";
  color:var(--fg);
  background:var(--bg);
  overflow-x:hidden;
}

.wrap{width:min(1100px, 94vw); margin:auto}

img{max-width:100%; display:block}

h1,h2,h3{line-height:1.2; margin:0 0 .6rem}
h1{font-size: clamp(1.8rem, 3vw + 1rem, 3rem)}
h2{font-size: clamp(1.6rem, 2.2vw + .8rem, 2.2rem)}
p{margin:0 0 1rem}

.section{padding: clamp(3rem, 4vw, 5rem) 0}
.section.light{background:var(--surface)}

.section-lead{color:var(--muted); margin-bottom:2rem}

/* === Header === */
.site-header{
  position:sticky; top:0; z-index:9999;
  background: color-mix(in oklab, white 80%, var(--surface) 20%);
  backdrop-filter: blur(8px);
  border-bottom:1px solid #e6eee9;
  box-shadow: 0 6px 16px rgba(0,0,0,.05);
}
.site-header .wrap{display:flex; align-items:center; gap:1rem; padding:.7rem 0}
.brand{display:flex; align-items:center; gap:.65rem; text-decoration:none; color:inherit}
.brand img{width:42px; height:auto; border-radius:.35rem}
.brand-text{font-weight:700; letter-spacing:.3px}

.mainnav ul{display:flex; align-items:center; gap:1rem; list-style:none; margin:0; padding:0}
.mainnav a{display:block; padding:.6rem .9rem; border-radius:999px; text-decoration:none; color:var(--fg)}
.mainnav a:hover, .mainnav a:focus{background:var(--surface); outline:2px solid transparent; box-shadow:0 0 0 3px var(--ring)}

.has-submenu{position:relative}
.submenu{
  position:absolute; left:0; top:100%;
  background:#fff; border:1px solid #e6eee9; border-radius:12px;
  box-shadow: var(--shadow);
  padding:.4rem; min-width:200px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(5px);
  transition: all .2s ease;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

@media (min-width: 861px) {
  .has-submenu:hover .submenu,
  .has-submenu:focus-within .submenu{
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }
}

.submenu li{list-style:none; width: 100%;}
.submenu a {
  display: block;
  padding: .5rem .9rem;
  border-radius: 8px;
  text-decoration: none;
  color: var(--fg);
  text-align: left; 
}

.nav-toggle{display:none; margin-left:auto; border:0; background:transparent; cursor:pointer}
.nav-toggle span{display:block; width:26px; height:2px; background:var(--fg); margin:6px 0; border-radius:2px}

@media (max-width: 860px){
  .mainnav{position:fixed; inset:66px 0 auto 0; background:#fff; transform:translateY(-120%); transition:.3s; box-shadow:0 12px 30px rgba(0,0,0,.12)}
  .mainnav.open{transform:translateY(0)}
  .mainnav ul{flex-direction:column; align-items:flex-start; padding:1rem}

  .has-submenu .submenu {
    display: block;
    position: relative;
    opacity: 1;
    visibility: visible;
    transform: none;
    transition: none;
    top: auto;
    left: auto;
    border: none;
    box-shadow: none;
    padding-left: 1.5rem;
    background: transparent;
    align-items: flex-start;
  }
  
  .nav-toggle{display:block}
}

/* === Hero === */
.hero{position:relative; min-height:68vh; display:grid; place-items:center; text-align:center}
.hero-bg{position:absolute; inset:0; z-index:-1; overflow:hidden}
.hero-bg img{width:100%; height:100%; object-fit:cover; filter:saturate(1.1) brightness(.9)}
.hero::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(to bottom, rgba(255,255,255,.5), rgba(255,255,255,.95));
  z-index:-1;
}
.hero-content{padding: min(8vw, 4rem) 1rem 2rem}
.hero-mark{width:86px; margin:0 auto 1rem; opacity:.9}
.lead{color:var(--muted); font-size:clamp(1rem, 1.2vw + .8rem, 1.25rem)}

.cta-group{display:flex; gap:.8rem; justify-content:center; margin-top:1rem; flex-wrap:wrap}
.btn{border:2px solid var(--brand); color:var(--brand); padding:.7rem 1.1rem; border-radius:999px; text-decoration:none; font-weight:600}
.btn.primary{background:var(--brand); color:#fff}
.btn.ghost:hover{background:var(--surface)}
.btn:hover{filter:brightness(1.05)}

/* === GEÄNDERT: Neue Klasse für die Buttons in den Angeboten === */
.card .btn{
  padding: .5rem .9rem; /* Etwas kleiner */
  font-size: .95rem; /* Schriftgröße anpassen */
  align-self: center; /* Mittig zentrieren */
  display: block; /* Damit margin auto funktioniert */
  width: fit-content; /* Passt sich dem Inhalt an */
  margin-top: auto; /* Sorgt für gleichmäßigen Abstand unten */
  margin-inline: auto; /* Horizontal zentrieren */
}

.vine-divider{color:var(--brand); margin-top:1rem}
.vine{width:100%; height: 120px; display:block} 

/* === Intro === */
.garden-quote{
  border-left: 4px solid var(--brand);
  border-right: 4px solid var(--brand);
  padding: .6rem 1.2rem;
  margin: 0 0 1rem;
  background: color-mix(in oklab, white 90%, var(--brand) 5%);
  border-radius: 12px;
  text-align: center;
}
.garden-quote.secondary{border-left-color:var(--brand-2)}
.intro-text{font-size:1.05rem}

/* === Grid === */
.grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:1.1rem}
@media (max-width: 920px){.grid{grid-template-columns:repeat(2, 1fr)}}
@media (max-width: 620px){.grid{grid-template-columns:1fr}}

/* === Offer Cards === */
.card{
  background:#fff; border:1px solid #e6eee9; border-radius:18px; padding:1.1rem; box-shadow: var(--shadow);
  display:flex; flex-direction:column; gap:.5rem
}
.card .icon{width:48px; height:48px}
.card h3{margin:.2rem 0 .3rem}
.card ul{margin:.2rem 0 0 1.2rem}

/* === About === */
.about{display:grid; grid-template-columns: 1fr 1.2fr; gap:1.4rem; align-items:center}
.about-photo img{border-radius:16px; box-shadow: var(--shadow)}
.checklist{list-style:none; padding:0; margin:1rem 0 0}
.checklist li{margin:.4rem 0; padding-left:1.8rem; position:relative}
.checklist li::before{
  content:""; position:absolute; left:0; top:.35rem;
  width:1rem; height:1rem; background:url('./img/icon_blatt.webp') center/contain no-repeat;
}
@media (max-width: 860px){.about{grid-template-columns: 1fr}}

/* === Prices === */
.prices .card{align-items:flex-start}
.prices .card h3{font-size:1.15rem}
.note{color:var(--muted); margin-top:1rem}

/* === Floral separators === */
.floral-sep{display:grid; place-items:center; padding:1.4rem 0}
.floral-sep img{width:min(360px, 86vw); opacity:.9}

/* === Legal === */
.legal-list{margin:.6rem 0 0 1rem}
.small{font-size:.9rem; color:var(--muted)}

/* === Footer === */
.site-footer{padding:2rem 0; background:linear-gradient(180deg, #f7faf8, #f0f6f2)}
.site-footer .wrap{display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap}
.footer-brand{display:flex; align-items:center; gap:.6rem}
.footer-brand img{width:28px}

/* === Grow-on-scroll animation === */
[data-grow] {opacity:0; transform: translateY(12px) scale(.98); transition: opacity .8s ease, transform .8s ease}
[data-grow].in {opacity:1; transform: none}

.vine path{
  stroke-dasharray: var(--vine-length, 1000) var(--vine-length, 1000);
  stroke-dashoffset: var(--vine-offset, 1000);
  transition: stroke-dashoffset 1.8s ease;
  stroke-linecap: round;
}
.vine.in path{stroke-dashoffset: 0}

/* === Feature blocks === */
.eyebrow{letter-spacing:.12em; text-transform:uppercase; font-weight:700; color:var(--brand-2); margin:0 0 .4rem; font-size:.9rem}
.two-cols{display:grid; grid-template-columns:1fr 1fr; gap:1rem}

/* === NEU: Styles für den "Von Mensch zu Mensch" Block === */
.feature-grid {
  display: grid;
  align-items: center;
  gap: 1.4rem;
}
.feature-photo img {
  border-radius: 16px;
  box-shadow: var(--shadow);
}
@media (max-width: 860px) {
  .feature-grid {
    grid-template-columns: 1fr; /* Mobile: 1 Spalte (Bild oben, Text unten) */
  }
}
@media (min-width: 861px) {
  .feature-grid {
    grid-template-columns: 1.2fr 1fr; /* Desktop: 2 Spalten (Text links, Bild rechts) */
  }
  .feature-grid .feature-text {
    order: -1; /* Text visuell vor das Bild schieben */
  }
}
/* === ENDE DER ÄNDERUNG === */

.two-cols ul{margin:0; padding-left:1.1rem}
.two-cols li{margin:.4rem 0}
@media (max-width: 820px){.two-cols{grid-template-columns:1fr}}


/* === Contact form === */
.contact-form{max-width:820px; margin:1.5rem auto 0; text-align:left}
.contact-form .row{display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-bottom:1rem}
.contact-form .row.align{align-items:center; grid-template-columns:1fr auto}
.contact-form label{display:block; font-weight:600; margin:.2rem 0 .4rem}
.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form textarea{
  width:100%; padding:.9rem 1rem; border:1px solid #e1e9e4; border-radius:12px; font:inherit;
  box-shadow: inset 0 1px 0 rgba(0,0,0,.02);
}
.contact-form textarea{min-height:160px; resize:vertical}
.contact-form .consent{font-weight:400; font-size:.95rem; display:block; gap:.5rem; align-items:flex-start}
.contact-form .consent input{margin-top:.25rem}
.contact-form .hp{display:none !important}
.contact-form .form-status{margin-top:.6rem; color:var(--muted)}
@media (max-width: 680px){
  .contact-form .row{grid-template-columns:1fr}
  .contact-form .row.align{grid-template-columns:1fr}
  .contact-form button{margin-top:.6rem}
}

/* === Utopia hero refinements === */
.hero .hero-icon{
  display:block;
  max-width: 280px;
  width: 100%;
  height: auto;
  border-radius: 16px;
  box-shadow: var(--shadow);
  margin: 0 auto;
}
.hero .hero-emblem{
  display:block;
  width:48px;
  height:auto;
  margin: .6rem auto 0;
  opacity: .9;
}
.hero .hero-divider{
  display:block;
  max-width: 180px;
  width: 60%;
  height:auto;
  margin: .6rem auto 0;
}
.hero .hero-divider-small{
  display:block;
  width: 30%;
  margin: .6rem auto 0;
}
.callout{
  background:var(--surface);
  border-radius:16px;
  padding: 1.2rem 1.2rem;
  box-shadow: var(--shadow);
}
details{border-top:1px solid #e6eee9; padding:.6rem 0}
details summary{cursor:pointer; font-weight:600; list-style:none}
details[open] summary{color:var(--brand)}
/* Typography tweaks for richer pages */
.section.content p{max-width: 72ch; line-height:1.7}
.section.content .cols{display:grid; grid-template-columns:1fr; gap:1rem}
@media (min-width: 860px){
  .section.content .cols{grid-template-columns:1fr 1fr}
}

@media (min-width: 1024px){ .wrap{ max-width: 1200px; } }


/* === Utopia content column centering === */
.section.content .wrap > *{
  max-width: 80ch;
  margin-left: auto;
  margin-right: auto;
}
.section.content .wrap ul{ padding-left: 1.2rem; } /* keep bullets readable */


/* === Utopia content column centering v2 === */
.section.content .wrap{
  display: flex;
  flex-direction: column;
  align-items: center;
}
.section.content .wrap > *{
  width: 100%;
  max-width: 80ch;
}
.section.content .wrap ul{
  padding-left: 1.2rem;
}
.section.content .wrap .callout{
  width: 100%;
}

/* === Utopia h2 center === */
.section.content .wrap h2{
  text-align: center;
}


/* === Auto-inserted by Utopia: make offer images full-width === */
.angebot-bild{display:block;width:100% !important;max-width:100% !important;height:auto !important;margin:2rem auto;border-radius:12px}
@media (max-width: 640px){.angebot-bild{margin:1.25rem auto}}



/* === Utopia spacing tweaks (v3) === */
.angebot-bild{display:block;width:100% !important;max-width:100% !important;height:auto !important;margin:1rem auto 0.5rem !important;border-radius:12px}
.angebot-bild + h1, .angebot-bild + h2, .angebot-bild + h3 {margin-top:0.5rem !important}
.faq-heading {margin-top:3.5rem !important}
.footer-brand{display:inline-flex;align-items:center;gap:.5rem}
.footer-brand img{height:24px;width:auto;vertical-align:middle;display:inline-block}
@media (min-width: 768px){.footer-brand img{height:28px}}

.center {
  display: block;
  margin-left: auto;
  margin-right: auto;
  width: 50%;
}

/* Align h3/h4 to custom list indent (1.2rem + 1.8rem = 3rem) */
.section.content .wrap h3,
.section.content .wrap h4 {
  text-align: center;
}

/* Optional: etwas kompakter auf kleinen Screens */
@media (max-width: 640px){
  .section.content .wrap h3,
  .section.content .wrap h4 {
    
  }
}

:root{
  --moss-green: #3E745A;
  --moss-green-hover: #4A8A71;
  --moss-green-active: #2F5D46;
}

/* Nur innerhalb des Kontakt-Blocks */
#kontakt-standort a:not(.btn){
  color: var(--moss-green);
  text-decoration: none;
}
#kontakt-standort a:not(.btn):visited{
  color: var(--moss-green);
}
#kontakt-standort a:not(.btn):hover,
#kontakt-standort a:not(.btn):focus-visible{
  color: var(--moss-green-hover);
  text-decoration: underline;
}
#kontakt-standort a:not(.btn):active{
  color: var(--moss-green-active);
}

/* optional: deaktivierte Links nur dort */
#kontakt-standort a[aria-disabled="true"]{
  pointer-events: none;
  opacity: .6;
  text-decoration: none;
}

/* ===== Waldbaden (nur diese Seite) ===== */
/* Scope über <body class="page-waldbaden"> */
.page-waldbaden .hero-divider{
  display:block;
  width:min(280px, 60vw);
  height:auto;
  margin:.6rem auto 1.2rem;
}

/* H2-Trenner unter den Abschnittsüberschriften */
.page-waldbaden .section.content h2{
  text-align:center;
  margin-bottom:.5rem;
}
.page-waldbaden .section.content h2::after{
  content:"";
  display:block;
  width:min(280px, 60vw);
  height:20px;
  margin:.6rem auto 0;
  background-image:url("https://www.innerer-garten.de/img/innerer_wandel_trenner.webp");
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
  opacity:.95;
}

/* Soft-Hintergrundfarbe + Icon für Chips */
.page-waldbaden{
  --moss-green-soft: rgba(62,116,90,.08); /* Fallback */
  --icon-check: url("data:image/svg+xml;utf8,\
  <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'>\
    <polyline points='20 6 9 17 4 12' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/>\
  </svg>");
}
@supports (color-mix(in srgb, red, white)){
  .page-waldbaden{ --moss-green-soft: color-mix(in srgb, var(--moss-green, #3E745A) 8%, transparent); }
}

/* Vorteils-Liste (Chips mit kleinem SVG-Icon) */
.page-waldbaden .feature-list{
  list-style:none;
  padding:0;
  margin:1rem auto 1.5rem;
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap:12px 18px;
  max-width:900px;
}
.page-waldbaden .feature-list li{
  display:flex;
  align-items:center;
  gap:12px;
  padding:12px 14px;
  border-radius:16px;
  background: var(--moss-green-soft);
  line-height:1.35;
}
.page-waldbaden .feature-list li::before{
  content:"";
  width:18px; height:18px;
  flex:0 0 18px;
  background: var(--moss-green, #3E745A);
  -webkit-mask: var(--icon-check) no-repeat center / contain;
          mask: var(--icon-check) no-repeat center / contain;
  opacity:.95;
}
.page-waldbaden .feature-list li:hover{
  background: color-mix(in srgb, var(--moss-green, #3E745A) 12%, transparent);
}

/* Callout-Box unter der Liste */
.page-waldbaden .callout{
  background: var(--moss-green-soft);
  border-radius:24px;
  padding:18px 22px;
  box-shadow: 0 8px 28px rgba(0,0,0,.06);
  text-align:center;
}
.page-waldbaden .callout .btn{ margin-top:.5rem; }

/* Optional: hübschere Standard-ULs auf dieser Seite (außer feature-list) */
.page-waldbaden .section.content ul:not(.feature-list){
  list-style:none;
  padding-left:0;
  margin:.75rem auto 1.25rem;
  max-width:750px;
}
.page-waldbaden .section.content ul:not(.feature-list) li{
  position:relative;
  padding-left:28px;
  margin:.4rem 0;
}
.page-waldbaden .section.content ul:not(.feature-list) li::before{
  content:"";
  position:absolute; left:0; top:.5em;
  width:16px; height:16px;
  background: var(--moss-green, #3E745A);
  border-radius:50%;
  opacity:.25;
}