@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600;9..144,700&family=Work+Sans:wght@400;500;600;700&display=swap');

:root{
  /* -- Kernpalette (aus Zieldesign) -- */
  --moss:#15301E;          /* tiefes Waldgrün – Haupttext auf Creme, dunkle Flächen */
  --moss-2:#1F4029;        /* etwas hellere Grünfläche, für Cards auf dunklem Grund */
  --moss-deep:#0E2115;     /* fast schwarzes Grün, für Footer/Verläufe */
  --leaf:#3E8449;          /* kräftiges Button-/Akzentgrün */
  --leaf-dark:#2C6438;     /* Hover-Zustand */
  --sage:#7C9473;          /* gedämpftes Sekundärgrün (Badges, Icons) */
  --clay:#A8703F;          /* Terracotta – Transportservice-Akzent */
  --gold:#E7B23A;          /* warmes Gold – Sterne/Ratings */
  --cream:#F7F2E6;         /* warmer Seitenhintergrund */
  --paper:#FFFFFF;         /* Kartenflächen auf Creme */
  --charcoal:#20241D;      /* Fließtext */
  --line: rgba(32,36,29,0.12);

  /* -- Radien & Schatten -- */
  --radius-lg:28px;
  --radius-md:20px;
  --radius-sm:12px;
  --radius-pill:999px;
  --shadow-sm:0 6px 18px rgba(21,48,30,0.08);
  --shadow-md:0 14px 34px rgba(21,48,30,0.12);
  --shadow-lg:0 24px 60px rgba(14,33,21,0.20);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--cream);
  color:var(--charcoal);
  font-family:'Work Sans', sans-serif;
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.display{
  font-family:'Fraunces', serif;
  font-weight:500;
  letter-spacing:-0.01em;
  color:var(--moss);
}
a{color:inherit;}
img{max-width:100%; display:block;}
.wrap{max-width:1120px; margin:0 auto; padding:0 32px;}

/* Header / Tabs */
header{
  position:sticky; top:0; z-index:50;
  background:rgba(247,242,230,0.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.nav{
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 0;
}
.logo{font-family:'Fraunces', serif; font-weight:600; font-size:1.2rem; color:var(--moss); text-decoration:none; line-height:1.2; display:flex; align-items:center; gap:12px;}
.logo span{color:var(--clay); display:block; font-family:'Work Sans',sans-serif; font-weight:500; font-size:0.68rem; letter-spacing:0.14em; text-transform:uppercase; margin-top:2px;}
.logo img{height:52px; width:52px; object-fit:contain; display:block;}
.tabs{list-style:none; display:flex; gap:2px;}
.tabs a{
  text-decoration:none; font-size:0.92rem; font-weight:500;
  color:var(--charcoal); opacity:0.72; transition:opacity .2s, background .2s, color .2s;
  padding:9px 16px; border-radius:var(--radius-pill);
}
.tabs a:hover, .tabs a:focus-visible{opacity:1; background:rgba(62,132,73,0.10);}
.tabs a.active{opacity:1; color:var(--moss); font-weight:600; background:rgba(62,132,73,0.14);}
.nav-cta{
  padding:11px 24px; border:1.5px solid var(--leaf); border-radius:var(--radius-pill);
  font-size:0.88rem; font-weight:600; text-decoration:none; color:var(--moss);
  transition: background .2s, color .2s, box-shadow .2s; white-space:nowrap;
}
.nav-cta:hover{background:var(--leaf); color:#fff; box-shadow:var(--shadow-sm);}

/* Mobile nav toggle (hamburger) */
.nav-toggle{
  display:none; width:44px; height:44px; padding:10px;
  flex-direction:column; justify-content:center; align-items:center; gap:5px;
  border:none; background:none; cursor:pointer; flex-shrink:0;
}
.nav-toggle span{
  width:100%; height:2px; background:var(--moss); border-radius:2px;
  transition:transform .22s ease, opacity .22s ease;
}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* Mobile menu panel */
.mobile-menu{
  list-style:none; max-height:0; overflow:hidden;
  transition:max-height .28s ease;
  background:var(--cream); border-bottom:1px solid var(--line);
}
.mobile-menu.open{max-height:440px;}
.mobile-menu a{
  display:block; padding:16px 32px; min-height:44px;
  text-decoration:none; color:var(--charcoal); font-weight:500; font-size:0.98rem;
  border-top:1px solid var(--line);
}
.mobile-menu a.active{color:var(--leaf-dark); font-weight:600;}
.mobile-menu a.mm-cta{color:var(--leaf-dark); font-weight:700;}
@media (min-width:861px){
  .mobile-menu{display:none;}
}

/* Route divider — signature element (dashed road + leaf marks) */
.route-divider{ padding:0 0; opacity:0.9; }
.route-divider svg{width:100%; height:34px; display:block;}

/* Hero */
.hero{
  padding:92px 0 72px;
  display:grid; grid-template-columns:1.1fr 0.9fr; gap:56px; align-items:center;
}
.eyebrow{
  font-size:0.78rem; text-transform:uppercase; letter-spacing:0.12em;
  color:var(--leaf-dark); font-weight:700; margin-bottom:16px;
  display:inline-flex; align-items:center; gap:8px;
}
.hero h1{font-size:3.1rem; line-height:1.08; margin-bottom:20px;}
.hero p.lede{font-size:1.08rem; max-width:46ch; opacity:0.82; margin-bottom:30px;}
.btn-row{display:flex; gap:16px; flex-wrap:wrap;}
.btn-primary{
  background:var(--leaf); color:#fff; padding:15px 30px;
  border-radius:var(--radius-pill); text-decoration:none; font-weight:600; font-size:0.95rem;
  transition:background .2s, box-shadow .2s, transform .2s;
  display:inline-block; border:none; cursor:pointer; box-shadow:var(--shadow-sm);
}
.btn-primary:hover{background:var(--leaf-dark); box-shadow:var(--shadow-md); transform:translateY(-1px);}
.btn-secondary{
  padding:14px 28px; border-radius:var(--radius-pill); text-decoration:none;
  font-weight:600; font-size:0.95rem; border:1.5px solid var(--line); color:var(--moss);
  transition:border-color .2s, background .2s;
}
.btn-secondary:hover{border-color:var(--leaf); background:rgba(62,132,73,0.08);}

.hero-art{
  position:relative; aspect-ratio:1/1; border-radius:var(--radius-lg); overflow:hidden;
  background: linear-gradient(160deg, var(--moss-2) 0%, var(--moss) 55%, var(--moss-deep) 100%);
  box-shadow:var(--shadow-lg);
}
.hero-art::before{
  content:""; position:absolute; inset:0;
  background: repeating-linear-gradient(115deg, rgba(247,242,230,0.08) 0 2px, transparent 2px 26px);
}
.hero-art::after{
  content:""; position:absolute; left:8%; right:8%; bottom:14%; height:0;
  border-top:3px dashed rgba(247,242,230,0.5);
}
.hero-art.photo::before, .hero-art.photo::after{content:none;}
.hero-art.photo{background-color:var(--moss);}

/* Hero-Diashow: mehrere Bilder überblenden sich im Wechsel */
.hero-slideshow{position:relative; overflow:hidden;}
.hero-slide{
  position:absolute; inset:0;
  background-size:cover; background-position:center;
  opacity:0; transition:opacity 0.8s ease;
}
.hero-slide.active{opacity:1;}
@media (prefers-reduced-motion: reduce){
  .hero-slide{transition:none;}
}

/* Real-photo tiles (galerie, feature-row) */
.photo-tile{border-radius:var(--radius-md); position:relative; overflow:hidden; background-size:cover; background-position:center; box-shadow:var(--shadow-sm);}

/* Interaktive Vorschau: im Ruhezustand komplettes Bild sehr klein, beim Hover groß/zugeschnitten */
.photo-tile.hover-reveal{
  background-color:var(--moss-2);
  background-repeat:no-repeat;
  background-position:center;
  background-size:34%;
  transition:background-size .55s cubic-bezier(.22,.75,.2,1), background-position .55s ease;
  cursor:zoom-in;
}
.photo-tile.hover-reveal:hover,
.photo-tile.hover-reveal:focus-visible{
  background-size:cover;
  background-position:center 32%;
}
/* Touch-Geräte ohne Hover: direkt die große Ansicht zeigen */
@media (hover:none){
  .photo-tile.hover-reveal{
    background-size:cover;
    background-position:center 32%;
  }
}
.photo-tile::after{
  content:attr(data-label); position:absolute; left:0; right:0; bottom:0;
  padding:0 18px 12px; color:#F7F2E6; font-size:0.82rem; font-weight:500; font-family:'Fraunces', serif;
  text-shadow:0 1px 3px rgba(14,33,21,0.85), 0 2px 8px rgba(14,33,21,0.6);
}

/* Section shell */
section{padding:88px 0;}
.section-alt{background:rgba(124,148,115,0.12); border-radius:var(--radius-lg); margin:0 20px;}
.section-alt .wrap{padding:88px 32px;}
.section-head{max-width:58ch; margin-bottom:48px;}
.section-head .eyebrow{margin-bottom:14px;}
.section-head h2{font-size:2rem; line-height:1.15;}
.section-head p{opacity:0.78; margin-top:14px;}

/* Service-Gruppen (Startseite: Transportservice / Gartenservice) */
.service-group{margin-bottom:64px;}
.service-group:last-child{margin-bottom:0;}
.service-group-head{
  display:flex; align-items:baseline; justify-content:space-between;
  gap:16px; margin-bottom:28px;
}
.service-group-head h3{font-size:1.4rem; margin:0;}
.service-group-head .go{
  font-weight:700; font-size:0.9rem; color:var(--leaf-dark);
  text-decoration:none; white-space:nowrap;
}
.service-group-head .go:hover{color:var(--leaf);}
@media (max-width:600px){
  .service-group{margin-bottom:48px;}
  .service-group-head{margin-bottom:20px;}
}

/* Cards */
.grid-2{display:grid; grid-template-columns:1fr 1fr; gap:28px;}
.grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.card{
  border:1px solid var(--line); border-radius:var(--radius-md); padding:28px;
  background:var(--paper); box-shadow:var(--shadow-sm);
  transition:transform .2s ease, box-shadow .2s ease;
}
.card:hover{transform:translateY(-4px); box-shadow:var(--shadow-md);}
.card .num{
  font-family:'Fraunces', serif; font-size:0.85rem; color:var(--leaf-dark);
  font-weight:600; margin-bottom:12px;
}
.card h3{font-size:1.1rem; margin-bottom:8px;}
.card p{font-size:0.93rem; opacity:0.78;}

/* Service teaser (Startseite) */
.service-teaser{
  border-radius:var(--radius-lg); padding:38px; text-decoration:none;
  display:flex; flex-direction:column; gap:14px; min-height:230px;
  border:1px solid var(--line); background:var(--paper);
  box-shadow:var(--shadow-sm);
  transition: transform .2s, box-shadow .2s;
}
.service-teaser:hover{transform:translateY(-4px); box-shadow:var(--shadow-md);}
.service-teaser.garten{background:linear-gradient(155deg, rgba(124,148,115,0.20), rgba(124,148,115,0.04)), var(--paper);}
.service-teaser.transport{background:linear-gradient(155deg, rgba(168,112,63,0.18), rgba(168,112,63,0.04)), var(--paper);}
.service-teaser .eyebrow{margin-bottom:0;}
.service-teaser h3{font-size:1.5rem;}
.service-teaser p{opacity:0.8; font-size:0.95rem;}
.service-teaser .go{margin-top:auto; font-weight:700; font-size:0.9rem; color:var(--leaf-dark);}

/* Process — dunkle, abgerundete Schritt-Karten (Signature-Element aus dem Zieldesign) */
.process{display:grid; grid-template-columns:repeat(4,1fr); gap:18px;}
.step{
  padding:28px 24px; border-radius:var(--radius-md);
  background:var(--moss); color:var(--cream);
  box-shadow:var(--shadow-sm);
}
.step .num{font-family:'Fraunces', serif; font-size:1.9rem; color:var(--gold); display:block; margin-bottom:12px;}
.step h3{font-size:1rem; margin-bottom:6px; color:var(--cream);}
.step p{font-size:0.88rem; opacity:0.78;}

/* Gallery */
.gallery{display:grid; grid-template-columns:1.3fr 1fr 1fr; grid-template-rows:1fr 1fr; gap:16px; height:480px;}
/* Startseite: nur 3 Kacheln (kein drittes Spalten-Feld) — keine sichtbare Lücke */
#resultsGallery{grid-template-columns:1.3fr 1fr;}
.gallery .g1{grid-row:1/3;}
.gallery div{border-radius:var(--radius-md); position:relative; overflow:hidden;}
.gallery div:nth-child(1){background:linear-gradient(135deg,#7C9473,#1F4029);}
.gallery div:nth-child(2){background:linear-gradient(135deg,#A8703F,#5B4128);}
.gallery div:nth-child(3){background:linear-gradient(135deg,#5B5A4F,#22261F);}
.gallery div:nth-child(4){background:linear-gradient(135deg,#3E8449,#15301E);}

/* Quote / CTA — als eingesetzte, abgerundete dunkle Karte statt Full-Bleed-Band */
.quote{
  width:calc(100% - 64px); max-width:1120px; margin:0 auto;
  background: radial-gradient(120% 160% at 12% 10%, rgba(255,255,255,0.06), transparent 60%), var(--moss);
  color:var(--cream); padding:76px 40px; border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg);
}
.quote blockquote{font-family:'Fraunces', serif; font-size:1.6rem; line-height:1.4; max-width:40ch; font-weight:400;}
.quote cite{display:block; margin-top:20px; font-style:normal; opacity:0.7; font-size:0.9rem;}

/* Live review card (echte Bewertungen) — kompakt & hell, mit Aufklapp-Funktion */
.reviews-section{padding:64px 32px; display:flex; flex-direction:column; align-items:center;}
.review-carousel{display:flex; align-items:center; justify-content:center; gap:16px; width:100%;}
.review-arrow{
  width:38px; height:38px; border-radius:50%; flex-shrink:0; border:1px solid var(--line);
  background:var(--paper); color:var(--moss); display:flex; align-items:center; justify-content:center;
  cursor:pointer; box-shadow:var(--shadow-sm); transition:background .2s, border-color .2s, transform .2s;
}
.review-arrow:hover{background:rgba(62,132,73,0.10); border-color:var(--leaf); transform:translateY(-1px);}
.review-arrow svg{width:18px; height:18px;}
.review-card-modern{
  width:100%; max-width:440px; background:var(--paper); border:1px solid var(--line);
  border-radius:var(--radius-md); padding:24px 26px; box-shadow:var(--shadow-md);
}
.review-card-top{display:flex; align-items:center; gap:12px; margin-bottom:14px;}
.review-avatar-modern{
  width:40px; height:40px; border-radius:50%; flex-shrink:0;
  background:rgba(124,148,115,0.20); color:var(--moss);
  font-family:'Fraunces', serif; font-weight:600; font-size:1.02rem;
  display:flex; align-items:center; justify-content:center;
}
.review-avatar-modern.facebook{background:rgba(24,119,242,0.14); color:#1877F2;}
.review-head-text{display:flex; flex-direction:column; gap:3px;}
.review-name-modern{font-weight:700; color:var(--moss); font-size:0.98rem;}
.review-meta{display:flex; align-items:center; gap:6px; font-size:0.8rem; color:var(--charcoal); opacity:0.55;}
.stars-modern{color:var(--gold); letter-spacing:1px; font-size:0.82rem;}
.fb-like-badge{
  display:inline-flex; align-items:center; justify-content:center;
  width:16px; height:16px; border-radius:50%; background:#1877F2; color:#fff; font-size:0.62rem;
}
.review-text-modern{
  color:var(--charcoal); opacity:0.85; font-size:0.94rem; line-height:1.6; margin-bottom:4px;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.review-text-modern.expanded{-webkit-line-clamp:unset; overflow:visible;}
.review-toggle{
  background:none; border:none; padding:0; margin-top:2px;
  color:var(--leaf-dark); font-weight:600; font-size:0.86rem; font-family:inherit;
  cursor:pointer; text-decoration:underline; text-underline-offset:2px;
}
.review-toggle:hover{color:var(--leaf);}
.review-card-bottom{
  display:flex; align-items:center; justify-content:flex-end; gap:8px;
  margin-top:18px; padding-top:14px; border-top:1px solid var(--line);
  font-size:0.82rem; color:var(--charcoal); opacity:0.7; font-weight:500;
}
.review-card-bottom svg{width:17px; height:17px; flex-shrink:0;}

.review-dots{display:flex; align-items:center; justify-content:center; gap:8px; margin-top:18px;}
.review-dot{
  width:8px; height:8px; padding:0; border:none; border-radius:50%;
  background:var(--line); cursor:pointer; transition:background .2s, transform .2s;
}
.review-dot.active{background:var(--leaf); transform:scale(1.3);}

@media (max-width:600px){
  .review-carousel{gap:8px;}
  .review-arrow{width:34px; height:34px;}
  .review-card-modern{padding:20px 18px;}
}

/* List page hero smaller */
.page-hero{padding:60px 0 24px;}
.page-hero h1{font-size:2.6rem;}

/* Fleet / feature rows */
.feature-row{display:grid; grid-template-columns:1fr 1fr; gap:44px; align-items:center;}
.feature-row + .feature-row{margin-top:64px;}
.feature-row .art{aspect-ratio:16/10; border-radius:var(--radius-lg); box-shadow:var(--shadow-md);}
.feature-row h3{font-size:1.4rem; margin-bottom:12px;}
.feature-row p{opacity:0.8;}
.feature-row.reverse{direction:rtl;}
.feature-row.reverse > *{direction:ltr;}

/* Contact */
.contact{display:grid; grid-template-columns:1fr 1fr; gap:56px;}
.contact-info dl{display:grid; grid-template-columns:auto 1fr; gap:10px 18px; margin-top:24px; font-size:0.95rem;}
.contact-info dt{opacity:0.58; font-weight:500;}
.contact-info .map{
  margin-top:28px; aspect-ratio:16/9; border-radius:var(--radius-md);
  background: repeating-linear-gradient(45deg, rgba(62,132,73,0.10) 0 10px, rgba(62,132,73,0.04) 10px 20px);
  border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center;
  font-size:0.85rem; opacity:0.6;
  overflow:hidden; box-shadow:var(--shadow-sm);
}
.contact-info .map iframe{width:100%; height:100%; display:block; border:0;}
.map-caption{
  margin-top:14px; font-size:0.82rem; font-weight:600; letter-spacing:0.02em;
  color:var(--leaf-dark); text-align:center; opacity:0.9;
}
form{
  display:grid; gap:16px; background:var(--paper); padding:28px;
  border-radius:var(--radius-md); border:1px solid var(--line); box-shadow:var(--shadow-sm);
}
label{font-size:0.85rem; font-weight:600; margin-bottom:6px; display:block; color:var(--moss);}
input, textarea, select{
  width:100%; border:1.5px solid var(--line); background:var(--cream);
  padding:12px 16px; border-radius:var(--radius-sm); font-family:inherit; font-size:0.95rem;
  color:var(--charcoal); transition:border-color .2s, box-shadow .2s;
}
input:focus, textarea:focus, select:focus{outline:none; border-color:var(--leaf); box-shadow:0 0 0 3px rgba(62,132,73,0.15);}
textarea{resize:vertical; min-height:110px;}

/* Values / team (Über uns) */
.value-list{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.team-photo{aspect-ratio:1/1; border-radius:var(--radius-lg); background:linear-gradient(150deg,var(--sage),var(--moss)); margin-bottom:14px; box-shadow:var(--shadow-sm);}

/* Footer — dunkles Waldgrün wie im Zieldesign */
footer{
  background:var(--moss-deep); color:rgba(247,242,230,0.75);
  border-radius:var(--radius-lg); margin:0 20px 20px; padding-top:52px;
}
.footer-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:32px; padding-bottom:44px;}
.footer-brand .footer-logo{
  display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--cream);
  font-family:'Fraunces', serif; font-weight:600; font-size:1.05rem; margin-bottom:14px;
}
.footer-brand .footer-logo img{height:36px; width:36px; object-fit:contain; border-radius:50%; background:rgba(247,242,230,0.10); padding:4px;}
.footer-brand p{font-size:0.88rem; opacity:0.72; max-width:32ch; margin-bottom:20px;}
.footer-social{display:flex; gap:10px;}
.footer-social a{
  width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:rgba(247,242,230,0.12); color:var(--cream); transition:background .2s, transform .2s;
}
.footer-social a:hover{background:var(--leaf); transform:translateY(-2px);}
.footer-social svg{width:17px; height:17px; fill:currentColor;}
.footer-col h4{color:var(--cream); font-family:'Fraunces', serif; font-weight:600; font-size:0.95rem; margin-bottom:16px;}
.footer-col ul{list-style:none; display:grid; gap:10px;}
.footer-col a{color:rgba(247,242,230,0.72); text-decoration:none; font-size:0.88rem; transition:color .2s;}
.footer-col a:hover{color:var(--cream);}
.footer-bottom{
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
  border-top:1px solid rgba(247,242,230,0.14); padding:22px 32px; font-size:0.82rem;
}
.footer-bottom a{color:rgba(247,242,230,0.75); text-decoration:none;}
.footer-bottom a:hover{color:var(--cream);}

@media (max-width:860px){
  .footer-grid{grid-template-columns:1fr 1fr; gap:28px;}
}
@media (max-width:600px){
  .footer-grid{grid-template-columns:1fr;}
  .footer-bottom{flex-direction:column; align-items:flex-start;}
}

@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} }

@media (max-width: 860px){
  .hero{grid-template-columns:1fr; padding-top:52px; gap:36px;}
  .hero h1{font-size:2.2rem;}
  .grid-3, .grid-2, .value-list{grid-template-columns:1fr;}
  .process{grid-template-columns:1fr 1fr;}
  .gallery{grid-template-columns:1fr 1fr; grid-template-rows:auto; height:auto;}
  .gallery .g1{grid-row:auto; grid-column:1/3; height:200px;}
  .gallery div{height:140px;}
  #resultsGallery{grid-template-columns:1fr 1fr;}
  .contact{grid-template-columns:1fr;}
  .feature-row{grid-template-columns:1fr; gap:24px;}
  .feature-row.reverse{direction:ltr;}
  .feature-row + .feature-row{margin-top:44px;}
  .tabs{display:none;}
  .nav-toggle{display:flex;}
  section{padding:64px 0;}
  .section-alt{margin:0 12px;}
  .section-alt .wrap{padding:64px 24px;}
  .nav-cta{padding:10px 18px; font-size:0.85rem;}
  footer{margin:0 12px 12px;}
}

@media (max-width: 600px){
  .wrap{padding:0 20px;}
  .nav{padding:14px 0;}
  .logo img{height:44px; width:44px;}
  .hero{padding-top:36px; padding-bottom:44px;}
  .hero h1{font-size:1.8rem;}
  .hero p.lede{font-size:1rem;}
  .page-hero h1{font-size:2rem;}
  .btn-row{flex-direction:column; align-items:stretch;}
  .btn-primary, .btn-secondary{text-align:center;}
  .nav-cta{display:none;}
  .process{grid-template-columns:1fr;}
  .quote{width:calc(100% - 40px); padding:52px 24px;}
  .quote blockquote{font-size:1.25rem;}
  section{padding:48px 0;}
  .section-alt{margin:0 10px;}
  .section-alt .wrap{padding:48px 20px;}
  footer{margin:0 10px 10px;}
}

/* =========================================================
   NEUE KOMPONENTEN — vorbereitet für den nächsten Schritt
   (im HTML noch nicht verwendet, aber schon fertig gestylt)
   ========================================================= */

/* Pill-Badge, z. B. „⭐ Google-Bewertung“, „In 4 Schritten“ */
.badge{
  display:inline-flex; align-items:center; gap:8px;
  padding:8px 18px; border-radius:var(--radius-pill);
  background:rgba(62,132,73,0.12); color:var(--leaf-dark);
  font-size:0.8rem; font-weight:700; letter-spacing:0.02em;
}
.badge.on-dark{background:rgba(247,242,230,0.12); color:var(--cream);}

/* Sterne-Bewertung */
.stars{display:inline-flex; align-items:center; gap:6px; color:var(--gold); font-weight:700;}
.stars .count{color:var(--charcoal); opacity:0.65; font-weight:500; font-size:0.85rem;}

/* Stat-Leiste (z. B. „5,0★ · 2-in-1 · 100% · Fair“) */
.stat-bar{
  display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
  background:var(--line); border-radius:var(--radius-md); overflow:hidden;
  box-shadow:var(--shadow-sm);
}
.stat-bar .stat{background:var(--paper); padding:26px 20px; text-align:center;}
.stat-bar .stat strong{display:block; font-family:'Fraunces',serif; font-size:1.6rem; color:var(--moss);}
.stat-bar .stat span{font-size:0.8rem; opacity:0.65;}
@media (max-width:600px){ .stat-bar{grid-template-columns:1fr 1fr;} }

/* Dunkles Hero-Panel mit weichem, geschwungenem Übergang zur Cream-Fläche */
.hero-dark{
  background:linear-gradient(165deg, var(--moss-2), var(--moss) 55%, var(--moss-deep));
  border-radius:0 0 var(--radius-lg) var(--radius-lg);
  color:var(--cream); padding:100px 0 90px; position:relative;
}
.hero-dark h1{color:var(--cream);}
.hero-dark .eyebrow{color:var(--sage);}
.hero-dark .lede{color:rgba(247,242,230,0.82);}

/* CTA-Banner-Card (eigenständig, für Seiten ohne .quote) */
.cta-banner{
  width:calc(100% - 64px); max-width:1120px; margin:0 auto;
  background:var(--moss); color:var(--cream); text-align:center;
  padding:64px 40px; border-radius:var(--radius-lg); box-shadow:var(--shadow-lg);
}
.cta-banner h2{color:var(--cream);}
.cta-banner p{opacity:0.8; max-width:52ch; margin:14px auto 28px;}
.cta-banner .btn-primary{background:#fff; color:var(--moss);}
.cta-banner .btn-primary:hover{background:var(--cream);}

/* Kontakt — Icon-Liste für direkte Kontaktdaten */
.contact-icons{display:grid; gap:22px; margin-top:30px;}
.contact-icons .item{display:flex; gap:16px; align-items:flex-start;}
.contact-icons .icon{
  width:48px; height:48px; border-radius:var(--radius-sm); flex-shrink:0;
  background:rgba(62,132,73,0.12); color:var(--leaf-dark);
  display:flex; align-items:center; justify-content:center; font-size:1.25rem;
}
.contact-icons .label{
  font-size:0.76rem; text-transform:uppercase; letter-spacing:0.09em;
  opacity:0.55; font-weight:600; margin-bottom:4px;
}
.contact-icons .value{font-size:1.08rem; font-weight:600; color:var(--moss); text-decoration:none; display:inline-block;}
.contact-icons a.value:hover{color:var(--leaf-dark);}
.contact-icons .value.static{font-weight:500; opacity:0.85;}
.btn-block{width:100%; text-align:center; padding:17px 30px; font-size:1rem;}

/* WhatsApp CTA */
.btn-whatsapp{
  display:inline-flex; align-items:center; gap:10px;
  background:#25D366; color:#0E2115; padding:14px 28px;
  border-radius:var(--radius-pill); text-decoration:none;
  font-weight:700; font-size:0.95rem; border:none;
  box-shadow:0 10px 26px rgba(37,211,102,0.35);
  transition:background .2s, box-shadow .2s, transform .2s;
}
.btn-whatsapp:hover{background:#1ebe5a; box-shadow:0 14px 32px rgba(37,211,102,0.45); transform:translateY(-1px);}
.btn-whatsapp svg{width:20px; height:20px; fill:#0E2115; flex-shrink:0;}

/* Contact detail helper note under a value */
.value-note{display:block; opacity:0.6; font-size:0.82rem; font-weight:500; margin-top:2px;}

/* Review source badges (Google / Facebook placeholders) */
.review-sources{display:flex; gap:14px; flex-wrap:wrap; align-items:center;}
.review-source{
  display:inline-flex; align-items:center; gap:8px;
  background:rgba(247,242,230,0.10); padding:8px 16px 8px 10px;
  border-radius:var(--radius-pill); font-size:0.85rem; font-weight:600; color:var(--cream);
}
.review-source svg{width:18px; height:18px; flex-shrink:0;}
.review-source .rs-stars{color:var(--gold); letter-spacing:1px;}

/* FAQ-Akkordeon */
.accordion{display:grid; gap:12px;}
.accordion-item{
  border:1px solid var(--line); border-radius:var(--radius-md);
  background:var(--paper); overflow:hidden;
}
.accordion-item summary{
  list-style:none; cursor:pointer; padding:20px 24px;
  display:flex; justify-content:space-between; align-items:center;
  font-weight:600; color:var(--moss);
}
.accordion-item summary::-webkit-details-marker{display:none;}
.accordion-item summary::after{content:"+"; font-size:1.3rem; color:var(--leaf); transition:transform .2s;}
.accordion-item[open] summary::after{transform:rotate(45deg);}
.accordion-item .accordion-body{padding:0 24px 22px; opacity:0.78; font-size:0.94rem;}
