/* Google font loaded via HTML <link> */
/* --- Design-Verbesserungen & Effekte --- */
:root{ --brand-bg:#f5f1dd; --brand-light:#6fa825; --brand-dark:#2c5f33; --radius:16px; --shadow:0 12px 30px -12px rgba(44,95,51,.22);} 
html{ scroll-padding-top: 84px; }
body { background-color: var(--brand-bg); }
/* reveal */
.reveal { opacity: 0; transform: translateY(12px); transition: opacity .6s ease, transform .6s ease; }
.reveal.show { opacity: 1; transform: translateY(0); }

a.link-underline{ position:relative; text-decoration:none }
a.link-underline::after{ content:""; position:absolute; left:0; bottom:-2px; width:100%; height:2px; background:linear-gradient(90deg,var(--brand-light),var(--brand-dark)); transform:scaleX(0); transform-origin:left; transition:transform .15s ease-out; }
a.link-underline:hover::after{ transform:scaleX(1) }

.btn{ border-radius: calc(var(--radius) + 4px); transition: transform .15s ease-out, box-shadow .15s ease-out, background-color .15s ease-out, color .15s ease-out; }
.btn:hover{ transform: translateY(-0.5px); box-shadow: var(--shadow); }

.card{ border-radius: calc(var(--radius) + 6px); background: rgba(255,255,255,.9); backdrop-filter: blur(4px); box-shadow: var(--shadow); border:1px solid rgba(44,95,51,.15); }
.icon-badge{ padding:8px; border-radius:12px; background: linear-gradient(135deg, #6fa82522, #2c5f331a); border:1px solid rgba(44,95,51,.15); }

.section-soft{ position:relative; }
.section-soft::before{ content:""; position:absolute; inset:-1px; z-index:-1; background: radial-gradient(600px 260px at 10% 0%, #6fa82515 0%, transparent 60%), radial-gradient(520px 220px at 90% 100%, #2c5f3312 0%, transparent 60%); }

*:focus-visible{ outline:2px solid rgba(111,168,37,.6); outline-offset:2px; border-radius:10px; }

/* Lightbox */
.lb-overlay{ position:fixed; inset:0; background:rgba(0,0,0,.6); display:none; align-items:center; justify-content:center; padding:24px; z-index:60; }
.lb-overlay.open{ display:flex; animation: lbFade .15s ease-out; }
.lb-frame{ max-width:min(100%,1000px); width:100%; }
.lb-imgwrap{ position:relative; background:#fff; border-radius:18px; overflow:hidden; box-shadow:0 20px 60px -20px rgba(0,0,0,.35); }
.lb-imgwrap img{ width:100%; height:auto; display:block; }
.lb-caption{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 14px; font-size:.9rem; color:#1f2937; background:#fff; border-top:1px solid #e5e7eb; }
.lb-actions button{ appearance:none; border:0; background:#f3f4f6; color:#111827; padding:8px 10px; border-radius:10px; cursor:pointer; transition:transform .1s ease-out; }
.lb-actions button:hover{ transform:translateY(-1px); }
.lb-prev,.lb-next{ position:absolute; top:50%; transform:translateY(-50%); background:rgba(255,255,255,.9); border:1px solid #e5e7eb; padding:10px; border-radius:999px; cursor:pointer; }
.lb-prev{ left:10px; } .lb-next{ right:10px; }
.lb-close{ position:absolute; top:10px; right:10px; background:rgba(255,255,255,.9); border:1px solid #e5e7eb; padding:8px; border-radius:999px; cursor:pointer; }
@keyframes lbFade{ from{ opacity:0 } to{ opacity:1 } }

@media (prefers-reduced-motion: reduce){ .reveal,.btn,.lb-overlay{ transition:none; animation:none } }